Empty skeleton mirroring the events extension layout: config/manifest, pyproject + Makefile + ruff/mypy config, FastAPI routers wired into tasks_ext, NostrClient bootstrap stubs, and an empty static/routes.json. Models, migrations, CRUD, Nostr publisher/sync, and the API/template layers land in follow-up commits. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
67 lines
1.3 KiB
TOML
67 lines
1.3 KiB
TOML
[project]
|
|
name = "lnbits-tasks"
|
|
version = "0.0.0"
|
|
requires-python = ">=3.10,<3.13"
|
|
description = "Recurring tasks and chore tracking for LNbits, federated over Nostr (NIP-52)."
|
|
authors = [{ name = "aiolabs", email = "dev@aiolabs.dev" }]
|
|
urls = { Homepage = "https://git.atitlan.io/aiolabs/tasks", Repository = "https://git.atitlan.io/aiolabs/tasks" }
|
|
dependencies = [ "lnbits>1" ]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"black",
|
|
"pytest-asyncio",
|
|
"pytest",
|
|
"mypy",
|
|
"pre-commit",
|
|
"ruff",
|
|
]
|
|
|
|
[tool.poetry]
|
|
package-mode = false
|
|
|
|
[tool.mypy]
|
|
exclude = "(nostr/*)"
|
|
plugins = ["pydantic.mypy"]
|
|
|
|
[tool.pydantic-mypy]
|
|
init_forbid_extra = true
|
|
init_typed = true
|
|
warn_required_dynamic_aliases = true
|
|
warn_untyped_fields = true
|
|
|
|
[tool.pytest.ini_options]
|
|
log_cli = false
|
|
testpaths = [
|
|
"tests"
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
exclude = [
|
|
"nostr",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["F", "E", "W", "I", "A", "C", "N", "UP", "RUF", "B"]
|
|
ignore = ["C901"]
|
|
|
|
fixable = ["ALL"]
|
|
unfixable = []
|
|
|
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
[tool.ruff.lint.pep8-naming]
|
|
classmethod-decorators = [
|
|
"validator",
|
|
"root_validator",
|
|
]
|
|
|
|
[tool.ruff.lint.flake8-bugbear]
|
|
extend-immutable-calls = [
|
|
"fastapi.Depends",
|
|
"fastapi.Query",
|
|
]
|