diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 73f09bb9..575a99ae 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -1,4 +1,4 @@ -from typing import Optional, get_origin, get_args, Union +from typing import Optional, get_origin, get_args, TypedDict, Dict from dataclasses import fields from datetime import datetime from dataclasses import dataclass @@ -46,6 +46,12 @@ DATA_BUCKET = os.environ.get( pd.set_option("future.no_silent_downcasting", True) +class InputEpcRecords(TypedDict): + original_epc: Dict[str, Any] + full_sap_epc: Dict[str, Any] + old_data: List[Dict[str, Any]] + + @dataclass class EPCRecord: """ @@ -225,11 +231,11 @@ class EPCRecord: run_mode: str = "training" - epc_records: dict = None - full_sap_epc: dict = None + epc_records: Optional[InputEpcRecords] = None + full_sap_epc: Optional[dict] = None old_data: list[dict] = None - original_epc: dict = None - prepared_epc: dict = None + original_epc: Optional[dict] = None + prepared_epc: Optional[dict] = None prepared_epc_delta_metadata: pd.DataFrame = None cleaning_data: pd.DataFrame = None @@ -258,7 +264,6 @@ class EPCRecord: self.prepared_epc = self.epc_records["original_epc"] self.original_epc = self.epc_records["original_epc"].copy() - self.full_sap_epc = self.epc_records["full_sap_epc"] self.old_data = self.epc_records["old_data"] @@ -985,8 +990,9 @@ class EPCRecord: f"{validation_config['acceptable_values']}" ) + @staticmethod def _validate_float( - self, record_key: str, field_value: Union[str, float], validation_config: dict + record_key: str, field_value: Union[str, float], validation_config: dict ): """ Validate a float field