[tool.mypy] exclude = [ "venv", "test/*", "docs" ] ignore_missing_imports = true disallow_untyped_calls = true disallow_untyped_defs = true disallow_incomplete_defs = true disallow_untyped_decorators = true no_implicit_optional = true strict_optional = true namespace_packages = true warn_unused_ignores = true warn_redundant_casts = true warn_no_return = true warn_unreachable = true implicit_reexport = false strict_equality = true show_error_codes = true show_column_numbers = true # Suppress "note: By default the bodies of untyped functions are not checked" disable_error_code = "annotation-unchecked" # Forbid the use of a generic "type: ignore" without specifying the exact error that is ignored enable_error_code = "ignore-without-code" [tool.ruff] extend-exclude = [ "htmlcov", "gso/migrations", "docs", ] ignore = [ "COM812", "D203", "D213", "ISC001", "N805", "PLR0913", "PLR0904", "PLW1514", ] line-length = 120 select = [ "A", "ARG", "B", "BLE", "C", "COM", "C4", "C90", "D", "DTZ", "E", "EM", "ERA", "F", "FA", "FBT", "FLY", "FURB", "G", "I", "ICN", "INP", "ISC", "LOG", "N", "PERF", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "Q", "RET", "R", "RET", "RSE", "RUF", "S", "SIM", "SLF", "T", "T20", "TID", "TRY", "UP", "W", "YTT" ] target-version = "py311" [tool.ruff.flake8-tidy-imports] ban-relative-imports = "all" [tool.ruff.per-file-ignores] "test/*" = ["ARG001", "D", "S101", "PLR2004"] "setup.py" = ["D100"] [tool.ruff.isort] known-third-party = ["pydantic", "migrations"] known-first-party = ["test", "docs"]