Skip to content

Commit ee5b07d

Browse files
committed
refactor: typing module re-organization
Type safe types are no longer called strict, but type_safe; typing namespace free of type files, but submodules, and the type files are now in the loading submodule.
1 parent aeccd66 commit ee5b07d

20 files changed

+846
-773
lines changed

poetry.lock

+400-340
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pydantic_numpy/__init__.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
from pydantic_numpy.helper.annotation import np_array_pydantic_annotated_typing
2-
from pydantic_numpy.typing.n_dimensional import *
32

43
__all__ = ["np_array_pydantic_annotated_typing", "model", "typing"]

pydantic_numpy/helper/annotation.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections.abc import Sequence
22
from pathlib import Path
3-
from typing import Any, Callable, ClassVar, Iterable, Optional, Union
3+
from typing import Any, Callable, ClassVar, Iterable, Optional, Union, cast
44

55
import numpy as np
66
import numpy.typing as npt
@@ -55,12 +55,12 @@ def pd_np_native_numpy_array_to_data_dict_serializer(array_like: npt.ArrayLike)
5555
"""
5656
array = np.array(array_like)
5757

58-
if issubclass(array.dtype.type, np.timedelta64) or issubclass(array.dtype.type, np.datetime64):
59-
data = array.astype(int).tolist()
60-
else:
61-
data = array.astype(float).tolist()
58+
data = array.astype(
59+
int if issubclass(array.dtype.type, np.timedelta64) or issubclass(array.dtype.type, np.datetime64) else float
60+
).tolist()
61+
cast_data = cast(list, data)
6262

63-
return NumpyArrayTypeData(data_type=str(array.dtype), data=data)
63+
return NumpyArrayTypeData(data_type=str(array.dtype), data=cast_data)
6464

6565

6666
def pd_np_native_numpy_array_json_schema_from_type_data(

pydantic_numpy/typing/__init__.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
from pydantic_numpy.typing.i_dimensional import *
2-
from pydantic_numpy.typing.ii_dimensional import *
3-
from pydantic_numpy.typing.iii_dimensional import *
4-
from pydantic_numpy.typing.n_dimensional import *
5-
from pydantic_numpy.typing.strict_data_type.i_dimensional import *
6-
from pydantic_numpy.typing.strict_data_type.ii_dimensional import *
7-
from pydantic_numpy.typing.strict_data_type.iii_dimensional import *
8-
from pydantic_numpy.typing.strict_data_type.n_dimensional import *
1+
from pydantic_numpy.typing.type_safe.i_dimensional import *
2+
from pydantic_numpy.typing.type_safe.ii_dimensional import *
3+
from pydantic_numpy.typing.type_safe.iii_dimensional import *
4+
from pydantic_numpy.typing.type_safe.n_dimensional import *
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,122 @@
1-
from typing import Annotated
1+
from typing import Annotated, Any, TypeAlias
22

33
import numpy as np
44

55
from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation
66

7-
NpStrict1DArrayInt64 = Annotated[
7+
Np1DArray: TypeAlias = Annotated[
8+
np.ndarray[tuple[int], np.dtype[Any]],
9+
NpArrayPydanticAnnotation.factory(data_type=None, dimensions=1, strict_data_typing=False),
10+
]
11+
12+
Np1DArrayInt64: TypeAlias = Annotated[
813
np.ndarray[tuple[int], np.dtype[np.int64]],
914
NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=1, strict_data_typing=True),
1015
]
1116

12-
NpStrict1DArrayInt32 = Annotated[
17+
Np1DArrayInt32: TypeAlias = Annotated[
1318
np.ndarray[tuple[int], np.dtype[np.int32]],
1419
NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=1, strict_data_typing=True),
1520
]
1621

17-
NpStrict1DArrayInt16 = Annotated[
22+
Np1DArrayInt16: TypeAlias = Annotated[
1823
np.ndarray[tuple[int], np.dtype[np.int16]],
1924
NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=1, strict_data_typing=True),
2025
]
2126

22-
NpStrict1DArrayInt8 = Annotated[
27+
Np1DArrayInt8: TypeAlias = Annotated[
2328
np.ndarray[tuple[int], np.dtype[np.int8]],
2429
NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=1, strict_data_typing=True),
2530
]
2631

27-
NpStrict1DArrayUint64 = Annotated[
32+
Np1DArrayUint64: TypeAlias = Annotated[
2833
np.ndarray[tuple[int], np.dtype[np.uint64]],
2934
NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=1, strict_data_typing=True),
3035
]
3136

32-
NpStrict1DArrayUint32 = Annotated[
37+
Np1DArrayUint32: TypeAlias = Annotated[
3338
np.ndarray[tuple[int], np.dtype[np.uint32]],
3439
NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=1, strict_data_typing=True),
3540
]
3641

37-
NpStrict1DArrayUint16 = Annotated[
42+
Np1DArrayUint16: TypeAlias = Annotated[
3843
np.ndarray[tuple[int], np.dtype[np.uint16]],
3944
NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=1, strict_data_typing=True),
4045
]
4146

42-
NpStrict1DArrayUint8 = Annotated[
47+
Np1DArrayUint8: TypeAlias = Annotated[
4348
np.ndarray[tuple[int], np.dtype[np.uint8]],
4449
NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=1, strict_data_typing=True),
4550
]
4651

47-
NpStrict1DArrayFpLongDouble = Annotated[
52+
Np1DArrayFpLongDouble: TypeAlias = Annotated[
4853
np.ndarray[tuple[int], np.dtype[np.longdouble]],
4954
NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=1, strict_data_typing=True),
5055
]
5156

52-
NpStrict1DArrayFp64 = Annotated[
57+
Np1DArrayFp64: TypeAlias = Annotated[
5358
np.ndarray[tuple[int], np.dtype[np.float64]],
5459
NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=1, strict_data_typing=True),
5560
]
5661

57-
NpStrict1DArrayFp32 = Annotated[
62+
Np1DArrayFp32: TypeAlias = Annotated[
5863
np.ndarray[tuple[int], np.dtype[np.float32]],
5964
NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=1, strict_data_typing=True),
6065
]
6166

62-
NpStrict1DArrayFp16 = Annotated[
67+
Np1DArrayFp16: TypeAlias = Annotated[
6368
np.ndarray[tuple[int], np.dtype[np.float16]],
6469
NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=1, strict_data_typing=True),
6570
]
6671

67-
NpStrict1DArrayComplexLongDouble = Annotated[
72+
Np1DArrayComplexLongDouble: TypeAlias = Annotated[
6873
np.ndarray[tuple[int], np.dtype[np.clongdouble]],
6974
NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=1, strict_data_typing=True),
7075
]
7176

72-
NpStrict1DArrayComplex128 = Annotated[
77+
Np1DArrayComplex128: TypeAlias = Annotated[
7378
np.ndarray[tuple[int], np.dtype[np.complex128]],
7479
NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=1, strict_data_typing=True),
7580
]
7681

77-
NpStrict1DArrayComplex64 = Annotated[
82+
Np1DArrayComplex64: TypeAlias = Annotated[
7883
np.ndarray[tuple[int], np.dtype[np.complex64]],
7984
NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=1, strict_data_typing=True),
8085
]
8186

82-
NpStrict1DArrayBool = Annotated[
87+
Np1DArrayBool: TypeAlias = Annotated[
8388
np.ndarray[tuple[int], np.dtype[np.bool_]],
8489
NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=1, strict_data_typing=True),
8590
]
8691

87-
NpStrict1DArrayDatetime64 = Annotated[
92+
Np1DArrayDatetime64: TypeAlias = Annotated[
8893
np.ndarray[tuple[int], np.dtype[np.datetime64]],
8994
NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=1, strict_data_typing=True),
9095
]
9196

92-
NpStrict1DArrayTimedelta64 = Annotated[
97+
Np1DArrayTimedelta64: TypeAlias = Annotated[
9398
np.ndarray[tuple[int], np.dtype[np.timedelta64]],
9499
NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=1, strict_data_typing=True),
95100
]
96101

97102
__all__ = [
98-
"NpStrict1DArrayInt64",
99-
"NpStrict1DArrayInt32",
100-
"NpStrict1DArrayInt16",
101-
"NpStrict1DArrayInt8",
102-
"NpStrict1DArrayUint64",
103-
"NpStrict1DArrayUint32",
104-
"NpStrict1DArrayUint16",
105-
"NpStrict1DArrayUint8",
106-
"NpStrict1DArrayFpLongDouble",
107-
"NpStrict1DArrayFp64",
108-
"NpStrict1DArrayFp32",
109-
"NpStrict1DArrayFp16",
110-
"NpStrict1DArrayComplexLongDouble",
111-
"NpStrict1DArrayComplex128",
112-
"NpStrict1DArrayComplex64",
113-
"NpStrict1DArrayBool",
114-
"NpStrict1DArrayDatetime64",
115-
"NpStrict1DArrayTimedelta64",
103+
"Np1DArray",
104+
"Np1DArrayInt64",
105+
"Np1DArrayInt32",
106+
"Np1DArrayInt16",
107+
"Np1DArrayInt8",
108+
"Np1DArrayUint64",
109+
"Np1DArrayUint32",
110+
"Np1DArrayUint16",
111+
"Np1DArrayUint8",
112+
"Np1DArrayFpLongDouble",
113+
"Np1DArrayFp64",
114+
"Np1DArrayFp32",
115+
"Np1DArrayFp16",
116+
"Np1DArrayComplexLongDouble",
117+
"Np1DArrayComplex128",
118+
"Np1DArrayComplex64",
119+
"Np1DArrayBool",
120+
"Np1DArrayDatetime64",
121+
"Np1DArrayTimedelta64",
116122
]
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,122 @@
1-
from typing import Annotated
1+
from typing import Annotated, Any, TypeAlias
22

33
import numpy as np
44

55
from pydantic_numpy.helper.annotation import NpArrayPydanticAnnotation
66

7-
NpStrict2DArrayInt64 = Annotated[
7+
Np2DArray: TypeAlias = Annotated[
8+
np.ndarray[tuple[int, int], np.dtype[Any]],
9+
NpArrayPydanticAnnotation.factory(data_type=None, dimensions=2, strict_data_typing=False),
10+
]
11+
12+
Np2DArrayInt64: TypeAlias = Annotated[
813
np.ndarray[tuple[int, int], np.dtype[np.int64]],
914
NpArrayPydanticAnnotation.factory(data_type=np.int64, dimensions=2, strict_data_typing=True),
1015
]
1116

12-
NpStrict2DArrayInt32 = Annotated[
17+
Np2DArrayInt32: TypeAlias = Annotated[
1318
np.ndarray[tuple[int, int], np.dtype[np.int32]],
1419
NpArrayPydanticAnnotation.factory(data_type=np.int32, dimensions=2, strict_data_typing=True),
1520
]
1621

17-
NpStrict2DArrayInt16 = Annotated[
22+
Np2DArrayInt16: TypeAlias = Annotated[
1823
np.ndarray[tuple[int, int], np.dtype[np.int16]],
1924
NpArrayPydanticAnnotation.factory(data_type=np.int16, dimensions=2, strict_data_typing=True),
2025
]
2126

22-
NpStrict2DArrayInt8 = Annotated[
27+
Np2DArrayInt8: TypeAlias = Annotated[
2328
np.ndarray[tuple[int, int], np.dtype[np.int8]],
2429
NpArrayPydanticAnnotation.factory(data_type=np.int8, dimensions=2, strict_data_typing=True),
2530
]
2631

27-
NpStrict2DArrayUint64 = Annotated[
32+
Np2DArrayUint64: TypeAlias = Annotated[
2833
np.ndarray[tuple[int, int], np.dtype[np.uint64]],
2934
NpArrayPydanticAnnotation.factory(data_type=np.uint64, dimensions=2, strict_data_typing=True),
3035
]
3136

32-
NpStrict2DArrayUint32 = Annotated[
37+
Np2DArrayUint32: TypeAlias = Annotated[
3338
np.ndarray[tuple[int, int], np.dtype[np.uint32]],
3439
NpArrayPydanticAnnotation.factory(data_type=np.uint32, dimensions=2, strict_data_typing=True),
3540
]
3641

37-
NpStrict2DArrayUint16 = Annotated[
42+
Np2DArrayUint16: TypeAlias = Annotated[
3843
np.ndarray[tuple[int, int], np.dtype[np.uint16]],
3944
NpArrayPydanticAnnotation.factory(data_type=np.uint16, dimensions=2, strict_data_typing=True),
4045
]
4146

42-
NpStrict2DArrayUint8 = Annotated[
47+
Np2DArrayUint8: TypeAlias = Annotated[
4348
np.ndarray[tuple[int, int], np.dtype[np.uint8]],
4449
NpArrayPydanticAnnotation.factory(data_type=np.uint8, dimensions=2, strict_data_typing=True),
4550
]
4651

47-
NpStrict2DArrayFpLongDouble = Annotated[
52+
Np2DArrayFpLongDouble: TypeAlias = Annotated[
4853
np.ndarray[tuple[int, int], np.dtype[np.longdouble]],
4954
NpArrayPydanticAnnotation.factory(data_type=np.longdouble, dimensions=2, strict_data_typing=True),
5055
]
5156

52-
NpStrict2DArrayFp64 = Annotated[
57+
Np2DArrayFp64: TypeAlias = Annotated[
5358
np.ndarray[tuple[int, int], np.dtype[np.float64]],
5459
NpArrayPydanticAnnotation.factory(data_type=np.float64, dimensions=2, strict_data_typing=True),
5560
]
5661

57-
NpStrict2DArrayFp32 = Annotated[
62+
Np2DArrayFp32: TypeAlias = Annotated[
5863
np.ndarray[tuple[int, int], np.dtype[np.float32]],
5964
NpArrayPydanticAnnotation.factory(data_type=np.float32, dimensions=2, strict_data_typing=True),
6065
]
6166

62-
NpStrict2DArrayFp16 = Annotated[
67+
Np2DArrayFp16: TypeAlias = Annotated[
6368
np.ndarray[tuple[int, int], np.dtype[np.float16]],
6469
NpArrayPydanticAnnotation.factory(data_type=np.float16, dimensions=2, strict_data_typing=True),
6570
]
6671

67-
NpStrict2DArrayComplexLongDouble = Annotated[
72+
Np2DArrayComplexLongDouble: TypeAlias = Annotated[
6873
np.ndarray[tuple[int, int], np.dtype[np.clongdouble]],
6974
NpArrayPydanticAnnotation.factory(data_type=np.clongdouble, dimensions=2, strict_data_typing=True),
7075
]
7176

72-
NpStrict2DArrayComplex128 = Annotated[
77+
Np2DArrayComplex128: TypeAlias = Annotated[
7378
np.ndarray[tuple[int, int], np.dtype[np.complex128]],
7479
NpArrayPydanticAnnotation.factory(data_type=np.complex128, dimensions=2, strict_data_typing=True),
7580
]
7681

77-
NpStrict2DArrayComplex64 = Annotated[
82+
Np2DArrayComplex64: TypeAlias = Annotated[
7883
np.ndarray[tuple[int, int], np.dtype[np.complex64]],
7984
NpArrayPydanticAnnotation.factory(data_type=np.complex64, dimensions=2, strict_data_typing=True),
8085
]
8186

82-
NpStrict2DArrayBool = Annotated[
87+
Np2DArrayBool: TypeAlias = Annotated[
8388
np.ndarray[tuple[int, int], np.dtype[np.bool_]],
8489
NpArrayPydanticAnnotation.factory(data_type=np.bool_, dimensions=2, strict_data_typing=True),
8590
]
8691

87-
NpStrict2DArrayDatetime64 = Annotated[
92+
Np2DArrayDatetime64: TypeAlias = Annotated[
8893
np.ndarray[tuple[int, int], np.dtype[np.datetime64]],
8994
NpArrayPydanticAnnotation.factory(data_type=np.datetime64, dimensions=2, strict_data_typing=True),
9095
]
9196

92-
NpStrict2DArrayTimedelta64 = Annotated[
97+
Np2DArrayTimedelta64: TypeAlias = Annotated[
9398
np.ndarray[tuple[int, int], np.dtype[np.timedelta64]],
9499
NpArrayPydanticAnnotation.factory(data_type=np.timedelta64, dimensions=2, strict_data_typing=True),
95100
]
96101

97102
__all__ = [
98-
"NpStrict2DArrayInt64",
99-
"NpStrict2DArrayInt32",
100-
"NpStrict2DArrayInt16",
101-
"NpStrict2DArrayInt8",
102-
"NpStrict2DArrayUint64",
103-
"NpStrict2DArrayUint32",
104-
"NpStrict2DArrayUint16",
105-
"NpStrict2DArrayUint8",
106-
"NpStrict2DArrayFpLongDouble",
107-
"NpStrict2DArrayFp64",
108-
"NpStrict2DArrayFp32",
109-
"NpStrict2DArrayFp16",
110-
"NpStrict2DArrayComplexLongDouble",
111-
"NpStrict2DArrayComplex128",
112-
"NpStrict2DArrayComplex64",
113-
"NpStrict2DArrayBool",
114-
"NpStrict2DArrayDatetime64",
115-
"NpStrict2DArrayTimedelta64",
103+
"Np2DArray",
104+
"Np2DArrayInt64",
105+
"Np2DArrayInt32",
106+
"Np2DArrayInt16",
107+
"Np2DArrayInt8",
108+
"Np2DArrayUint64",
109+
"Np2DArrayUint32",
110+
"Np2DArrayUint16",
111+
"Np2DArrayUint8",
112+
"Np2DArrayFpLongDouble",
113+
"Np2DArrayFp64",
114+
"Np2DArrayFp32",
115+
"Np2DArrayFp16",
116+
"Np2DArrayComplexLongDouble",
117+
"Np2DArrayComplex128",
118+
"Np2DArrayComplex64",
119+
"Np2DArrayBool",
120+
"Np2DArrayDatetime64",
121+
"Np2DArrayTimedelta64",
116122
]

0 commit comments

Comments
 (0)