"""Promote CFOP/FCP/ANP/NCM_UTRIB/RTC_BIOFUEL_INDEX/RTC_CCREDPRES from the official spreadsheets the operator placed in sources/raw/bootstrap_v1/ after the Portal NF-e/SPED downloads were session-blocked. No network fetch. """ import json from datetime import datetime, timezone from pathlib import Path from central.app.datasets import bootstrap_v1_extra as parsers from central.app.datasets.service import DatasetService from central.app.db import SessionLocal ROOT = Path("sources/raw/bootstrap_v1") JOBS = [ ("CFOP", ROOT / "IT_2023_002_v2_10_Tabela_CFOP_Descrição.xlsx", parsers.parse_cfop, "import_cfop"), ("FCP", ROOT / "Tabela_Alíquotas_FCP_por_UF_2025-02_07.xlsx", parsers.parse_fcp, "import_fcp"), ("ANP", ROOT / "Tabela_Codigo_Produto_ANP-20241118.xlsx", parsers.parse_anp, "import_anp"), ("NCM_UTRIB", ROOT / "IT2024.001v2.40 - Tabela NCM 2022 com Utrib_Comércio Exterior_vigência 01.10.26.xlsx", parsers.parse_ncm_utrib, "import_ncm_utrib"), ("RTC_BIOFUEL_INDEX", ROOT / "IT 2025.004 v.1.20 - Tabela de Índice.xlsx", parsers.parse_rtc_biofuel_index, "import_rtc_biofuel_index"), ("RTC_CCREDPRES", ROOT / "cCredPres_2026-06-22.xlsx", parsers.parse_rtc_cred_pres, "import_rtc_cred_pres"), ("RTC_CCLASSTRIB", ROOT / "cClassTrib 2026-06-22.xlsx", parsers.parse_rtc_cclasstrib, "import_rtc_cclasstrib"), ("RTC_CBS_RATES", ROOT / "IT 2026.002 v.1.00 - Aliquotas da CBS.xlsx", parsers.parse_rtc_cbs_rates, "import_rtc_cbs_rates"), ] def main(): results = {} with SessionLocal() as session: service = DatasetService(session) for domain, path, parse_fn, method_name in JOBS: try: if not path.exists(): results[domain] = {"status": "MISSING_BOOTSTRAP_FILE", "path": str(path)} continue payload = parse_fn(path.read_bytes()) dataset = getattr(service, method_name)(payload, f"file://{path.name}", datetime.now(timezone.utc)) results[domain] = {"status": dataset.status, "dataset_id": dataset.id, "sha256": dataset.sha256, "record_count": dataset.record_count} except Exception as error: # noqa: BLE001 — isolate one domain's failure from the rest results[domain] = {"status": "FAILED", "reason": f"{type(error).__name__}: {error}"} print(json.dumps(results, indent=2, ensure_ascii=False)) if __name__ == "__main__": main()