Files
dotfiles/python/gems/config.py
Richie add7a6a848
treefmt / nix fmt (pull_request) Successful in 6s
test ebook search / test-ebook-search (pull_request) Successful in 39s
pytest / pytest (pull_request) Successful in 40s
build_systems / build-brain (pull_request) Successful in 1m0s
build_systems / build-bob (pull_request) Successful in 1m2s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m33s
build_systems / build-jeeves (pull_request) Successful in 2m25s
test ebook search / test-ebook-search (push) Successful in 35s
build_systems / build-brain (push) Successful in 37s
build_systems / build-bob (push) Successful in 37s
build_systems / build-jeeves (push) Successful in 2m17s
treefmt / nix fmt (push) Successful in 5s
pytest / pytest (push) Successful in 29s
build_systems / build-rhapsody-in-green (push) Successful in 49s
feat(gems): add multiplayer gem game with custom content packs
- implement FastAPI and HTMX lobby and game interfaces
- support up to four human and AI-controlled players
- add configurable rules, victory conditions, and expansion modules
- support validated JSON cards, patrons, objectives, and outposts
2026-07-22 20:47:03 -04:00

26 lines
725 B
Python

"""Runtime configuration loaded from environment variables."""
from __future__ import annotations
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
class GemsConfig(BaseSettings):
"""Configure persistence, public URLs, cookies, and the HTTP server."""
model_config = SettingsConfigDict(env_prefix="GEMS_")
database_path: Path = Path(".gems/gems.sqlite3")
key_path: Path = Path(".gems/instance.key")
public_origin: str = "http://127.0.0.1:8082"
secure_cookies: bool = False
host: str = "127.0.0.1"
port: int = 8082
def load_config() -> GemsConfig:
"""Load Gems configuration from defaults and environment variables."""
return GemsConfig()