- копирую модуль upload/ из drhider (слои 1-2) - blueprint: параметр sink (drhider-сессия по умолчанию, сверка — DB+парсинг) - upload_bp: contracts_upload_sink = _store_and_parse - routes: регистрирую create_upload_refs_blueprint(cfg, sink=...) - app.py: корень репо в sys.path (для import upload) - History: план переиспользования + ревью Соннета
31 lines
785 B
Python
31 lines
785 B
Python
"""store_csv / get_csv — сохранение и чтение CSV с таблицей замен."""
|
|
|
|
from typing import Optional
|
|
|
|
from .state import _sessions, _lock
|
|
|
|
|
|
def store_csv(sid: str, csv_str: str) -> bool:
|
|
"""Сохранить CSV с таблицей замен.
|
|
|
|
Returns:
|
|
True если сохранено, False если сессии нет.
|
|
"""
|
|
with _lock:
|
|
s = _sessions.get(sid)
|
|
if not s:
|
|
return False
|
|
s["csv"] = csv_str
|
|
return True
|
|
|
|
|
|
def get_csv(sid: str) -> Optional[str]:
|
|
"""Получить CSV с таблицей замен.
|
|
|
|
Returns:
|
|
Строка CSV или None если нет.
|
|
"""
|
|
with _lock:
|
|
s = _sessions.get(sid)
|
|
return s.get("csv") if s else None
|