Model/orchestration/sal_orchestrator.py
2026-05-22 10:13:32 +00:00

25 lines
1 KiB
Python

from repositories.unstandardised_address.unstandardised_address_list_repository import (
UnstandardisedAddressListRepository,
)
from domain.addresses.unstandardised_address import AddressList
class SALOrchestrator:
def __init__(self, unstandardised_address_repo: UnstandardisedAddressListRepository) -> None:
self._unstandardised_address_repo = unstandardised_address_repo
def get_unstandardised_addresses(
self,
input_s3_uri: str,
) -> AddressList:
return self._unstandardised_address_repo.load_batch(input_s3_uri)
def get_col_to_description_mappings(
self, list_of_unstandardised_address: AddressList
) -> dict[str, set[str]]:
mappings: dict[str, set[str]] = {}
for unstandardised_address in list_of_unstandardised_address:
for key, value in unstandardised_address.additional_info.items():
# Lower-case so case-only typos collapse to one variant.
mappings.setdefault(key, set()).add(value.lower())
return mappings