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.
- tpy_lang-0.3.0.dev0.dist-info/METADATA +151 -0
- tpy_lang-0.3.0.dev0.dist-info/RECORD +333 -0
- tpy_lang-0.3.0.dev0.dist-info/WHEEL +4 -0
- tpy_lang-0.3.0.dev0.dist-info/entry_points.txt +3 -0
- tpyc/__init__.py +104 -0
- tpyc/__main__.py +6 -0
- tpyc/_buildinfo.py +1 -0
- tpyc/_data/docs/LANGUAGE_FEATURES.md +6278 -0
- tpyc/_data/docs/STDLIB_ROADMAP.md +1258 -0
- tpyc/_data/docs/TPY_FOR_AGENTS.md +556 -0
- tpyc/_data/lib/tpy/_bindings/__init__.py +6 -0
- tpyc/_data/lib/tpy/_bindings/pcre2.py +173 -0
- tpyc/_data/lib/tpy/_bindings/posix_socket.py +161 -0
- tpyc/_data/lib/tpy/_functools_macros.py +80 -0
- tpyc/_data/lib/tpy/_macro_helpers.py +161 -0
- tpyc/_data/lib/tpy/argparse.py +2062 -0
- tpyc/_data/lib/tpy/asyncio/__init__.py +744 -0
- tpyc/_data/lib/tpy/asyncio/_executor.py +515 -0
- tpyc/_data/lib/tpy/base64.py +410 -0
- tpyc/_data/lib/tpy/bisect.py +39 -0
- tpyc/_data/lib/tpy/builtins.py +38 -0
- tpyc/_data/lib/tpy/dataclasses.py +354 -0
- tpyc/_data/lib/tpy/enum.py +23 -0
- tpyc/_data/lib/tpy/functools.py +33 -0
- tpyc/_data/lib/tpy/hashlib.py +206 -0
- tpyc/_data/lib/tpy/heapq.py +118 -0
- tpyc/_data/lib/tpy/io.py +395 -0
- tpyc/_data/lib/tpy/json.py +221 -0
- tpyc/_data/lib/tpy/math.py +406 -0
- tpyc/_data/lib/tpy/random.py +597 -0
- tpyc/_data/lib/tpy/re.py +467 -0
- tpyc/_data/lib/tpy/socket.py +379 -0
- tpyc/_data/lib/tpy/struct.py +178 -0
- tpyc/_data/lib/tpy/sys.py +40 -0
- tpyc/_data/lib/tpy/time.py +39 -0
- tpyc/_data/lib/tpy/tpy/__init__.py +78 -0
- tpyc/_data/lib/tpy/tpy/_bootstrap/__init__.py +10 -0
- tpyc/_data/lib/tpy/tpy/_bootstrap/_decorators.py +37 -0
- tpyc/_data/lib/tpy/tpy/_bootstrap/_extern.py +64 -0
- tpyc/_data/lib/tpy/tpy/_builtins/__init__.py +11 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_bytes.py +378 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_dict.py +151 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_exceptions.py +125 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_funcs.py +681 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_io.py +97 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_list.py +127 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_range.py +52 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_set.py +139 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_super.py +11 -0
- tpyc/_data/lib/tpy/tpy/_builtins/_types.py +661 -0
- tpyc/_data/lib/tpy/tpy/_core/__init__.py +23 -0
- tpyc/_data/lib/tpy/tpy/_core/_bytes_view.py +129 -0
- tpyc/_data/lib/tpy/tpy/_core/_containers.py +137 -0
- tpyc/_data/lib/tpy/tpy/_core/_functions.py +40 -0
- tpyc/_data/lib/tpy/tpy/_core/_types.py +2061 -0
- tpyc/_data/lib/tpy/tpy/_typing/__init__.py +77 -0
- tpyc/_data/lib/tpy/tpy/_version.py +29 -0
- tpyc/_data/lib/tpy/tpy/bits.py +28 -0
- tpyc/_data/lib/tpy/tpy/coro/__init__.py +127 -0
- tpyc/_data/lib/tpy/tpy/extern.py +8 -0
- tpyc/_data/lib/tpy/tpy/mem.py +49 -0
- tpyc/_data/lib/tpy/tpy/unsafe.py +195 -0
- tpyc/_data/lib/tpy/tpy/version.py +21 -0
- tpyc/_data/lib/tpy/typing.py +13 -0
- tpyc/_data/runtime/cpp/include/tpy/any.hpp +461 -0
- tpyc/_data/runtime/cpp/include/tpy/as_ostream.hpp +117 -0
- tpyc/_data/runtime/cpp/include/tpy/async.hpp +76 -0
- tpyc/_data/runtime/cpp/include/tpy/bigint.hpp +1343 -0
- tpyc/_data/runtime/cpp/include/tpy/builtins.hpp +400 -0
- tpyc/_data/runtime/cpp/include/tpy/bytes_ops.hpp +469 -0
- tpyc/_data/runtime/cpp/include/tpy/container_ops.hpp +487 -0
- tpyc/_data/runtime/cpp/include/tpy/copy_iter.hpp +82 -0
- tpyc/_data/runtime/cpp/include/tpy/core.hpp +558 -0
- tpyc/_data/runtime/cpp/include/tpy/dict_ops.hpp +289 -0
- tpyc/_data/runtime/cpp/include/tpy/dunder.hpp +750 -0
- tpyc/_data/runtime/cpp/include/tpy/dynamic.hpp +44 -0
- tpyc/_data/runtime/cpp/include/tpy/enum.hpp +40 -0
- tpyc/_data/runtime/cpp/include/tpy/file.hpp +245 -0
- tpyc/_data/runtime/cpp/include/tpy/fixed_int.hpp +317 -0
- tpyc/_data/runtime/cpp/include/tpy/format.hpp +954 -0
- tpyc/_data/runtime/cpp/include/tpy/frame_slot.hpp +120 -0
- tpyc/_data/runtime/cpp/include/tpy/generator.hpp +47 -0
- tpyc/_data/runtime/cpp/include/tpy/iterable_ops.hpp +122 -0
- tpyc/_data/runtime/cpp/include/tpy/itertools.hpp +749 -0
- tpyc/_data/runtime/cpp/include/tpy/next_iter.hpp +82 -0
- tpyc/_data/runtime/cpp/include/tpy/ordered_map.hpp +518 -0
- tpyc/_data/runtime/cpp/include/tpy/ordered_set.hpp +337 -0
- tpyc/_data/runtime/cpp/include/tpy/own_iter.hpp +54 -0
- tpyc/_data/runtime/cpp/include/tpy/pascal_graph_sdl.hpp +192 -0
- tpyc/_data/runtime/cpp/include/tpy/printing.hpp +302 -0
- tpyc/_data/runtime/cpp/include/tpy/protocols.hpp +61 -0
- tpyc/_data/runtime/cpp/include/tpy/range.hpp +115 -0
- tpyc/_data/runtime/cpp/include/tpy/ranges.hpp +212 -0
- tpyc/_data/runtime/cpp/include/tpy/set_ops.hpp +265 -0
- tpyc/_data/runtime/cpp/include/tpy/slice.hpp +47 -0
- tpyc/_data/runtime/cpp/include/tpy/span_iter.hpp +42 -0
- tpyc/_data/runtime/cpp/include/tpy/stdlib/math.hpp +41 -0
- tpyc/_data/runtime/cpp/include/tpy/stdlib/pcre2_h.hpp +96 -0
- tpyc/_data/runtime/cpp/include/tpy/stdlib/random.hpp +25 -0
- tpyc/_data/runtime/cpp/include/tpy/stdlib/socket_h.hpp +145 -0
- tpyc/_data/runtime/cpp/include/tpy/stdlib/time.hpp +62 -0
- tpyc/_data/runtime/cpp/include/tpy/system.hpp +121 -0
- tpyc/_data/runtime/cpp/include/tpy/throwable.hpp +55 -0
- tpyc/_data/runtime/cpp/include/tpy/tpy.hpp +156 -0
- tpyc/_data/runtime/cpp/include/tpy/type_name.hpp +77 -0
- tpyc/_data/runtime/cpp/include/tpy/type_traits.hpp +240 -0
- tpyc/_data/runtime/cpp/include/tpy/uninit_array_storage.hpp +250 -0
- tpyc/_data/runtime/cpp/include/tpy/uninit_heap_storage.hpp +277 -0
- tpyc/_data/runtime/cpp/include/tpy/varargs.hpp +174 -0
- tpyc/_data/runtime/cpp/include/tpy/variant_ref.hpp +118 -0
- tpyc/_data/runtime/cpp/src/stdlib/socket_impl.cpp +104 -0
- tpyc/_data/runtime/cpp/third_party/README.md +58 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/AUTHORS +36 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/CMakeLists.txt +1233 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/COPYING +5 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/ChangeLog +3097 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/HACKING +853 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/INSTALL +368 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/LICENCE +94 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/NEWS +492 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/NON-AUTOTOOLS-BUILD +430 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/README +956 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindEditline.cmake +16 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/FindReadline.cmake +29 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/pcre2-config-version.cmake.in +15 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/cmake/pcre2-config.cmake.in +148 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/config-cmake.h.in +56 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-16.pc.in +13 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-32.pc.in +13 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-8.pc.in +13 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/libpcre2-posix.pc.in +13 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/pcre2-config.in +121 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h +483 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h.generic +483 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/config.h.in +460 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h +1010 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h.generic +1010 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2.h.in +1010 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_auto_possess.c +1371 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chartables.c +196 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chartables.c.dist +196 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_chkdint.c +96 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_compile.c +11001 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_config.c +252 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_context.c +510 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_convert.c +1189 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_dfa_match.c +4119 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_dftables.c +297 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_error.c +345 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_extuni.c +162 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_find_bracket.c +219 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_fuzzsupport.c +792 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_internal.h +2084 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_intmodedep.h +940 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_compile.c +14972 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_match.c +200 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_misc.c +234 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_neon_inc.h +354 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_simd_inc.h +2355 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_jit_test.c +2528 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_maketables.c +165 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_match.c +7777 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_match_data.c +185 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_newline.c +243 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ord2utf.c +120 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_pattern_info.c +432 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_printint.c +886 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_script_run.c +344 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_serialize.c +286 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_string_utils.c +237 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_study.c +1915 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_substitute.c +1009 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_substring.c +550 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_tables.c +234 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucd.c +5460 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucp.h +396 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_ucptables.c +1533 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_valid_utf.c +398 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2_xclass.c +308 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2demo.c +497 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2grep.c +4606 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix.c +425 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix.h +187 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2posix_test.c +209 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/pcre2test.c +9708 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorApple.c +137 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorCore.c +327 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorFreeBSD.c +89 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorPosix.c +62 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitExecAllocatorWindows.c +40 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitProtExecAllocatorNetBSD.c +72 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitProtExecAllocatorPosix.c +172 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitWXExecAllocatorPosix.c +141 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/allocator_src/sljitWXExecAllocatorWindows.c +102 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfig.h +142 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfigCPU.h +188 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitConfigInternal.h +907 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitLir.c +3561 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitLir.h +2466 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_32.c +4636 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_64.c +3491 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeARM_T2_32.c +4302 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeLOONGARCH_64.c +3765 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_32.c +472 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_64.c +387 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeMIPS_common.c +4259 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_32.c +485 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_64.c +719 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativePPC_common.c +3161 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_32.c +142 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_64.c +222 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeRISCV_common.c +3121 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeS390X.c +4526 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_32.c +1685 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_64.c +1398 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitNativeX86_common.c +5001 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitSerialize.c +516 -0
- tpyc/_data/runtime/cpp/third_party/pcre2/src/sljit/sljitUtils.c +344 -0
- tpyc/_data/runtime/cpp/third_party/pcre2.sources.txt +54 -0
- tpyc/_data/runtime/cpp/third_party/pcre2.vendor.json +7 -0
- tpyc/build/__init__.py +7 -0
- tpyc/build/pcre2.py +122 -0
- tpyc/build/third_party.py +413 -0
- tpyc/cli.py +822 -0
- tpyc/codegen_cpp/__init__.py +18 -0
- tpyc/codegen_cpp/builtins.py +484 -0
- tpyc/codegen_cpp/context.py +2064 -0
- tpyc/codegen_cpp/expressions.py +5940 -0
- tpyc/codegen_cpp/functions.py +1913 -0
- tpyc/codegen_cpp/gen_async.py +3258 -0
- tpyc/codegen_cpp/gen_generators.py +657 -0
- tpyc/codegen_cpp/generator.py +2258 -0
- tpyc/codegen_cpp/match.py +1997 -0
- tpyc/codegen_cpp/param_const.py +172 -0
- tpyc/codegen_cpp/protocols.py +907 -0
- tpyc/codegen_cpp/records.py +1654 -0
- tpyc/codegen_cpp/resumable_cfg.py +1651 -0
- tpyc/codegen_cpp/statements.py +4963 -0
- tpyc/codegen_cpp/string_dispatch.py +76 -0
- tpyc/codegen_cpp/test_context.py +46 -0
- tpyc/codegen_cpp/test_param_const.py +113 -0
- tpyc/codegen_cpp/test_resumable_cfg.py +182 -0
- tpyc/codegen_cpp/type_resolution.py +53 -0
- tpyc/codegen_cpp/types.py +436 -0
- tpyc/codegen_cpp/variant_access.py +135 -0
- tpyc/coercions.py +749 -0
- tpyc/compilation_context.py +57 -0
- tpyc/compiler.py +3945 -0
- tpyc/cycle_detection.py +358 -0
- tpyc/diagnostics.py +135 -0
- tpyc/dump_types.py +353 -0
- tpyc/frontend_diagnostics.py +47 -0
- tpyc/frontend_ir/__init__.py +140 -0
- tpyc/frontend_ir/lower.py +1098 -0
- tpyc/frontend_ir/nodes.py +718 -0
- tpyc/frontend_ir/resolver_adapter.py +151 -0
- tpyc/frontend_plugin.py +209 -0
- tpyc/install_docs.py +81 -0
- tpyc/liveness.py +756 -0
- tpyc/macro_api.py +1724 -0
- tpyc/macro_loader.py +497 -0
- tpyc/module_names.py +64 -0
- tpyc/modules/__init__.py +31 -0
- tpyc/modules/defs.py +89 -0
- tpyc/modules/registry.py +36 -0
- tpyc/modules/resolver.py +192 -0
- tpyc/modules/type_resolution.py +629 -0
- tpyc/namespace.py +172 -0
- tpyc/parse/__init__.py +84 -0
- tpyc/parse/imports.py +490 -0
- tpyc/parse/nodes.py +1732 -0
- tpyc/parse/parser.py +4043 -0
- tpyc/parse/resolve_refs.py +466 -0
- tpyc/parse/type_resolver.py +1060 -0
- tpyc/prescan.py +254 -0
- tpyc/qnames.py +149 -0
- tpyc/repl.py +529 -0
- tpyc/repl_backends.py +848 -0
- tpyc/sema/__init__.py +21 -0
- tpyc/sema/analyzer.py +3625 -0
- tpyc/sema/bound_check.py +72 -0
- tpyc/sema/builder_trace.py +684 -0
- tpyc/sema/calls.py +5406 -0
- tpyc/sema/compatibility.py +2107 -0
- tpyc/sema/context.py +1243 -0
- tpyc/sema/expressions.py +3737 -0
- tpyc/sema/flow_facts.py +199 -0
- tpyc/sema/init_tracker.py +150 -0
- tpyc/sema/list_literals.py +69 -0
- tpyc/sema/literal_utils.py +27 -0
- tpyc/sema/local_deduction.py +1088 -0
- tpyc/sema/macros.py +179 -0
- tpyc/sema/match.py +1177 -0
- tpyc/sema/method_expansion.py +347 -0
- tpyc/sema/methods.py +2197 -0
- tpyc/sema/mutation_propagation.py +268 -0
- tpyc/sema/narrowing.py +857 -0
- tpyc/sema/numeric_lattice.py +160 -0
- tpyc/sema/operators.py +402 -0
- tpyc/sema/overloads.py +841 -0
- tpyc/sema/protocols.py +1209 -0
- tpyc/sema/reach_analysis.py +202 -0
- tpyc/sema/registration.py +3156 -0
- tpyc/sema/scope_tracker.py +193 -0
- tpyc/sema/statements.py +4426 -0
- tpyc/sema/type_ops.py +1879 -0
- tpyc/sema/value_range.py +181 -0
- tpyc/symbol_binding.py +259 -0
- tpyc/test_c3_mro.py +208 -0
- tpyc/test_cli_argv.py +52 -0
- tpyc/test_compiler.py +559 -0
- tpyc/test_contains_type_param.py +101 -0
- tpyc/test_cycle_detection.py +221 -0
- tpyc/test_dump_types.py +225 -0
- tpyc/test_install_docs.py +65 -0
- tpyc/test_local_cpp_form.py +135 -0
- tpyc/test_macro_loader.py +76 -0
- tpyc/test_method_expansion.py +254 -0
- tpyc/test_nominal_identity.py +182 -0
- tpyc/test_overloads.py +410 -0
- tpyc/test_parse.py +303 -0
- tpyc/test_parse_type_ref.py +506 -0
- tpyc/test_parse_version_info.py +58 -0
- tpyc/test_reach_analysis.py +72 -0
- tpyc/test_ref_type.py +216 -0
- tpyc/test_send_sync_substitution.py +276 -0
- tpyc/test_tuple_mutation_propagation.py +206 -0
- tpyc/test_type_def_registry.py +1729 -0
- tpyc/test_union_types.py +195 -0
- tpyc/type_def_registry.py +975 -0
- tpyc/typesys.py +5104 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
# tpy: cpp_namespace("tpystd::tpy")
|
|
3
|
+
# _bootstrap must be imported before _core: _bootstrap._extern defines
|
|
4
|
+
# @builtin_decorator stubs whose arg schemas are needed when parsing
|
|
5
|
+
# decorator kwargs (e.g. @native(function=True)) in _core/_types.py.
|
|
6
|
+
from ._bootstrap import (
|
|
7
|
+
# Decorators / type modifiers
|
|
8
|
+
readonly, noalloc, nocopy, pure, inline, dynamic, error_return,
|
|
9
|
+
Own, Fn,
|
|
10
|
+
)
|
|
11
|
+
from ._core import (
|
|
12
|
+
# Structural protocols
|
|
13
|
+
Truthy, Stringable, Representable, Hashable, Comparable, Equatable,
|
|
14
|
+
Deref, Spannable, Writable, Readable, BinaryWritable, BinaryReadable,
|
|
15
|
+
Seekable, Closable,
|
|
16
|
+
# Marker protocols
|
|
17
|
+
NativeIterable, NativeRangeConstructible, ValueType, Copyable, Send, Sync,
|
|
18
|
+
Default, Covariant, ReturnException,
|
|
19
|
+
# Fixed-width integer constraint protocols
|
|
20
|
+
AnyFixedInt, AnyFixedSigned, AnyFixedUnsigned,
|
|
21
|
+
# Primitive types
|
|
22
|
+
Float32,
|
|
23
|
+
Int8, Int16, Int32, Int64,
|
|
24
|
+
UInt8, UInt16, UInt32, UInt64,
|
|
25
|
+
Char, String, StrView, FStr, BytesView,
|
|
26
|
+
# Container types
|
|
27
|
+
Span, Array, Ptr, SpanIter,
|
|
28
|
+
# Functions
|
|
29
|
+
span, deref, take_ptr, make_default,
|
|
30
|
+
copy, copy_iter, own_iter, try_parse,
|
|
31
|
+
)
|
|
32
|
+
# `Task` / `Waker` / `Poll` / `Awaitable` / `poll_*` are not re-exported
|
|
33
|
+
# here -- importing from `tpy` would force every consumer to include
|
|
34
|
+
# `tpystd/coro.hpp` transitively. Use `from tpy.coro import ...`.
|
|
35
|
+
from ._builtins._exceptions import CancelledError
|
|
36
|
+
from ._builtins._types import basic_slice
|
|
37
|
+
from ._builtins._io import BinaryIO, open_text, open_binary
|
|
38
|
+
|
|
39
|
+
type Float64 = float
|
|
40
|
+
|
|
41
|
+
# Version/implementation identification lives in `tpy.version` submodule:
|
|
42
|
+
# from tpy.version import __version__, version_info, is_compiled
|
|
43
|
+
# Not re-exported here because native_module facades don't propagate
|
|
44
|
+
# variable imports or transitive init chains.
|
|
45
|
+
|
|
46
|
+
__all__ = [
|
|
47
|
+
# Primitive types
|
|
48
|
+
"Int8", "Int16", "Int32", "Int64",
|
|
49
|
+
"UInt8", "UInt16", "UInt32", "UInt64",
|
|
50
|
+
"Float32", "Float64",
|
|
51
|
+
"Char", "String", "StrView", "FStr", "BytesView",
|
|
52
|
+
# Container types
|
|
53
|
+
"Span", "Array", "Ptr", "SpanIter",
|
|
54
|
+
# Slice types
|
|
55
|
+
"basic_slice",
|
|
56
|
+
# Pointer / ownership
|
|
57
|
+
"Own", "Fn",
|
|
58
|
+
# Decorators / type modifiers
|
|
59
|
+
"readonly", "noalloc", "nocopy", "pure", "inline", "dynamic", "error_return",
|
|
60
|
+
"auto_readonly", "auto_own", # parser keywords (no .py stub)
|
|
61
|
+
# Structural protocols
|
|
62
|
+
"Truthy", "Stringable", "Representable",
|
|
63
|
+
"Hashable", "Comparable", "Equatable",
|
|
64
|
+
"Deref", "Spannable", "Writable", "Readable",
|
|
65
|
+
"BinaryWritable", "BinaryReadable",
|
|
66
|
+
"Seekable", "Closable", "Default",
|
|
67
|
+
# Marker protocols
|
|
68
|
+
"NativeIterable", "NativeRangeConstructible",
|
|
69
|
+
"ValueType", "Copyable", "Send", "Sync", "Covariant", "ReturnException",
|
|
70
|
+
# Fixed-width integer constraint protocols
|
|
71
|
+
"AnyFixedInt", "AnyFixedSigned", "AnyFixedUnsigned",
|
|
72
|
+
# Functions
|
|
73
|
+
"span", "deref", "take_ptr", "make_default",
|
|
74
|
+
"copy", "copy_iter", "own_iter", "try_parse",
|
|
75
|
+
"CancelledError",
|
|
76
|
+
# I/O
|
|
77
|
+
"BinaryIO", "open_text", "open_binary",
|
|
78
|
+
]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
from ._extern import (
|
|
3
|
+
builtin_decorator, builtin_type,
|
|
4
|
+
native, cpp_template,
|
|
5
|
+
value_ptr_coercion, native_preserves_refs,
|
|
6
|
+
)
|
|
7
|
+
from ._decorators import (
|
|
8
|
+
readonly, noalloc, nocopy, pure, inline, dynamic, error_return,
|
|
9
|
+
Own, Fn,
|
|
10
|
+
)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
# tpy: cpp_namespace("tpystd::tpy")
|
|
3
|
+
# Decorator and type modifier stubs for import resolution.
|
|
4
|
+
# Type modifier stubs use @builtin_type so the compiler knows their
|
|
5
|
+
# qualified name (e.g. "tpy.Own"). Codegen skips them via is_keyword_stub.
|
|
6
|
+
# Decorator stubs use @builtin_decorator so the compiler resolves them
|
|
7
|
+
# by qualified name (e.g. "tpy.readonly"). Codegen skips via is_decorator_stub.
|
|
8
|
+
# Stub signatures define argument schemas -- the parser derives validation
|
|
9
|
+
# rules from params (type and default) instead of hardcoding them.
|
|
10
|
+
from ._extern import builtin_type, builtin_decorator
|
|
11
|
+
|
|
12
|
+
@builtin_type("tpy.Own")
|
|
13
|
+
class Own: ...
|
|
14
|
+
|
|
15
|
+
@builtin_type("tpy.Fn")
|
|
16
|
+
class Fn: ...
|
|
17
|
+
|
|
18
|
+
@builtin_decorator("tpy.readonly")
|
|
19
|
+
def readonly(is_readonly: bool = True): ...
|
|
20
|
+
|
|
21
|
+
@builtin_decorator("tpy.noalloc")
|
|
22
|
+
def noalloc(): ...
|
|
23
|
+
|
|
24
|
+
@builtin_decorator("tpy.nocopy")
|
|
25
|
+
def nocopy(): ...
|
|
26
|
+
|
|
27
|
+
@builtin_decorator("tpy.dynamic")
|
|
28
|
+
def dynamic(): ...
|
|
29
|
+
|
|
30
|
+
@builtin_decorator("tpy.pure")
|
|
31
|
+
def pure(): ...
|
|
32
|
+
|
|
33
|
+
@builtin_decorator("tpy.inline")
|
|
34
|
+
def inline(): ...
|
|
35
|
+
|
|
36
|
+
@builtin_decorator("tpy.error_return")
|
|
37
|
+
def error_return(exc_type: type): ...
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
# tpy: cpp_namespace("tpystd::tpy")
|
|
3
|
+
# Extern decorator stubs. builtin_decorator is the bootstrap primitive
|
|
4
|
+
# (auto-resolved within this module via _EXTERN_KEYWORDS). All other
|
|
5
|
+
# decorators are defined using @builtin_decorator.
|
|
6
|
+
|
|
7
|
+
@builtin_decorator("tpy.extern.builtin_decorator")
|
|
8
|
+
def builtin_decorator(key: str): ...
|
|
9
|
+
|
|
10
|
+
@builtin_decorator("tpy.extern.builtin_type")
|
|
11
|
+
def builtin_type(key: str): ...
|
|
12
|
+
|
|
13
|
+
@builtin_decorator("tpy.extern.builtin_function")
|
|
14
|
+
def builtin_function(key: str): ...
|
|
15
|
+
|
|
16
|
+
@builtin_decorator("tpy.extern.native")
|
|
17
|
+
def native(name: str = "", function: bool = False, binding: str = "",
|
|
18
|
+
cpp_return_type: type | None = None, indirecting: bool = False): ...
|
|
19
|
+
|
|
20
|
+
@builtin_decorator("tpy.extern.export")
|
|
21
|
+
def export(name: str = "", binding: str = ""): ...
|
|
22
|
+
|
|
23
|
+
# Prefer @native over @cpp_template -- use only when @native can't express the
|
|
24
|
+
# call (e.g. wrapping in a constructor, type cast, or non-trivial expression).
|
|
25
|
+
@builtin_decorator("tpy.extern.cpp_template")
|
|
26
|
+
def cpp_template(template: str): ...
|
|
27
|
+
|
|
28
|
+
@builtin_decorator("tpy.extern.value_ptr_coercion")
|
|
29
|
+
def value_ptr_coercion(): ...
|
|
30
|
+
|
|
31
|
+
@builtin_decorator("tpy.extern.native_preserves_refs")
|
|
32
|
+
def native_preserves_refs(): ...
|
|
33
|
+
|
|
34
|
+
# Workaround for Python 3.12 -- Python 3.13+ has native type param defaults
|
|
35
|
+
# (PEP 696): def round[T = int](x: float) -> T: ...
|
|
36
|
+
@builtin_decorator("tpy.extern.type_param_default")
|
|
37
|
+
def type_param_default(): ...
|
|
38
|
+
|
|
39
|
+
# Sentinel for @type_param_default: resolves to the configured --default-int type.
|
|
40
|
+
# TODO: make this a real type alias (e.g. `type DefaultInt = ...`) with compiler
|
|
41
|
+
# support, so it can be used in type annotations beyond @type_param_default.
|
|
42
|
+
@builtin_type("tpy.extern.DefaultInt")
|
|
43
|
+
class DefaultInt: pass
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# Native global variable declarations for C/C++ interop.
|
|
47
|
+
# TODO: design a macro function mechanism so these set variable properties
|
|
48
|
+
# (linkage, extern name) through the macro system instead of special handling.
|
|
49
|
+
@builtin_function("tpy.extern.native_global")
|
|
50
|
+
def native_global(name: str = "", binding: str = "", array: bool = False): ...
|
|
51
|
+
|
|
52
|
+
# Per-field C++ rename on @native classes. Used in the default-value slot of
|
|
53
|
+
# an annotated field on an @native class; the compiler extracts the rename
|
|
54
|
+
# string and drops the expression (no initializer is emitted for native fields).
|
|
55
|
+
@builtin_function("tpy.extern.native_field")
|
|
56
|
+
def native_field(name: str): ...
|
|
57
|
+
|
|
58
|
+
# Per-member C++ rename on @native enums. Used in the value slot of an enum
|
|
59
|
+
# member; the compiler extracts the rename string and treats the value as
|
|
60
|
+
# unspecified (the C++ side is the source of truth for the actual value).
|
|
61
|
+
# Useful when the C++ enumerator name clashes with a Python keyword
|
|
62
|
+
# (`None`, `True`, `False`) or follows a different naming convention.
|
|
63
|
+
@builtin_function("tpy.extern.native_member")
|
|
64
|
+
def native_member(name: str): ...
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
from ._exceptions import BaseException, Exception, ValueError, OSError, FileNotFoundError, AttributeError, AssertionError, IndexError, KeyError, ArithmeticError, ZeroDivisionError, OverflowError, TypeError, NotImplementedError, RuntimeError, MemoryError, StopIteration, StopAsyncIteration, TimeoutError, CancelledError
|
|
3
|
+
from ._range import Range, range
|
|
4
|
+
from ._funcs import len, repr, hash, chr, ord, abs, min, max, pow, divmod, next, iter, round, print, input, isinstance, all, any, sum, sorted, bin, hex, oct, enumerate, reversed, zip, map, filter, getattr, setattr, delattr, hasattr
|
|
5
|
+
from ._bytes import bytes, bytearray
|
|
6
|
+
from ._types import bool, int, float, str, slice
|
|
7
|
+
from ._list import list
|
|
8
|
+
from ._dict import dict, dict_keys, dict_values, dict_items
|
|
9
|
+
from ._set import set
|
|
10
|
+
from ._io import TextIO, BinaryIO, open, open_text, open_binary
|
|
11
|
+
from ._super import super
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
# tpy: native_module
|
|
2
|
+
# tpy: cpp_namespace("tpystd::builtins")
|
|
3
|
+
from .._typing import overload, Self, Iterator, Iterable
|
|
4
|
+
from .._bootstrap._decorators import readonly, pure, Own
|
|
5
|
+
from .._core._types import UInt8, UInt64, Int32, Equatable, NativeIterable
|
|
6
|
+
from .._bootstrap._extern import native, cpp_template, builtin_type
|
|
7
|
+
from tpy import BytesView
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@builtin_type("builtins.bytes")
|
|
11
|
+
@native("std::vector<uint8_t>")
|
|
12
|
+
class bytes(NativeIterable[UInt8], Iterable[UInt8], Equatable):
|
|
13
|
+
@overload
|
|
14
|
+
@cpp_template("std::vector<uint8_t>()")
|
|
15
|
+
def __init__(self) -> None: ...
|
|
16
|
+
@overload
|
|
17
|
+
@native("tpy::bytes_copy", function=True)
|
|
18
|
+
def __init__(self, x: bytes) -> None: ...
|
|
19
|
+
@overload
|
|
20
|
+
@native("tpy::bytes_copy", function=True)
|
|
21
|
+
def __init__(self, x: bytearray) -> None: ...
|
|
22
|
+
@overload
|
|
23
|
+
@native("tpy::bytes_copy", function=True)
|
|
24
|
+
def __init__(self, x: BytesView) -> None: ...
|
|
25
|
+
@overload
|
|
26
|
+
@native("tpy::bytes_from_size", function=True)
|
|
27
|
+
def __init__(self, x: Int32) -> None: ...
|
|
28
|
+
@overload
|
|
29
|
+
@cpp_template("::tpy::construct<std::vector<uint8_t>>({0})")
|
|
30
|
+
def __init__(self, x: Iterable[UInt8]) -> None: ...
|
|
31
|
+
# TODO(hot-path): the Int32 overload below is per-element range-checked.
|
|
32
|
+
@overload
|
|
33
|
+
@native("tpy::bytes_from_int_iterable", function=True)
|
|
34
|
+
def __init__(self, x: Iterable[Int32]) -> None: ...
|
|
35
|
+
|
|
36
|
+
@native("tpy::__iter__", function=True)
|
|
37
|
+
@readonly
|
|
38
|
+
@pure
|
|
39
|
+
def __iter__(self) -> Iterator[UInt8]: ...
|
|
40
|
+
|
|
41
|
+
@native("tpy::__len__", function=True)
|
|
42
|
+
@readonly
|
|
43
|
+
@pure
|
|
44
|
+
def __len__(self) -> Int32: ...
|
|
45
|
+
|
|
46
|
+
@overload
|
|
47
|
+
@native("tpy::bytes_getitem", function=True)
|
|
48
|
+
@readonly
|
|
49
|
+
@pure
|
|
50
|
+
def __getitem__(self, index: Int32) -> UInt8: ...
|
|
51
|
+
|
|
52
|
+
@overload
|
|
53
|
+
@cpp_template("::tpy::bytes_slice({self}, {0})")
|
|
54
|
+
@readonly
|
|
55
|
+
@pure
|
|
56
|
+
def __getitem__(self, index: basic_slice) -> BytesView: ...
|
|
57
|
+
|
|
58
|
+
@overload
|
|
59
|
+
@cpp_template("::tpy::bytes_stepped_slice({self}, {0})")
|
|
60
|
+
@readonly
|
|
61
|
+
@pure
|
|
62
|
+
def __getitem__(self, index: slice) -> bytes: ...
|
|
63
|
+
|
|
64
|
+
@overload
|
|
65
|
+
@native("tpy::bytes_contains", function=True)
|
|
66
|
+
@readonly
|
|
67
|
+
@pure
|
|
68
|
+
def __contains__(self, value: UInt8) -> bool: ...
|
|
69
|
+
@overload
|
|
70
|
+
@native("tpy::bytes_contains_sub", function=True)
|
|
71
|
+
@readonly
|
|
72
|
+
@pure
|
|
73
|
+
def __contains__(self, value: bytes) -> bool: ...
|
|
74
|
+
|
|
75
|
+
@overload
|
|
76
|
+
@native("tpy::bytes_concat", function=True)
|
|
77
|
+
@readonly
|
|
78
|
+
def __add__(self, other: bytes) -> bytes: ...
|
|
79
|
+
@overload
|
|
80
|
+
@native("tpy::bytes_concat", function=True)
|
|
81
|
+
@readonly
|
|
82
|
+
def __add__(self, other: bytearray) -> bytes: ...
|
|
83
|
+
@overload
|
|
84
|
+
@native("tpy::bytes_concat", function=True)
|
|
85
|
+
@readonly
|
|
86
|
+
def __add__(self, other: BytesView) -> bytes: ...
|
|
87
|
+
|
|
88
|
+
@native("tpy::bytes_repeat", function=True)
|
|
89
|
+
@readonly
|
|
90
|
+
@pure
|
|
91
|
+
def __mul__(self, n: Int32) -> bytes: ...
|
|
92
|
+
|
|
93
|
+
@native("tpy::bytes_repeat", function=True)
|
|
94
|
+
@readonly
|
|
95
|
+
@pure
|
|
96
|
+
def __rmul__(self, n: Int32) -> bytes: ...
|
|
97
|
+
|
|
98
|
+
@native("tpy::bytes_eq", function=True)
|
|
99
|
+
@readonly
|
|
100
|
+
@pure
|
|
101
|
+
def __eq__(self, other: bytes) -> bool: ...
|
|
102
|
+
|
|
103
|
+
@cpp_template("::tpy::__hash__({self})")
|
|
104
|
+
@readonly
|
|
105
|
+
@pure
|
|
106
|
+
def __hash__(self) -> UInt64: ...
|
|
107
|
+
|
|
108
|
+
@native("tpy::bytes_decode", function=True)
|
|
109
|
+
@readonly
|
|
110
|
+
@pure
|
|
111
|
+
def decode(self) -> str: ...
|
|
112
|
+
|
|
113
|
+
@native("tpy::bytes_hex", function=True)
|
|
114
|
+
@readonly
|
|
115
|
+
@pure
|
|
116
|
+
def hex(self) -> str: ...
|
|
117
|
+
|
|
118
|
+
@native("tpy::bytes_find", function=True)
|
|
119
|
+
@readonly
|
|
120
|
+
@pure
|
|
121
|
+
def find(self, sub: bytes) -> Int32: ...
|
|
122
|
+
|
|
123
|
+
@native("tpy::bytes_rfind", function=True)
|
|
124
|
+
@readonly
|
|
125
|
+
@pure
|
|
126
|
+
def rfind(self, sub: bytes) -> Int32: ...
|
|
127
|
+
|
|
128
|
+
@native("tpy::bytes_count", function=True)
|
|
129
|
+
@readonly
|
|
130
|
+
@pure
|
|
131
|
+
def count(self, sub: bytes) -> Int32: ...
|
|
132
|
+
|
|
133
|
+
@native("tpy::bytes_startswith", function=True)
|
|
134
|
+
@readonly
|
|
135
|
+
@pure
|
|
136
|
+
def startswith(self, prefix: bytes) -> bool: ...
|
|
137
|
+
|
|
138
|
+
@native("tpy::bytes_endswith", function=True)
|
|
139
|
+
@readonly
|
|
140
|
+
@pure
|
|
141
|
+
def endswith(self, suffix: bytes) -> bool: ...
|
|
142
|
+
|
|
143
|
+
@native("tpy::bytes_replace", function=True)
|
|
144
|
+
@readonly
|
|
145
|
+
@pure
|
|
146
|
+
def replace(self, old: bytes, new: bytes) -> bytes: ...
|
|
147
|
+
|
|
148
|
+
@native("tpy::bytes_split", function=True)
|
|
149
|
+
@readonly
|
|
150
|
+
@pure
|
|
151
|
+
def split(self, sep: bytes) -> Own[list[bytes]]: ...
|
|
152
|
+
|
|
153
|
+
@native("tpy::bytes_join", function=True)
|
|
154
|
+
@readonly
|
|
155
|
+
@pure
|
|
156
|
+
def join(self, items: Iterable[bytes]) -> bytes: ...
|
|
157
|
+
|
|
158
|
+
@native("tpy::bytes_strip", function=True)
|
|
159
|
+
@readonly
|
|
160
|
+
@pure
|
|
161
|
+
def strip(self) -> bytes: ...
|
|
162
|
+
|
|
163
|
+
@native("tpy::bytes_lstrip", function=True)
|
|
164
|
+
@readonly
|
|
165
|
+
@pure
|
|
166
|
+
def lstrip(self) -> bytes: ...
|
|
167
|
+
|
|
168
|
+
@overload
|
|
169
|
+
@native("tpy::bytes_rstrip", function=True)
|
|
170
|
+
@readonly
|
|
171
|
+
@pure
|
|
172
|
+
def rstrip(self) -> bytes: ...
|
|
173
|
+
@overload
|
|
174
|
+
@native("tpy::bytes_rstrip_chars", function=True)
|
|
175
|
+
@readonly
|
|
176
|
+
@pure
|
|
177
|
+
def rstrip(self, chars: bytes) -> bytes: ...
|
|
178
|
+
|
|
179
|
+
@native("tpy::bytes_upper", function=True)
|
|
180
|
+
@readonly
|
|
181
|
+
@pure
|
|
182
|
+
def upper(self) -> bytes: ...
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
@builtin_type("builtins.bytearray")
|
|
186
|
+
@native("std::vector<uint8_t>")
|
|
187
|
+
class bytearray(NativeIterable[UInt8], Iterable[UInt8], Equatable):
|
|
188
|
+
@overload
|
|
189
|
+
@cpp_template("std::vector<uint8_t>()")
|
|
190
|
+
def __init__(self) -> None: ...
|
|
191
|
+
# Concrete overloads first, same rationale as in `bytes` above.
|
|
192
|
+
@overload
|
|
193
|
+
@native("tpy::bytes_copy", function=True)
|
|
194
|
+
def __init__(self, x: bytes) -> None: ...
|
|
195
|
+
@overload
|
|
196
|
+
@native("tpy::bytes_copy", function=True)
|
|
197
|
+
def __init__(self, x: BytesView) -> None: ...
|
|
198
|
+
@overload
|
|
199
|
+
@native("tpy::bytes_copy", function=True)
|
|
200
|
+
def __init__(self, x: bytearray) -> None: ...
|
|
201
|
+
@overload
|
|
202
|
+
@native("tpy::bytes_from_size", function=True)
|
|
203
|
+
def __init__(self, x: Int32) -> None: ...
|
|
204
|
+
@overload
|
|
205
|
+
@cpp_template("::tpy::construct<std::vector<uint8_t>>({0})")
|
|
206
|
+
def __init__(self, x: Iterable[UInt8]) -> None: ...
|
|
207
|
+
# TODO(hot-path): the Int32 overload below is per-element range-checked.
|
|
208
|
+
@overload
|
|
209
|
+
@native("tpy::bytes_from_int_iterable", function=True)
|
|
210
|
+
def __init__(self, x: Iterable[Int32]) -> None: ...
|
|
211
|
+
|
|
212
|
+
@native("tpy::__iter__", function=True)
|
|
213
|
+
@readonly
|
|
214
|
+
@pure
|
|
215
|
+
def __iter__(self) -> Iterator[UInt8]: ...
|
|
216
|
+
|
|
217
|
+
@native("tpy::__len__", function=True)
|
|
218
|
+
@readonly
|
|
219
|
+
@pure
|
|
220
|
+
def __len__(self) -> Int32: ...
|
|
221
|
+
|
|
222
|
+
@overload
|
|
223
|
+
@native("tpy::bytes_getitem", function=True)
|
|
224
|
+
@readonly
|
|
225
|
+
@pure
|
|
226
|
+
def __getitem__(self, index: Int32) -> UInt8: ...
|
|
227
|
+
|
|
228
|
+
@overload
|
|
229
|
+
@cpp_template("::tpy::bytes_slice({self}, {0})")
|
|
230
|
+
@readonly
|
|
231
|
+
@pure
|
|
232
|
+
def __getitem__(self, index: basic_slice) -> BytesView: ...
|
|
233
|
+
|
|
234
|
+
@overload
|
|
235
|
+
@cpp_template("::tpy::bytes_stepped_slice({self}, {0})")
|
|
236
|
+
@readonly
|
|
237
|
+
@pure
|
|
238
|
+
def __getitem__(self, index: slice) -> bytes: ...
|
|
239
|
+
|
|
240
|
+
@overload
|
|
241
|
+
@native("tpy::bytes_contains", function=True)
|
|
242
|
+
@readonly
|
|
243
|
+
@pure
|
|
244
|
+
def __contains__(self, value: UInt8) -> bool: ...
|
|
245
|
+
@overload
|
|
246
|
+
@native("tpy::bytes_contains_sub", function=True)
|
|
247
|
+
@readonly
|
|
248
|
+
@pure
|
|
249
|
+
def __contains__(self, value: bytes) -> bool: ...
|
|
250
|
+
|
|
251
|
+
@native("tpy::bytearray_setitem", function=True)
|
|
252
|
+
def __setitem__(self, index: Int32, value: UInt8) -> None: ...
|
|
253
|
+
|
|
254
|
+
@overload
|
|
255
|
+
@native("tpy::bytes_concat", function=True)
|
|
256
|
+
@readonly
|
|
257
|
+
def __add__(self, other: bytes) -> bytearray: ...
|
|
258
|
+
@overload
|
|
259
|
+
@native("tpy::bytes_concat", function=True)
|
|
260
|
+
@readonly
|
|
261
|
+
def __add__(self, other: bytearray) -> bytearray: ...
|
|
262
|
+
@overload
|
|
263
|
+
@native("tpy::bytes_concat", function=True)
|
|
264
|
+
@readonly
|
|
265
|
+
def __add__(self, other: BytesView) -> bytearray: ...
|
|
266
|
+
|
|
267
|
+
@native("tpy::bytes_repeat", function=True)
|
|
268
|
+
@readonly
|
|
269
|
+
@pure
|
|
270
|
+
def __mul__(self, n: Int32) -> bytearray: ...
|
|
271
|
+
|
|
272
|
+
@native("tpy::bytes_eq", function=True)
|
|
273
|
+
@readonly
|
|
274
|
+
@pure
|
|
275
|
+
def __eq__(self, other: bytearray) -> bool: ...
|
|
276
|
+
|
|
277
|
+
@native("push_back")
|
|
278
|
+
def append(self, value: UInt8) -> None: ...
|
|
279
|
+
|
|
280
|
+
@overload
|
|
281
|
+
@native("tpy::extend", function=True)
|
|
282
|
+
def extend(self, other: Iterable[UInt8]) -> None: ...
|
|
283
|
+
# TODO(hot-path): the Int32 overload below is per-element range-checked.
|
|
284
|
+
@overload
|
|
285
|
+
@native("tpy::bytes_extend_int_iterable", function=True)
|
|
286
|
+
def extend(self, other: Iterable[Int32]) -> None: ...
|
|
287
|
+
|
|
288
|
+
@overload
|
|
289
|
+
@native("tpy::bytearray_pop", function=True)
|
|
290
|
+
def pop(self) -> UInt8: ...
|
|
291
|
+
@overload
|
|
292
|
+
@native("tpy::bytearray_pop_at", function=True)
|
|
293
|
+
def pop(self, index: Int32) -> UInt8: ...
|
|
294
|
+
|
|
295
|
+
@native
|
|
296
|
+
def clear(self) -> None: ...
|
|
297
|
+
|
|
298
|
+
@native("tpy::bytearray_insert", function=True)
|
|
299
|
+
def insert(self, index: Int32, value: UInt8) -> None: ...
|
|
300
|
+
|
|
301
|
+
@native("tpy::bytearray_remove", function=True)
|
|
302
|
+
def remove(self, value: UInt8) -> None: ...
|
|
303
|
+
|
|
304
|
+
@native("tpy::bytes_decode", function=True)
|
|
305
|
+
@readonly
|
|
306
|
+
@pure
|
|
307
|
+
def decode(self) -> str: ...
|
|
308
|
+
|
|
309
|
+
@native("tpy::bytes_hex", function=True)
|
|
310
|
+
@readonly
|
|
311
|
+
@pure
|
|
312
|
+
def hex(self) -> str: ...
|
|
313
|
+
|
|
314
|
+
@native("tpy::bytes_find", function=True)
|
|
315
|
+
@readonly
|
|
316
|
+
@pure
|
|
317
|
+
def find(self, sub: bytes) -> Int32: ...
|
|
318
|
+
|
|
319
|
+
@native("tpy::bytes_rfind", function=True)
|
|
320
|
+
@readonly
|
|
321
|
+
@pure
|
|
322
|
+
def rfind(self, sub: bytes) -> Int32: ...
|
|
323
|
+
|
|
324
|
+
@native("tpy::bytes_count", function=True)
|
|
325
|
+
@readonly
|
|
326
|
+
@pure
|
|
327
|
+
def count(self, sub: bytes) -> Int32: ...
|
|
328
|
+
|
|
329
|
+
@native("tpy::bytes_startswith", function=True)
|
|
330
|
+
@readonly
|
|
331
|
+
@pure
|
|
332
|
+
def startswith(self, prefix: bytes) -> bool: ...
|
|
333
|
+
|
|
334
|
+
@native("tpy::bytes_endswith", function=True)
|
|
335
|
+
@readonly
|
|
336
|
+
@pure
|
|
337
|
+
def endswith(self, suffix: bytes) -> bool: ...
|
|
338
|
+
|
|
339
|
+
@native("tpy::bytes_replace", function=True)
|
|
340
|
+
@readonly
|
|
341
|
+
@pure
|
|
342
|
+
def replace(self, old: bytes, new: bytes) -> bytes: ...
|
|
343
|
+
|
|
344
|
+
@native("tpy::bytes_split", function=True)
|
|
345
|
+
@readonly
|
|
346
|
+
@pure
|
|
347
|
+
def split(self, sep: bytes) -> Own[list[bytes]]: ...
|
|
348
|
+
|
|
349
|
+
@native("tpy::bytes_join", function=True)
|
|
350
|
+
@readonly
|
|
351
|
+
@pure
|
|
352
|
+
def join(self, items: Iterable[bytes]) -> bytes: ...
|
|
353
|
+
|
|
354
|
+
@native("tpy::bytes_strip", function=True)
|
|
355
|
+
@readonly
|
|
356
|
+
@pure
|
|
357
|
+
def strip(self) -> bytearray: ...
|
|
358
|
+
|
|
359
|
+
@native("tpy::bytes_lstrip", function=True)
|
|
360
|
+
@readonly
|
|
361
|
+
@pure
|
|
362
|
+
def lstrip(self) -> bytearray: ...
|
|
363
|
+
|
|
364
|
+
@overload
|
|
365
|
+
@native("tpy::bytes_rstrip", function=True)
|
|
366
|
+
@readonly
|
|
367
|
+
@pure
|
|
368
|
+
def rstrip(self) -> bytearray: ...
|
|
369
|
+
@overload
|
|
370
|
+
@native("tpy::bytes_rstrip_chars", function=True)
|
|
371
|
+
@readonly
|
|
372
|
+
@pure
|
|
373
|
+
def rstrip(self, chars: bytes) -> bytearray: ...
|
|
374
|
+
|
|
375
|
+
@native("tpy::bytes_upper", function=True)
|
|
376
|
+
@readonly
|
|
377
|
+
@pure
|
|
378
|
+
def upper(self) -> bytearray: ...
|