_char_codes.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. from typing import Literal
  2. _BoolCodes = Literal[
  3. "bool", "bool_",
  4. "?", "|?", "=?", "<?", ">?",
  5. "b1", "|b1", "=b1", "<b1", ">b1",
  6. ] # fmt: skip
  7. _UInt8Codes = Literal["uint8", "u1", "|u1", "=u1", "<u1", ">u1"]
  8. _UInt16Codes = Literal["uint16", "u2", "|u2", "=u2", "<u2", ">u2"]
  9. _UInt32Codes = Literal["uint32", "u4", "|u4", "=u4", "<u4", ">u4"]
  10. _UInt64Codes = Literal["uint64", "u8", "|u8", "=u8", "<u8", ">u8"]
  11. _Int8Codes = Literal["int8", "i1", "|i1", "=i1", "<i1", ">i1"]
  12. _Int16Codes = Literal["int16", "i2", "|i2", "=i2", "<i2", ">i2"]
  13. _Int32Codes = Literal["int32", "i4", "|i4", "=i4", "<i4", ">i4"]
  14. _Int64Codes = Literal["int64", "i8", "|i8", "=i8", "<i8", ">i8"]
  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"]
  18. _Complex64Codes = Literal["complex64", "c8", "|c8", "=c8", "<c8", ">c8"]
  19. _Complex128Codes = Literal["complex128", "c16", "|c16", "=c16", "<c16", ">c16"]
  20. _ByteCodes = Literal["byte", "b", "|b", "=b", "<b", ">b"]
  21. _ShortCodes = Literal["short", "h", "|h", "=h", "<h", ">h"]
  22. _IntCCodes = Literal["intc", "i", "|i", "=i", "<i", ">i"]
  23. _IntPCodes = Literal["intp", "int", "int_", "n", "|n", "=n", "<n", ">n"]
  24. _LongCodes = Literal["long", "l", "|l", "=l", "<l", ">l"]
  25. _IntCodes = _IntPCodes
  26. _LongLongCodes = Literal["longlong", "q", "|q", "=q", "<q", ">q"]
  27. _UByteCodes = Literal["ubyte", "B", "|B", "=B", "<B", ">B"]
  28. _UShortCodes = Literal["ushort", "H", "|H", "=H", "<H", ">H"]
  29. _UIntCCodes = Literal["uintc", "I", "|I", "=I", "<I", ">I"]
  30. _UIntPCodes = Literal["uintp", "uint", "N", "|N", "=N", "<N", ">N"]
  31. _ULongCodes = Literal["ulong", "L", "|L", "=L", "<L", ">L"]
  32. _UIntCodes = _UIntPCodes
  33. _ULongLongCodes = Literal["ulonglong", "Q", "|Q", "=Q", "<Q", ">Q"]
  34. _HalfCodes = Literal["half", "e", "|e", "=e", "<e", ">e"]
  35. _SingleCodes = Literal["single", "f", "|f", "=f", "<f", ">f"]
  36. _DoubleCodes = Literal["double", "float", "d", "|d", "=d", "<d", ">d"]
  37. _LongDoubleCodes = Literal["longdouble", "g", "|g", "=g", "<g", ">g"]
  38. _CSingleCodes = Literal["csingle", "F", "|F", "=F", "<F", ">F"]
  39. _CDoubleCodes = Literal["cdouble", "complex", "D", "|D", "=D", "<D", ">D"]
  40. _CLongDoubleCodes = Literal["clongdouble", "G", "|G", "=G", "<G", ">G"]
  41. _StrCodes = Literal["str", "str_", "unicode", "U", "|U", "=U", "<U", ">U"]
  42. _BytesCodes = Literal["bytes", "bytes_", "S", "|S", "=S", "<S", ">S"]
  43. _VoidCodes = Literal["void", "V", "|V", "=V", "<V", ">V"]
  44. _ObjectCodes = Literal["object", "object_", "O", "|O", "=O", "<O", ">O"]
  45. _DT64Codes = Literal[
  46. "datetime64", "|datetime64", "=datetime64",
  47. "<datetime64", ">datetime64",
  48. "datetime64[Y]", "|datetime64[Y]", "=datetime64[Y]",
  49. "<datetime64[Y]", ">datetime64[Y]",
  50. "datetime64[M]", "|datetime64[M]", "=datetime64[M]",
  51. "<datetime64[M]", ">datetime64[M]",
  52. "datetime64[W]", "|datetime64[W]", "=datetime64[W]",
  53. "<datetime64[W]", ">datetime64[W]",
  54. "datetime64[D]", "|datetime64[D]", "=datetime64[D]",
  55. "<datetime64[D]", ">datetime64[D]",
  56. "datetime64[h]", "|datetime64[h]", "=datetime64[h]",
  57. "<datetime64[h]", ">datetime64[h]",
  58. "datetime64[m]", "|datetime64[m]", "=datetime64[m]",
  59. "<datetime64[m]", ">datetime64[m]",
  60. "datetime64[s]", "|datetime64[s]", "=datetime64[s]",
  61. "<datetime64[s]", ">datetime64[s]",
  62. "datetime64[ms]", "|datetime64[ms]", "=datetime64[ms]",
  63. "<datetime64[ms]", ">datetime64[ms]",
  64. "datetime64[us]", "|datetime64[us]", "=datetime64[us]",
  65. "<datetime64[us]", ">datetime64[us]",
  66. "datetime64[ns]", "|datetime64[ns]", "=datetime64[ns]",
  67. "<datetime64[ns]", ">datetime64[ns]",
  68. "datetime64[ps]", "|datetime64[ps]", "=datetime64[ps]",
  69. "<datetime64[ps]", ">datetime64[ps]",
  70. "datetime64[fs]", "|datetime64[fs]", "=datetime64[fs]",
  71. "<datetime64[fs]", ">datetime64[fs]",
  72. "datetime64[as]", "|datetime64[as]", "=datetime64[as]",
  73. "<datetime64[as]", ">datetime64[as]",
  74. "M", "|M", "=M", "<M", ">M",
  75. "M8", "|M8", "=M8", "<M8", ">M8",
  76. "M8[Y]", "|M8[Y]", "=M8[Y]", "<M8[Y]", ">M8[Y]",
  77. "M8[M]", "|M8[M]", "=M8[M]", "<M8[M]", ">M8[M]",
  78. "M8[W]", "|M8[W]", "=M8[W]", "<M8[W]", ">M8[W]",
  79. "M8[D]", "|M8[D]", "=M8[D]", "<M8[D]", ">M8[D]",
  80. "M8[h]", "|M8[h]", "=M8[h]", "<M8[h]", ">M8[h]",
  81. "M8[m]", "|M8[m]", "=M8[m]", "<M8[m]", ">M8[m]",
  82. "M8[s]", "|M8[s]", "=M8[s]", "<M8[s]", ">M8[s]",
  83. "M8[ms]", "|M8[ms]", "=M8[ms]", "<M8[ms]", ">M8[ms]",
  84. "M8[us]", "|M8[us]", "=M8[us]", "<M8[us]", ">M8[us]",
  85. "M8[ns]", "|M8[ns]", "=M8[ns]", "<M8[ns]", ">M8[ns]",
  86. "M8[ps]", "|M8[ps]", "=M8[ps]", "<M8[ps]", ">M8[ps]",
  87. "M8[fs]", "|M8[fs]", "=M8[fs]", "<M8[fs]", ">M8[fs]",
  88. "M8[as]", "|M8[as]", "=M8[as]", "<M8[as]", ">M8[as]",
  89. ]
  90. _TD64Codes = Literal[
  91. "timedelta64", "|timedelta64", "=timedelta64",
  92. "<timedelta64", ">timedelta64",
  93. "timedelta64[Y]", "|timedelta64[Y]", "=timedelta64[Y]",
  94. "<timedelta64[Y]", ">timedelta64[Y]",
  95. "timedelta64[M]", "|timedelta64[M]", "=timedelta64[M]",
  96. "<timedelta64[M]", ">timedelta64[M]",
  97. "timedelta64[W]", "|timedelta64[W]", "=timedelta64[W]",
  98. "<timedelta64[W]", ">timedelta64[W]",
  99. "timedelta64[D]", "|timedelta64[D]", "=timedelta64[D]",
  100. "<timedelta64[D]", ">timedelta64[D]",
  101. "timedelta64[h]", "|timedelta64[h]", "=timedelta64[h]",
  102. "<timedelta64[h]", ">timedelta64[h]",
  103. "timedelta64[m]", "|timedelta64[m]", "=timedelta64[m]",
  104. "<timedelta64[m]", ">timedelta64[m]",
  105. "timedelta64[s]", "|timedelta64[s]", "=timedelta64[s]",
  106. "<timedelta64[s]", ">timedelta64[s]",
  107. "timedelta64[ms]", "|timedelta64[ms]", "=timedelta64[ms]",
  108. "<timedelta64[ms]", ">timedelta64[ms]",
  109. "timedelta64[us]", "|timedelta64[us]", "=timedelta64[us]",
  110. "<timedelta64[us]", ">timedelta64[us]",
  111. "timedelta64[ns]", "|timedelta64[ns]", "=timedelta64[ns]",
  112. "<timedelta64[ns]", ">timedelta64[ns]",
  113. "timedelta64[ps]", "|timedelta64[ps]", "=timedelta64[ps]",
  114. "<timedelta64[ps]", ">timedelta64[ps]",
  115. "timedelta64[fs]", "|timedelta64[fs]", "=timedelta64[fs]",
  116. "<timedelta64[fs]", ">timedelta64[fs]",
  117. "timedelta64[as]", "|timedelta64[as]", "=timedelta64[as]",
  118. "<timedelta64[as]", ">timedelta64[as]",
  119. "m", "|m", "=m", "<m", ">m",
  120. "m8", "|m8", "=m8", "<m8", ">m8",
  121. "m8[Y]", "|m8[Y]", "=m8[Y]", "<m8[Y]", ">m8[Y]",
  122. "m8[M]", "|m8[M]", "=m8[M]", "<m8[M]", ">m8[M]",
  123. "m8[W]", "|m8[W]", "=m8[W]", "<m8[W]", ">m8[W]",
  124. "m8[D]", "|m8[D]", "=m8[D]", "<m8[D]", ">m8[D]",
  125. "m8[h]", "|m8[h]", "=m8[h]", "<m8[h]", ">m8[h]",
  126. "m8[m]", "|m8[m]", "=m8[m]", "<m8[m]", ">m8[m]",
  127. "m8[s]", "|m8[s]", "=m8[s]", "<m8[s]", ">m8[s]",
  128. "m8[ms]", "|m8[ms]", "=m8[ms]", "<m8[ms]", ">m8[ms]",
  129. "m8[us]", "|m8[us]", "=m8[us]", "<m8[us]", ">m8[us]",
  130. "m8[ns]", "|m8[ns]", "=m8[ns]", "<m8[ns]", ">m8[ns]",
  131. "m8[ps]", "|m8[ps]", "=m8[ps]", "<m8[ps]", ">m8[ps]",
  132. "m8[fs]", "|m8[fs]", "=m8[fs]", "<m8[fs]", ">m8[fs]",
  133. "m8[as]", "|m8[as]", "=m8[as]", "<m8[as]", ">m8[as]",
  134. ]
  135. # NOTE: `StringDType' has no scalar type, and therefore has no name that can
  136. # be passed to the `dtype` constructor
  137. _StringCodes = Literal["T", "|T", "=T", "<T", ">T"]
  138. # NOTE: Nested literals get flattened and de-duplicated at runtime, which isn't
  139. # the case for a `Union` of `Literal`s.
  140. # So even though they're equivalent when type-checking, they differ at runtime.
  141. # Another advantage of nesting, is that they always have a "flat"
  142. # `Literal.__args__`, which is a tuple of *literally* all its literal values.
  143. _UnsignedIntegerCodes = Literal[
  144. _UInt8Codes,
  145. _UInt16Codes,
  146. _UInt32Codes,
  147. _UInt64Codes,
  148. _UIntCodes,
  149. _UByteCodes,
  150. _UShortCodes,
  151. _UIntCCodes,
  152. _ULongCodes,
  153. _ULongLongCodes,
  154. ]
  155. _SignedIntegerCodes = Literal[
  156. _Int8Codes,
  157. _Int16Codes,
  158. _Int32Codes,
  159. _Int64Codes,
  160. _IntCodes,
  161. _ByteCodes,
  162. _ShortCodes,
  163. _IntCCodes,
  164. _LongCodes,
  165. _LongLongCodes,
  166. ]
  167. _FloatingCodes = Literal[
  168. _Float16Codes,
  169. _Float32Codes,
  170. _Float64Codes,
  171. _LongDoubleCodes,
  172. _HalfCodes,
  173. _SingleCodes,
  174. _DoubleCodes,
  175. _LongDoubleCodes
  176. ]
  177. _ComplexFloatingCodes = Literal[
  178. _Complex64Codes,
  179. _Complex128Codes,
  180. _CSingleCodes,
  181. _CDoubleCodes,
  182. _CLongDoubleCodes,
  183. ]
  184. _IntegerCodes = Literal[_UnsignedIntegerCodes, _SignedIntegerCodes]
  185. _InexactCodes = Literal[_FloatingCodes, _ComplexFloatingCodes]
  186. _NumberCodes = Literal[_IntegerCodes, _InexactCodes]
  187. _CharacterCodes = Literal[_StrCodes, _BytesCodes]
  188. _FlexibleCodes = Literal[_VoidCodes, _CharacterCodes]
  189. _GenericCodes = Literal[
  190. _BoolCodes,
  191. _NumberCodes,
  192. _FlexibleCodes,
  193. _DT64Codes,
  194. _TD64Codes,
  195. _ObjectCodes,
  196. # TODO: add `_StringCodes` once it has a scalar type
  197. # _StringCodes,
  198. ]