[flake8]
max-line-length = 100
select =
    FT,  # flake8-tergeo
    C901,  # flake8-mccabe
    E,  # flake8-pycodestyle
    F,  # flake8-pyflakes
    W,  # flake8-pycodestyle
ignore=
    # conflict with black formatter
    W503,E203,E704,
    # covered by pylint
    FTB902,FTB904
    # leads to confusing code/conflicts
    FTB907,FTB908
    # __init__/overridden/magic methods might have a docstring or not
    FTP305,FTP306,FTP304,FTP313
max-complexity = 10
per-file-ignores =
    tests/*:FTU019,FTP301,FTP302,FTP303
    _flake8_tergeo/*:FTB028
    scripts/*:FTP040,FTP050

# flake8-pytest-styles config
ftp-pytest-parametrize-names-type = csv

# requirements check
ftp-distribution-name = flake8-tergeo
ftp-requirements-packages = tests,_flake8_tergeo
ftp-requirements-ignore-type-checking-block = true
ftp-requirements-mapping =
    bugbear:flake8-bugbear,
ftp-requirements-module-extra-mapping =
    tests | test,
    scripts | dev,

# general
ftp-python-version = 3.10.0
ftp-auto-manage-options = true
ftp-pyproject-toml-file = pyproject.toml

# docstyle
ftp-docstyle-lowercase-words = flake8, flake8-tergeo
