Этап: SQLite и запуск пайплайна
This commit is contained in:
1 parent
626ac21b41
commit
d90f1f30b2
15 files changed
+2069
-6
No files matched your search
@@ -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())
|
||||
Reference in new issue
Block a user