Granian serves the compiled SPA assets directly in Rust: hashed js/wasm/css under /static (the release build uses --public-url /static/) and the card images under /assets, configured with the GRANIAN_STATIC_PATH_ROUTE/MOUNT/ DIR_TO_FILE env vars in the Dockerfile. The Python catch-all now only serves the SPA shell (index.html) at / and for client-side routes. Every module logs through getLogger(__name__): lifecycle and business events at INFO, per-move and store detail at DEBUG. The built-in default writes DEBUG to the console; LOGGING_CONFIG points at a YAML file in the logging.config.dictConfig schema to take over the configuration. PyYAML becomes a direct dependency.
63 lines
1.4 KiB
TOML
63 lines
1.4 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "tavolo"
|
|
version = "0.1.0"
|
|
description = "Multiplayer card-game platform backend built on the kaya framework"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"kaya-core",
|
|
"kaya-session",
|
|
"kaya-session-redis",
|
|
"kaya-oidc",
|
|
"kaya-openapi",
|
|
"kaya-rsgi",
|
|
"granian>=2.0",
|
|
"tortoise-orm",
|
|
"aerich",
|
|
"asyncpg",
|
|
"httpx",
|
|
"PyJWT[crypto]",
|
|
"pwo",
|
|
"PyYAML",
|
|
"redis",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"mypy",
|
|
"httpx-ws",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
namespaces = false
|
|
|
|
# Database migrations (aerich). See the Migrations section in README.md.
|
|
[tool.aerich]
|
|
tortoise_orm = "tavolo.aerich_config.TORTOISE_ORM"
|
|
location = "./migrations"
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
ignore_missing_imports = true
|
|
plugins = []
|
|
|
|
# TortoiseORM auto-generates `<fk>_id` attributes on ForeignKeyField at
|
|
# runtime; without the (unavailable here) tortoise mypy plugin the stubs
|
|
# only declare the relation field. These are real attributes, not bugs.
|
|
[[tool.mypy.overrides]]
|
|
module = "tavolo.models"
|
|
disable_error_code = ["attr-defined"]
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "tavolo.routes.*"
|
|
disable_error_code = ["attr-defined"]
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "tavolo.game.*"
|
|
disable_error_code = ["attr-defined"]
|