mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-02-21 09:08:27 +08:00
Replace Flake8 checks with Ruff (except for flake8-pyi) (#11496)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
@@ -32,13 +32,21 @@ exclude = [
|
||||
# are invoked via separate runs of ruff in pre-commit:
|
||||
# see our .pre-commit-config.yaml file for details
|
||||
exclude = ["**/test_cases/**/*.py"]
|
||||
# We still use flake8-pyi and flake8-noqa to check these (see .flake8 config file);
|
||||
# tell ruff not to flag these as e.g. "unused noqa comments"
|
||||
external = ["F821", "NQA", "Y"]
|
||||
select = [
|
||||
"B", # flake8-bugbear
|
||||
"FA", # flake8-future-annotations
|
||||
"I", # isort
|
||||
"RUF", # Ruff-specific and unused-noqa
|
||||
"UP", # pyupgrade
|
||||
# Only enable rules that have safe autofixes:
|
||||
"F401", # Remove unused imports
|
||||
# Flake8 base rules
|
||||
"E", # pycodestyle Error
|
||||
"F", # Pyflakes
|
||||
"W", # pycodestyle Warning
|
||||
# PYI: only enable rules that always autofix, avoids duplicate # noqa with flake8-pyi
|
||||
# See https://github.com/plinss/flake8-noqa/issues/22
|
||||
"PYI009", # use `...`, not `pass`, in empty class bodies
|
||||
"PYI010", # function bodies must be empty
|
||||
"PYI012", # class bodies must not contain `pass`
|
||||
@@ -51,8 +59,27 @@ select = [
|
||||
"PYI058", # use `Iterator` as the return type for `__iter__` methods
|
||||
]
|
||||
ignore = [
|
||||
###
|
||||
# Rules that can conflict with the formatter (Black)
|
||||
# https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
|
||||
###
|
||||
"E111", # indentation-with-invalid-multiple
|
||||
"E114", # indentation-with-invalid-multiple-comment
|
||||
"E117", # over-indented
|
||||
"W191", # tab-indentation
|
||||
###
|
||||
# Rules we don't want or don't agree with
|
||||
###
|
||||
# Slower and more verbose https://github.com/astral-sh/ruff/issues/7871
|
||||
"UP038", # Use `X | Y` in `isinstance` call instead of `(X, Y)`
|
||||
# Used for direct, non-subclass type comparison, for example: `type(val) is str`
|
||||
# see https://github.com/astral-sh/ruff/issues/6465
|
||||
"E721", # Do not compare types, use `isinstance()`
|
||||
###
|
||||
# False-positives, but already checked by type-checkers
|
||||
###
|
||||
# Ruff doesn't support multi-file analysis yet: https://github.com/astral-sh/ruff/issues/5295
|
||||
"RUF013", # PEP 484 prohibits implicit `Optional`
|
||||
]
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
@@ -60,6 +87,15 @@ ignore = [
|
||||
# Most flake8-bugbear rules don't apply for third-party stubs like typeshed.
|
||||
# B033 could be slightly useful but Ruff doesn't have per-file select
|
||||
"B", # flake8-bugbear
|
||||
# Rules that are out of the control of stub authors:
|
||||
"E501", # Line too long
|
||||
"E741", # ambiguous variable name
|
||||
"F403", # `from . import *` used; unable to detect undefined names
|
||||
# False positives in stubs
|
||||
"F821", # Undefined name: https://github.com/astral-sh/ruff/issues/3011
|
||||
# Stubs can sometimes re-export entire modules.
|
||||
# Issues with using a star-imported name will be caught by type-checkers.
|
||||
"F405", # may be undefined, or defined from star imports
|
||||
]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
|
||||
Reference in New Issue
Block a user