Skip to content

Commit 53ad216

Browse files
authored
Fix all mypy attr-defined (#376)
1 parent 3536cd3 commit 53ad216

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+487
-164
lines changed

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ hygiene = ["ruff ==0.11.*"]
1111
tests = [
1212
# Tools used for testing
1313
"docopt-ng",
14-
"mypy ==1.13.*",
14+
"mypy ==1.15.*",
1515
"pyright",
1616

1717
# Typed libraries and stubs
@@ -160,5 +160,4 @@ disable_error_code = [
160160
"override", # 790 errors in 220 files
161161
"assignment", # 773 errors in 172 files
162162
"misc", # 692 errors in 132 files
163-
"attr-defined", # 202 errors in 75 files
164163
]

stubs/matplotlib/backend_tools.pyi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ class ToolBase:
3232
def figure(self) -> Figure: ...
3333
@figure.setter
3434
def figure(self, figure: Figure) -> None: ...
35-
36-
set_figure = figure.fset
35+
def set_figure(self, figure: Figure) -> None: ...
3736
def trigger(self, sender: object, event: Event, data: object = ...) -> None: ...
3837
def destroy(self) -> None: ...
3938

stubs/matplotlib/backends/qt_compat.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from typing import Any, TypeAlias
1+
from typing import Any
2+
from typing_extensions import TypeAlias
23

34
QT_API_PYQT6: str = ...
45
QT_API_PYSIDE6: str = ...

stubs/matplotlib/transforms.pyi

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,23 +137,23 @@ class Bbox(BboxBase):
137137
updatex: bool = True,
138138
updatey: bool = True,
139139
): ...
140-
@BboxBase.x0.setter
140+
@BboxBase.x0.setter # type: ignore[attr-defined] # python/mypy#5936
141141
def x0(self, val: float): ...
142-
@BboxBase.y0.setter
142+
@BboxBase.y0.setter # type: ignore[attr-defined] # python/mypy#5936
143143
def y0(self, val: float): ...
144-
@BboxBase.x1.setter
144+
@BboxBase.x1.setter # type: ignore[attr-defined] # python/mypy#5936
145145
def x1(self, val: float): ...
146-
@BboxBase.y1.setter
146+
@BboxBase.y1.setter # type: ignore[attr-defined] # python/mypy#5936
147147
def y1(self, val: float): ...
148-
@BboxBase.p0.setter
148+
@BboxBase.p0.setter # type: ignore[attr-defined] # python/mypy#5936
149149
def p0(self, val: float): ...
150-
@BboxBase.p1.setter
150+
@BboxBase.p1.setter # type: ignore[attr-defined] # python/mypy#5936
151151
def p1(self, val: float): ...
152-
@BboxBase.intervalx.setter
152+
@BboxBase.intervalx.setter # type: ignore[attr-defined] # python/mypy#5936
153153
def intervalx(self, interval): ...
154-
@BboxBase.intervaly.setter
154+
@BboxBase.intervaly.setter # type: ignore[attr-defined] # python/mypy#5936
155155
def intervaly(self, interval): ...
156-
@BboxBase.bounds.setter
156+
@BboxBase.bounds.setter # type: ignore[attr-defined] # python/mypy#5936
157157
def bounds(self, bounds): ...
158158
@property
159159
def minpos(self) -> float: ...

stubs/sklearn/linear_model/_base.pyi

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@ from numpy import ndarray
66
from numpy.random.mtrand import RandomState
77

88
from .._typing import ArrayLike, Int, MatrixLike
9-
from ..base import BaseEstimator, ClassifierMixin, MultiOutputMixin, RegressorMixin
9+
from ..base import BaseEstimator as BaseEstimator, ClassifierMixin, MultiOutputMixin, RegressorMixin
1010
from ..utils._seq_dataset import ArrayDataset64, CSRDataset64
1111
from ._stochastic_gradient import SGDClassifier
1212

13-
# TODO: bayesian_ridge_regression and bayesian_regression_ard
14-
# should be squashed into its respective objects.
15-
1613
SPARSE_INTERCEPT_DECAY: float = ...
1714

1815
def make_dataset(
@@ -27,8 +24,6 @@ class LinearModel(BaseEstimator, metaclass=ABCMeta):
2724
def fit(self, X, y): ...
2825
def predict(self, X: MatrixLike) -> ndarray: ...
2926

30-
# XXX Should this derive from LinearModel? It should be a mixin, not an ABC.
31-
# Maybe the n_features checking can be moved to LinearModel.
3227
class LinearClassifierMixin(ClassifierMixin):
3328
def decision_function(self, X: MatrixLike | ArrayLike) -> ndarray: ...
3429
def predict(self, X: MatrixLike | ArrayLike) -> ndarray: ...
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
from typing import Final, NamedTuple
2+
3+
SIMPLE_METHODS = ...
4+
COMPOSITE_METHODS = ...
5+
METHODS = ...
6+
7+
def _routing_enabled(): ...
8+
def _raise_for_params(params, owner, method) -> None: ...
9+
def _raise_for_unsupported_routing(obj, method, **kwargs) -> None: ...
10+
11+
class _RoutingNotSupportedMixin:
12+
def get_metadata_routing(self) -> None: ...
13+
14+
UNUSED: Final = "$UNUSED$"
15+
WARN: Final = "$WARN$"
16+
UNCHANGED: Final = "$UNCHANGED$"
17+
VALID_REQUEST_VALUES = ...
18+
19+
def request_is_alias(item): ...
20+
def request_is_valid(item): ...
21+
22+
class MethodMetadataRequest:
23+
owner = ...
24+
method = ...
25+
def __init__(self, owner, method, requests=None) -> None: ...
26+
@property
27+
def requests(self): ...
28+
def add_request(self, *, param, alias): ...
29+
30+
class MetadataRequest:
31+
owner = ...
32+
def __init__(self, owner) -> None: ...
33+
def consumes(self, method, params): ...
34+
def __getattr__(self, name): ...
35+
36+
class RouterMappingPair(NamedTuple):
37+
mapping = ...
38+
router = ...
39+
40+
class MethodPair(NamedTuple):
41+
caller = ...
42+
callee = ...
43+
44+
class MethodMapping:
45+
def __init__(self) -> None: ...
46+
def __iter__(self): ...
47+
def add(self, *, caller, callee): ...
48+
49+
class MetadataRouter:
50+
owner = ...
51+
def __init__(self, owner) -> None: ...
52+
def add_self_request(self, obj): ...
53+
def add(self, *, method_mapping, **objs): ...
54+
def consumes(self, method, params): ...
55+
def route_params(self, *, caller, params): ...
56+
def validate_metadata(self, *, method, params) -> None: ...
57+
def __iter__(self): ...
58+
59+
def get_routing_for_object(obj=None): ...
60+
61+
REQUESTER_DOC: Final[str]
62+
REQUESTER_DOC_PARAM: Final[str]
63+
REQUESTER_DOC_RETURN: Final[str]
64+
65+
class RequestMethod:
66+
name = ...
67+
keys = ...
68+
validate_keys = ...
69+
def __init__(self, name, keys, validate_keys: bool = True) -> None: ...
70+
def __get__(self, instance, owner): ...
71+
72+
class _MetadataRequester:
73+
def set_fit_request(self, **kwargs): ...
74+
def set_partial_fit_request(self, **kwargs): ...
75+
def set_predict_request(self, **kwargs): ...
76+
def set_predict_proba_request(self, **kwargs): ...
77+
def set_predict_log_proba_request(self, **kwargs): ...
78+
def set_decision_function_request(self, **kwargs): ...
79+
def set_score_request(self, **kwargs): ...
80+
def set_split_request(self, **kwargs): ...
81+
def set_transform_request(self, **kwargs): ...
82+
def set_inverse_transform_request(self, **kwargs): ...
83+
def __init_subclass__(cls, **kwargs): ...
84+
def get_metadata_routing(self): ...
85+
86+
def process_routing(_obj, _method, /, **kwargs): ...
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from ._metadata_requests import (
2+
UNCHANGED as UNCHANGED,
3+
UNUSED as UNUSED,
4+
WARN as WARN,
5+
MetadataRequest as MetadataRequest,
6+
MetadataRouter as MetadataRouter,
7+
MethodMapping as MethodMapping,
8+
_MetadataRequester as _MetadataRequester,
9+
_raise_for_params as _raise_for_params,
10+
_raise_for_unsupported_routing as _raise_for_unsupported_routing,
11+
_routing_enabled as _routing_enabled,
12+
_RoutingNotSupportedMixin as _RoutingNotSupportedMixin,
13+
get_routing_for_object as get_routing_for_object,
14+
process_routing as process_routing,
15+
)

stubs/sympy-stubs/algebras/quaternion.pyi

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
from types import NotImplementedType
1+
import sys
22
from typing import Any, Literal
3-
from typing_extensions import Self
3+
from typing_extensions import Self, TypeAlias
44

55
from sympy.core.expr import Expr
66
from sympy.core.function import UndefinedFunction
77
from sympy.core.power import Pow
88
from sympy.matrices.dense import MutableDenseMatrix
99

10+
if sys.version_info >= (3, 10):
11+
from types import NotImplementedType
12+
else:
13+
NotImplementedType: TypeAlias = Any
14+
1015
class Quaternion(Expr):
1116
_op_priority = ...
1217
is_commutative = ...

stubs/sympy-stubs/assumptions/sathandlers.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class ClassFactRegistry:
1818
def __getitem__(self, key) -> tuple[frozenset[Any], frozenset[Any]]: ...
1919
def __call__(self, expr) -> set[Any]: ...
2020

21-
class_fact_registry = ...
21+
class_fact_registry: ClassFactRegistry
2222
x = ...
2323

2424
@class_fact_registry.multiregister(Abs)

stubs/sympy-stubs/calculus/accumulationbounds.pyi

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from types import NotImplementedType
2-
from typing_extensions import Self
1+
import sys
2+
from typing import Any
3+
from typing_extensions import Self, TypeAlias
34

45
from sympy.core.basic import Basic
56
from sympy.core.expr import Expr
@@ -8,6 +9,11 @@ from sympy.core.numbers import _sympifyit
89
from sympy.core.power import Pow
910
from sympy.series.order import Order
1011

12+
if sys.version_info >= (3, 10):
13+
from types import NotImplementedType
14+
else:
15+
NotImplementedType: TypeAlias = Any
16+
1117
class AccumulationBounds(Expr):
1218
is_extended_real = ...
1319
is_number = ...

stubs/sympy-stubs/combinatorics/free_groups.pyi

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
from types import NotImplementedType
1+
import sys
22
from typing import Any, Literal
3-
from typing_extensions import Self, Unpack
3+
from typing_extensions import Self, TypeAlias, Unpack
44

55
from sympy.core.expr import Expr
66
from sympy.core.sympify import CantSympify
77
from sympy.printing.defaults import DefaultPrinting
88
from sympy.utilities import public
99

10+
if sys.version_info >= (3, 10):
11+
from types import NotImplementedType
12+
else:
13+
NotImplementedType: TypeAlias = Any
14+
1015
@public
1116
def free_group(symbols) -> tuple[FreeGroup, Unpack[tuple[Any, ...]]]: ...
1217
@public

stubs/sympy-stubs/core/containers.pyi

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
from collections.abc import Generator, Iterator, MutableSet
2-
from types import NotImplementedType
1+
import sys
2+
from collections.abc import Iterator, MutableSet
33
from typing import Any, Callable
4-
from typing_extensions import Self
4+
from typing_extensions import Self, TypeAlias
55

66
from sympy.core.basic import Basic
77
from sympy.core.kind import Kind
88

9+
if sys.version_info >= (3, 10):
10+
from types import NotImplementedType
11+
else:
12+
NotImplementedType: TypeAlias = Any
13+
914
class Tuple(Basic):
1015
def __new__(cls, *args, **kwargs) -> Self: ...
1116
def __getitem__(self, i) -> Tuple: ...

stubs/sympy-stubs/core/expr.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ from typing import Any, Literal
33
from typing_extensions import Self
44

55
from sympy import Derivative, Equality, Integer, Mul, Order, Pow
6-
from sympy.core.basic import Atom, Basic
6+
from sympy.core.basic import Atom as Atom, Basic
77
from sympy.core.cache import cacheit
88
from sympy.core.decorators import call_highest_priority, sympify_method_args, sympify_return
99
from sympy.core.evalf import EvalfMixin

stubs/sympy-stubs/core/exprtools.pyi

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from types import NotImplementedType
1+
import sys
22
from typing import Any
3-
from typing_extensions import LiteralString
3+
from typing_extensions import LiteralString, TypeAlias
44

55
from sympy import Order
66
from sympy.core.add import Add
@@ -9,6 +9,11 @@ from sympy.core.expr import Expr
99
from sympy.core.mul import Mul
1010
from sympy.core.numbers import Rational
1111

12+
if sys.version_info >= (3, 10):
13+
from types import NotImplementedType
14+
else:
15+
NotImplementedType: TypeAlias = Any
16+
1217
_eps = ...
1318

1419
def decompose_power(expr: Expr) -> tuple[Expr, int]: ...

stubs/sympy-stubs/core/function.pyi

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import sys
12
from inspect import Signature
2-
from types import NotImplementedType
33
from typing import Any, Callable, Literal
4-
from typing_extensions import Self
4+
from typing_extensions import Self, TypeAlias
55

66
from sympy.core.basic import Basic
77
from sympy.core.cache import cacheit
@@ -10,10 +10,14 @@ from sympy.core.expr import AtomicExpr, Expr
1010
from sympy.core.kind import Kind
1111
from sympy.core.logic import FuzzyBool
1212
from sympy.core.numbers import Float
13-
from sympy.printing.str import StrPrinter
1413
from sympy.sets.sets import FiniteSet
1514
from sympy.tensor.array.array_derivatives import ArrayDerivative
1615

16+
if sys.version_info >= (3, 10):
17+
from types import NotImplementedType
18+
else:
19+
NotImplementedType: TypeAlias = Any
20+
1721
class PoleError(Exception): ...
1822
class ArgumentIndexError(ValueError): ...
1923
class BadSignatureError(TypeError): ...

stubs/sympy-stubs/core/numbers.pyi

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1+
import sys
12
from functools import lru_cache
2-
from types import NotImplementedType
33
from typing import Any, Literal
4-
from typing_extensions import Self
4+
from typing_extensions import Self, TypeAlias
55

66
from sympy.core.basic import Basic
77
from sympy.core.cache import cacheit
8-
from sympy.core.decorators import _sympifyit
8+
from sympy.core.decorators import _sympifyit as _sympifyit
99
from sympy.core.expr import AtomicExpr, Expr
1010
from sympy.core.mul import Mul
1111
from sympy.core.singleton import Singleton
1212
from sympy.series.order import Order
1313

14+
if sys.version_info >= (3, 10):
15+
from types import NotImplementedType
16+
else:
17+
NotImplementedType: TypeAlias = Any
18+
1419
_LOG2 = ...
1520

1621
def comp(z1, z2, tol=...) -> bool: ...

stubs/sympy-stubs/core/relational.pyi

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
from types import NotImplementedType
1+
import sys
22
from typing import Any
3-
from typing_extensions import Self
3+
from typing_extensions import Self, TypeAlias
44

55
from sympy.core.basic import Basic
66
from sympy.core.evalf import EvalfMixin
7-
from sympy.logic.boolalg import Boolean
7+
from sympy.logic.boolalg import Boolean as Boolean
8+
9+
if sys.version_info >= (3, 10):
10+
from types import NotImplementedType
11+
else:
12+
NotImplementedType: TypeAlias = Any
813

914
__all__ = (
1015
"Rel",

stubs/sympy-stubs/external/pythonmpq.pyi

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
from types import NotImplementedType
1+
import sys
22
from typing import Any
3-
from typing_extensions import Self
3+
from typing_extensions import Self, TypeAlias
4+
5+
if sys.version_info >= (3, 10):
6+
from types import NotImplementedType
7+
else:
8+
NotImplementedType: TypeAlias = Any
49

510
_PyHASH_MODULUS = ...
611
_PyHASH_INF = ...

0 commit comments

Comments
 (0)