57 lines
1.6 KiB
TOML
57 lines
1.6 KiB
TOML
[project]
|
||
name = "kadence-backend"
|
||
version = "0.1.0"
|
||
description = "Pomodoro timer, todo aggregation, website/app blocking and daily Telegram reports."
|
||
requires-python = ">=3.12"
|
||
dependencies = [
|
||
"fastapi>=0.115",
|
||
"uvicorn[standard]>=0.30",
|
||
"sqlalchemy>=2.0",
|
||
"psycopg[binary]>=3.2",
|
||
"pydantic>=2.8",
|
||
"pydantic-settings>=2.4",
|
||
"httpx>=0.27",
|
||
"beautifulsoup4>=4.12",
|
||
"apscheduler>=3.10,<4",
|
||
"python-dotenv>=1.0",
|
||
"tzdata>=2024.1",
|
||
]
|
||
|
||
[project.optional-dependencies]
|
||
dev = ["pytest>=8.0", "ruff>=0.6"]
|
||
|
||
[project.scripts]
|
||
kadence = "app.cli:main"
|
||
|
||
[build-system]
|
||
requires = ["hatchling"]
|
||
build-backend = "hatchling.build"
|
||
|
||
[tool.hatch.build.targets.wheel]
|
||
packages = ["app"]
|
||
|
||
[tool.ruff]
|
||
line-length = 90
|
||
target-version = "py312"
|
||
|
||
# Named rather than left to whatever the installed ruff defaults to, because CI
|
||
# runs this and a silent default change should not turn a push red. `format` is
|
||
# deliberately not enforced: the layout here is hand-set in places (comment
|
||
# tables, the DNS wire-format structs) and a formatter would flatten it.
|
||
[tool.ruff.lint]
|
||
select = ["E", "F", "I", "UP", "SIM", "B", "RUF"]
|
||
ignore = [
|
||
# FastAPI's whole dependency idiom is a call in a default argument.
|
||
"B008",
|
||
# A line-length cap on comments and docstrings is for a formatter to decide.
|
||
"E501",
|
||
# The reports and the bot speak Russian as well as English, and the typography
|
||
# is deliberate (× for counts, – in the laundry source's labels). "Ambiguous
|
||
# character" is the wrong complaint about a string the user is meant to read.
|
||
"RUF001",
|
||
]
|
||
|
||
[tool.pytest.ini_options]
|
||
pythonpath = ["."]
|
||
testpaths = ["tests"]
|