rozbicie na moduły, poprawki i komendy cli

This commit is contained in:
Mateusz Gruszczyński
2026-03-20 10:43:40 +01:00
parent c5295fa49c
commit bbfb3e0887
48 changed files with 2125 additions and 1676 deletions

View File

@@ -11,6 +11,13 @@ def _get_bool(name: str, default: bool) -> bool:
def _get_str(name: str, default: str) -> str:
return os.environ.get(name, default)
def _get_int(name: str, default: int) -> int:
try:
return int(os.environ.get(name, default))
except (TypeError, ValueError):
return default
class Config:
"""
Konfiguracja aplikacji pobierana z ENV (z sensownymi domyślnymi wartościami).
@@ -50,6 +57,12 @@ class Config:
# (opcjonalnie) wyłącz warningi track_modifications
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ENGINE_OPTIONS = {
"pool_pre_ping": True,
"pool_recycle": _get_int("DB_POOL_RECYCLE", 300),
"pool_timeout": _get_int("DB_POOL_TIMEOUT", 30),
}
HEALTHCHECK_TOKEN = _get_str("HEALTHCHECK_TOKEN", "healthcheck")
# Baza danych
@@ -62,10 +75,17 @@ class Config:
f"postgresql://{os.environ['DB_USER']}:{os.environ['DB_PASSWORD']}@"
f"{os.environ['DB_HOST']}:{os.environ.get('DB_PORT', 5432)}/{os.environ['DB_NAME']}"
)
SQLALCHEMY_ENGINE_OPTIONS["connect_args"] = {
"connect_timeout": _get_int("DB_CONNECT_TIMEOUT", 5),
"application_name": _get_str("DB_APPLICATION_NAME", "zbiorka-app"),
}
elif DB_ENGINE == "mysql":
SQLALCHEMY_DATABASE_URI = (
f"mysql+pymysql://{os.environ['DB_USER']}:{os.environ['DB_PASSWORD']}@"
f"{os.environ['DB_HOST']}:{os.environ.get('DB_PORT', 3306)}/{os.environ['DB_NAME']}"
)
SQLALCHEMY_ENGINE_OPTIONS["connect_args"] = {
"connect_timeout": _get_int("DB_CONNECT_TIMEOUT", 5),
}
else:
raise ValueError("Nieobsługiwany typ bazy danych.")