tpy-lang 0.3.0.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. tpy_lang-0.3.0.dev0.dist-info/METADATA +151 -0
  2. tpy_lang-0.3.0.dev0.dist-info/RECORD +333 -0
  3. tpy_lang-0.3.0.dev0.dist-info/WHEEL +4 -0
  4. tpy_lang-0.3.0.dev0.dist-info/entry_points.txt +3 -0
  5. tpyc/__init__.py +104 -0
  6. tpyc/__main__.py +6 -0
  7. tpyc/_buildinfo.py +1 -0
  8. tpyc/_data/docs/LANGUAGE_FEATURES.md +6278 -0
  9. tpyc/_data/docs/STDLIB_ROADMAP.md +1258 -0
  10. tpyc/_data/docs/TPY_FOR_AGENTS.md +556 -0
  11. tpyc/_data/lib/tpy/_bindings/__init__.py +6 -0
  12. tpyc/_data/lib/tpy/_bindings/pcre2.py +173 -0
  13. tpyc/_data/lib/tpy/_bindings/posix_socket.py +161 -0
  14. tpyc/_data/lib/tpy/_functools_macros.py +80 -0
  15. tpyc/_data/lib/tpy/_macro_helpers.py +161 -0
  16. tpyc/_data/lib/tpy/argparse.py +2062 -0
  17. tpyc/_data/lib/tpy/asyncio/__init__.py +744 -0
  18. tpyc/_data/lib/tpy/asyncio/_executor.py +515 -0
  19. tpyc/_data/lib/tpy/base64.py +410 -0
  20. tpyc/_data/lib/tpy/bisect.py +39 -0
  21. tpyc/_data/lib/tpy/builtins.py +38 -0
  22. tpyc/_data/lib/tpy/dataclasses.py +354 -0
  23. tpyc/_data/lib/tpy/enum.py +23 -0
  24. tpyc/_data/lib/tpy/functools.py +33 -0
  25. tpyc/_data/lib/tpy/hashlib.py +206 -0
  26. tpyc/_data/lib/tpy/heapq.py +118 -0
  27. tpyc/_data/lib/tpy/io.py +395 -0
  28. tpyc/_data/lib/tpy/json.py +221 -0
  29. tpyc/_data/lib/tpy/math.py +406 -0
  30. tpyc/_data/lib/tpy/random.py +597 -0
  31. tpyc/_data/lib/tpy/re.py +467 -0
  32. tpyc/_data/lib/tpy/socket.py +379 -0
  33. tpyc/_data/lib/tpy/struct.py +178 -0
  34. tpyc/_data/lib/tpy/sys.py +40 -0
  35. tpyc/_data/lib/tpy/time.py +39 -0
  36. tpyc/_data/lib/tpy/tpy/__init__.py +78 -0
  37. tpyc/_data/lib/tpy/tpy/_bootstrap/__init__.py +10 -0
  38. tpyc/_data/lib/tpy/tpy/_bootstrap/_decorators.py +37 -0
  39. tpyc/_data/lib/tpy/tpy/_bootstrap/_extern.py +64 -0
  40. tpyc/_data/lib/tpy/tpy/_builtins/__init__.py +11 -0
  41. tpyc/_data/lib/tpy/tpy/_builtins/_bytes.py +378 -0
  42. tpyc/_data/lib/tpy/tpy/_builtins/_dict.py +151 -0
  43. tpyc/_data/lib/tpy/tpy/_builtins/_exceptions.py +125 -0
  44. tpyc/_data/lib/tpy/tpy/_builtins/_funcs.py +681 -0
  45. tpyc/_data/lib/tpy/tpy/_builtins/_io.py +97 -0
  46. tpyc/_data/lib/tpy/tpy/_builtins/_list.py +127 -0
  47. tpyc/_data/lib/tpy/tpy/_builtins/_range.py +52 -0
  48. tpyc/_data/lib/tpy/tpy/_builtins/_set.py +139 -0
  49. tpyc/_data/lib/tpy/tpy/_builtins/_super.py +11 -0
  50. tpyc/_data/lib/tpy/tpy/_builtins/_types.py +661 -0
  51. tpyc/_data/lib/tpy/tpy/_core/__init__.py +23 -0
  52. tpyc/_data/lib/tpy/tpy/_core/_bytes_view.py +129 -0
  53. tpyc/_data/lib/tpy/tpy/_core/_containers.py +137 -0
  54. tpyc/_data/lib/tpy/tpy/_core/_functions.py +40 -0
  55. tpyc/_data/lib/tpy/tpy/_core/_types.py +2061 -0
  56. tpyc/_data/lib/tpy/tpy/_typing/__init__.py +77 -0
  57. tpyc/_data/lib/tpy/tpy/_version.py +29 -0
  58. tpyc/_data/lib/tpy/tpy/bits.py +28 -0
  59. tpyc/_data/lib/tpy/tpy/coro/__init__.py +127 -0
  60. tpyc/_data/lib/tpy/tpy/extern.py +8 -0
  61. tpyc/_data/lib/tpy/tpy/mem.py +49 -0
  62. tpyc/_data/lib/tpy/tpy/unsafe.py +195 -0
  63. tpyc/_data/lib/tpy/tpy/version.py +21 -0
  64. tpyc/_data/lib/tpy/typing.py +13 -0
  65. tpyc/_data/runtime/cpp/include/tpy/any.hpp +461 -0
  66. tpyc/_data/runtime/cpp/include/tpy/as_ostream.hpp +117 -0
  67. tpyc/_data/runtime/cpp/include/tpy/async.hpp +76 -0
  68. tpyc/_data/runtime/cpp/include/tpy/bigint.hpp +1343 -0
  69. tpyc/_data/runtime/cpp/include/tpy/builtins.hpp +400 -0
  70. tpyc/_data/runtime/cpp/include/tpy/bytes_ops.hpp +469 -0
  71. tpyc/_data/runtime/cpp/include/tpy/container_ops.hpp +487 -0
  72. tpyc/_data/runtime/cpp/include/tpy/copy_iter.hpp +82 -0
  73. tpyc/_data/runtime/cpp/include/tpy/core.hpp +558 -0
  74. tpyc/_data/runtime/cpp/include/tpy/dict_ops.hpp +289 -0
  75. tpyc/_data/runtime/cpp/include/tpy/dunder.hpp +750 -0
  76. tpyc/_data/runtime/cpp/include/tpy/dynamic.hpp +44 -0
  77. tpyc/_data/runtime/cpp/include/tpy/enum.hpp +40 -0
  78. tpyc/_data/runtime/cpp/include/tpy/file.hpp +245 -0
  79. tpyc/_data/runtime/cpp/include/tpy/fixed_int.hpp +317 -0
  80. tpyc/_data/runtime/cpp/include/tpy/format.hpp +954 -0
  81. tpyc/_data/runtime/cpp/include/tpy/frame_slot.hpp +120 -0
  82. tpyc/_data/runtime/cpp/include/tpy/generator.hpp +47 -0
  83. tpyc/_data/runtime/cpp/include/tpy/iterable_ops.hpp +122 -0
  84. tpyc/_data/runtime/cpp/include/tpy/itertools.hpp +749 -0
  85. tpyc/_data/runtime/cpp/include/tpy/next_iter.hpp +82 -0
  86. tpyc/_data/runtime/cpp/include/tpy/ordered_map.hpp +518 -0
  87. tpyc/_data/runtime/cpp/include/tpy/ordered_set.hpp +337 -0
  88. tpyc/_data/runtime/cpp/include/tpy/own_iter.hpp +54 -0
  89. tpyc/_data/runtime/cpp/include/tpy/pascal_graph_sdl.hpp +192 -0
  90. tpyc/_data/runtime/cpp/include/tpy/printing.hpp +302 -0
  91. tpyc/_data/runtime/cpp/include/tpy/protocols.hpp +61 -0
  92. tpyc/_data/runtime/cpp/include/tpy/range.hpp +115 -0
  93. tpyc/_data/runtime/cpp/include/tpy/ranges.hpp +212 -0
  94. tpyc/_data/runtime/cpp/include/tpy/set_ops.hpp +265 -0
  95. tpyc/_data/runtime/cpp/include/tpy/slice.hpp +47 -0
  96. tpyc/_data/runtime/cpp/include/tpy/span_iter.hpp +42 -0
  97. tpyc/_data/runtime/cpp/include/tpy/stdlib/math.hpp +41 -0
  98. tpyc/_data/runtime/cpp/include/tpy/stdlib/pcre2_h.hpp +96 -0
  99. tpyc/_data/runtime/cpp/include/tpy/stdlib/random.hpp +25 -0
  100. tpyc/_data/runtime/cpp/include/tpy/stdlib/socket_h.hpp +145 -0
  101. tpyc/_data/runtime/cpp/include/tpy/stdlib/time.hpp +62 -0
  102. tpyc/_data/runtime/cpp/include/tpy/system.hpp +121 -0
  103. tpyc/_data/runtime/cpp/include/tpy/throwable.hpp +55 -0
  104. tpyc/_data/runtime/cpp/include/tpy/tpy.hpp +156 -0
  105. tpyc/_data/runtime/cpp/include/tpy/type_name.hpp +77 -0
  106. tpyc/_data/runtime/cpp/include/tpy/type_traits.hpp +240 -0
  107. tpyc/_data/runtime/cpp/include/tpy/uninit_array_storage.hpp +250 -0
  108. tpyc/_data/runtime/cpp/include/tpy/uninit_heap_storage.hpp +277 -0
  109. tpyc/_data/runtime/cpp/include/tpy/varargs.hpp +174 -0
  110. tpyc/_data/runtime/cpp/include/tpy/variant_ref.hpp +118 -0
  111. tpyc/_data/runtime/cpp/src/stdlib/socket_impl.cpp +104 -0
  112. tpyc/_data/runtime/cpp/third_party/README.md +58 -0
  113. tpyc/_data/runtime/cpp/third_party/pcre2/AUTHORS +36 -0
  114. tpyc/_data/runtime/cpp/third_party/pcre2/CMakeLists.txt +1233 -0
  115. tpyc/_data/runtime/cpp/third_party/pcre2/COPYING +5 -0
  116. tpyc/_data/runtime/cpp/third_party/pcre2/ChangeLog +3097 -0
  117. tpyc/_data/runtime/cpp/third_party/pcre2/HACKING +853 -0
  118. tpyc/_data/runtime/cpp/third_party/pcre2/INSTALL +368 -0
  119. tpyc/_data/runtime/cpp/third_party/pcre2/LICENCE +94 -0
  120. tpyc/_data/runtime/cpp/third_party/pcre2/NEWS +492 -0
  121. tpyc/_data/runtime/cpp/third_party/pcre2/NON-AUTOTOOLS-BUILD +430 -0
  122. tpyc/_data/runtime/cpp/third_party/pcre2/README +956 -0
  123. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  124. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindEditline.cmake +16 -0
  125. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  126. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindReadline.cmake +29 -0
  127. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/pcre2-config-version.cmake.in +15 -0
  128. tpyc/_data/runtime/cpp/third_party/pcre2/cmake/pcre2-config.cmake.in +148 -0
  129. tpyc/_data/runtime/cpp/third_party/pcre2/config-cmake.h.in +56 -0
  130. tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-16.pc.in +13 -0
  131. tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-32.pc.in +13 -0
  132. tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-8.pc.in +13 -0
  133. tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-posix.pc.in +13 -0
  134. tpyc/_data/runtime/cpp/third_party/pcre2/pcre2-config.in +121 -0
  135. tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h +483 -0
  136. tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h.generic +483 -0
  137. tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h.in +460 -0
  138. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h +1010 -0
  139. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h.generic +1010 -0
  140. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h.in +1010 -0
  141. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_auto_possess.c +1371 -0
  142. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chartables.c +196 -0
  143. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chartables.c.dist +196 -0
  144. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chkdint.c +96 -0
  145. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_compile.c +11001 -0
  146. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_config.c +252 -0
  147. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_context.c +510 -0
  148. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_convert.c +1189 -0
  149. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_dfa_match.c +4119 -0
  150. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_dftables.c +297 -0
  151. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_error.c +345 -0
  152. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_extuni.c +162 -0
  153. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_find_bracket.c +219 -0
  154. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_fuzzsupport.c +792 -0
  155. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_internal.h +2084 -0
  156. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_intmodedep.h +940 -0
  157. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_compile.c +14972 -0
  158. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_match.c +200 -0
  159. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_misc.c +234 -0
  160. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_neon_inc.h +354 -0
  161. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_simd_inc.h +2355 -0
  162. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_test.c +2528 -0
  163. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_maketables.c +165 -0
  164. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_match.c +7777 -0
  165. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_match_data.c +185 -0
  166. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_newline.c +243 -0
  167. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ord2utf.c +120 -0
  168. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_pattern_info.c +432 -0
  169. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_printint.c +886 -0
  170. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_script_run.c +344 -0
  171. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_serialize.c +286 -0
  172. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_string_utils.c +237 -0
  173. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_study.c +1915 -0
  174. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_substitute.c +1009 -0
  175. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_substring.c +550 -0
  176. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_tables.c +234 -0
  177. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucd.c +5460 -0
  178. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucp.h +396 -0
  179. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucptables.c +1533 -0
  180. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_valid_utf.c +398 -0
  181. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_xclass.c +308 -0
  182. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2demo.c +497 -0
  183. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2grep.c +4606 -0
  184. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix.c +425 -0
  185. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix.h +187 -0
  186. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix_test.c +209 -0
  187. tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2test.c +9708 -0
  188. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorApple.c +137 -0
  189. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorCore.c +327 -0
  190. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorFreeBSD.c +89 -0
  191. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorPosix.c +62 -0
  192. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorWindows.c +40 -0
  193. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitProtExecAllocatorNetBSD.c +72 -0
  194. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitProtExecAllocatorPosix.c +172 -0
  195. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitWXExecAllocatorPosix.c +141 -0
  196. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitWXExecAllocatorWindows.c +102 -0
  197. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfig.h +142 -0
  198. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfigCPU.h +188 -0
  199. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfigInternal.h +907 -0
  200. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitLir.c +3561 -0
  201. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitLir.h +2466 -0
  202. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_32.c +4636 -0
  203. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_64.c +3491 -0
  204. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_T2_32.c +4302 -0
  205. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeLOONGARCH_64.c +3765 -0
  206. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_32.c +472 -0
  207. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_64.c +387 -0
  208. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_common.c +4259 -0
  209. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_32.c +485 -0
  210. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_64.c +719 -0
  211. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_common.c +3161 -0
  212. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_32.c +142 -0
  213. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_64.c +222 -0
  214. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_common.c +3121 -0
  215. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeS390X.c +4526 -0
  216. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_32.c +1685 -0
  217. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_64.c +1398 -0
  218. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_common.c +5001 -0
  219. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitSerialize.c +516 -0
  220. tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitUtils.c +344 -0
  221. tpyc/_data/runtime/cpp/third_party/pcre2.sources.txt +54 -0
  222. tpyc/_data/runtime/cpp/third_party/pcre2.vendor.json +7 -0
  223. tpyc/build/__init__.py +7 -0
  224. tpyc/build/pcre2.py +122 -0
  225. tpyc/build/third_party.py +413 -0
  226. tpyc/cli.py +822 -0
  227. tpyc/codegen_cpp/__init__.py +18 -0
  228. tpyc/codegen_cpp/builtins.py +484 -0
  229. tpyc/codegen_cpp/context.py +2064 -0
  230. tpyc/codegen_cpp/expressions.py +5940 -0
  231. tpyc/codegen_cpp/functions.py +1913 -0
  232. tpyc/codegen_cpp/gen_async.py +3258 -0
  233. tpyc/codegen_cpp/gen_generators.py +657 -0
  234. tpyc/codegen_cpp/generator.py +2258 -0
  235. tpyc/codegen_cpp/match.py +1997 -0
  236. tpyc/codegen_cpp/param_const.py +172 -0
  237. tpyc/codegen_cpp/protocols.py +907 -0
  238. tpyc/codegen_cpp/records.py +1654 -0
  239. tpyc/codegen_cpp/resumable_cfg.py +1651 -0
  240. tpyc/codegen_cpp/statements.py +4963 -0
  241. tpyc/codegen_cpp/string_dispatch.py +76 -0
  242. tpyc/codegen_cpp/test_context.py +46 -0
  243. tpyc/codegen_cpp/test_param_const.py +113 -0
  244. tpyc/codegen_cpp/test_resumable_cfg.py +182 -0
  245. tpyc/codegen_cpp/type_resolution.py +53 -0
  246. tpyc/codegen_cpp/types.py +436 -0
  247. tpyc/codegen_cpp/variant_access.py +135 -0
  248. tpyc/coercions.py +749 -0
  249. tpyc/compilation_context.py +57 -0
  250. tpyc/compiler.py +3945 -0
  251. tpyc/cycle_detection.py +358 -0
  252. tpyc/diagnostics.py +135 -0
  253. tpyc/dump_types.py +353 -0
  254. tpyc/frontend_diagnostics.py +47 -0
  255. tpyc/frontend_ir/__init__.py +140 -0
  256. tpyc/frontend_ir/lower.py +1098 -0
  257. tpyc/frontend_ir/nodes.py +718 -0
  258. tpyc/frontend_ir/resolver_adapter.py +151 -0
  259. tpyc/frontend_plugin.py +209 -0
  260. tpyc/install_docs.py +81 -0
  261. tpyc/liveness.py +756 -0
  262. tpyc/macro_api.py +1724 -0
  263. tpyc/macro_loader.py +497 -0
  264. tpyc/module_names.py +64 -0
  265. tpyc/modules/__init__.py +31 -0
  266. tpyc/modules/defs.py +89 -0
  267. tpyc/modules/registry.py +36 -0
  268. tpyc/modules/resolver.py +192 -0
  269. tpyc/modules/type_resolution.py +629 -0
  270. tpyc/namespace.py +172 -0
  271. tpyc/parse/__init__.py +84 -0
  272. tpyc/parse/imports.py +490 -0
  273. tpyc/parse/nodes.py +1732 -0
  274. tpyc/parse/parser.py +4043 -0
  275. tpyc/parse/resolve_refs.py +466 -0
  276. tpyc/parse/type_resolver.py +1060 -0
  277. tpyc/prescan.py +254 -0
  278. tpyc/qnames.py +149 -0
  279. tpyc/repl.py +529 -0
  280. tpyc/repl_backends.py +848 -0
  281. tpyc/sema/__init__.py +21 -0
  282. tpyc/sema/analyzer.py +3625 -0
  283. tpyc/sema/bound_check.py +72 -0
  284. tpyc/sema/builder_trace.py +684 -0
  285. tpyc/sema/calls.py +5406 -0
  286. tpyc/sema/compatibility.py +2107 -0
  287. tpyc/sema/context.py +1243 -0
  288. tpyc/sema/expressions.py +3737 -0
  289. tpyc/sema/flow_facts.py +199 -0
  290. tpyc/sema/init_tracker.py +150 -0
  291. tpyc/sema/list_literals.py +69 -0
  292. tpyc/sema/literal_utils.py +27 -0
  293. tpyc/sema/local_deduction.py +1088 -0
  294. tpyc/sema/macros.py +179 -0
  295. tpyc/sema/match.py +1177 -0
  296. tpyc/sema/method_expansion.py +347 -0
  297. tpyc/sema/methods.py +2197 -0
  298. tpyc/sema/mutation_propagation.py +268 -0
  299. tpyc/sema/narrowing.py +857 -0
  300. tpyc/sema/numeric_lattice.py +160 -0
  301. tpyc/sema/operators.py +402 -0
  302. tpyc/sema/overloads.py +841 -0
  303. tpyc/sema/protocols.py +1209 -0
  304. tpyc/sema/reach_analysis.py +202 -0
  305. tpyc/sema/registration.py +3156 -0
  306. tpyc/sema/scope_tracker.py +193 -0
  307. tpyc/sema/statements.py +4426 -0
  308. tpyc/sema/type_ops.py +1879 -0
  309. tpyc/sema/value_range.py +181 -0
  310. tpyc/symbol_binding.py +259 -0
  311. tpyc/test_c3_mro.py +208 -0
  312. tpyc/test_cli_argv.py +52 -0
  313. tpyc/test_compiler.py +559 -0
  314. tpyc/test_contains_type_param.py +101 -0
  315. tpyc/test_cycle_detection.py +221 -0
  316. tpyc/test_dump_types.py +225 -0
  317. tpyc/test_install_docs.py +65 -0
  318. tpyc/test_local_cpp_form.py +135 -0
  319. tpyc/test_macro_loader.py +76 -0
  320. tpyc/test_method_expansion.py +254 -0
  321. tpyc/test_nominal_identity.py +182 -0
  322. tpyc/test_overloads.py +410 -0
  323. tpyc/test_parse.py +303 -0
  324. tpyc/test_parse_type_ref.py +506 -0
  325. tpyc/test_parse_version_info.py +58 -0
  326. tpyc/test_reach_analysis.py +72 -0
  327. tpyc/test_ref_type.py +216 -0
  328. tpyc/test_send_sync_substitution.py +276 -0
  329. tpyc/test_tuple_mutation_propagation.py +206 -0
  330. tpyc/test_type_def_registry.py +1729 -0
  331. tpyc/test_union_types.py +195 -0
  332. tpyc/type_def_registry.py +975 -0
  333. tpyc/typesys.py +5104 -0
@@ -0,0 +1,661 @@
1
+ # tpy: native_module
2
+ # tpy: cpp_namespace("tpystd::builtins")
3
+ from .._typing import overload, Sized, Iterator, Iterable
4
+ from .._bootstrap._decorators import readonly, pure, error_return, Own
5
+ from .._core._types import (
6
+ Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64,
7
+ Char, String, StrView, Float32, AnyFixedInt,
8
+ Hashable, Representable, Stringable, NativeIterable, Truthy, Comparable, Equatable,
9
+ )
10
+ from .._bootstrap._extern import native, cpp_template, builtin_type
11
+
12
+ @builtin_type("builtins.bool")
13
+ @native("bool")
14
+ class bool(Equatable):
15
+ @overload
16
+ @cpp_template("false")
17
+ def __init__(self) -> None: ...
18
+ @overload
19
+ @cpp_template("{0}")
20
+ def __init__(self, x: bool) -> None: ...
21
+ @overload
22
+ @cpp_template("({0} != 0)")
23
+ def __init__(self, x: Int32) -> None: ...
24
+ @overload
25
+ @cpp_template("({0} != 0)")
26
+ def __init__(self, x: int) -> None: ...
27
+ @overload
28
+ @cpp_template("({0} != 0.0)")
29
+ def __init__(self, x: float) -> None: ...
30
+ @overload
31
+ @cpp_template("({0} != 0.0f)")
32
+ def __init__(self, x: Float32) -> None: ...
33
+ @overload
34
+ @cpp_template("(std::string_view({0}).size() != 0)")
35
+ def __init__(self, x: str) -> None: ...
36
+ @overload
37
+ @native("tpy::__bool__", function=True)
38
+ @readonly
39
+ @pure
40
+ def __init__(self, x: Truthy) -> None: ...
41
+
42
+ @cpp_template("{self}")
43
+ @readonly
44
+ @pure
45
+ def __bool__(self) -> bool: ...
46
+
47
+ @cpp_template("{self} == {0}")
48
+ @readonly
49
+ @pure
50
+ def __eq__(self, other: bool) -> bool: ...
51
+
52
+ @cpp_template("::tpy::__hash__({self})")
53
+ @readonly
54
+ @pure
55
+ def __hash__(self) -> UInt64: ...
56
+
57
+
58
+
59
+ @builtin_type("builtins.int")
60
+ @native("::tpy::BigInt")
61
+ class int(Comparable, Equatable):
62
+ @overload
63
+ @cpp_template("::tpy::BigInt()")
64
+ def __init__(self) -> None: ...
65
+ @overload
66
+ @cpp_template("{0}")
67
+ def __init__(self, x: int) -> None: ...
68
+ @overload
69
+ @cpp_template("::tpy::BigInt(static_cast<int64_t>({0}))")
70
+ def __init__(self, x: Int8) -> None: ...
71
+ @overload
72
+ @cpp_template("::tpy::BigInt(static_cast<int64_t>({0}))")
73
+ def __init__(self, x: Int16) -> None: ...
74
+ @overload
75
+ @cpp_template("::tpy::BigInt(static_cast<int64_t>({0}))")
76
+ def __init__(self, x: Int32) -> None: ...
77
+ @overload
78
+ @cpp_template("::tpy::BigInt(static_cast<int64_t>({0}))")
79
+ def __init__(self, x: Int64) -> None: ...
80
+ @overload
81
+ @cpp_template("::tpy::BigInt(static_cast<uint64_t>({0}))")
82
+ def __init__(self, x: UInt8) -> None: ...
83
+ @overload
84
+ @cpp_template("::tpy::BigInt(static_cast<uint64_t>({0}))")
85
+ def __init__(self, x: UInt16) -> None: ...
86
+ @overload
87
+ @cpp_template("::tpy::BigInt(static_cast<uint64_t>({0}))")
88
+ def __init__(self, x: UInt32) -> None: ...
89
+ @overload
90
+ @cpp_template("::tpy::BigInt(static_cast<uint64_t>({0}))")
91
+ def __init__(self, x: UInt64) -> None: ...
92
+ @overload
93
+ @native("tpy::BigInt::from_float", function=True)
94
+ def __init__(self, x: float) -> None: ...
95
+ @overload
96
+ @native("tpy::BigInt::from_str", function=True)
97
+ def __init__(self, x: str) -> None: ...
98
+ @overload
99
+ @cpp_template("::tpy::BigInt(static_cast<int32_t>({0}))")
100
+ def __init__(self, x: bool) -> None: ...
101
+ @overload
102
+ @cpp_template("::tpy::BigInt(static_cast<int32_t>({0}))")
103
+ def __init__(self, x: Char) -> None: ...
104
+ @cpp_template("({self}) + ({0})")
105
+ def __add__(self, other: int) -> int: ...
106
+ @cpp_template("({self}) - ({0})")
107
+ def __sub__(self, other: int) -> int: ...
108
+ @cpp_template("({self}) * ({0})")
109
+ def __mul__(self, other: int) -> int: ...
110
+ @cpp_template("::tpy::truediv(static_cast<double>({self}), static_cast<double>({0}))")
111
+ def __truediv__(self, other: int) -> float: ...
112
+ @cpp_template("({self}) / ({0})")
113
+ def __floordiv__(self, other: int) -> int: ...
114
+ @cpp_template("({self}) % ({0})")
115
+ def __mod__(self, other: int) -> int: ...
116
+ @cpp_template("({self}).pow({0})")
117
+ def __pow__(self, other: int) -> int: ...
118
+ @cpp_template("({self}) << ({0})")
119
+ def __lshift__(self, other: int) -> int: ...
120
+ @cpp_template("({self}) >> ({0})")
121
+ def __rshift__(self, other: int) -> int: ...
122
+ @cpp_template("({self}) & ({0})")
123
+ def __and__(self, other: int) -> int: ...
124
+ @cpp_template("({self}) | ({0})")
125
+ def __or__(self, other: int) -> int: ...
126
+ @cpp_template("({self}) ^ ({0})")
127
+ def __xor__(self, other: int) -> int: ...
128
+ @cpp_template("({0}) + ({self})")
129
+ def __radd__(self, other: int) -> int: ...
130
+ @cpp_template("({0}) - ({self})")
131
+ def __rsub__(self, other: int) -> int: ...
132
+ @cpp_template("({0}) * ({self})")
133
+ def __rmul__(self, other: int) -> int: ...
134
+ @cpp_template("::tpy::truediv(static_cast<double>({0}), static_cast<double>({self}))")
135
+ def __rtruediv__(self, other: int) -> float: ...
136
+ @cpp_template("({0}) / ({self})")
137
+ def __rfloordiv__(self, other: int) -> int: ...
138
+ @cpp_template("({0}) % ({self})")
139
+ def __rmod__(self, other: int) -> int: ...
140
+ @cpp_template("({0}).pow({self})")
141
+ def __rpow__(self, other: int) -> int: ...
142
+ @cpp_template("({0}) << ({self})")
143
+ def __rlshift__(self, other: int) -> int: ...
144
+ @cpp_template("({0}) >> ({self})")
145
+ def __rrshift__(self, other: int) -> int: ...
146
+ @cpp_template("({0}) & ({self})")
147
+ def __rand__(self, other: int) -> int: ...
148
+ @cpp_template("({0}) | ({self})")
149
+ def __ror__(self, other: int) -> int: ...
150
+ @cpp_template("({0}) ^ ({self})")
151
+ def __rxor__(self, other: int) -> int: ...
152
+ @cpp_template("+({self})")
153
+ def __pos__(self) -> int: ...
154
+ @cpp_template("-({self})")
155
+ def __neg__(self) -> int: ...
156
+ @cpp_template("~({self})")
157
+ def __invert__(self) -> int: ...
158
+ @cpp_template("static_cast<bool>({self})")
159
+ @readonly
160
+ @pure
161
+ def __bool__(self) -> bool: ...
162
+ @cpp_template("::tpy::__hash__({self})")
163
+ @readonly
164
+ @pure
165
+ def __hash__(self) -> UInt64: ...
166
+ @cpp_template("{self} == {0}")
167
+ @readonly
168
+ @pure
169
+ def __eq__(self, other: int) -> bool: ...
170
+ @cpp_template("{self} < {0}")
171
+ @readonly
172
+ @pure
173
+ def __lt__(self, other: int) -> bool: ...
174
+ @cpp_template("({self}).bit_length()")
175
+ @readonly
176
+ @pure
177
+ def bit_length(self) -> Int32: ...
178
+
179
+
180
+ @builtin_type("builtins.float")
181
+ @native("double")
182
+ class float(Comparable, Equatable):
183
+ @overload
184
+ @cpp_template("0.0")
185
+ def __init__(self) -> None: ...
186
+ @overload
187
+ @cpp_template("{0}")
188
+ def __init__(self, x: float) -> None: ...
189
+ @overload
190
+ @cpp_template("static_cast<double>({0})")
191
+ def __init__(self, x: Int32) -> None: ...
192
+ @overload
193
+ @cpp_template("static_cast<double>({0})")
194
+ def __init__(self, x: int) -> None: ...
195
+ @overload
196
+ @cpp_template("static_cast<double>({0})")
197
+ def __init__(self, x: bool) -> None: ...
198
+ @overload
199
+ @cpp_template("static_cast<double>({0})")
200
+ def __init__(self, x: Float32) -> None: ...
201
+ @overload
202
+ @cpp_template("static_cast<double>({0})")
203
+ def __init__(self, x: Int8) -> None: ...
204
+ @overload
205
+ @cpp_template("static_cast<double>({0})")
206
+ def __init__(self, x: Int16) -> None: ...
207
+ @overload
208
+ @cpp_template("static_cast<double>({0})")
209
+ def __init__(self, x: Int64) -> None: ...
210
+ @overload
211
+ @cpp_template("static_cast<double>({0})")
212
+ def __init__(self, x: UInt8) -> None: ...
213
+ @overload
214
+ @cpp_template("static_cast<double>({0})")
215
+ def __init__(self, x: UInt16) -> None: ...
216
+ @overload
217
+ @cpp_template("static_cast<double>({0})")
218
+ def __init__(self, x: UInt32) -> None: ...
219
+ @overload
220
+ @cpp_template("static_cast<double>({0})")
221
+ def __init__(self, x: UInt64) -> None: ...
222
+ @overload
223
+ @native("tpy::float_from_str", function=True)
224
+ def __init__(self, x: str) -> None: ...
225
+ @overload
226
+ @cpp_template("({self}) + ({0})")
227
+ def __add__(self, other: float) -> float: ...
228
+ @overload
229
+ @cpp_template("({self}) + static_cast<double>({0})")
230
+ def __add__(self, other: int) -> float: ...
231
+ @overload
232
+ @cpp_template("({self}) + static_cast<double>({0})")
233
+ def __add__(self, other: Int32) -> float: ...
234
+ @overload
235
+ @cpp_template("({self}) - ({0})")
236
+ def __sub__(self, other: float) -> float: ...
237
+ @overload
238
+ @cpp_template("({self}) - static_cast<double>({0})")
239
+ def __sub__(self, other: int) -> float: ...
240
+ @overload
241
+ @cpp_template("({self}) - static_cast<double>({0})")
242
+ def __sub__(self, other: Int32) -> float: ...
243
+ @overload
244
+ @cpp_template("({self}) * ({0})")
245
+ def __mul__(self, other: float) -> float: ...
246
+ @overload
247
+ @cpp_template("({self}) * static_cast<double>({0})")
248
+ def __mul__(self, other: int) -> float: ...
249
+ @overload
250
+ @cpp_template("({self}) * static_cast<double>({0})")
251
+ def __mul__(self, other: Int32) -> float: ...
252
+ @overload
253
+ @cpp_template("::tpy::truediv({self}, {0})")
254
+ def __truediv__(self, other: float) -> float: ...
255
+ @overload
256
+ @cpp_template("::tpy::truediv({self}, static_cast<double>({0}))")
257
+ def __truediv__(self, other: int) -> float: ...
258
+ @overload
259
+ @cpp_template("::tpy::truediv({self}, static_cast<double>({0}))")
260
+ def __truediv__(self, other: Int32) -> float: ...
261
+ @overload
262
+ @cpp_template("::tpy::floordiv({self}, {0})")
263
+ def __floordiv__(self, other: float) -> float: ...
264
+ @overload
265
+ @cpp_template("::tpy::floordiv({self}, static_cast<double>({0}))")
266
+ def __floordiv__(self, other: int) -> float: ...
267
+ @overload
268
+ @cpp_template("::tpy::floordiv({self}, static_cast<double>({0}))")
269
+ def __floordiv__(self, other: Int32) -> float: ...
270
+ @overload
271
+ @cpp_template("::tpy::fmod({self}, {0})")
272
+ def __mod__(self, other: float) -> float: ...
273
+ @overload
274
+ @cpp_template("::tpy::fmod({self}, static_cast<double>({0}))")
275
+ def __mod__(self, other: int) -> float: ...
276
+ @overload
277
+ @cpp_template("::tpy::fmod({self}, static_cast<double>({0}))")
278
+ def __mod__(self, other: Int32) -> float: ...
279
+ @overload
280
+ @cpp_template("std::pow({self}, {0})")
281
+ def __pow__(self, other: float) -> float: ...
282
+ @overload
283
+ @cpp_template("std::pow({self}, static_cast<double>({0}))")
284
+ def __pow__(self, other: int) -> float: ...
285
+ @overload
286
+ @cpp_template("std::pow({self}, static_cast<double>({0}))")
287
+ def __pow__(self, other: Int32) -> float: ...
288
+ @cpp_template("+({self})")
289
+ def __pos__(self) -> float: ...
290
+ @cpp_template("-({self})")
291
+ def __neg__(self) -> float: ...
292
+ @overload
293
+ @cpp_template("({0}) + ({self})")
294
+ def __radd__(self, other: float) -> float: ...
295
+ @overload
296
+ @cpp_template("static_cast<double>({0}) + ({self})")
297
+ def __radd__(self, other: int) -> float: ...
298
+ @overload
299
+ @cpp_template("static_cast<double>({0}) + ({self})")
300
+ def __radd__(self, other: Int32) -> float: ...
301
+ @overload
302
+ @cpp_template("({0}) - ({self})")
303
+ def __rsub__(self, other: float) -> float: ...
304
+ @overload
305
+ @cpp_template("static_cast<double>({0}) - ({self})")
306
+ def __rsub__(self, other: int) -> float: ...
307
+ @overload
308
+ @cpp_template("static_cast<double>({0}) - ({self})")
309
+ def __rsub__(self, other: Int32) -> float: ...
310
+ @overload
311
+ @cpp_template("({0}) * ({self})")
312
+ def __rmul__(self, other: float) -> float: ...
313
+ @overload
314
+ @cpp_template("static_cast<double>({0}) * ({self})")
315
+ def __rmul__(self, other: int) -> float: ...
316
+ @overload
317
+ @cpp_template("static_cast<double>({0}) * ({self})")
318
+ def __rmul__(self, other: Int32) -> float: ...
319
+ @overload
320
+ @cpp_template("::tpy::truediv({0}, {self})")
321
+ def __rtruediv__(self, other: float) -> float: ...
322
+ @overload
323
+ @cpp_template("::tpy::truediv(static_cast<double>({0}), {self})")
324
+ def __rtruediv__(self, other: int) -> float: ...
325
+ @overload
326
+ @cpp_template("::tpy::truediv(static_cast<double>({0}), {self})")
327
+ def __rtruediv__(self, other: Int32) -> float: ...
328
+ @overload
329
+ @cpp_template("::tpy::floordiv({0}, {self})")
330
+ def __rfloordiv__(self, other: float) -> float: ...
331
+ @overload
332
+ @cpp_template("::tpy::floordiv(static_cast<double>({0}), {self})")
333
+ def __rfloordiv__(self, other: int) -> float: ...
334
+ @overload
335
+ @cpp_template("::tpy::floordiv(static_cast<double>({0}), {self})")
336
+ def __rfloordiv__(self, other: Int32) -> float: ...
337
+ @overload
338
+ @cpp_template("::tpy::fmod({0}, {self})")
339
+ def __rmod__(self, other: float) -> float: ...
340
+ @overload
341
+ @cpp_template("::tpy::fmod(static_cast<double>({0}), {self})")
342
+ def __rmod__(self, other: int) -> float: ...
343
+ @overload
344
+ @cpp_template("::tpy::fmod(static_cast<double>({0}), {self})")
345
+ def __rmod__(self, other: Int32) -> float: ...
346
+ @overload
347
+ @cpp_template("std::pow({0}, {self})")
348
+ def __rpow__(self, other: float) -> float: ...
349
+ @overload
350
+ @cpp_template("std::pow(static_cast<double>({0}), {self})")
351
+ def __rpow__(self, other: int) -> float: ...
352
+ @overload
353
+ @cpp_template("std::pow(static_cast<double>({0}), {self})")
354
+ def __rpow__(self, other: Int32) -> float: ...
355
+ @cpp_template("({self} != 0.0)")
356
+ @readonly
357
+ @pure
358
+ def __bool__(self) -> bool: ...
359
+ @cpp_template("::tpy::__hash__({self})")
360
+ @readonly
361
+ @pure
362
+ def __hash__(self) -> UInt64: ...
363
+ @cpp_template("{self} == {0}")
364
+ @readonly
365
+ @pure
366
+ def __eq__(self, other: float) -> bool: ...
367
+ @cpp_template("{self} < {0}")
368
+ @readonly
369
+ @pure
370
+ def __lt__(self, other: float) -> bool: ...
371
+ @builtin_type("builtins.str")
372
+ @native("std::string")
373
+ class str(NativeIterable[Char], Iterable[Char], Comparable, Equatable):
374
+ @overload
375
+ @cpp_template("std::string()")
376
+ def __init__(self) -> None: ...
377
+ @overload
378
+ @cpp_template("std::string({0})")
379
+ def __init__(self, x: str) -> None: ...
380
+ @overload
381
+ @cpp_template("std::string(::tpy::bool_to_str({0}))")
382
+ def __init__(self, x: bool) -> None: ...
383
+ @overload
384
+ @cpp_template("std::string(::tpy::char_to_str({0}))")
385
+ def __init__(self, x: Char) -> None: ...
386
+ @overload
387
+ @cpp_template("::tpy::fixed_to_str<int8_t>({0})")
388
+ def __init__(self, x: Int8) -> None: ...
389
+ @overload
390
+ @cpp_template("::tpy::fixed_to_str<int16_t>({0})")
391
+ def __init__(self, x: Int16) -> None: ...
392
+ @overload
393
+ @cpp_template("::tpy::fixed_to_str<int32_t>({0})")
394
+ def __init__(self, x: Int32) -> None: ...
395
+ @overload
396
+ @cpp_template("::tpy::fixed_to_str<int64_t>({0})")
397
+ def __init__(self, x: Int64) -> None: ...
398
+ @overload
399
+ @cpp_template("::tpy::fixed_to_str<uint8_t>({0})")
400
+ def __init__(self, x: UInt8) -> None: ...
401
+ @overload
402
+ @cpp_template("::tpy::fixed_to_str<uint16_t>({0})")
403
+ def __init__(self, x: UInt16) -> None: ...
404
+ @overload
405
+ @cpp_template("::tpy::fixed_to_str<uint32_t>({0})")
406
+ def __init__(self, x: UInt32) -> None: ...
407
+ @overload
408
+ @cpp_template("::tpy::fixed_to_str<uint64_t>({0})")
409
+ def __init__(self, x: UInt64) -> None: ...
410
+ @overload
411
+ @cpp_template("({0}).to_string()")
412
+ def __init__(self, x: int) -> None: ...
413
+ @overload
414
+ @native("tpy::float_to_str", function=True)
415
+ def __init__(self, x: float) -> None: ...
416
+ @overload
417
+ @cpp_template("::tpy::float_to_str(static_cast<double>({0}))")
418
+ def __init__(self, x: Float32) -> None: ...
419
+ @overload
420
+ @cpp_template("std::string(::tpy::__str__({0}))")
421
+ @readonly
422
+ @pure
423
+ def __init__(self, x: Stringable) -> None: ...
424
+
425
+ @cpp_template("::tpy::__iter__({self})")
426
+ @readonly
427
+ @pure
428
+ def __iter__(self) -> Iterator[Char]: ...
429
+
430
+ @cpp_template("static_cast<int32_t>({self}.size())")
431
+ @readonly
432
+ @pure
433
+ def __len__(self) -> Int32: ...
434
+
435
+ @overload
436
+ @cpp_template("::tpy::__getitem__({self}, {0})")
437
+ @readonly
438
+ @pure
439
+ def __getitem__(self, index: Int32) -> Char: ...
440
+
441
+ @overload
442
+ @cpp_template("::tpy::str_slice({self}, {0})")
443
+ @readonly
444
+ @pure
445
+ def __getitem__(self, index: basic_slice) -> StrView: ...
446
+
447
+ @overload
448
+ @cpp_template("::tpy::str_stepped_slice({self}, {0})")
449
+ @readonly
450
+ @pure
451
+ def __getitem__(self, index: slice) -> str: ...
452
+
453
+ @overload
454
+ @cpp_template("::tpy::str_concat({self}, {0})")
455
+ def __add__(self, other: str) -> String: ...
456
+ @overload
457
+ @cpp_template("::tpy::str_concat({self}, {0})")
458
+ def __add__(self, other: String) -> String: ...
459
+ @overload
460
+ @cpp_template("::tpy::str_concat({self}, {0})")
461
+ def __add__(self, other: StrView) -> String: ...
462
+ @overload
463
+ @cpp_template("::tpy::str_concat({self}, ::tpy::char_to_str({0}))")
464
+ def __add__(self, other: Char) -> String: ...
465
+
466
+ @cpp_template("::tpy::str_repeat({self}, {0})")
467
+ @readonly
468
+ @pure
469
+ def __mul__(self, n: Int32) -> str: ...
470
+
471
+ @cpp_template("::tpy::str_repeat({self}, {0})")
472
+ @readonly
473
+ @pure
474
+ def __rmul__(self, n: Int32) -> str: ...
475
+
476
+ @overload
477
+ @cpp_template("::tpy::str_split_whitespace({self})")
478
+ @readonly
479
+ @pure
480
+ def split(self) -> Own[list[str]]: ...
481
+ @overload
482
+ @cpp_template("::tpy::str_split({self}, {0})")
483
+ @readonly
484
+ @pure
485
+ def split(self, sep: str) -> Own[list[str]]: ...
486
+ @overload
487
+ @cpp_template("::tpy::str_split({self}, {0}, {1})")
488
+ @readonly
489
+ @pure
490
+ def split(self, sep: str, maxsplit: Int32) -> Own[list[str]]: ...
491
+
492
+ @cpp_template("::tpy::str_join({self}, {0})")
493
+ @readonly
494
+ @pure
495
+ def join(self, items: Iterable[str]) -> str: ...
496
+
497
+ @cpp_template("::tpy::str_strip({self})")
498
+ @readonly
499
+ @pure
500
+ def strip(self) -> StrView: ...
501
+
502
+ @cpp_template("::tpy::str_lstrip({self})")
503
+ @readonly
504
+ @pure
505
+ def lstrip(self) -> StrView: ...
506
+
507
+ @cpp_template("::tpy::str_rstrip({self})")
508
+ @readonly
509
+ @pure
510
+ def rstrip(self) -> StrView: ...
511
+
512
+ @cpp_template("::tpy::str_replace({self}, {0}, {1})")
513
+ @readonly
514
+ @pure
515
+ def replace(self, old: str, new: str) -> str: ...
516
+
517
+ @cpp_template("::tpy::str_find({self}, {0})")
518
+ @readonly
519
+ @pure
520
+ def find(self, sub: str) -> Int32: ...
521
+
522
+ @cpp_template("::tpy::str_rfind({self}, {0})")
523
+ @readonly
524
+ @pure
525
+ def rfind(self, sub: str) -> Int32: ...
526
+
527
+ @cpp_template("::tpy::str_index({self}, {0})")
528
+ @readonly
529
+ @pure
530
+ def index(self, sub: str) -> Int32: ...
531
+
532
+ @cpp_template("::tpy::str_startswith({self}, {0})")
533
+ @readonly
534
+ @pure
535
+ def startswith(self, prefix: str) -> bool: ...
536
+
537
+ @cpp_template("::tpy::str_endswith({self}, {0})")
538
+ @readonly
539
+ @pure
540
+ def endswith(self, suffix: str) -> bool: ...
541
+
542
+ @cpp_template("::tpy::str_upper({self})")
543
+ @readonly
544
+ @pure
545
+ def upper(self) -> str: ...
546
+
547
+ @cpp_template("::tpy::str_lower({self})")
548
+ @readonly
549
+ @pure
550
+ def lower(self) -> str: ...
551
+
552
+ @cpp_template("::tpy::str_count({self}, {0})")
553
+ @readonly
554
+ @pure
555
+ def count(self, sub: str) -> Int32: ...
556
+
557
+ @cpp_template("::tpy::str_isdigit({self})")
558
+ @readonly
559
+ @pure
560
+ def isdigit(self) -> bool: ...
561
+
562
+ @cpp_template("::tpy::str_isalpha({self})")
563
+ @readonly
564
+ @pure
565
+ def isalpha(self) -> bool: ...
566
+
567
+ @cpp_template("::tpy::str_isalnum({self})")
568
+ @readonly
569
+ @pure
570
+ def isalnum(self) -> bool: ...
571
+
572
+ @cpp_template("::tpy::str_isspace({self})")
573
+ @readonly
574
+ @pure
575
+ def isspace(self) -> bool: ...
576
+
577
+ @cpp_template("::tpy::str_isupper({self})")
578
+ @readonly
579
+ @pure
580
+ def isupper(self) -> bool: ...
581
+
582
+ @cpp_template("::tpy::str_islower({self})")
583
+ @readonly
584
+ @pure
585
+ def islower(self) -> bool: ...
586
+
587
+ @cpp_template("::tpy::str_capitalize({self})")
588
+ @readonly
589
+ @pure
590
+ def capitalize(self) -> str: ...
591
+
592
+ @cpp_template("::tpy::str_title({self})")
593
+ @readonly
594
+ @pure
595
+ def title(self) -> str: ...
596
+
597
+ @cpp_template("::tpy::str_swapcase({self})")
598
+ @readonly
599
+ @pure
600
+ def swapcase(self) -> str: ...
601
+
602
+ @cpp_template("::tpy::str_removeprefix({self}, {0})")
603
+ @readonly
604
+ @pure
605
+ def removeprefix(self, prefix: str) -> StrView: ...
606
+
607
+ @cpp_template("::tpy::str_removesuffix({self}, {0})")
608
+ @readonly
609
+ @pure
610
+ def removesuffix(self, suffix: str) -> StrView: ...
611
+
612
+ @cpp_template("::tpy::str_rindex({self}, {0})")
613
+ @readonly
614
+ @pure
615
+ def rindex(self, sub: str) -> Int32: ...
616
+
617
+ @cpp_template("::tpy::str_splitlines({self})")
618
+ @readonly
619
+ @pure
620
+ def splitlines(self) -> Own[list[str]]: ...
621
+
622
+ @native("tpy::bytes_from_str", function=True)
623
+ @readonly
624
+ @pure
625
+ def encode(self) -> bytes: ...
626
+
627
+ @cpp_template("(!{self}.empty())")
628
+ @readonly
629
+ @pure
630
+ def __bool__(self) -> bool: ...
631
+
632
+ @cpp_template("::tpy::__hash__({self})")
633
+ @readonly
634
+ @pure
635
+ def __hash__(self) -> UInt64: ...
636
+
637
+ @cpp_template("{self} == {0}")
638
+ @readonly
639
+ @pure
640
+ def __eq__(self, other: str) -> bool: ...
641
+
642
+ @cpp_template("{self} < {0}")
643
+ @readonly
644
+ @pure
645
+ def __lt__(self, other: str) -> bool: ...
646
+
647
+
648
+ @builtin_type("tpy.basic_slice")
649
+ @native("tpy::BasicSlice")
650
+ class basic_slice:
651
+ @cpp_template("::tpy::BasicSlice{{{0}, {1}}}")
652
+ @pure
653
+ def __init__(self, start: Int32 | None, stop: Int32 | None) -> None: ...
654
+
655
+
656
+ @builtin_type("builtins.slice")
657
+ @native("tpy::Slice")
658
+ class slice:
659
+ @cpp_template("::tpy::Slice{{{0}, {1}, {2}}}")
660
+ @pure
661
+ def __init__(self, start: Int32 | None, stop: Int32 | None, step: Int32 | None) -> None: ...
@@ -0,0 +1,23 @@
1
+ # tpy: native_module
2
+ from ._types import (
3
+ # Structural protocols
4
+ Truthy, Stringable, Representable, Hashable, Comparable, Equatable,
5
+ Deref, Spannable, Writable, Readable, BinaryWritable, BinaryReadable,
6
+ Seekable, Closable,
7
+ # Marker protocols
8
+ NativeIterable, NativeRangeConstructible, ValueType, Copyable, Send, Sync,
9
+ Default, Covariant, ReturnException,
10
+ # Fixed-width integer constraint protocols
11
+ AnyFixedInt, AnyFixedSigned, AnyFixedUnsigned,
12
+ # Primitive types
13
+ Float32,
14
+ Int8, Int16, Int32, Int64,
15
+ UInt8, UInt16, UInt32, UInt64,
16
+ Char, String, StrView, FStr,
17
+ # `Poll`'s body lives here for codegen-ordering reasons (see
18
+ # `_types.py`); its qname is `tpy.coro.Poll`.
19
+ Poll,
20
+ )
21
+ from ._bytes_view import BytesView
22
+ from ._containers import Span, Array, Ptr, SpanIter
23
+ from ._functions import span, deref, take_ptr, make_default, copy, copy_iter, own_iter, try_parse