preview = true

exclude = [
    "src/abilian_devtools/etc",
]

lint.select = [
    "F", # Pyflakes
    "E", # pycodestyle
    "W", # pycodestyle
    "C90", # mccabe
    "I", # isort
    "N", # pep8-naming
#    "D", # pydocstyle
    "UP", # pyupgrade
    "YTT", # flake8-2020
#    "ANN", # flake8-annotations
    "ASYNC", # flake8-async
    "S", # flake8-bandit
    "BLE", # flake8-blind-except
#    "FBT", # flake8-boolean-trap
    "B", # flake8-bugbear
    "A", # flake8-builtins
#    "COM", # flake8-commas
#    "CPY", # flake8-copyright
    "C4", # flake8-comprehensions
    "DTZ", # flake8-datetimez
    "T10", # flake8-debugger
    "DJ", # flake8-django
#    "EM", # flake8-errmsg
    "EXE", # flake8-executable
#    "FA", # flake8-future-annotations
    "ISC", # flake8-implicit-str-concat
    "ICN", # flake8-import-conventions
    "G", # flake8-logging-format
#    "INP", # flake8-no-pep420
    "PIE", # flake8-pie
    "T20", # flake8-print
    "PYI", # flake8-pyi
    "PT", # flake8-pytest-style
    "Q", # flake8-quotes
#    "RSE", # flake8-raise
    "RET", # flake8-return
#    "SLF", # flake8-self
    "SLOT", # flake8-slots
    "SIM", # flake8-simplify
    "TID", # flake8-tidy-imports
    "TCH", # flake8-type-checking
    "INT", # flake8-gettext
#    "ARG", # flake8-unused-arguments
    "PTH", # flake8-use-pathlib
#    "TD", # flake8-todos
#    "FIX", # flake8-fixme
    "ERA", # eradicate
    "PD", # pandas-vet
#    "PGH", # pygrep-hooks
    "PL", # Pylint
#    "TRY", # tryceratops
    "FLY", # flynt
#    "NPY", # NumPy-specific rules
#    "AIR", # Airflow
#    "PERF", # Perflint
    "FURB", # refurb
    "LOG", # flake8-logging
    "RUF", # Ruff-specific rules
]

lint.ignore = [
    "A001", # Variable `...` is shadowing a python builtin
    "A002", # Argument `...` is shadowing a python builtin
    "A003", # Class attribute `...` is shadowing a python builtin
    "A004", # Import `...` is shadowing a Python builtin
    "PLR6301",
    "TID252", # Relative imports from parent modules are banned
    # Fixable?
    "ERA001", # [*] Found commented-out code
    "PLW1514", # `pathlib.Path(...).open` in text mode without explicit `encoding` argument
    "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
    "RET504", # Unnecessary assignment before return
    "S404", # Same
    "S603", # Using subprocess
    "T201", # `print` found
]
