[project] name = "blitz_api" version = "0.5.1" description = "A backend for the Raspiblitz project" authors = [{ name = "fusion44", email = "some.fusion@gmail.com" }] requires-python = ">=3.11,<3.13" license = "MIT" dependencies = [ "fastapi[standard-no-fastapi-cloud-cli]==0.139.0", "starlette==1.3.1", "anyio==4.9.0", "uvicorn[standard]==0.40.0", "pydantic==2.12.5", "typing-extensions==4.15.0", "pyjwt==2.13.0", "python-decouple==3.8", "psutil==7.2.2", "requests==2.33.0", "pyzmq==27.1.0", "aiohttp==3.14.1", "async-timeout==5.0.1", "grpcio==1.76.0", "grpcio-tools==1.76.0", "deepdiff==9.1.0", "loguru==0.7.3", "celery[redis]==5.6.2", # used by the `api` console script entry point (app/server.py) "click==8.3.1", ] [project.scripts] api = "app.server:main" [dependency-groups] dev = [ "pytest==9.0.3", "pytest-asyncio==1.3.0", "coverage==7.13.2", "ruff==0.14.14", "debugpy==1.8.20", "watchfiles==1.1.1", ] [tool.hatch.build.targets.sdist] include = ["app"] [tool.hatch.build.targets.wheel] include = ["app"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.isort] profile = "black" [tool.ruff] # Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default. select = ["E", "F"] ignore = [] # Allow auto fix for all enabled rules (when `--fix`) is provided. fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"] unfixable = [] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", "app/lightning/impl/protos/*" ] # Same as Black. line-length = 88 # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" target_version = "py311" [tool.ruff.mccabe] # Unlike Flake8, default to a complexity level of 10. max-complexity = 10 [tool.pytest.ini_options] pythonpath = [ "app/external/result_type/src" ] asyncio_mode = "auto" norecursedirs = [".venv", ".devenv"]