Files
LeoVasanko d1e82b5955 Treat dict log_config without a version key as an overlay on uvicorn defaults.
A partial log_config (no "version" key) is deep-merged over uvicorn's
default config before our patching, so users pass only their
customizations, e.g. log_config={"loggers": {"myapp": {"level":
"DEBUG"}}}.  Previously such dicts crashed at startup: dictConfig
requires a version, and our root entry referenced a "default" handler
that might not exist; that reference is now only added when the handler
exists.  The stock default formatter is replaced only when untouched,
so an overlaid fmt survives.  Dicts with version and non-dict configs
behave as before.  Documented in the README logging section, with tests
under fastapi-vue/tests (each patched config validated through
dictConfig).
2026-09-16 03:57:44 +00:00

53 lines
1.3 KiB
TOML

[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "fastapi-vue-setup"
dynamic = ["version"]
description = "Tool to create or patch FastAPI+Vue projects with integrated build/dev systems"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"ruff>=0.14.13",
"tomlkit>=0.12.0",
]
[project.urls]
Homepage = "https://vasanko.com/coders/fastapi-vue"
Repository = "https://git.zi.fi/LeoVasanko/fastapi-vue-setup"
Issues = "https://github.com/LeoVasanko/fastapi-vue-setup"
[project.scripts]
fastapi-vue-setup = "fastapi_vue_setup:main"
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.targets.wheel]
include = ["fastapi_vue_setup.py", "template/**/*", "_version.py"]
[dependency-groups]
dev = ["ruff", "fastapi-vue"]
[tool.uv.sources]
fastapi-vue = { path = "fastapi-vue", editable = true }
[tool.uv.workspace]
members = [
"f",
]
[tool.ruff]
line-length = 100
[tool.ruff.lint]
select = ["ALL"]
ignore = ["CPY", "D203", "D213", "COM812", "PLR2004"]
[tool.ruff.lint.per-file-ignores]
"template/**" = ["F821"] # Undefined names are template placeholders
"template/scripts/devserver.py" = ["N806"] # MODULE_NAME is a template variable
"fastapi_vue_setup.py" = ["PLR", "C901", "T201", "RUF001"]
"**/tests/**" = ["S101"] # Asserts are the point of tests