2023-12-03 04:20:00 +00:00
|
|
|
"""
|
|
|
|
|
AFCMUniverseMapFile Class object
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AFCMUniverseMapFile:
|
|
|
|
|
"""
|
|
|
|
|
AFCMUniverseMapFile class
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def __init__( self, mosaic_filename=None ):
|
|
|
|
|
"""
|
|
|
|
|
__init__
|
|
|
|
|
|
|
|
|
|
:param mosaic_filename:
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
self.mosaic_filename = mosaic_filename
|
|
|
|
|
|
2023-12-04 05:34:15 +00:00
|
|
|
self.mosaic_head = {}
|
|
|
|
|
self.metadata = {}
|
2023-12-03 04:20:00 +00:00
|
|
|
self.mosaic_file_list = {}
|
2023-12-04 05:34:15 +00:00
|
|
|
|
2023-12-03 04:20:00 +00:00
|
|
|
self.files = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def read_mosaic_map_file( self, filename ):
|
|
|
|
|
"""
|
|
|
|
|
read_mosaic_map_file
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if filename == '' or filename is None:
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
with open(filename, encoding='utf-8-sig') as json_file:
|
|
|
|
|
data = json.load(json_file)
|
|
|
|
|
#print("Type:", type(data))
|
|
|
|
|
|
|
|
|
|
if 'mosaic' in data:
|
|
|
|
|
self.mosaic_head = data['mosaic']
|
|
|
|
|
|
|
|
|
|
if 'metadata' in data:
|
|
|
|
|
self.metadata = data['metadata']
|
|
|
|
|
|
|
|
|
|
if 'files' in data:
|
|
|
|
|
self.mosaic_file_list = data['files']
|
|
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
2023-12-04 05:34:15 +00:00
|
|
|
def read_mosaic_map_dict( self, map_dict : dict ):
|
|
|
|
|
"""
|
|
|
|
|
read_mosaic_map_dict
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if not isinstance(map_dict, dict):
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
self.mosaic_head = map_dict.get('mosaic', {})
|
|
|
|
|
self.metadata = map_dict.get('metadata', {})
|
|
|
|
|
self.mosaic_file_list = map_dict.get('files', {})
|
|
|
|
|
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
2023-12-03 04:20:00 +00:00
|
|
|
def write_mosaic_map_file( self, filename ):
|
|
|
|
|
"""
|
|
|
|
|
write_mosaic_map_file
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if filename == '' or filename is None:
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
output_object = json.dumps({"mosaic": self.mosaic_head,
|
|
|
|
|
"metadata": self.metadata,
|
|
|
|
|
"files": self.mosaic_file_list}, indent=4)
|
|
|
|
|
|
|
|
|
|
with open(filename, 'w', encoding="UTF-8") as outfile:
|
|
|
|
|
outfile.write(output_object)
|
|
|
|
|
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_new_input_file( self, filename=None ):
|
|
|
|
|
"""
|
|
|
|
|
create_new_input_file
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
mosaic_input_file = {
|
|
|
|
|
"filename": filename,
|
|
|
|
|
"details": {
|
|
|
|
|
"csv_get_url": None,
|
|
|
|
|
"csv_get_prepped_url": None,
|
|
|
|
|
"csv_get_removed_url": None,
|
|
|
|
|
"csv_put_url": None,
|
|
|
|
|
"mapping": {
|
|
|
|
|
"UID": None,
|
|
|
|
|
"FName": None,
|
|
|
|
|
"LName": None,
|
|
|
|
|
"Cell_Phone": None,
|
|
|
|
|
"Party": None,
|
|
|
|
|
"State": None,
|
|
|
|
|
"Precinct": None,
|
|
|
|
|
"County": None,
|
|
|
|
|
"URL": None
|
|
|
|
|
},
|
|
|
|
|
"operations": {
|
|
|
|
|
"insert": {"field":"*", "operator":"=", "value":"*"}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mosaic_input_file
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add_new_input_file( self, ifo ):
|
|
|
|
|
"""
|
|
|
|
|
add_new_input_file
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if ifo is None:
|
|
|
|
|
return
|
|
|
|
|
self.files.append(ifo)
|