From b296cd187b749645cbb9f222d1adfb0cd04d3653 Mon Sep 17 00:00:00 2001 From: Katon Minhas Date: Fri, 21 Feb 2025 18:03:08 +0000 Subject: [PATCH] Merged in bugfix/dynamic-assignment-issue (pull request #408) Bugfix/dynamic assignment issue * Merged main into feature/proc-desc * Uncomment test code * Bugfix * script optimisation for codes * modified is empty function in string utils * Remove test.py * bug fix to handle list of proc_codes * Merged main into bugfix/proc-code-lists * changed any method to all method in list handling * code mapping moved outside to run once * Merge branch 'feature/daip2-97' into bugfix/proc-code-lists * merge conflict fixed * merge conflicts fixed * incorporated latest changes from main * Merged main into bugfix/proc-code-lists * Move load all dataset to io_utils * Fix list is_empty * Updated poetry.lock * Bugfix * Docstring * Docstrings * Merge branch 'main' into bugfix/proc-code-lists * Merge branch 'bugfix/proc-code-lists' into bugfix/dynamic-assignment-issue * Update test for no default exhibit_level_answer_dict * Merged main into bugfix/dynamic-assignment-issue Approved-by: Alex Galarce --- .../src/investment/one_to_n_funcs.py | 22 ++++++++++--------- fieldExtraction/tests/one_to_n_test.py | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/fieldExtraction/src/investment/one_to_n_funcs.py b/fieldExtraction/src/investment/one_to_n_funcs.py index 8f2d079..76ef150 100644 --- a/fieldExtraction/src/investment/one_to_n_funcs.py +++ b/fieldExtraction/src/investment/one_to_n_funcs.py @@ -51,7 +51,7 @@ def process_dynamic(results, exhibit_level_fields, dynamic_fields, assign_na, - exhibit_level_answer_dict={}): + exhibit_level_answer_dict): """ Processes dynamic fields and updates exhibit-level or reimbursement-level field dictionaries. @@ -67,6 +67,7 @@ def process_dynamic(results, dict: Updated dictionary containing the dynamic field answers """ + for field_name, answer in results.items(): if field_name in exhibit_level_fields.list_fields(): # Add exhibit-level only fields to dict exhibit_level_answer_dict[field_name] = answer @@ -117,21 +118,22 @@ def dynamic_and_exhibit_level(exhibit_text, field_prompts=dynamic_fields.get_prompt_dict(), filename=filename) exhibit_level_answer_dict = process_dynamic(results=exhibit_header_results, - reimbursement_level_fields=reimbursement_level_fields, - exhibit_level_fields=exhibit_level_fields, - dynamic_fields=dynamic_fields, - assign_na=False) + reimbursement_level_fields=reimbursement_level_fields, + exhibit_level_fields=exhibit_level_fields, + dynamic_fields=dynamic_fields, + assign_na=False, + exhibit_level_answer_dict={}) # Prompt the remaining Dynamic + all Exhibit-Level prompts on the entire exhibit exhibit_text_results = prompt_dynamic(text=exhibit_text, field_prompts=dynamic_fields.get_prompt_dict() | exhibit_level_fields.get_prompt_dict(), filename=filename) exhibit_level_answer_dict= process_dynamic(results=exhibit_text_results, - reimbursement_level_fields=reimbursement_level_fields, - exhibit_level_fields=exhibit_level_fields, - dynamic_fields=dynamic_fields, - assign_na=True, - exhibit_level_answer_dict=exhibit_level_answer_dict) + reimbursement_level_fields=reimbursement_level_fields, + exhibit_level_fields=exhibit_level_fields, + dynamic_fields=dynamic_fields, + assign_na=True, + exhibit_level_answer_dict=exhibit_level_answer_dict) exhibit_level_answer_dict['EXHIBIT_NAME'] = exhibit_header # exhibit_level_answer_dict should have all exhibit-level fields answers (including the ones that were previously dynamic) diff --git a/fieldExtraction/tests/one_to_n_test.py b/fieldExtraction/tests/one_to_n_test.py index 7caeed7..a1ee1c9 100644 --- a/fieldExtraction/tests/one_to_n_test.py +++ b/fieldExtraction/tests/one_to_n_test.py @@ -11,7 +11,7 @@ class TestOneToN(unittest.TestCase): dynamic_fields = MagicMock() assign_na = False - exhibit_level_answer_dict = process_dynamic(results, reimbursement_level_fields, exhibit_level_fields, dynamic_fields, assign_na) + exhibit_level_answer_dict = process_dynamic(results, reimbursement_level_fields, exhibit_level_fields, dynamic_fields, assign_na, {}) # You can check the content of exhibit_level_answer_dict based on inputs. self.assertEqual(exhibit_level_answer_dict, {"field1": "value1", "field2": "value2"})