"""Resume state loading from previously-written success CSV.""" import csv import logging import os from schemas.columns import CsvColumn logger = logging.getLogger(__name__) def load_processed_identifiers( success_csv: str | None, ) -> set[tuple[str, str]]: """Load (account_id, contract_name) pairs from an existing success CSV. Returns an empty set if the file doesn't exist, is empty, or can't be read. """ if ( not success_csv or not os.path.exists(success_csv) or os.path.getsize(success_csv) == 0 ): return set() processed: set[tuple[str, str]] = set() try: with open(success_csv, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: account_id = row.get(CsvColumn.ACCOUNT_ID.value, '') contract_name = row.get(CsvColumn.CONTRACT_NAME.value, '') if account_id and contract_name: processed.add((account_id, contract_name)) logger.info( f'[RESUME] Found {len(processed)} existing contracts — will skip these' ) except Exception as e: logger.warning(f'Could not load existing success CSV: {e}') return processed