Skip to content

Commit e218f07

Browse files
committed
_numtype generic StringDType parameter for na_object
1 parent db3f82a commit e218f07

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

src/_numtype/__init__.pyi

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ _ShapeT_co = TypeVar("_ShapeT_co", bound=tuple[int, ...], covariant=True)
102102
_ScalarT = TypeVar("_ScalarT", bound=np.generic)
103103
_ScalarT_co = TypeVar("_ScalarT_co", bound=np.generic, covariant=True)
104104
_ScalarT0 = TypeVar("_ScalarT0", bound=np.generic, default=Any)
105-
_NaObjectT = TypeVar("_NaObjectT", default=Never)
105+
_NaT = TypeVar("_NaT", default=Never)
106+
_NaT0 = TypeVar("_NaT0", default=Any)
107+
_NaT_co = TypeVar("_NaT_co", covariant=True)
106108
_ToT = TypeVar("_ToT")
107109

108110
###
@@ -139,8 +141,8 @@ class CanLenArray(Protocol[_ScalarT_co, _ShapeT_co]):
139141
def __array__(self, /) -> np.ndarray[_ShapeT_co, np.dtype[_ScalarT_co]]: ...
140142

141143
@type_check_only
142-
class _CanStringArray(Protocol[_ShapeT_co]):
143-
def __array__(self, /) -> np.ndarray[_ShapeT_co, np.dtypes.StringDType]: ...
144+
class _CanStringArray(Protocol[_ShapeT_co, _NaT_co]):
145+
def __array__(self, /) -> np.ndarray[_ShapeT_co, np.dtypes.StringDType[_NaT_co]]: ...
144146

145147
###
146148
# Shape aliases
@@ -184,33 +186,33 @@ Matrix = TypeAliasType("Matrix", np.matrix[tuple[int, int], np.dtype[_ScalarT0]]
184186

185187
StringArray = TypeAliasType(
186188
"StringArray",
187-
np.ndarray[_ShapeT, np.dtypes.StringDType[_NaObjectT]],
188-
type_params=(_ShapeT, _NaObjectT),
189+
np.ndarray[_ShapeT, np.dtypes.StringDType[_NaT]],
190+
type_params=(_ShapeT, _NaT),
189191
)
190192
StringArray0D = TypeAliasType(
191193
"StringArray0D",
192-
np.ndarray[tuple[()], np.dtypes.StringDType[_NaObjectT]],
193-
type_params=(_NaObjectT,),
194+
np.ndarray[tuple[()], np.dtypes.StringDType[_NaT]],
195+
type_params=(_NaT,),
194196
)
195197
StringArray1D = TypeAliasType(
196198
"StringArray1D",
197-
np.ndarray[tuple[int], np.dtypes.StringDType[_NaObjectT]],
198-
type_params=(_NaObjectT,),
199+
np.ndarray[tuple[int], np.dtypes.StringDType[_NaT]],
200+
type_params=(_NaT,),
199201
)
200202
StringArray2D = TypeAliasType(
201203
"StringArray2D",
202-
np.ndarray[tuple[int, int], np.dtypes.StringDType[_NaObjectT]],
203-
type_params=(_NaObjectT,),
204+
np.ndarray[tuple[int, int], np.dtypes.StringDType[_NaT]],
205+
type_params=(_NaT,),
204206
)
205207
StringArray3D = TypeAliasType(
206208
"StringArray3D",
207-
np.ndarray[tuple[int, int, int], np.dtypes.StringDType[_NaObjectT]],
208-
type_params=(_NaObjectT,),
209+
np.ndarray[tuple[int, int, int], np.dtypes.StringDType[_NaT]],
210+
type_params=(_NaT,),
209211
)
210212
StringArrayND = TypeAliasType(
211213
"StringArrayND",
212-
np.ndarray[tuple[int, ...], np.dtypes.StringDType[_NaObjectT]],
213-
type_params=(_NaObjectT,),
214+
np.ndarray[tuple[int, ...], np.dtypes.StringDType[_NaT]],
215+
type_params=(_NaT,),
214216
)
215217

216218
###
@@ -670,13 +672,13 @@ ToObject_2nd = TypeAliasType("ToObject_2nd", _ToArray2_2nd[np.object_, _PyObject
670672
ToObject_3nd = TypeAliasType("ToObject_3nd", _ToArray2_3nd[np.object_, _PyObject])
671673

672674
# StringDType
673-
ToString_nd = TypeAliasType("ToString_nd", _CanStringArray[AtLeast0D])
674-
ToString_1ds = TypeAliasType("ToString_1ds", _CanStringArray[tuple[int]])
675-
ToString_2ds = TypeAliasType("ToString_2ds", _CanStringArray[tuple[int, int]])
676-
ToString_3ds = TypeAliasType("ToString_3ds", _CanStringArray[tuple[int, int, int]])
677-
ToString_1nd = TypeAliasType("ToString_1nd", _CanStringArray[AtLeast1D])
678-
ToString_2nd = TypeAliasType("ToString_2nd", _CanStringArray[AtLeast2D])
679-
ToString_3nd = TypeAliasType("ToString_3nd", _CanStringArray[AtLeast3D])
675+
ToString_nd = TypeAliasType("ToString_nd", _CanStringArray[AtLeast0D, _NaT0], type_params=(_NaT0,))
676+
ToString_1ds = TypeAliasType("ToString_1ds", _CanStringArray[tuple[int], _NaT0], type_params=(_NaT0,))
677+
ToString_2ds = TypeAliasType("ToString_2ds", _CanStringArray[tuple[int, int], _NaT0], type_params=(_NaT0,))
678+
ToString_3ds = TypeAliasType("ToString_3ds", _CanStringArray[tuple[int, int, int], _NaT0], type_params=(_NaT0,))
679+
ToString_1nd = TypeAliasType("ToString_1nd", _CanStringArray[AtLeast1D, _NaT0], type_params=(_NaT0,))
680+
ToString_2nd = TypeAliasType("ToString_2nd", _CanStringArray[AtLeast2D, _NaT0], type_params=(_NaT0,))
681+
ToString_3nd = TypeAliasType("ToString_3nd", _CanStringArray[AtLeast3D, _NaT0], type_params=(_NaT0,))
680682

681683
# any scalar
682684
ToGeneric_nd = TypeAliasType("ToGeneric_nd", _ToArray2_nd[np.generic, _PyScalar])

0 commit comments

Comments
 (0)