diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index a43080b2e..29853be78 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -4551,14 +4551,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 14, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -19991,14 +19983,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -35884,13 +35868,21 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 57, "endColumn": 58, "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 64, + "endColumn": 65, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -46911,14 +46903,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -48868,10 +48852,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { - "startColumn": 56, - "endColumn": 62, + "startColumn": 35, + "endColumn": 39, "lineCount": 1 } }, @@ -49499,14 +49483,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 59, - "endColumn": 69, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -52416,26 +52392,18 @@ } }, { - "code": "reportIndexIssue", - "range": { - "startColumn": 19, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportIndexIssue", + "code": "reportCallIssue", "range": { "startColumn": 19, - "endColumn": 57, + "endColumn": 84, "lineCount": 1 } }, { - "code": "reportIndexIssue", + "code": "reportArgumentType", "range": { "startColumn": 19, - "endColumn": 57, + "endColumn": 84, "lineCount": 1 } }, @@ -52463,14 +52431,6 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 19, - "endColumn": 84, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -52831,30 +52791,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 45, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -59043,14 +58979,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 43, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -59059,14 +58987,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 49, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportPossiblyUnboundVariable", "range": { @@ -61535,14 +61455,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 29, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -62057,14 +61969,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportOptionalMemberAccess", "range": { @@ -62073,14 +61977,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 64, - "lineCount": 1 - } - }, { "code": "reportOptionalMemberAccess", "range": { @@ -62763,14 +62659,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 32, - "lineCount": 3 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -75663,6 +75551,14 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 25, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -88021,70 +87917,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 43, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 43, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 63, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -88213,22 +88045,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnnecessaryTypeIgnoreComment", - "range": { - "startColumn": 57, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -91505,14 +91321,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -91545,14 +91353,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -94141,14 +93941,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -94158,10 +93950,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportAny", "range": { "startColumn": 35, - "endColumn": 42, + "endColumn": 45, "lineCount": 1 } }, @@ -94693,22 +94485,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 54, - "endColumn": 78, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -94720,24 +94496,16 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 41, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 47, - "endColumn": 71, + "startColumn": 4, + "endColumn": 23, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 4, - "endColumn": 23, + "startColumn": 19, + "endColumn": 37, "lineCount": 1 } }, @@ -98807,14 +98575,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -99145,14 +98905,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 33, - "endColumn": 36, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py index 3010a25c4..a44995fc4 100644 --- a/loopy/kernel/__init__.py +++ b/loopy/kernel/__init__.py @@ -1345,6 +1345,7 @@ def __call__(self, *args, **kwargs): # {{{ pickling + @override def __getstate__(self): result = { fld.name: getattr(self, fld.name) diff --git a/loopy/symbolic.py b/loopy/symbolic.py index df3325295..1c05b35cf 100644 --- a/loopy/symbolic.py +++ b/loopy/symbolic.py @@ -97,7 +97,7 @@ LoopyError, UnableToDetermineAccessRangeError, ) -from loopy.typing import InsnId, ShapeType, not_none +from loopy.typing import InameStr, InsnId, ShapeType, VarNameStr, not_none if TYPE_CHECKING: @@ -2973,7 +2973,9 @@ def get_access_map( class BatchedAccessMapMapper(WalkMapper[[AbstractSet[str]]]): kernel: LoopKernel - access_maps: defaultdict[str, defaultdict[AbstractSet[str], isl.Map | None]] + access_maps: defaultdict[ + VarNameStr, + defaultdict[AbstractSet[InameStr], isl.Map | None]] bad_subscripts: defaultdict[str, list[p.Subscript | LinearSubscript]] _overestimate: bool _var_names: Collection[str] diff --git a/loopy/tools.py b/loopy/tools.py index 6c6963042..2deec3ccf 100644 --- a/loopy/tools.py +++ b/loopy/tools.py @@ -377,6 +377,7 @@ def unpickle(self): from pickle import loads return loads(self.objstring) + @override def __getstate__(self): return {"objstring": self.objstring} @@ -443,6 +444,7 @@ def __len__(self): def __iter__(self) -> abc.Iterator[K]: return iter(self._map) + @override def __getstate__(self): return {"_map": { key: _PickledObject(val) @@ -491,6 +493,7 @@ def __len__(self): def insert(self, key: int, value: V): self._list.insert(key, value) + @override def __getstate__(self): return {"_list": [_PickledObject(val) for val in self._list]} @@ -608,6 +611,7 @@ def __repr__(self): return "Optional()" return "Optional(%r)" % self._value + @override def __getstate__(self): if not self.has_value: return _no_value diff --git a/loopy/typing.py b/loopy/typing.py index fcc63ba4e..41c128548 100644 --- a/loopy/typing.py +++ b/loopy/typing.py @@ -76,6 +76,7 @@ StridesType: TypeAlias = ShapeType InameStr: TypeAlias = str +VarNameStr: TypeAlias = str InameStrSet: TypeAlias = frozenset[InameStr] ToInameStrSetConvertible: TypeAlias = "Iterable[InameStr] | InameStr" diff --git a/pyproject.toml b/pyproject.toml index fd944fdc3..0ed268693 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -208,7 +208,7 @@ reportUnnecessaryComparison = "hint" # https://github.com/microsoft/pyright/issues/746 reportImportCycles = "none" -pythonVersion = "3.10" +pythonVersion = "3.12" pythonPlatform = "All" exclude = [ diff --git a/test/test_misc.py b/test/test_misc.py index 7fc4fdf10..230286b15 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -24,6 +24,7 @@ from pickle import dumps, loads import pytest +from typing_extensions import override import loopy as lp from loopy.version import LOOPY_USE_LANGUAGE_VERSION_2018_2 # noqa: F401 @@ -66,6 +67,7 @@ class PickleDetector: def reset(cls): cls.instance_unpickled = False + @override def __getstate__(self): return {"state": self.state}