[tool.pytest.ini_options] markers = [ "network: mark a test that needs internet access", ] [tool.coverage.run] branch = true [tool.coverage.report] precision = 2 [tool.ruff] exclude = [ ".git", "__pycache__", "flask_session", "build", "dist" ] line-length = 120 [tool.ruff.format] # Use single quotes for non-triple-quoted strings. quote-style = "single" [tool.ruff.lint] ignore = [ "D203", "D213", "E501", # Docstring section rules we do not want to use: "D407", "D413", "D405", "D406", # more structured docstring formatting comment out to see what we can do better: "D400", "D401", "D403", "D415", "D200", "D202", "D205", "D209", "D210", "D212", "D100", "D101", "D102", "D103", "D104", "D105", "D106", ] select = [ "C9", "D", "E", "F", "W", "T10", # find breakpoints in the code "ARG", # unused arguments "TID", # relative imports, banned imports "PT", # pytest style "I", # isort "G", # logging format ] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] [tool.ruff.lint.mccabe] max-complexity = 12 [tool.ruff.lint.pycodestyle] max-doc-length = 180 ignore-overlong-task-comments = true [tool.ruff.lint.flake8-pytest-style] fixture-parentheses = true mark-parentheses = true [tool.ruff.lint.flake8-unused-arguments] ignore-variadic-names = true [tool.ruff.lint.isort] section-order = ["future", "standard-library","third-party", "first-party", "testing", "local-folder"] [tool.ruff.lint.isort.sections] testing = ["tests"] [tool.uv.pip] no-emit-package = ["some-package", "pip", "setuptools", "distribute"] # packages that should not be pinned