Update Ruff and enable F821 in stubs (#11771)

This commit is contained in:
Avasam
2024-04-17 12:50:58 -04:00
committed by GitHub
parent 6e16a4ce23
commit 12b9e48324
6 changed files with 13 additions and 15 deletions

View File

@@ -1,7 +1,7 @@
[flake8]
# NQA: Ruff won't warn about redundant `# noqa: Y`
# Y: Flake8 is only used to run flake8-pyi, everything else is in Ruff
# F821: Until https://github.com/astral-sh/ruff/issues/3011 is fixed, we need flake8-pyi's monkeypatching
# F821: Typeshed is a testing ground for flake8-pyi, which monkeypatches F821
select = NQA, Y, F821
# Ignore rules normally excluded by default
extend-ignore = Y090

View File

@@ -11,7 +11,7 @@ repos:
args: [--fix=lf]
- id: check-case-conflict
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.3.5 # must match requirements-tests.txt
rev: v0.3.7 # must match requirements-tests.txt
hooks:
- id: ruff
# Run this separately because we don't really want

View File

@@ -91,8 +91,6 @@ ignore = [
"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

View File

@@ -9,7 +9,7 @@ mypy==1.9.0
pre-commit-hooks==4.5.0 # must match .pre-commit-config.yaml
pyright==1.1.358
pytype==2024.4.11; platform_system != "Windows" and python_version < "3.12"
ruff==0.3.5 # must match .pre-commit-config.yaml
ruff==0.3.7 # must match .pre-commit-config.yaml
# Libraries used by our various scripts.
aiohttp==3.9.3

View File

@@ -132,9 +132,6 @@ if sys.version_info >= (3, 12):
ContextManager = AbstractContextManager
AsyncContextManager = AbstractAsyncContextManager
# This itself is only available during type checking
def type_check_only(func_or_cls: _F) -> _F: ...
Any = object()
def final(f: _T) -> _T: ...
@@ -183,12 +180,6 @@ class _SpecialForm:
def __or__(self, other: Any) -> _SpecialForm: ...
def __ror__(self, other: Any) -> _SpecialForm: ...
_F = TypeVar("_F", bound=Callable[..., Any])
_P = _ParamSpec("_P")
_T = TypeVar("_T")
def overload(func: _F) -> _F: ...
Union: _SpecialForm
Generic: _SpecialForm
# Protocol is only present in 3.8 and later, but mypy needs it unconditionally
@@ -295,6 +286,10 @@ if sys.version_info >= (3, 10):
else:
def NewType(name: str, tp: Any) -> Any: ...
_F = TypeVar("_F", bound=Callable[..., Any])
_P = _ParamSpec("_P")
_T = TypeVar("_T")
# These type variables are used by the container types.
_S = TypeVar("_S")
_KT = TypeVar("_KT") # Key type.
@@ -304,9 +299,13 @@ _KT_co = TypeVar("_KT_co", covariant=True) # Key type covariant containers.
_VT_co = TypeVar("_VT_co", covariant=True) # Value type covariant containers.
_TC = TypeVar("_TC", bound=type[object])
def overload(func: _F) -> _F: ...
def no_type_check(arg: _F) -> _F: ...
def no_type_check_decorator(decorator: Callable[_P, _T]) -> Callable[_P, _T]: ...
# This itself is only available during type checking
def type_check_only(func_or_cls: _F) -> _F: ...
# Type aliases and type constructors
class _Alias:

View File

@@ -11,7 +11,6 @@ from .resultrow import ResultRow
apilevel: str
threadsafety: int
paramstyle: tuple[str, ...] # hdbcli defines it as a tuple which does not follow PEP 249
connect = Connection
class Connection:
def __init__(
@@ -40,6 +39,8 @@ class Connection:
def setautocommit(self, auto: bool = ...) -> None: ...
def setclientinfo(self, key: str, value: str | None = ...) -> None: ...
connect = Connection
class LOB:
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
def close(self) -> bool: ...