[flake8]

# Don't even try to analyze these:
exclude =
  # No need to traverse egg files
  *.egg,
  # No need to traverse egg info dir
  *.egg-info,
  # No need to traverse eggs directory
  .eggs,
  # No need to traverse our git directory
  .git,
  # GitHub configs
  .github,
  # Cache files of MyPy
  .mypy_cache,
  # Cache files of pytest
  .pytest_cache,
  # Temp dir of pytest-testmon
  .tmontmp,
  # Countless third-party libs in venvs
  .tox,
  # Occasional virtualenv dir
  .venv
  # VS Code
  .vscode,
  # There's no value in checking cache directories
  __pycache__,
  # Temporary build dir
  build,
  # This contains sdists and wheels of ansible-lint that we don't want to check
  dist,
  # Occasional virtualenv dir
  env,
  # Metadata of `pip wheel` cmd is autogenerated
  pip-wheel-metadata,

# Let's not overcomplicate the code:
max-complexity = 10

# Accessibility/large fonts and PEP8 friendly:
#max-line-length = 79
# Accessibility/large fonts and PEP8 unfriendly:
max-line-length = 100

# The only allowed ignores are related to black and isort
# https://black.readthedocs.io/en/stable/the_black_code_style.html#line-length
# "H" are generated by hacking plugin, which is not black compatible
ignore =
  C901,
  E203,
  E501,
  W503,
  H

# Allow certain violations in certain files:
# per-file-ignores =

# flake8-pytest-style
# PT001:
pytest-fixture-no-parentheses = true
# PT006:
pytest-parametrize-names-type = tuple
# PT007:
pytest-parametrize-values-type = tuple
pytest-parametrize-values-row-type = tuple

# flake8-rst-docstrings
rst-roles =
    class,
    func,
