[project] name = "zangramru" version = "0.1.0" requires-python = ">=3.12,<4.0" description = "" authors = [] maintainers = [] readme = "README.md" dependencies = [ "fastapi >=0.122.0,<1", "uvicorn[standard] >=0.38.0,<1", "pydantic >=2.12.5,<3", "pydantic-settings >=2.12.0,<3", "yarl >=1.22.0,<2", "ujson >=5.11.0,<6", "piccolo[postgres] >=1.30.0,<2", "httptools >=0.7.1,<1", "pymongo >=4.15.4,<5", ] [dependency-groups] dev = [ "pytest >=9.0.1,<10", "ruff >=0.14.6,<1", "mypy >=1.19.0,<2", "pre-commit >=4.5.0,<5", "pytest-cov >=7.0.0,<8", "anyio >=4.11.0,<5", "pytest-env >=1.2.0,<2", "httpx >=0.28.1,<1", ] [tool.uv] default-groups = ["dev"] [tool.isort] profile = "black" multi_line_output = 3 src_paths = ["zangramru",] [tool.mypy] python_version = "3.13" strict = true ignore_missing_imports = true allow_subclassing_any = true allow_untyped_calls = true pretty = true show_error_codes = true implicit_reexport = true allow_untyped_decorators = true warn_unused_ignores = false warn_return_any = false namespace_packages = true exclude = [ "zangramru/db/migrations/.*", ] [tool.pytest.ini_options] addopts = "-p no:unraisableexception" filterwarnings = [ "error", "ignore::DeprecationWarning", "ignore:.*unclosed.*:ResourceWarning", ] anyio_mode = "auto" env = [ "ZANGRAMRU_ENVIRONMENT=pytest", "ZANGRAMRU_DB_BASE=zangramru_test", "PICCOLO_CONF=zangramru.piccolo_conf", ] [tool.ruff] target-version = "py313" # List of enabled rulsets. # See https://docs.astral.sh/ruff/rules/ for more information. lint.select = [ "E", # Error "F", # Pyflakes "W", # Pycodestyle "C90", # McCabe complexity "I", # Isort "N", # pep8-naming "D", # Pydocstyle "ANN", # Pytype annotations "S", # Bandit "B", # Bugbear "C4", # Comprehensions "ISC", # Implicit string concat "PIE", # Unnecessary code "T20", # Catch prints "PYI", # validate pyi files "Q", # Checks for quotes "RSE", # Checks raise statements "RET", # Checks return statements "SLF", # Self checks "SIM", # Simplificator "PTH", # Pathlib checks "ERA", # Checks for commented out code "PL", # PyLint checks "RUF", # Specific to Ruff checks "FA102", # Future annotations "UP", # Python updates ] lint.ignore = [ "D105", # Missing docstring in magic method "D107", # Missing docstring in __init__ "B008", # Do not perform function calls in argument defaults "D211", # No blank lines allowed before class docstring "D212", # Multi-line docstring summary should start at the first line "D401", # First line should be in imperative mood "D104", # Missing docstring in public package "D100", # Missing docstring in public module "D202", # No blank lines allowed after function docstring "ANN401", # typing.Any are disallowed in `**kwargs "PLR0913", # Too many arguments for function call "D106", # Missing docstring in public nested class "UP043", # Unnecessary default argument specified (conflicts with mypy). ] exclude = [ "zangramru/db/migrations", ".venv/" ] lint.mccabe = { max-complexity = 10 } line-length = 88 [tool.ruff.lint.per-file-ignores] "tests/*" = [ "S101", # Use of assert detected "PLC0415", # Import outside toplevel ] [tool.ruff.lint.pydocstyle] convention = "pep257" ignore-decorators = ["typing.overload"] [tool.ruff.lint.pylint] allow-magic-value-types = ["int", "str", "float", "bytes"] [tool.ruff.lint.flake8-bugbear] extend-immutable-calls = [ "fastapi.Depends", "fastapi.Query", ] [fastapi-template.options] project_name = "zangramru" api_type = "rest" enable_redis = "None" enable_rmq = "None" ci_type = "github" enable_migrations = "True" enable_taskiq = "None" enable_routers = "True" enable_kafka = "None" enable_nats = "None" traefik_labels = "None" add_dummy = "None" orm = "piccolo" self_hosted_swagger = "None" prometheus_enabled = "None" sentry_enabled = "None" otlp_enabled = "None" gunicorn = "None" add_users = "None" cookie_auth = "None" jwt_auth = "None"