line-length = 120
# The minimum Python version that should be supported
target-version = "py310"

exclude = [
    ".bzr",
    ".direnv",
    ".eggs",
    ".git",
    ".git-rewrite",
    ".hg",
    ".ipynb_checkpoints",
    ".mypy_cache",
    ".nox",
    ".pants.d",
    ".pyenv",
    ".pytest_cache",
    ".pytype",
    ".ruff_cache",
    ".svn",
    ".tox",
    ".venv",
    ".vscode",
    "__pypackages__",
    "_build",
    "buck-out",
    "build",
    "dist",
    "node_modules",
    "site-packages",
    "venv",
    "examples",
    "run_tests.py",
]

[lint.per-file-ignores]
#  imported but unused
"__init__.py" = ["F401"]
# Missing docstring in public module
# Missing docstring in public class
# Missing docstring in public method
# Missing docstring in public function
# Missing docstring in public package
# Missing type annotation for function argument
# Missing type annotation for cls in classmethod
# Missing return type annotation for public function
# Missing return type annotation for protected function
# Missing return type annotation for staticmethod
# Missing return type annotation for classmethod
"tests/*" = ["D100", "D101", "D102", "D103", "D104", "ANN001" ,"ANN102", "ANN201", "ANN202", "ANN205", "ANN206"]


[lint.mccabe]
max-complexity = 10

[lint]
# D - pydocstyle
# W - pydocstyle, Warning
# E - pydocstyle, Error
# ANN - flake8-annotations
# F - Pyflakes
# A - flake8-builtins
select = ["D", "W", "E", "ANN", "F", "A"]

# Docstrings in magic methods
# D105
# Blank line after docstring section header in docstrings
# D412
# Blank line after a section in docstrings
# D413
# Missing type annotation for self in method
# ANN101
# Missing type annotation for *args
# ANN002
# Missing type annotation for **kwargs
# ANN003
# Missing return type annotation for special method
# ANN204
# Dynamically typed expressions (typing.Any) are disallowed
# ANN401
# Whitespace before ':'
# E203
# Multi-line docstring summary should start at the first line
# D212
# Multi-line docstring summary should start at the second line
# D213
# 1 blank line required before class docstring
# D203
ignore = ["D105", "D412", "D413", "ANN101", "ANN002", "ANN204", "ANN003", "ANN401", "E203", "D212", "D213", "D203"]
