# The following rules are incompatible with or enforced by black: # E203 whitespace before ':' -- scripts only # E301 expected 1 blank line # E302 expected 2 blank lines # E305 expected 2 blank lines # E501 line too long # Some rules are considered irrelevant to stub files: # B All flake8-bugbear rules are .py-specific # E701 multiple statements on one line (colon) -- disallows "..." on the same line # F401 imported but unused -- does not recognize re-exports # https://github.com/PyCQA/pyflakes/issues/474 # F822 undefined name in __all__ -- flake8 does not recognize 'foo: Any' # https://github.com/PyCQA/pyflakes/issues/533 # Rules that are out of the control of stub authors: # E741 ambiguous variable name # F403 import *' used; unable to detect undefined names # F405 defined from star imports # Rules that we'd like to enable in the future: # Y037 Use PEP 604 syntax instead of `typing.Union` and `typing.Optional`. # Currently can't be enabled due to a few lingering bugs in mypy regarding # PEP 604 type aliases (see #4819). # NQA102 "noqa" code has no matching violations. We often introduce "noqa" comments # into the typeshed codebase to unblock flake8-pyi PRs, meaning these comments # have "no matching violations" since the relevant flake8-pyi checks haven't # yet been released. [flake8] per-file-ignores = *.py: E203, E301, E302, E305, E501 *.pyi: B, E301, E302, E305, E501, E701, E741, NQA102, F401, F403, F405, F822, Y037 # Since typing.pyi defines "overload" this is not recognized by flake8 as typing.overload. # Unfortunately, flake8 does not allow to "noqa" just a specific error inside the file itself. # https://github.com/PyCQA/flake8/issues/1079 # F811 redefinition of unused '...' stdlib/typing.pyi: B, E301, E302, E305, E501, E701, E741, NQA102, F401, F403, F405, F811, F822, Y037 # Generated protobuf files include docstrings *_pb2.pyi: B, E301, E302, E305, E501, E701, NQA102, Y021, Y026 exclude = .venv*,.git noqa_require_code = true