# Copied from https://github.com/rerun-io/rerun_template [tool.ruff] # https://beta.ruff.rs/docs/configuration/ target-version = "py38" # Enable unsafe fixes to allow ruff to apply fixes that may change the behavior of the code. # This is needed because otherwise ruff will not be able to trim whitespaces in (codegened) docstrings. unsafe-fixes = true # Allow preview lints to be enabled (like `PLW1514` to force `encoding` on open). preview = true # But we only want to opt-in to certain preview rules! lint.explicit-preview-rules = true extend-exclude = [ # Automatically generated test artifacts "venv/", "target/", ] lint.ignore = [ # These makes sense to ignore in example code, but for a proper library we should not ignore these. "D100", # Missing docstring in public module "D101", # Missing docstring in public class "D103", # Missing docstring in public function # No blank lines allowed after function docstring. "D202", # npydocstyle: http://www.pydocstyle.org/en/stable/error_codes.html # numpy convention with a few additional lints "D107", "D203", "D212", "D401", "D402", "D415", "D416", # Ruff can't fix this error on its own (yet) # Having ruff check this causes errors that prevent the code-formatting process from completing. "E501", # allow relative imports "TID252", "UP007", # We need this, or `ruff format` will convert `Union[X, Y]` to `X | Y` which break on Python 3.8 ] line-length = 120 lint.select = [ "D", # pydocstyle codes https://www.pydocstyle.org/en/latest/error_codes.html "E", # pycodestyle error codes: https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes "F", # Flake8 error codes https://flake8.pycqa.org/en/latest/user/error-codes.html "I", # Isort "TID", # flake8-tidy-imports "W", # pycodestyle warning codes: https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes "UP", # pyupgrade (ensures idomatic code for supported python version) "PLW1514", # Force setting `encoding` for open calls. This is in order to prevent issues when opening utf8 files on windows where the default encoding may depend on the active locale. https://docs.astral.sh/ruff/rules/unspecified-encoding/ ] lint.unfixable = [ "PLW1514", # Automatic fix for `encoding` doesn't do what we want - it queries the locale for the preferred encoding which is exactly what we want to avoid. ] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401", "F403"] [tool.ruff.lint.isort] required-imports = ["from __future__ import annotations"]