Skip to content

Commit aee58a1

Browse files
committed
use builtins.ellipsis for static checking
1 parent 3aefced commit aee58a1

File tree

4 files changed

+39
-12
lines changed

4 files changed

+39
-12
lines changed

consumer.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
import enum
2-
from typing import Any, Optional, Tuple, TypeVar, Union, Protocol, runtime_checkable
2+
from typing import (
3+
TYPE_CHECKING,
4+
Any,
5+
Optional,
6+
Protocol,
7+
Tuple,
8+
TypeVar,
9+
Union,
10+
runtime_checkable,
11+
)
12+
13+
if TYPE_CHECKING:
14+
from builtins import ellipsis
315

416

517
VendoredDtype = Any
@@ -83,7 +95,13 @@ def __ge__(self, other: Union[int, float, A], /) -> A:
8395

8496
def __getitem__(
8597
self,
86-
key: Union[int, slice, Tuple[Union[int, slice], ...], A],
98+
key: Union[
99+
int,
100+
slice,
101+
"ellipsis",
102+
Tuple[Union[int, slice, "ellipsis"], ...],
103+
A,
104+
],
87105
/,
88106
) -> A:
89107
...
@@ -142,7 +160,13 @@ def __rshift__(self, other: Union[int, A], /) -> A:
142160

143161
def __setitem__(
144162
self,
145-
key: Union[int, slice, Tuple[Union[int, slice], ...], A],
163+
key: Union[
164+
int,
165+
slice,
166+
"ellipsis",
167+
Tuple[Union[int, slice, "ellipsis"], ...],
168+
A,
169+
],
146170
value: Union[bool, int, float, A],
147171
/,
148172
) -> None:

provider.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import enum
2-
from typing import Union, Optional, Any, Tuple
2+
from typing import TYPE_CHECKING, Any, Optional, Tuple, Union
3+
4+
if TYPE_CHECKING:
5+
from builtins import ellipsis
36

47

58
class ArrayImplementation:
@@ -82,7 +85,8 @@ def __getitem__(
8285
key: Union[
8386
int,
8487
slice,
85-
Tuple[Union[int, slice], ...],
88+
"ellipsis",
89+
Tuple[Union[int, slice, "ellipsis"], ...],
8690
"ArrayImplementation",
8791
],
8892
/,
@@ -166,7 +170,8 @@ def __setitem__(
166170
key: Union[
167171
int,
168172
slice,
169-
Tuple[Union[int, slice], ...],
173+
"ellipsis",
174+
Tuple[Union[int, slice, "ellipsis"], ...],
170175
"ArrayImplementation",
171176
],
172177
value: Union[bool, int, float, "ArrayImplementation"],

runtime_checks.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from consumer import VendoredArrayProtocol
22
from provider import ArrayImplementation
33

4-
54
assert isinstance(ArrayImplementation(), VendoredArrayProtocol)

static_checks.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import enum
2-
from typing import TypeVar, Union, Any, Tuple, Optional
2+
from typing import Any, Optional, Tuple, TypeVar, Union
33

4-
from provider import ArrayImplementation
54
from consumer import (
5+
VendoredArrayNamespace,
66
VendoredArrayProtocol,
7-
VendoredDtype,
87
VendoredDevice,
9-
VendoredArrayNamespace,
8+
VendoredDtype,
109
VendoredPyCapsule,
1110
VendoredShape,
1211
)
13-
12+
from provider import ArrayImplementation
1413

1514
AIT = ArrayImplementation
1615
AI = AIT()

0 commit comments

Comments
 (0)