"""contracts-flask v2.0 — полный перенос с ВМ на Flask. Больше никаких прокси на contracts.kube5s.ru — всё локально. """ import sys, os # Штурвал: stdlib site.py мешает нашему site/ пакету. # Добавляем родительскую директорию в начало sys.path, # удаляем stdlib site из кэша — наш site/ будет найден первым. _parent = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if _parent not in sys.path: sys.path.insert(0, _parent) if 'site' in sys.modules and not hasattr(sys.modules['site'], '__path__'): del sys.modules['site'] from flask import Flask from site.config import VERSION, MAX_CONTENT_LENGTH from site.routes import register_routes def create_app(): app = Flask(__name__) app.config["VERSION"] = VERSION app.config["MAX_CONTENT_LENGTH"] = MAX_CONTENT_LENGTH # DB auto-seed — schema migration + seed prompts + crash recovery _init_db() # Регистрация всех blueprint'ов register_routes(app) # no_cache на все ответы @app.after_request def no_cache(response): response.headers["Cache-Control"] = "no-cache, no-store, must-revalidate" response.headers["Pragma"] = "no-cache" response.headers["Expires"] = "0" return response return app def _init_db(): """Создать БД + схему + seed prompts. SQLite — всё в одном файле /tmp.""" from site.db.connection import init_db init_db() try: from site.db import prompts as db_prompts db_prompts.seed_defaults() except Exception: pass app = create_app()