From 693858b383efafe5b9cc5c0bb29b6560e4f1d4a6 Mon Sep 17 00:00:00 2001 From: Rick Ross Date: Fri, 19 Jan 2024 09:42:20 -0800 Subject: [PATCH 1/3] Added support for postprocess rules to read_mosaic_map_dict() and write_mosaic_map_file() --- lib_afc_mosaic/universe_map_file.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib_afc_mosaic/universe_map_file.py b/lib_afc_mosaic/universe_map_file.py index caead5b..d7b0d76 100644 --- a/lib_afc_mosaic/universe_map_file.py +++ b/lib_afc_mosaic/universe_map_file.py @@ -124,6 +124,7 @@ class AFCMUniverseMapFile: self.mosaic_head = map_dict.get('mosaic', {}) self.metadata = map_dict.get('metadata', {}) self.mosaic_file_list = map_dict.get('files', {}) + self.mosaic_postprocess = map_dict.get('postprocess', {}) return None @@ -138,7 +139,8 @@ class AFCMUniverseMapFile: output_object = json.dumps({"mosaic": self.mosaic_head, "metadata": self.metadata, - "files": self.mosaic_file_list}, indent=4) + "files": self.mosaic_file_list, + "postprocess": self.mosaic_postprocess}, indent=4) with open(filename, 'w', encoding="UTF-8") as outfile: outfile.write(output_object) From 08b4f631165a04fbe743c81214ab3b3c6578a3d7 Mon Sep 17 00:00:00 2001 From: Rick Ross Date: Fri, 19 Jan 2024 13:42:58 -0800 Subject: [PATCH 2/3] Handles range rule in postprocess --- lib_afc_mosaic/universe_map_file.py | 30 +++++++++++++---------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lib_afc_mosaic/universe_map_file.py b/lib_afc_mosaic/universe_map_file.py index d7b0d76..3bbe415 100644 --- a/lib_afc_mosaic/universe_map_file.py +++ b/lib_afc_mosaic/universe_map_file.py @@ -208,11 +208,7 @@ class AFCMUniverseMapFile: self.process_file(ufilename) # Perform post-processing - if len(self.mosaic_postprocess) is not 0: - self.postprocessing() - else: - # copy self.cleaned_import_rows list to self.final_rows list - self.final_rows = self.cleaned_import_rows[:] + self.postprocessing() # Run final steps self.write_final_file() @@ -222,21 +218,21 @@ class AFCMUniverseMapFile: def postprocessing(self): """ postprocessing Performs actions for any postprocessing rules defined in the voterset map file + + structure in the map file: + "postprocess": { + "range": { + "start": 0, + "end": 10000 + } + } """ - # structure in the map file - # "postprocess": { - # "range": { - # "start": 0, - # "end": 10000 - # } - # } + # need to figure out how to handle rules in defined order - - # get list of keys from "postprocess" - # if "range" exists, - # get "start" and "end" keys - # copy the range from cleaned_import_rows into final_rows + # if no range is defined, this copies the entire list from self.cleaned_import_rows + range = self.mosaic_postprocess.get('range', {}) + self.final_rows = self.cleaned_import_rows[range.get('start', None):range.get('end', None)] return From c5aff5248b78b8d05cf166d30b689b8035f89f8b Mon Sep 17 00:00:00 2001 From: Rick Ross Date: Fri, 19 Jan 2024 13:49:20 -0800 Subject: [PATCH 3/3] Incremented version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a33397c..9d4379b 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ with open('README.md', 'r') as f: setup( name='lib_afc_mosaic', - version='0.1.8', + version='0.1.9', author='', author_email='', description='',