Skip to content

Commit 30eb358

Browse files
committed
TYP: include the | prefix for dtype char codes
This fixes e.g. `numpy.dtype('|?')` from being falsely rejected by typecheckers, which is allowed at runtime.
1 parent 906a103 commit 30eb358

File tree

1 file changed

+123
-95
lines changed

1 file changed

+123
-95
lines changed

numpy/_typing/_char_codes.py

Lines changed: 123 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,141 @@
11
from typing import Literal
22

3-
_BoolCodes = Literal["?", "=?", "<?", ">?", "bool", "bool_"]
3+
_BoolCodes = Literal["bool", "bool_", "?", "|?", "=?", "<?", ">?"]
44

5-
_UInt8Codes = Literal["uint8", "u1", "=u1", "<u1", ">u1"]
6-
_UInt16Codes = Literal["uint16", "u2", "=u2", "<u2", ">u2"]
7-
_UInt32Codes = Literal["uint32", "u4", "=u4", "<u4", ">u4"]
8-
_UInt64Codes = Literal["uint64", "u8", "=u8", "<u8", ">u8"]
5+
_UInt8Codes = Literal["uint8", "u1", "|u1", "=u1", "<u1", ">u1"]
6+
_UInt16Codes = Literal["uint16", "u2", "|u2", "=u2", "<u2", ">u2"]
7+
_UInt32Codes = Literal["uint32", "u4", "|u4", "=u4", "<u4", ">u4"]
8+
_UInt64Codes = Literal["uint64", "u8", "|u8", "=u8", "<u8", ">u8"]
99

10-
_Int8Codes = Literal["int8", "i1", "=i1", "<i1", ">i1"]
11-
_Int16Codes = Literal["int16", "i2", "=i2", "<i2", ">i2"]
12-
_Int32Codes = Literal["int32", "i4", "=i4", "<i4", ">i4"]
13-
_Int64Codes = Literal["int64", "i8", "=i8", "<i8", ">i8"]
10+
_Int8Codes = Literal["int8", "i1", "|i1", "=i1", "<i1", ">i1"]
11+
_Int16Codes = Literal["int16", "i2", "|i2", "=i2", "<i2", ">i2"]
12+
_Int32Codes = Literal["int32", "i4", "|i4", "=i4", "<i4", ">i4"]
13+
_Int64Codes = Literal["int64", "i8", "|i8", "=i8", "<i8", ">i8"]
1414

15-
_Float16Codes = Literal["float16", "f2", "=f2", "<f2", ">f2"]
16-
_Float32Codes = Literal["float32", "f4", "=f4", "<f4", ">f4"]
17-
_Float64Codes = Literal["float64", "f8", "=f8", "<f8", ">f8"]
15+
_Float16Codes = Literal["float16", "f2", "|f2", "=f2", "<f2", ">f2"]
16+
_Float32Codes = Literal["float32", "f4", "|f4", "=f4", "<f4", ">f4"]
17+
_Float64Codes = Literal["float64", "f8", "|f8", "=f8", "<f8", ">f8"]
1818

19-
_Complex64Codes = Literal["complex64", "c8", "=c8", "<c8", ">c8"]
20-
_Complex128Codes = Literal["complex128", "c16", "=c16", "<c16", ">c16"]
19+
_Complex64Codes = Literal["complex64", "c8", "|c8", "=c8", "<c8", ">c8"]
20+
_Complex128Codes = Literal["complex128", "c16", "|c16", "=c16", "<c16", ">c16"]
2121

22-
_ByteCodes = Literal["byte", "b", "=b", "<b", ">b"]
23-
_ShortCodes = Literal["short", "h", "=h", "<h", ">h"]
24-
_IntCCodes = Literal["intc", "i", "=i", "<i", ">i"]
25-
_IntPCodes = Literal["intp", "int", "int_", "n", "=n", "<n", ">n"]
26-
_LongCodes = Literal["long", "l", "=l", "<l", ">l"]
22+
_ByteCodes = Literal["byte", "b", "|b", "=b", "<b", ">b"]
23+
_ShortCodes = Literal["short", "h", "|h", "=h", "<h", ">h"]
24+
_IntCCodes = Literal["intc", "i", "|i", "=i", "<i", ">i"]
25+
_IntPCodes = Literal["intp", "int", "int_", "n", "|n", "=n", "<n", ">n"]
26+
_LongCodes = Literal["long", "l", "|l", "=l", "<l", ">l"]
2727
_IntCodes = _IntPCodes
28-
_LongLongCodes = Literal["longlong", "q", "=q", "<q", ">q"]
28+
_LongLongCodes = Literal["longlong", "q", "|q", "=q", "<q", ">q"]
2929

30-
_UByteCodes = Literal["ubyte", "B", "=B", "<B", ">B"]
31-
_UShortCodes = Literal["ushort", "H", "=H", "<H", ">H"]
32-
_UIntCCodes = Literal["uintc", "I", "=I", "<I", ">I"]
33-
_UIntPCodes = Literal["uintp", "uint", "N", "=N", "<N", ">N"]
34-
_ULongCodes = Literal["ulong", "L", "=L", "<L", ">L"]
30+
_UByteCodes = Literal["ubyte", "B", "|B", "=B", "<B", ">B"]
31+
_UShortCodes = Literal["ushort", "H", "|H", "=H", "<H", ">H"]
32+
_UIntCCodes = Literal["uintc", "I", "|I", "=I", "<I", ">I"]
33+
_UIntPCodes = Literal["uintp", "uint", "N", "|N", "=N", "<N", ">N"]
34+
_ULongCodes = Literal["ulong", "L", "|L", "=L", "<L", ">L"]
3535
_UIntCodes = _UIntPCodes
36-
_ULongLongCodes = Literal["ulonglong", "Q", "=Q", "<Q", ">Q"]
36+
_ULongLongCodes = Literal["ulonglong", "Q", "|Q", "=Q", "<Q", ">Q"]
3737

38-
_HalfCodes = Literal["half", "e", "=e", "<e", ">e"]
39-
_SingleCodes = Literal["single", "f", "=f", "<f", ">f"]
40-
_DoubleCodes = Literal["double", "float", "d", "=d", "<d", ">d"]
41-
_LongDoubleCodes = Literal["longdouble", "g", "=g", "<g", ">g"]
38+
_HalfCodes = Literal["half", "e", "|e", "=e", "<e", ">e"]
39+
_SingleCodes = Literal["single", "f", "|f", "=f", "<f", ">f"]
40+
_DoubleCodes = Literal["double", "float", "d", "|d", "=d", "<d", ">d"]
41+
_LongDoubleCodes = Literal["longdouble", "g", "|g", "=g", "<g", ">g"]
4242

43-
_CSingleCodes = Literal["csingle", "F", "=F", "<F", ">F"]
44-
_CDoubleCodes = Literal["cdouble", "complex", "D", "=D", "<D", ">D"]
45-
_CLongDoubleCodes = Literal["clongdouble", "G", "=G", "<G", ">G"]
43+
_CSingleCodes = Literal["csingle", "F", "|F", "=F", "<F", ">F"]
44+
_CDoubleCodes = Literal["cdouble", "complex", "D", "|D", "=D", "<D", ">D"]
45+
_CLongDoubleCodes = Literal["clongdouble", "G", "|G", "=G", "<G", ">G"]
4646

47-
_StrCodes = Literal["str", "str_", "unicode", "U", "=U", "<U", ">U"]
48-
_BytesCodes = Literal["bytes", "bytes_", "S", "=S", "<S", ">S"]
49-
_VoidCodes = Literal["void", "V", "=V", "<V", ">V"]
50-
_ObjectCodes = Literal["object", "object_", "O", "=O", "<O", ">O"]
47+
_StrCodes = Literal["str", "str_", "unicode", "U", "|U", "=U", "<U", ">U"]
48+
_BytesCodes = Literal["bytes", "bytes_", "S", "|S", "=S", "<S", ">S"]
49+
_VoidCodes = Literal["void", "V", "|V", "=V", "<V", ">V"]
50+
_ObjectCodes = Literal["object", "object_", "O", "|O", "=O", "<O", ">O"]
5151

5252
_DT64Codes = Literal[
53-
"datetime64", "=datetime64", "<datetime64", ">datetime64",
54-
"datetime64[Y]", "=datetime64[Y]", "<datetime64[Y]", ">datetime64[Y]",
55-
"datetime64[M]", "=datetime64[M]", "<datetime64[M]", ">datetime64[M]",
56-
"datetime64[W]", "=datetime64[W]", "<datetime64[W]", ">datetime64[W]",
57-
"datetime64[D]", "=datetime64[D]", "<datetime64[D]", ">datetime64[D]",
58-
"datetime64[h]", "=datetime64[h]", "<datetime64[h]", ">datetime64[h]",
59-
"datetime64[m]", "=datetime64[m]", "<datetime64[m]", ">datetime64[m]",
60-
"datetime64[s]", "=datetime64[s]", "<datetime64[s]", ">datetime64[s]",
61-
"datetime64[ms]", "=datetime64[ms]", "<datetime64[ms]", ">datetime64[ms]",
62-
"datetime64[us]", "=datetime64[us]", "<datetime64[us]", ">datetime64[us]",
63-
"datetime64[ns]", "=datetime64[ns]", "<datetime64[ns]", ">datetime64[ns]",
64-
"datetime64[ps]", "=datetime64[ps]", "<datetime64[ps]", ">datetime64[ps]",
65-
"datetime64[fs]", "=datetime64[fs]", "<datetime64[fs]", ">datetime64[fs]",
66-
"datetime64[as]", "=datetime64[as]", "<datetime64[as]", ">datetime64[as]",
67-
"M", "=M", "<M", ">M",
68-
"M8", "=M8", "<M8", ">M8",
69-
"M8[Y]", "=M8[Y]", "<M8[Y]", ">M8[Y]",
70-
"M8[M]", "=M8[M]", "<M8[M]", ">M8[M]",
71-
"M8[W]", "=M8[W]", "<M8[W]", ">M8[W]",
72-
"M8[D]", "=M8[D]", "<M8[D]", ">M8[D]",
73-
"M8[h]", "=M8[h]", "<M8[h]", ">M8[h]",
74-
"M8[m]", "=M8[m]", "<M8[m]", ">M8[m]",
75-
"M8[s]", "=M8[s]", "<M8[s]", ">M8[s]",
76-
"M8[ms]", "=M8[ms]", "<M8[ms]", ">M8[ms]",
77-
"M8[us]", "=M8[us]", "<M8[us]", ">M8[us]",
78-
"M8[ns]", "=M8[ns]", "<M8[ns]", ">M8[ns]",
79-
"M8[ps]", "=M8[ps]", "<M8[ps]", ">M8[ps]",
80-
"M8[fs]", "=M8[fs]", "<M8[fs]", ">M8[fs]",
81-
"M8[as]", "=M8[as]", "<M8[as]", ">M8[as]",
53+
"datetime64", "|datetime64", "=datetime64",
54+
"<datetime64", ">datetime64",
55+
"datetime64[Y]", "|datetime64[Y]", "=datetime64[Y]",
56+
"<datetime64[Y]", ">datetime64[Y]",
57+
"datetime64[M]", "|datetime64[M]", "=datetime64[M]",
58+
"<datetime64[M]", ">datetime64[M]",
59+
"datetime64[W]", "|datetime64[W]", "=datetime64[W]",
60+
"<datetime64[W]", ">datetime64[W]",
61+
"datetime64[D]", "|datetime64[D]", "=datetime64[D]",
62+
"<datetime64[D]", ">datetime64[D]",
63+
"datetime64[h]", "|datetime64[h]", "=datetime64[h]",
64+
"<datetime64[h]", ">datetime64[h]",
65+
"datetime64[m]", "|datetime64[m]", "=datetime64[m]",
66+
"<datetime64[m]", ">datetime64[m]",
67+
"datetime64[s]", "|datetime64[s]", "=datetime64[s]",
68+
"<datetime64[s]", ">datetime64[s]",
69+
"datetime64[ms]", "|datetime64[ms]", "=datetime64[ms]",
70+
"<datetime64[ms]", ">datetime64[ms]",
71+
"datetime64[us]", "|datetime64[us]", "=datetime64[us]",
72+
"<datetime64[us]", ">datetime64[us]",
73+
"datetime64[ns]", "|datetime64[ns]", "=datetime64[ns]",
74+
"<datetime64[ns]", ">datetime64[ns]",
75+
"datetime64[ps]", "|datetime64[ps]", "=datetime64[ps]",
76+
"<datetime64[ps]", ">datetime64[ps]",
77+
"datetime64[fs]", "|datetime64[fs]", "=datetime64[fs]",
78+
"<datetime64[fs]", ">datetime64[fs]",
79+
"datetime64[as]", "|datetime64[as]", "=datetime64[as]",
80+
"<datetime64[as]", ">datetime64[as]",
81+
"M", "|M", "=M", "<M", ">M",
82+
"M8", "|M8", "=M8", "<M8", ">M8",
83+
"M8[Y]", "|M8[Y]", "=M8[Y]", "<M8[Y]", ">M8[Y]",
84+
"M8[M]", "|M8[M]", "=M8[M]", "<M8[M]", ">M8[M]",
85+
"M8[W]", "|M8[W]", "=M8[W]", "<M8[W]", ">M8[W]",
86+
"M8[D]", "|M8[D]", "=M8[D]", "<M8[D]", ">M8[D]",
87+
"M8[h]", "|M8[h]", "=M8[h]", "<M8[h]", ">M8[h]",
88+
"M8[m]", "|M8[m]", "=M8[m]", "<M8[m]", ">M8[m]",
89+
"M8[s]", "|M8[s]", "=M8[s]", "<M8[s]", ">M8[s]",
90+
"M8[ms]", "|M8[ms]", "=M8[ms]", "<M8[ms]", ">M8[ms]",
91+
"M8[us]", "|M8[us]", "=M8[us]", "<M8[us]", ">M8[us]",
92+
"M8[ns]", "|M8[ns]", "=M8[ns]", "<M8[ns]", ">M8[ns]",
93+
"M8[ps]", "|M8[ps]", "=M8[ps]", "<M8[ps]", ">M8[ps]",
94+
"M8[fs]", "|M8[fs]", "=M8[fs]", "<M8[fs]", ">M8[fs]",
95+
"M8[as]", "|M8[as]", "=M8[as]", "<M8[as]", ">M8[as]",
8296
]
8397
_TD64Codes = Literal[
84-
"timedelta64", "=timedelta64", "<timedelta64", ">timedelta64",
85-
"timedelta64[Y]", "=timedelta64[Y]", "<timedelta64[Y]", ">timedelta64[Y]",
86-
"timedelta64[M]", "=timedelta64[M]", "<timedelta64[M]", ">timedelta64[M]",
87-
"timedelta64[W]", "=timedelta64[W]", "<timedelta64[W]", ">timedelta64[W]",
88-
"timedelta64[D]", "=timedelta64[D]", "<timedelta64[D]", ">timedelta64[D]",
89-
"timedelta64[h]", "=timedelta64[h]", "<timedelta64[h]", ">timedelta64[h]",
90-
"timedelta64[m]", "=timedelta64[m]", "<timedelta64[m]", ">timedelta64[m]",
91-
"timedelta64[s]", "=timedelta64[s]", "<timedelta64[s]", ">timedelta64[s]",
92-
"timedelta64[ms]", "=timedelta64[ms]", "<timedelta64[ms]", ">timedelta64[ms]",
93-
"timedelta64[us]", "=timedelta64[us]", "<timedelta64[us]", ">timedelta64[us]",
94-
"timedelta64[ns]", "=timedelta64[ns]", "<timedelta64[ns]", ">timedelta64[ns]",
95-
"timedelta64[ps]", "=timedelta64[ps]", "<timedelta64[ps]", ">timedelta64[ps]",
96-
"timedelta64[fs]", "=timedelta64[fs]", "<timedelta64[fs]", ">timedelta64[fs]",
97-
"timedelta64[as]", "=timedelta64[as]", "<timedelta64[as]", ">timedelta64[as]",
98-
"m", "=m", "<m", ">m",
99-
"m8", "=m8", "<m8", ">m8",
100-
"m8[Y]", "=m8[Y]", "<m8[Y]", ">m8[Y]",
101-
"m8[M]", "=m8[M]", "<m8[M]", ">m8[M]",
102-
"m8[W]", "=m8[W]", "<m8[W]", ">m8[W]",
103-
"m8[D]", "=m8[D]", "<m8[D]", ">m8[D]",
104-
"m8[h]", "=m8[h]", "<m8[h]", ">m8[h]",
105-
"m8[m]", "=m8[m]", "<m8[m]", ">m8[m]",
106-
"m8[s]", "=m8[s]", "<m8[s]", ">m8[s]",
107-
"m8[ms]", "=m8[ms]", "<m8[ms]", ">m8[ms]",
108-
"m8[us]", "=m8[us]", "<m8[us]", ">m8[us]",
109-
"m8[ns]", "=m8[ns]", "<m8[ns]", ">m8[ns]",
110-
"m8[ps]", "=m8[ps]", "<m8[ps]", ">m8[ps]",
111-
"m8[fs]", "=m8[fs]", "<m8[fs]", ">m8[fs]",
112-
"m8[as]", "=m8[as]", "<m8[as]", ">m8[as]",
98+
"timedelta64", "|timedelta64", "=timedelta64",
99+
"<timedelta64", ">timedelta64",
100+
"timedelta64[Y]", "|timedelta64[Y]", "=timedelta64[Y]",
101+
"<timedelta64[Y]", ">timedelta64[Y]",
102+
"timedelta64[M]", "|timedelta64[M]", "=timedelta64[M]",
103+
"<timedelta64[M]", ">timedelta64[M]",
104+
"timedelta64[W]", "|timedelta64[W]", "=timedelta64[W]",
105+
"<timedelta64[W]", ">timedelta64[W]",
106+
"timedelta64[D]", "|timedelta64[D]", "=timedelta64[D]",
107+
"<timedelta64[D]", ">timedelta64[D]",
108+
"timedelta64[h]", "|timedelta64[h]", "=timedelta64[h]",
109+
"<timedelta64[h]", ">timedelta64[h]",
110+
"timedelta64[m]", "|timedelta64[m]", "=timedelta64[m]",
111+
"<timedelta64[m]", ">timedelta64[m]",
112+
"timedelta64[s]", "|timedelta64[s]", "=timedelta64[s]",
113+
"<timedelta64[s]", ">timedelta64[s]",
114+
"timedelta64[ms]", "|timedelta64[ms]", "=timedelta64[ms]",
115+
"<timedelta64[ms]", ">timedelta64[ms]",
116+
"timedelta64[us]", "|timedelta64[us]", "=timedelta64[us]",
117+
"<timedelta64[us]", ">timedelta64[us]",
118+
"timedelta64[ns]", "|timedelta64[ns]", "=timedelta64[ns]",
119+
"<timedelta64[ns]", ">timedelta64[ns]",
120+
"timedelta64[ps]", "|timedelta64[ps]", "=timedelta64[ps]",
121+
"<timedelta64[ps]", ">timedelta64[ps]",
122+
"timedelta64[fs]", "|timedelta64[fs]", "=timedelta64[fs]",
123+
"<timedelta64[fs]", ">timedelta64[fs]",
124+
"timedelta64[as]", "|timedelta64[as]", "=timedelta64[as]",
125+
"<timedelta64[as]", ">timedelta64[as]",
126+
"m", "|m", "=m", "<m", ">m",
127+
"m8", "|m8", "=m8", "<m8", ">m8",
128+
"m8[Y]", "|m8[Y]", "=m8[Y]", "<m8[Y]", ">m8[Y]",
129+
"m8[M]", "|m8[M]", "=m8[M]", "<m8[M]", ">m8[M]",
130+
"m8[W]", "|m8[W]", "=m8[W]", "<m8[W]", ">m8[W]",
131+
"m8[D]", "|m8[D]", "=m8[D]", "<m8[D]", ">m8[D]",
132+
"m8[h]", "|m8[h]", "=m8[h]", "<m8[h]", ">m8[h]",
133+
"m8[m]", "|m8[m]", "=m8[m]", "<m8[m]", ">m8[m]",
134+
"m8[s]", "|m8[s]", "=m8[s]", "<m8[s]", ">m8[s]",
135+
"m8[ms]", "|m8[ms]", "=m8[ms]", "<m8[ms]", ">m8[ms]",
136+
"m8[us]", "|m8[us]", "=m8[us]", "<m8[us]", ">m8[us]",
137+
"m8[ns]", "|m8[ns]", "=m8[ns]", "<m8[ns]", ">m8[ns]",
138+
"m8[ps]", "|m8[ps]", "=m8[ps]", "<m8[ps]", ">m8[ps]",
139+
"m8[fs]", "|m8[fs]", "=m8[fs]", "<m8[fs]", ">m8[fs]",
140+
"m8[as]", "|m8[as]", "=m8[as]", "<m8[as]", ">m8[as]",
113141
]

0 commit comments

Comments
 (0)