Этап: SQLite и запуск пайплайна

This commit is contained in:
vladslav064 committed 2026-11-12 08:43:34 +03:00
1 parent 626ac21b41
commit d90f1f30b2
15 files changed
+2069 -6

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
import sqlite3
import sys
from src.database import reload_database
from src.extract import CSVFileError, read_records
from src.quality import OUTPUT_DIR, build_report, save_reports
from src.transform import clean_orders
def main() -> int:
try:
records = list(read_records())
accepted, rejected = clean_orders(records)
report = build_report(accepted, rejected, len(records))
reload_database(OUTPUT_DIR / "orders.db", accepted)
except (CSVFileError, sqlite3.Error, OSError) as exc:
print(f"Загрузка не завершена. {type(exc).__name__}: {exc}", file=sys.stderr)
return 1
try:
save_reports(accepted, rejected, report)
except Exception as exc:
exc.add_note("База уже обновлена. Сохранение файлов отчётов не завершено.")
raise
print(f"Загрузка и экспорт завершены. Прочитано {len(records)}, "
f"принято {len(accepted)}, отброшено {len(rejected)}.")
return 0
if __name__ == "__main__":
sys.exit(main())