# Packages configs [project] name = "sorbobotapp" version = "0.0.1" requires-python = ">=3.10" readme = "README.md" [build-system] requires = ["setuptools"] ## coverage [tool.coverage.run] branch = true [tool.coverage.report] skip_empty = true fail_under = 70.00 precision = 2 ## black [tool.black] target-version = ['py310'] ## ruff # Recommended ruff config for now, to be updated as we go along. [tool.ruff] target-version = 'py310' # See all rules at https://beta.ruff.rs/docs/rules/ select = [ "E", # pycodestyle "W", # pycodestyle "F", # Pyflakes "B", # flake8-bugbear "C4", # flake8-comprehensions "D", # flake8-docstrings "I", # isort "SIM", # flake8-simplify "TCH", # flake8-type-checking "TID", # flake8-tidy-imports "Q", # flake8-quotes "UP", # pyupgrade "PT", # flake8-pytest-style "RUF", # Ruff-specific rules ] ignore = [ "E501", # "Line too long" # -> line length already regulated by black "PT011", # "pytest.raises() should specify expected exception" # -> would imply to update tests every time you update exception message "SIM102", # "Use a single `if` statement instead of nested `if` statements" # -> too restrictive "D100", ] [tool.ruff.pydocstyle] # Automatically disable rules that are incompatible with Google docstring convention convention = "google" [tool.ruff.pycodestyle] max-doc-length = 88 [tool.ruff.flake8-tidy-imports] ban-relative-imports = "all" [tool.ruff.flake8-type-checking] strict = true runtime-evaluated-base-classes = ["pydantic.BaseModel"] # Pydantic needs to be able to evaluate types at runtime # see https://pypi.org/project/flake8-type-checking/ for flake8-type-checking documentation # see https://beta.ruff.rs/docs/settings/#flake8-type-checking-runtime-evaluated-base-classes for ruff documentation [tool.ruff.per-file-ignores] # Allow missing docstrings for tests "tests/**/*.py" = ["D100", "D103"] ## mypy [tool.mypy] python_version = "3.10" # Enable all optional error checking flags, providing stricter type checking; see https://mypy.readthedocs.io/en/stable/getting_started.html#strict-mode-and-configuration strict = true # Type-check the interiors of functions without type annotations; if missing, mypy won't check function bodies without type hints, for instance those coming from third-party libraries check_untyped_defs = true # Make __init__.py file optional for package definitions; if missing, mypy requires __init__.py at packages roots, see https://mypy.readthedocs.io/en/stable/running_mypy.html#mapping-file-paths-to-modules explicit_package_bases = true