|
5 | 5 | import pandas as pd |
6 | 6 |
|
7 | 7 | from ted_sws.core.model.transform import ConceptualMapping, ConceptualMappingXPATH, ConceptualMappingMetadata, \ |
8 | | - ConceptualMappingResource, ConceptualMappingMetadataConstraints, ConceptualMappingRule, ConceptualMappingRMLModule |
| 8 | + ConceptualMappingResource, ConceptualMappingMetadataConstraints, ConceptualMappingRule, ConceptualMappingRMLModule, \ |
| 9 | + ConceptualMappingRemark, ConceptualMappingControlList |
9 | 10 | from ted_sws.mapping_suite_processor import CONCEPTUAL_MAPPINGS_METADATA_SHEET_NAME, \ |
10 | 11 | CONCEPTUAL_MAPPINGS_RULES_SHEET_NAME, RULES_FIELD_XPATH, RULES_SF_FIELD_ID, RULES_SF_FIELD_NAME, \ |
11 | 12 | CONCEPTUAL_MAPPINGS_RESOURCES_SHEET_NAME, CONCEPTUAL_MAPPINGS_RML_MODULES_SHEET_NAME, RULES_E_FORM_BT_ID, \ |
12 | | - RULES_E_FORM_BT_NAME, RULES_FIELD_XPATH_CONDITION |
| 13 | + RULES_E_FORM_BT_NAME, RULES_FIELD_XPATH_CONDITION, CONCEPTUAL_MAPPINGS_REMARKS_SHEET_NAME, \ |
| 14 | + CONCEPTUAL_MAPPINGS_CL2_ORGANISATIONS_SHEET_NAME, CONCEPTUAL_MAPPINGS_CL1_ROLES_SHEET_NAME, CL_MAPPING_REFERENCE, \ |
| 15 | + CL_SUPERTYPE, CL_FIELD_VALUE, CL_XML_PATH_FRAGMENT |
13 | 16 | from ted_sws.mapping_suite_processor.services.conceptual_mapping_files_injection import FILE_NAME_KEY |
14 | 17 | from ted_sws.notice_validator import BASE_XPATH_FIELD |
15 | 18 |
|
@@ -124,6 +127,25 @@ def _read_conceptual_mapping_rules(df: pd.DataFrame) -> List[ConceptualMappingRu |
124 | 127 | return rules |
125 | 128 |
|
126 | 129 |
|
| 130 | +def _read_conceptual_mapping_remarks(df: pd.DataFrame) -> List[ConceptualMappingRemark]: |
| 131 | + """ |
| 132 | +
|
| 133 | + :param df: |
| 134 | + :return: |
| 135 | + """ |
| 136 | + |
| 137 | + remarks_df = df[0:].copy() |
| 138 | + remarks = [] |
| 139 | + remark: ConceptualMappingRemark |
| 140 | + for idx, row in remarks_df.iterrows(): |
| 141 | + remark = ConceptualMappingRemark() |
| 142 | + remark.standard_form_field_id = _read_pd_value(row[RULES_SF_FIELD_ID]) |
| 143 | + remark.standard_form_field_name = _read_pd_value(row[RULES_SF_FIELD_NAME]) |
| 144 | + remark.field_xpath = _read_list_from_pd_multiline_value(row[RULES_FIELD_XPATH]) |
| 145 | + remarks.append(remark) |
| 146 | + return remarks |
| 147 | + |
| 148 | + |
127 | 149 | def _read_conceptual_mapping_resources(df: pd.DataFrame) -> List[ConceptualMappingResource]: |
128 | 150 | """ |
129 | 151 |
|
@@ -156,6 +178,28 @@ def _read_conceptual_mapping_rml_modules(df: pd.DataFrame) -> List[ConceptualMap |
156 | 178 | return rml_modules |
157 | 179 |
|
158 | 180 |
|
| 181 | +def _read_conceptual_mapping_control_list(df: pd.DataFrame) -> List[ConceptualMappingControlList]: |
| 182 | + """ |
| 183 | +
|
| 184 | + :param df: |
| 185 | + :return: |
| 186 | + """ |
| 187 | + |
| 188 | + df.columns = df.iloc[0] |
| 189 | + control_list_df = df[1:].copy() |
| 190 | + |
| 191 | + control_list = [] |
| 192 | + item: ConceptualMappingControlList |
| 193 | + for idx, row in control_list_df.iterrows(): |
| 194 | + item = ConceptualMappingControlList() |
| 195 | + item.field_value = _read_pd_value(row[CL_FIELD_VALUE]) |
| 196 | + item.mapping_reference = _read_pd_value(row[CL_MAPPING_REFERENCE]) |
| 197 | + item.super_type = _read_pd_value(row[CL_SUPERTYPE]) |
| 198 | + item.xml_path_fragment = _read_pd_value(row[CL_XML_PATH_FRAGMENT]) |
| 199 | + control_list.append(item) |
| 200 | + return control_list |
| 201 | + |
| 202 | + |
159 | 203 | def _read_conceptual_mapping_xpaths(rules_df: pd.DataFrame, base_xpath: str) -> List[ConceptualMappingXPATH]: |
160 | 204 | """ |
161 | 205 |
|
@@ -209,9 +253,14 @@ def mapping_suite_read_conceptual_mapping(conceptual_mappings_file_path: Path) - |
209 | 253 | metadata = _read_conceptual_mapping_metadata(dfs[CONCEPTUAL_MAPPINGS_METADATA_SHEET_NAME]) |
210 | 254 | conceptual_mapping.metadata = metadata |
211 | 255 | conceptual_mapping.rules = _read_conceptual_mapping_rules(dfs[CONCEPTUAL_MAPPINGS_RULES_SHEET_NAME]) |
| 256 | + conceptual_mapping.mapping_remarks = _read_conceptual_mapping_remarks(dfs[CONCEPTUAL_MAPPINGS_REMARKS_SHEET_NAME]) |
212 | 257 | conceptual_mapping.resources = _read_conceptual_mapping_resources(dfs[CONCEPTUAL_MAPPINGS_RESOURCES_SHEET_NAME]) |
213 | 258 | conceptual_mapping.rml_modules = _read_conceptual_mapping_rml_modules( |
214 | 259 | dfs[CONCEPTUAL_MAPPINGS_RML_MODULES_SHEET_NAME]) |
| 260 | + conceptual_mapping.cl1_roles = _read_conceptual_mapping_control_list( |
| 261 | + dfs[CONCEPTUAL_MAPPINGS_CL1_ROLES_SHEET_NAME]) |
| 262 | + conceptual_mapping.cl2_organisations = _read_conceptual_mapping_control_list( |
| 263 | + dfs[CONCEPTUAL_MAPPINGS_CL2_ORGANISATIONS_SHEET_NAME]) |
215 | 264 | conceptual_mapping.xpaths = _read_conceptual_mapping_xpaths( |
216 | 265 | rules_df=dfs[CONCEPTUAL_MAPPINGS_RULES_SHEET_NAME][1:].copy(), |
217 | 266 | base_xpath=metadata.base_xpath |
|
0 commit comments