paths.py drops the sibling-directory walk (backend is now the repo root, no more frontend/ sibling to walk toward). requirements.txt drops jinja2/PyYAML (only needed for frontend_ssr's sake in the old shared monorepo Dockerfile) and fixes stale backend/push.py-style path comments. New Dockerfile (COPY . /app/, no THERMOGRAPH_SERVICE_ROLE branch -- this image only ever runs backend) and entrypoint.sh (cd /app instead of /app/backend). Minimal build.yml: docker build + boot + /healthz check. Verified: image builds and boots standalone (real alembic migration against SQLite, /healthz and /api/v2/place both 200), full pytest suite green (301 passed, 4 skipped) against the rewritten paths.py.
21 lines
964 B
Python
21 lines
964 B
Python
"""Canonical filesystem locations, resolved once from the repo root.
|
|
|
|
Every path the backend needs (the climate cache, the accounts DB, logs, the
|
|
bundled city data) is derived here from the repository root rather than from
|
|
each module's own ``__file__``. That keeps the locations stable no matter how
|
|
deep in the package tree a module lives, so moving a module never silently
|
|
re-points the cache or the accounts DB.
|
|
|
|
Callers that support an environment override (e.g. ``THERMOGRAPH_ACCOUNTS_DB``)
|
|
keep doing so; these are only the defaults.
|
|
"""
|
|
import os
|
|
|
|
REPO_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
DATA_DIR = os.path.join(REPO_DIR, "data")
|
|
LOGS_DIR = os.path.join(REPO_DIR, "logs")
|
|
|
|
# Bundled reference data shipped alongside the code (generated by gen_cities /
|
|
# gen_flavor), not runtime state — hence at the repo root, not data/.
|
|
CITIES_JSON = os.path.join(REPO_DIR, "cities.json")
|
|
CITIES_FLAVOR_JSON = os.path.join(REPO_DIR, "cities_flavor.json")
|