#!/usr/bin/env python3 """Сброс data/ (БД, настройки, логи) для повторного прохождения /setup. Запуск из корня проекта (остановите run.py перед сбросом): python scripts/reset_local_data.py python scripts/reset_local_data.py --keep-logs """ from __future__ import annotations import argparse import sys from pathlib import Path ROOT = Path(__file__).resolve().parent.parent if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) def main() -> int: parser = argparse.ArgumentParser(description="Сброс пользовательских данных WESP") parser.add_argument( "--keep-logs", action="store_true", help="Не удалять каталог data/logs", ) parser.add_argument( "--no-safety-backup", action="store_true", help="Не создавать ZIP копию SQLite в data/backups/ перед удалением", ) args = parser.parse_args() from config import Config from app import create_app from app.services.factory_reset import factory_reset_app app = create_app(Config) print(f"Сброс: {Config.DATA_DIR}") with app.app_context(): report = factory_reset_app( app, remove_logs=not args.keep_logs, safety_sqlite_backup=not args.no_safety_backup, ) for p in report.get("removed") or []: print(f" удалено: {p}") for err in report.get("errors") or []: print(f" ошибка: {err}", file=sys.stderr) print(report.get("message", "Готово. Перезапустите WESP и откройте /setup.")) return 0 if report.get("ok") else 1 if __name__ == "__main__": raise SystemExit(main())