Spaces:
Sleeping
Sleeping
| """Export commodities and commodity_form_schemas tables to Excel.""" | |
| from __future__ import annotations | |
| import os | |
| import sqlite3 | |
| from pathlib import Path | |
| import pandas as pd | |
| from dotenv import load_dotenv | |
| ROOT = Path(__file__).resolve().parents[1] | |
| load_dotenv(ROOT / ".env") | |
| DB_PATH = Path(os.environ.get("UNSPSC_DB_PATH", ROOT / "data" / "unspsc.db")) | |
| OUT_DIR = ROOT / "data" | |
| COMMODITY_XLSX = OUT_DIR / "commodity.xlsx" | |
| FORM_SCHEMA_XLSX = OUT_DIR / "commodity form schema.xlsx" | |
| def main() -> None: | |
| if not DB_PATH.exists(): | |
| raise FileNotFoundError(f"Database not found: {DB_PATH}") | |
| OUT_DIR.mkdir(parents=True, exist_ok=True) | |
| conn = sqlite3.connect(DB_PATH) | |
| commodities = pd.read_sql_query("SELECT * FROM commodities ORDER BY id", conn) | |
| form_schemas = pd.read_sql_query( | |
| "SELECT * FROM commodity_form_schemas ORDER BY commodity_code", conn | |
| ) | |
| conn.close() | |
| commodities.to_excel(COMMODITY_XLSX, index=False, sheet_name="commodities") | |
| form_schemas.to_excel(FORM_SCHEMA_XLSX, index=False, sheet_name="commodity_form_schemas") | |
| print(f"Exported {len(commodities):,} rows -> {COMMODITY_XLSX}") | |
| print(f"Exported {len(form_schemas):,} rows -> {FORM_SCHEMA_XLSX}") | |
| if __name__ == "__main__": | |
| main() | |