Skip to content

Commit 9d3b931

Browse files
authored
♻️ move the _numtype array-aliases to a separate private submodule (#543)
1 parent 67cafa9 commit 9d3b931

File tree

2 files changed

+110
-53
lines changed

2 files changed

+110
-53
lines changed

src/_numtype/__init__.pyi

Lines changed: 21 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,33 @@
55
import decimal
66
import fractions
77
from collections.abc import Sequence
8-
from typing import Any, Never, TypeAlias, type_check_only
8+
from typing import Any, TypeAlias, type_check_only
99
from typing_extensions import Protocol, TypeAliasType, TypeVar
1010

1111
import numpy as np
1212
from numpy._typing import _NestedSequence
1313

1414
from . import op as op
15+
from ._array import (
16+
Array as Array,
17+
Array0D as Array0D,
18+
Array1D as Array1D,
19+
Array2D as Array2D,
20+
Array3D as Array3D,
21+
Array4D as Array4D,
22+
MArray as MArray,
23+
MArray0D as MArray0D,
24+
MArray1D as MArray1D,
25+
MArray2D as MArray2D,
26+
MArray3D as MArray3D,
27+
Matrix as Matrix,
28+
StringArray as StringArray,
29+
StringArray0D as StringArray0D,
30+
StringArray1D as StringArray1D,
31+
StringArray2D as StringArray2D,
32+
StringArray3D as StringArray3D,
33+
StringArrayND as StringArrayND,
34+
)
1535
from ._dtype import (
1636
ToDType as ToDType,
1737
ToDTypeBool as ToDTypeBool,
@@ -135,12 +155,9 @@ from ._shape import (
135155
# Type parameters
136156

137157
_T = TypeVar("_T")
138-
_ShapeT = TypeVar("_ShapeT", bound=Shape, default=Shape)
139158
_ShapeT_co = TypeVar("_ShapeT_co", bound=Shape, covariant=True)
140159
_ScalarT = TypeVar("_ScalarT", bound=np.generic)
141160
_ScalarT_co = TypeVar("_ScalarT_co", bound=np.generic, covariant=True)
142-
_ScalarT0 = TypeVar("_ScalarT0", bound=np.generic, default=Any)
143-
_NaT = TypeVar("_NaT", default=Never)
144161
_NaT0 = TypeVar("_NaT0", default=Any)
145162
_NaT_co = TypeVar("_NaT_co", covariant=True)
146163
_ToT = TypeVar("_ToT")
@@ -195,55 +212,6 @@ Sequence1ND: TypeAlias = _NestedSequence[_T]
195212
Sequence2ND: TypeAlias = Sequence[_NestedSequence[_T]]
196213
Sequence3ND: TypeAlias = Sequence[Sequence[_NestedSequence[_T]]]
197214

198-
###
199-
# Shape-typed array aliases
200-
201-
Array = TypeAliasType("Array", np.ndarray[_ShapeT, np.dtype[_ScalarT0]], type_params=(_ScalarT0, _ShapeT))
202-
Array0D = TypeAliasType("Array0D", np.ndarray[Shape0, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
203-
Array1D = TypeAliasType("Array1D", np.ndarray[Shape1, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
204-
Array2D = TypeAliasType("Array2D", np.ndarray[Shape2, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
205-
Array3D = TypeAliasType("Array3D", np.ndarray[Shape3, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
206-
Array4D = TypeAliasType("Array4D", np.ndarray[Shape4, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
207-
208-
MArray = TypeAliasType("MArray", np.ma.MaskedArray[_ShapeT, np.dtype[_ScalarT0]], type_params=(_ScalarT0, _ShapeT))
209-
MArray0D = TypeAliasType("MArray0D", np.ma.MaskedArray[Shape0, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
210-
MArray1D = TypeAliasType("MArray1D", np.ma.MaskedArray[Shape1, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
211-
MArray2D = TypeAliasType("MArray2D", np.ma.MaskedArray[Shape2, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
212-
MArray3D = TypeAliasType("MArray3D", np.ma.MaskedArray[Shape3, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
213-
214-
Matrix = TypeAliasType("Matrix", np.matrix[Shape2, np.dtype[_ScalarT0]], type_params=(_ScalarT0,))
215-
216-
StringArray = TypeAliasType(
217-
"StringArray",
218-
np.ndarray[_ShapeT, np.dtypes.StringDType[_NaT]],
219-
type_params=(_ShapeT, _NaT),
220-
)
221-
StringArray0D = TypeAliasType(
222-
"StringArray0D",
223-
np.ndarray[Shape0, np.dtypes.StringDType[_NaT]],
224-
type_params=(_NaT,),
225-
)
226-
StringArray1D = TypeAliasType(
227-
"StringArray1D",
228-
np.ndarray[Shape1, np.dtypes.StringDType[_NaT]],
229-
type_params=(_NaT,),
230-
)
231-
StringArray2D = TypeAliasType(
232-
"StringArray2D",
233-
np.ndarray[Shape2, np.dtypes.StringDType[_NaT]],
234-
type_params=(_NaT,),
235-
)
236-
StringArray3D = TypeAliasType(
237-
"StringArray3D",
238-
np.ndarray[Shape3, np.dtypes.StringDType[_NaT]],
239-
type_params=(_NaT,),
240-
)
241-
StringArrayND = TypeAliasType(
242-
"StringArrayND",
243-
np.ndarray[Shape, np.dtypes.StringDType[_NaT]],
244-
type_params=(_NaT,),
245-
)
246-
247215
###
248216
# helper aliases
249217

src/_numtype/_array.pyi

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Shape-typed array aliases
2+
3+
from typing import Any, Never
4+
from typing_extensions import TypeAliasType, TypeVar
5+
6+
import numpy as np
7+
8+
from ._shape import Shape, Shape0, Shape1, Shape2, Shape3, Shape4
9+
10+
__all__ = [
11+
"Array",
12+
"Array0D",
13+
"Array1D",
14+
"Array2D",
15+
"Array3D",
16+
"Array4D",
17+
"MArray",
18+
"MArray0D",
19+
"MArray1D",
20+
"MArray2D",
21+
"MArray3D",
22+
"Matrix",
23+
"StringArray",
24+
"StringArray0D",
25+
"StringArray1D",
26+
"StringArray2D",
27+
"StringArray3D",
28+
"StringArrayND",
29+
]
30+
31+
###
32+
33+
_ShapeT = TypeVar("_ShapeT", bound=Shape, default=Shape)
34+
_ScalarT = TypeVar("_ScalarT", bound=np.generic, default=Any)
35+
_NaT = TypeVar("_NaT", default=Never)
36+
37+
###
38+
39+
Array = TypeAliasType("Array", np.ndarray[_ShapeT, np.dtype[_ScalarT]], type_params=(_ScalarT, _ShapeT))
40+
Array0D = TypeAliasType("Array0D", np.ndarray[Shape0, np.dtype[_ScalarT]], type_params=(_ScalarT,))
41+
Array1D = TypeAliasType("Array1D", np.ndarray[Shape1, np.dtype[_ScalarT]], type_params=(_ScalarT,))
42+
Array2D = TypeAliasType("Array2D", np.ndarray[Shape2, np.dtype[_ScalarT]], type_params=(_ScalarT,))
43+
Array3D = TypeAliasType("Array3D", np.ndarray[Shape3, np.dtype[_ScalarT]], type_params=(_ScalarT,))
44+
Array4D = TypeAliasType("Array4D", np.ndarray[Shape4, np.dtype[_ScalarT]], type_params=(_ScalarT,))
45+
46+
###
47+
48+
Matrix = TypeAliasType("Matrix", np.matrix[Shape2, np.dtype[_ScalarT]], type_params=(_ScalarT,))
49+
50+
###
51+
52+
MArray = TypeAliasType("MArray", np.ma.MaskedArray[_ShapeT, np.dtype[_ScalarT]], type_params=(_ScalarT, _ShapeT))
53+
MArray0D = TypeAliasType("MArray0D", np.ma.MaskedArray[Shape0, np.dtype[_ScalarT]], type_params=(_ScalarT,))
54+
MArray1D = TypeAliasType("MArray1D", np.ma.MaskedArray[Shape1, np.dtype[_ScalarT]], type_params=(_ScalarT,))
55+
MArray2D = TypeAliasType("MArray2D", np.ma.MaskedArray[Shape2, np.dtype[_ScalarT]], type_params=(_ScalarT,))
56+
MArray3D = TypeAliasType("MArray3D", np.ma.MaskedArray[Shape3, np.dtype[_ScalarT]], type_params=(_ScalarT,))
57+
58+
###
59+
60+
StringArray = TypeAliasType(
61+
"StringArray",
62+
np.ndarray[_ShapeT, np.dtypes.StringDType[_NaT]],
63+
type_params=(_ShapeT, _NaT),
64+
)
65+
StringArray0D = TypeAliasType(
66+
"StringArray0D",
67+
np.ndarray[Shape0, np.dtypes.StringDType[_NaT]],
68+
type_params=(_NaT,),
69+
)
70+
StringArray1D = TypeAliasType(
71+
"StringArray1D",
72+
np.ndarray[Shape1, np.dtypes.StringDType[_NaT]],
73+
type_params=(_NaT,),
74+
)
75+
StringArray2D = TypeAliasType(
76+
"StringArray2D",
77+
np.ndarray[Shape2, np.dtypes.StringDType[_NaT]],
78+
type_params=(_NaT,),
79+
)
80+
StringArray3D = TypeAliasType(
81+
"StringArray3D",
82+
np.ndarray[Shape3, np.dtypes.StringDType[_NaT]],
83+
type_params=(_NaT,),
84+
)
85+
StringArrayND = TypeAliasType(
86+
"StringArrayND",
87+
np.ndarray[Shape, np.dtypes.StringDType[_NaT]],
88+
type_params=(_NaT,),
89+
)

0 commit comments

Comments
 (0)