pytron-kit 0.3.12__py3-none-macosx_11_0_universal2.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.
- pytron/__init__.py +112 -0
- pytron/application.py +562 -0
- pytron/apputils/__init__.py +0 -0
- pytron/apputils/chrome_ipc.py +203 -0
- pytron/apputils/codegen.py +261 -0
- pytron/apputils/config.py +303 -0
- pytron/apputils/deadmansswitch.py +47 -0
- pytron/apputils/extras.py +76 -0
- pytron/apputils/native.py +148 -0
- pytron/apputils/shell.py +73 -0
- pytron/apputils/windows.py +286 -0
- pytron/cli.py +384 -0
- pytron/commands/__init__.py +0 -0
- pytron/commands/android.py +28 -0
- pytron/commands/build.py +26 -0
- pytron/commands/doctor.py +221 -0
- pytron/commands/engine.py +23 -0
- pytron/commands/frontend.py +60 -0
- pytron/commands/harvest.py +112 -0
- pytron/commands/helpers.py +239 -0
- pytron/commands/info.py +50 -0
- pytron/commands/init.py +521 -0
- pytron/commands/install.py +294 -0
- pytron/commands/login.py +130 -0
- pytron/commands/package.py +228 -0
- pytron/commands/plugin.py +442 -0
- pytron/commands/run.py +312 -0
- pytron/commands/scan.py +210 -0
- pytron/commands/show.py +23 -0
- pytron/commands/uninstall.py +150 -0
- pytron/commands/utils.py +42 -0
- pytron/commands/workflow.py +95 -0
- pytron/console.py +133 -0
- pytron/core.py +18 -0
- pytron/dependencies/WebView2Loader.dll +0 -0
- pytron/dependencies/__init__.py +1 -0
- pytron/dependencies/pytron_native.so +0 -0
- pytron/engines/chrome/adapter.py +445 -0
- pytron/engines/chrome/engine.py +576 -0
- pytron/engines/chrome/forge.py +147 -0
- pytron/engines/chrome/shell/package.json +8 -0
- pytron/engines/chrome/shell/preload.js +12 -0
- pytron/engines/chrome/shell/shell.js +534 -0
- pytron/exceptions.py +36 -0
- pytron/inspector.py +201 -0
- pytron/inspector_ui.py +512 -0
- pytron/installer/Installation.nsi +236 -0
- pytron/installer/header.bmp +0 -0
- pytron/installer/pytron.ico +0 -0
- pytron/installer/sidebar.bmp +0 -0
- pytron/llms.md +98 -0
- pytron/manifests/README.md +29 -0
- pytron/manifests/windows-utf8.manifest +44 -0
- pytron/menu.py +128 -0
- pytron/nsis-setup.exe +0 -0
- pytron/pack/__init__.py +0 -0
- pytron/pack/assets.py +131 -0
- pytron/pack/compilers.py +289 -0
- pytron/pack/crystal.py +297 -0
- pytron/pack/graph.py +377 -0
- pytron/pack/inference.py +157 -0
- pytron/pack/installers.py +402 -0
- pytron/pack/introspect.py +357 -0
- pytron/pack/metadata.py +213 -0
- pytron/pack/modules.py +618 -0
- pytron/pack/nuitka.py +108 -0
- pytron/pack/pipeline.py +107 -0
- pytron/pack/pyinstaller.py +176 -0
- pytron/pack/rust_engine.py +273 -0
- pytron/pack/secure.py +309 -0
- pytron/pack/secure_loader/bin/pytron_rust_bootloader +0 -0
- pytron/pack/secure_loader/icon.ico +0 -0
- pytron/pack/utils.py +110 -0
- pytron/pack/virtual_root.py +124 -0
- pytron/platforms/__init__.py +0 -0
- pytron/platforms/android/__init__.py +3 -0
- pytron/platforms/android/android.py +103 -0
- pytron/platforms/android/builder.py +736 -0
- pytron/platforms/android/ops/build.py +79 -0
- pytron/platforms/android/ops/init.py +63 -0
- pytron/platforms/android/ops/run.py +79 -0
- pytron/platforms/android/ops/sync.py +770 -0
- pytron/platforms/android/ops/utils.py +8 -0
- pytron/platforms/android/shell/README.md +30 -0
- pytron/platforms/android/shell/app/build.gradle +64 -0
- pytron/platforms/android/shell/app/src/main/AndroidManifest.xml +29 -0
- pytron/platforms/android/shell/app/src/main/assets/python/main.py +86 -0
- pytron/platforms/android/shell/app/src/main/assets/python/python314.zip +0 -0
- pytron/platforms/android/shell/app/src/main/cpp/CMakeLists.txt +25 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/Python.h +155 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/abstract.h +915 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/audit.h +30 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/bltinmodule.h +14 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/boolobject.h +54 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/bytearrayobject.h +44 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/bytesobject.h +66 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/ceval.h +145 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/codecs.h +176 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/compile.h +22 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/complexobject.h +30 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/abstract.h +104 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/audit.h +8 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytearrayobject.h +38 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytesobject.h +42 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/cellobject.h +50 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/ceval.h +43 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/classobject.h +71 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/code.h +340 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/compile.h +50 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/complexobject.h +33 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/context.h +107 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/critical_section.h +154 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/descrobject.h +62 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/dictobject.h +105 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileobject.h +16 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileutils.h +16 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/floatobject.h +27 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/frameobject.h +35 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/funcobject.h +185 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/genobject.h +56 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/import.h +30 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/initconfig.h +334 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/listobject.h +53 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/lock.h +74 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longintrepr.h +184 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longobject.h +89 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/memoryobject.h +50 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/methodobject.h +66 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/modsupport.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/monitoring.h +269 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/object.h +493 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/objimpl.h +104 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/odictobject.h +43 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/picklebufobject.h +31 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pthread_stubs.h +105 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic.h +614 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_gcc.h +615 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_msc.h +1197 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_std.h +1112 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyctype.h +39 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pydebug.h +38 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyerrors.h +132 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyfpe.h +15 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyframe.h +45 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyhash.h +54 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pylifecycle.h +89 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pymem.h +84 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystate.h +275 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystats.h +194 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythonrun.h +96 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythread.h +43 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pytime.h +27 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/setobject.h +71 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/traceback.h +13 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tracemalloc.h +32 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tupleobject.h +40 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/unicodeobject.h +773 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/warnings.h +20 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/cpython/weakrefobject.h +66 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/critical_section.h +16 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/datetime.h +267 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/descrobject.h +100 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/dictobject.h +108 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/dynamic_annotations.h +499 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/enumobject.h +17 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/errcode.h +45 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/exports.h +105 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/fileobject.h +41 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/fileutils.h +62 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/floatobject.h +54 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/frameobject.h +20 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/genericaliasobject.h +14 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/import.h +103 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/atomic.h +392 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/internal.h +969 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/prim.h +329 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/track.h +147 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/types.h +721 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc.h +565 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_abstract.h +61 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_asdl.h +112 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast.h +945 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast_state.h +271 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_atexit.h +31 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_audit.h +35 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_backoff.h +133 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bitutils.h +186 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_blocks_output_buffer.h +321 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_brc.h +73 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytes_methods.h +82 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytesobject.h +149 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_c_array.h +39 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_call.h +206 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_capsule.h +17 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_cell.h +75 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval.h +390 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval_state.h +48 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_code.h +671 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_codecs.h +76 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_compile.h +230 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_complexobject.h +34 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_condvar.h +93 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_context.h +59 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_critical_section.h +237 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp.h +406 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp_data_registry.h +41 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_debug_offsets.h +379 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_descrobject.h +28 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict.h +410 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict_state.h +28 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dtoa.h +40 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_signal.h +30 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_trampoline.h +70 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_exceptions.h +40 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_faulthandler.h +100 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils.h +320 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils_windows.h +98 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_floatobject.h +49 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_flowgraph.h +47 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_format.h +27 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_frame.h +61 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist.h +111 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist_state.h +70 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_function.h +53 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gc.h +378 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_genobject.h +43 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_getopt.h +22 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gil.h +66 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects.h +34 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects_fini_generated.h +1592 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_strings.h +854 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hamt.h +113 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hashtable.h +150 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_import.h +141 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_importdl.h +139 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_index_pool.h +36 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_initconfig.h +197 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruction_sequence.h +83 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruments.h +127 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp.h +109 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp_structs.h +977 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe.h +401 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe_structs.h +95 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpolation.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_intrinsics.h +51 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_jit.h +29 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_list.h +81 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_llist.h +106 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_lock.h +236 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_long.h +319 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_magic_number.h +305 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_memoryobject.h +20 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_mimalloc.h +69 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_modsupport.h +99 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_moduleobject.h +62 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_namespace.h +21 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object.h +1029 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_alloc.h +71 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_deferred.h +32 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_stack.h +95 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_state.h +49 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc.h +702 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc_init.h +66 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_metadata.h +2117 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_utils.h +90 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_optimizer.h +318 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parking_lot.h +97 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parser.h +78 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pathconfig.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyarena.h +68 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyatomic_ft_wrappers.h +174 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pybuffer.h +21 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyerrors.h +213 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyhash.h +91 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pylifecycle.h +136 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymath.h +205 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem.h +145 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem_init.h +103 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystate.h +339 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystats.h +21 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythonrun.h +68 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythread.h +172 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_qsbr.h +172 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_range.h +21 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime.h +63 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init.h +239 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init_generated.h +1589 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_structs.h +310 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_semaphore.h +67 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_setobject.h +41 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_signal.h +108 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sliceobject.h +20 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stackref.h +791 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stats.h +97 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_strhex.h +39 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structs.h +88 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structseq.h +40 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_symtable.h +201 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sysmodule.h +32 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_template.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_time.h +334 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_token.h +110 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_traceback.h +111 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tracemalloc.h +164 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tstate.h +88 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tuple.h +75 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typedefs.h +18 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typeobject.h +155 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typevarobject.h +28 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ucnhash.h +36 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject.h +308 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject_generated.h +3132 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unionobject.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uniqueid.h +57 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_ids.h +335 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_metadata.h +1204 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_warnings.h +21 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_weakref.h +133 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/intrcheck.h +23 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/iterobject.h +24 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/listobject.h +55 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/lock.h +16 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/longobject.h +178 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/marshal.h +31 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/memoryobject.h +34 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/methodobject.h +146 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/modsupport.h +146 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/moduleobject.h +122 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/monitoring.h +18 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/object.h +828 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/objimpl.h +211 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/opcode.h +43 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/opcode_ids.h +259 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/osdefs.h +57 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/osmodule.h +17 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/patchlevel.h +49 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/py_curses.h +117 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyatomic.h +16 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pybuffer.h +145 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pycapsule.h +58 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyconfig.h +2088 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pydtrace.h +59 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyerrors.h +335 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyexpat.h +62 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyframe.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyhash.h +59 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pylifecycle.h +80 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pymacconfig.h +91 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pymacro.h +243 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pymath.h +65 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pymem.h +110 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pyport.h +710 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pystate.h +132 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pystats.h +28 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pystrcmp.h +23 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pystrtod.h +37 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pythonrun.h +42 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pythread.h +131 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/pytypedefs.h +30 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/rangeobject.h +27 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/refcount.h +555 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/setobject.h +49 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/sliceobject.h +69 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/structmember.h +56 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/structseq.h +46 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/sysmodule.h +27 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/traceback.h +26 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/tupleobject.h +46 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/typeslots.h +96 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/unicodeobject.h +1029 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/warnings.h +45 -0
- pytron/platforms/android/shell/app/src/main/cpp/include/weakrefobject.h +46 -0
- pytron/platforms/android/shell/app/src/main/cpp/pytron_bridge.cpp +224 -0
- pytron/platforms/android/shell/app/src/main/java/com/pytron/shell/MainActivity.kt +208 -0
- pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- pytron/platforms/android/shell/build.gradle +11 -0
- pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.jar +0 -0
- pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.properties +5 -0
- pytron/platforms/android/shell/gradle.properties +2 -0
- pytron/platforms/android/shell/gradlew.bat +85 -0
- pytron/platforms/android/shell/settings.gradle +16 -0
- pytron/platforms/darwin.py +82 -0
- pytron/platforms/darwin_ops/libs.py +31 -0
- pytron/platforms/darwin_ops/system.py +182 -0
- pytron/platforms/darwin_ops/utils.py +85 -0
- pytron/platforms/darwin_ops/webview.py +5 -0
- pytron/platforms/darwin_ops/window.py +102 -0
- pytron/platforms/interface.py +152 -0
- pytron/platforms/linux.py +82 -0
- pytron/platforms/linux_ops/libs.py +49 -0
- pytron/platforms/linux_ops/system.py +316 -0
- pytron/platforms/linux_ops/utils.py +19 -0
- pytron/platforms/linux_ops/webview.py +5 -0
- pytron/platforms/linux_ops/window.py +115 -0
- pytron/platforms/windows.py +136 -0
- pytron/platforms/windows_ops/__init__.py +0 -0
- pytron/platforms/windows_ops/constants.py +126 -0
- pytron/platforms/windows_ops/system.py +518 -0
- pytron/platforms/windows_ops/utils.py +3 -0
- pytron/platforms/windows_ops/webview.py +5 -0
- pytron/platforms/windows_ops/window.py +361 -0
- pytron/plugin.py +467 -0
- pytron/rcedit-x64.exe +0 -0
- pytron/router.py +146 -0
- pytron/serializer.py +240 -0
- pytron/shortcuts.py +279 -0
- pytron/state.py +76 -0
- pytron/tray.py +399 -0
- pytron/updater.py +181 -0
- pytron/utf8_hook.py +112 -0
- pytron/utils.py +44 -0
- pytron/webview.py +722 -0
- pytron_kit-0.3.12.dist-info/METADATA +131 -0
- pytron_kit-0.3.12.dist-info/RECORD +419 -0
- pytron_kit-0.3.12.dist-info/WHEEL +5 -0
- pytron_kit-0.3.12.dist-info/entry_points.txt +2 -0
- pytron_kit-0.3.12.dist-info/licenses/LICENSE +201 -0
- pytron_kit-0.3.12.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#ifndef Py_CPYTHON_LOCK_H
|
|
2
|
+
# error "this header file must not be included directly"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
#define _Py_UNLOCKED 0
|
|
6
|
+
#define _Py_LOCKED 1
|
|
7
|
+
|
|
8
|
+
// A mutex that occupies one byte. The lock can be zero initialized to
|
|
9
|
+
// represent the unlocked state.
|
|
10
|
+
//
|
|
11
|
+
// Typical initialization:
|
|
12
|
+
// PyMutex m = (PyMutex){0};
|
|
13
|
+
//
|
|
14
|
+
// Or initialize as global variables:
|
|
15
|
+
// static PyMutex m;
|
|
16
|
+
//
|
|
17
|
+
// Typical usage:
|
|
18
|
+
// PyMutex_Lock(&m);
|
|
19
|
+
// ...
|
|
20
|
+
// PyMutex_Unlock(&m);
|
|
21
|
+
//
|
|
22
|
+
// The contents of the PyMutex are not part of the public API, but are
|
|
23
|
+
// described to aid in understanding the implementation and debugging. Only
|
|
24
|
+
// the two least significant bits are used. The remaining bits are always zero:
|
|
25
|
+
// 0b00: unlocked
|
|
26
|
+
// 0b01: locked
|
|
27
|
+
// 0b10: unlocked and has parked threads
|
|
28
|
+
// 0b11: locked and has parked threads
|
|
29
|
+
typedef struct PyMutex {
|
|
30
|
+
uint8_t _bits; // (private)
|
|
31
|
+
} PyMutex;
|
|
32
|
+
|
|
33
|
+
// exported function for locking the mutex
|
|
34
|
+
PyAPI_FUNC(void) PyMutex_Lock(PyMutex *m);
|
|
35
|
+
|
|
36
|
+
// exported function for unlocking the mutex
|
|
37
|
+
PyAPI_FUNC(void) PyMutex_Unlock(PyMutex *m);
|
|
38
|
+
|
|
39
|
+
// exported function for checking if the mutex is locked
|
|
40
|
+
PyAPI_FUNC(int) PyMutex_IsLocked(PyMutex *m);
|
|
41
|
+
|
|
42
|
+
// Locks the mutex.
|
|
43
|
+
//
|
|
44
|
+
// If the mutex is currently locked, the calling thread will be parked until
|
|
45
|
+
// the mutex is unlocked. If the current thread holds the GIL, then the GIL
|
|
46
|
+
// will be released while the thread is parked.
|
|
47
|
+
static inline void
|
|
48
|
+
_PyMutex_Lock(PyMutex *m)
|
|
49
|
+
{
|
|
50
|
+
uint8_t expected = _Py_UNLOCKED;
|
|
51
|
+
if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) {
|
|
52
|
+
PyMutex_Lock(m);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
#define PyMutex_Lock _PyMutex_Lock
|
|
56
|
+
|
|
57
|
+
// Unlocks the mutex.
|
|
58
|
+
static inline void
|
|
59
|
+
_PyMutex_Unlock(PyMutex *m)
|
|
60
|
+
{
|
|
61
|
+
uint8_t expected = _Py_LOCKED;
|
|
62
|
+
if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_UNLOCKED)) {
|
|
63
|
+
PyMutex_Unlock(m);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
#define PyMutex_Unlock _PyMutex_Unlock
|
|
67
|
+
|
|
68
|
+
// Checks if the mutex is currently locked.
|
|
69
|
+
static inline int
|
|
70
|
+
_PyMutex_IsLocked(PyMutex *m)
|
|
71
|
+
{
|
|
72
|
+
return (_Py_atomic_load_uint8(&m->_bits) & _Py_LOCKED) != 0;
|
|
73
|
+
}
|
|
74
|
+
#define PyMutex_IsLocked _PyMutex_IsLocked
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
#ifndef Py_LIMITED_API
|
|
2
|
+
#ifndef Py_LONGINTREPR_H
|
|
3
|
+
#define Py_LONGINTREPR_H
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
extern "C" {
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/* This is published for the benefit of "friends" marshal.c and _decimal.c. */
|
|
10
|
+
|
|
11
|
+
/* Parameters of the integer representation. There are two different
|
|
12
|
+
sets of parameters: one set for 30-bit digits, stored in an unsigned 32-bit
|
|
13
|
+
integer type, and one set for 15-bit digits with each digit stored in an
|
|
14
|
+
unsigned short. The value of PYLONG_BITS_IN_DIGIT, defined either at
|
|
15
|
+
configure time or in pyport.h, is used to decide which digit size to use.
|
|
16
|
+
|
|
17
|
+
Type 'digit' should be able to hold 2*PyLong_BASE-1, and type 'twodigits'
|
|
18
|
+
should be an unsigned integer type able to hold all integers up to
|
|
19
|
+
PyLong_BASE*PyLong_BASE-1. x_sub assumes that 'digit' is an unsigned type,
|
|
20
|
+
and that overflow is handled by taking the result modulo 2**N for some N >
|
|
21
|
+
PyLong_SHIFT. The majority of the code doesn't care about the precise
|
|
22
|
+
value of PyLong_SHIFT, but there are some notable exceptions:
|
|
23
|
+
|
|
24
|
+
- PyLong_{As,From}ByteArray require that PyLong_SHIFT be at least 8
|
|
25
|
+
|
|
26
|
+
- long_hash() requires that PyLong_SHIFT is *strictly* less than the number
|
|
27
|
+
of bits in an unsigned long, as do the PyLong <-> long (or unsigned long)
|
|
28
|
+
conversion functions
|
|
29
|
+
|
|
30
|
+
- the Python int <-> size_t/Py_ssize_t conversion functions expect that
|
|
31
|
+
PyLong_SHIFT is strictly less than the number of bits in a size_t
|
|
32
|
+
|
|
33
|
+
- the marshal code currently expects that PyLong_SHIFT is a multiple of 15
|
|
34
|
+
|
|
35
|
+
- NSMALLNEGINTS and NSMALLPOSINTS should be small enough to fit in a single
|
|
36
|
+
digit; with the current values this forces PyLong_SHIFT >= 9
|
|
37
|
+
|
|
38
|
+
The values 15 and 30 should fit all of the above requirements, on any
|
|
39
|
+
platform.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
#if PYLONG_BITS_IN_DIGIT == 30
|
|
43
|
+
typedef uint32_t digit;
|
|
44
|
+
typedef int32_t sdigit; /* signed variant of digit */
|
|
45
|
+
typedef uint64_t twodigits;
|
|
46
|
+
typedef int64_t stwodigits; /* signed variant of twodigits */
|
|
47
|
+
#define PyLong_SHIFT 30
|
|
48
|
+
#define _PyLong_DECIMAL_SHIFT 9 /* max(e such that 10**e fits in a digit) */
|
|
49
|
+
#define _PyLong_DECIMAL_BASE ((digit)1000000000) /* 10 ** DECIMAL_SHIFT */
|
|
50
|
+
#elif PYLONG_BITS_IN_DIGIT == 15
|
|
51
|
+
typedef unsigned short digit;
|
|
52
|
+
typedef short sdigit; /* signed variant of digit */
|
|
53
|
+
typedef unsigned long twodigits;
|
|
54
|
+
typedef long stwodigits; /* signed variant of twodigits */
|
|
55
|
+
#define PyLong_SHIFT 15
|
|
56
|
+
#define _PyLong_DECIMAL_SHIFT 4 /* max(e such that 10**e fits in a digit) */
|
|
57
|
+
#define _PyLong_DECIMAL_BASE ((digit)10000) /* 10 ** DECIMAL_SHIFT */
|
|
58
|
+
#else
|
|
59
|
+
#error "PYLONG_BITS_IN_DIGIT should be 15 or 30"
|
|
60
|
+
#endif
|
|
61
|
+
#define PyLong_BASE ((digit)1 << PyLong_SHIFT)
|
|
62
|
+
#define PyLong_MASK ((digit)(PyLong_BASE - 1))
|
|
63
|
+
|
|
64
|
+
/* Long integer representation.
|
|
65
|
+
|
|
66
|
+
Long integers are made up of a number of 30- or 15-bit digits, depending on
|
|
67
|
+
the platform. The number of digits (ndigits) is stored in the high bits of
|
|
68
|
+
the lv_tag field (lvtag >> _PyLong_NON_SIZE_BITS).
|
|
69
|
+
|
|
70
|
+
The absolute value of a number is equal to
|
|
71
|
+
SUM(for i=0 through ndigits-1) ob_digit[i] * 2**(PyLong_SHIFT*i)
|
|
72
|
+
|
|
73
|
+
The sign of the value is stored in the lower 2 bits of lv_tag.
|
|
74
|
+
|
|
75
|
+
- 0: Positive
|
|
76
|
+
- 1: Zero
|
|
77
|
+
- 2: Negative
|
|
78
|
+
|
|
79
|
+
The third lowest bit of lv_tag is
|
|
80
|
+
set to 1 for the small ints.
|
|
81
|
+
|
|
82
|
+
In a normalized number, ob_digit[ndigits-1] (the most significant
|
|
83
|
+
digit) is never zero. Also, in all cases, for all valid i,
|
|
84
|
+
0 <= ob_digit[i] <= PyLong_MASK.
|
|
85
|
+
|
|
86
|
+
The allocation function takes care of allocating extra memory
|
|
87
|
+
so that ob_digit[0] ... ob_digit[ndigits-1] are actually available.
|
|
88
|
+
We always allocate memory for at least one digit, so accessing ob_digit[0]
|
|
89
|
+
is always safe. However, in the case ndigits == 0, the contents of
|
|
90
|
+
ob_digit[0] may be undefined.
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
typedef struct _PyLongValue {
|
|
94
|
+
uintptr_t lv_tag; /* Number of digits, sign and flags */
|
|
95
|
+
digit ob_digit[1];
|
|
96
|
+
} _PyLongValue;
|
|
97
|
+
|
|
98
|
+
struct _longobject {
|
|
99
|
+
PyObject_HEAD
|
|
100
|
+
_PyLongValue long_value;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
Py_DEPRECATED(3.14) PyAPI_FUNC(PyLongObject*) _PyLong_New(Py_ssize_t);
|
|
104
|
+
|
|
105
|
+
// Return a copy of src.
|
|
106
|
+
PyAPI_FUNC(PyObject*) _PyLong_Copy(PyLongObject *src);
|
|
107
|
+
|
|
108
|
+
Py_DEPRECATED(3.14) PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits(
|
|
109
|
+
int negative,
|
|
110
|
+
Py_ssize_t digit_count,
|
|
111
|
+
digit *digits);
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
/* Inline some internals for speed. These should be in pycore_long.h
|
|
115
|
+
* if user code didn't need them inlined. */
|
|
116
|
+
|
|
117
|
+
#define _PyLong_SIGN_MASK 3
|
|
118
|
+
#define _PyLong_NON_SIZE_BITS 3
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
static inline int
|
|
122
|
+
_PyLong_IsCompact(const PyLongObject* op) {
|
|
123
|
+
assert(PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS));
|
|
124
|
+
return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#define PyUnstable_Long_IsCompact _PyLong_IsCompact
|
|
128
|
+
|
|
129
|
+
static inline Py_ssize_t
|
|
130
|
+
_PyLong_CompactValue(const PyLongObject *op)
|
|
131
|
+
{
|
|
132
|
+
Py_ssize_t sign;
|
|
133
|
+
assert(PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS));
|
|
134
|
+
assert(PyUnstable_Long_IsCompact(op));
|
|
135
|
+
sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
|
|
136
|
+
return sign * (Py_ssize_t)op->long_value.ob_digit[0];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
#define PyUnstable_Long_CompactValue _PyLong_CompactValue
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
/* --- Import/Export API -------------------------------------------------- */
|
|
143
|
+
|
|
144
|
+
typedef struct PyLongLayout {
|
|
145
|
+
uint8_t bits_per_digit;
|
|
146
|
+
uint8_t digit_size;
|
|
147
|
+
int8_t digits_order;
|
|
148
|
+
int8_t digit_endianness;
|
|
149
|
+
} PyLongLayout;
|
|
150
|
+
|
|
151
|
+
PyAPI_FUNC(const PyLongLayout*) PyLong_GetNativeLayout(void);
|
|
152
|
+
|
|
153
|
+
typedef struct PyLongExport {
|
|
154
|
+
int64_t value;
|
|
155
|
+
uint8_t negative;
|
|
156
|
+
Py_ssize_t ndigits;
|
|
157
|
+
const void *digits;
|
|
158
|
+
// Member used internally, must not be used for other purpose.
|
|
159
|
+
Py_uintptr_t _reserved;
|
|
160
|
+
} PyLongExport;
|
|
161
|
+
|
|
162
|
+
PyAPI_FUNC(int) PyLong_Export(
|
|
163
|
+
PyObject *obj,
|
|
164
|
+
PyLongExport *export_long);
|
|
165
|
+
PyAPI_FUNC(void) PyLong_FreeExport(
|
|
166
|
+
PyLongExport *export_long);
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
/* --- PyLongWriter API --------------------------------------------------- */
|
|
170
|
+
|
|
171
|
+
typedef struct PyLongWriter PyLongWriter;
|
|
172
|
+
|
|
173
|
+
PyAPI_FUNC(PyLongWriter*) PyLongWriter_Create(
|
|
174
|
+
int negative,
|
|
175
|
+
Py_ssize_t ndigits,
|
|
176
|
+
void **digits);
|
|
177
|
+
PyAPI_FUNC(PyObject*) PyLongWriter_Finish(PyLongWriter *writer);
|
|
178
|
+
PyAPI_FUNC(void) PyLongWriter_Discard(PyLongWriter *writer);
|
|
179
|
+
|
|
180
|
+
#ifdef __cplusplus
|
|
181
|
+
}
|
|
182
|
+
#endif
|
|
183
|
+
#endif /* !Py_LONGINTREPR_H */
|
|
184
|
+
#endif /* Py_LIMITED_API */
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#ifndef Py_CPYTHON_LONGOBJECT_H
|
|
2
|
+
# error "this header file must not be included directly"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
#define _PyLong_CAST(op) \
|
|
6
|
+
(assert(PyLong_Check(op)), _Py_CAST(PyLongObject*, (op)))
|
|
7
|
+
|
|
8
|
+
PyAPI_FUNC(PyObject*) PyLong_FromUnicodeObject(PyObject *u, int base);
|
|
9
|
+
|
|
10
|
+
PyAPI_FUNC(int) PyUnstable_Long_IsCompact(const PyLongObject* op);
|
|
11
|
+
PyAPI_FUNC(Py_ssize_t) PyUnstable_Long_CompactValue(const PyLongObject* op);
|
|
12
|
+
|
|
13
|
+
/* PyLong_IsPositive. Check if the integer object is positive.
|
|
14
|
+
|
|
15
|
+
- On success, return 1 if *obj is positive, and 0 otherwise.
|
|
16
|
+
- On failure, set an exception, and return -1. */
|
|
17
|
+
PyAPI_FUNC(int) PyLong_IsPositive(PyObject *obj);
|
|
18
|
+
|
|
19
|
+
/* PyLong_IsNegative. Check if the integer object is negative.
|
|
20
|
+
|
|
21
|
+
- On success, return 1 if *obj is negative, and 0 otherwise.
|
|
22
|
+
- On failure, set an exception, and return -1. */
|
|
23
|
+
PyAPI_FUNC(int) PyLong_IsNegative(PyObject *obj);
|
|
24
|
+
|
|
25
|
+
/* PyLong_IsZero. Check if the integer object is zero.
|
|
26
|
+
|
|
27
|
+
- On success, return 1 if *obj is zero, and 0 if it is non-zero.
|
|
28
|
+
- On failure, set an exception, and return -1. */
|
|
29
|
+
PyAPI_FUNC(int) PyLong_IsZero(PyObject *obj);
|
|
30
|
+
|
|
31
|
+
/* PyLong_GetSign. Get the sign of an integer object:
|
|
32
|
+
0, -1 or +1 for zero, negative or positive integer, respectively.
|
|
33
|
+
|
|
34
|
+
- On success, set '*sign' to the integer sign, and return 0.
|
|
35
|
+
- On failure, set an exception, and return -1. */
|
|
36
|
+
PyAPI_FUNC(int) PyLong_GetSign(PyObject *v, int *sign);
|
|
37
|
+
|
|
38
|
+
Py_DEPRECATED(3.14) PyAPI_FUNC(int) _PyLong_Sign(PyObject *v);
|
|
39
|
+
|
|
40
|
+
/* _PyLong_NumBits. Return the number of bits needed to represent the
|
|
41
|
+
absolute value of a long. For example, this returns 1 for 1 and -1, 2
|
|
42
|
+
for 2 and -2, and 2 for 3 and -3. It returns 0 for 0.
|
|
43
|
+
v must not be NULL, and must be a normalized long.
|
|
44
|
+
Always successful.
|
|
45
|
+
*/
|
|
46
|
+
PyAPI_FUNC(int64_t) _PyLong_NumBits(PyObject *v);
|
|
47
|
+
|
|
48
|
+
/* _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in
|
|
49
|
+
base 256, and return a Python int with the same numeric value.
|
|
50
|
+
If n is 0, the integer is 0. Else:
|
|
51
|
+
If little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;
|
|
52
|
+
else (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the
|
|
53
|
+
LSB.
|
|
54
|
+
If is_signed is 0/false, view the bytes as a non-negative integer.
|
|
55
|
+
If is_signed is 1/true, view the bytes as a 2's-complement integer,
|
|
56
|
+
non-negative if bit 0x80 of the MSB is clear, negative if set.
|
|
57
|
+
Error returns:
|
|
58
|
+
+ Return NULL with the appropriate exception set if there's not
|
|
59
|
+
enough memory to create the Python int.
|
|
60
|
+
*/
|
|
61
|
+
PyAPI_FUNC(PyObject *) _PyLong_FromByteArray(
|
|
62
|
+
const unsigned char* bytes, size_t n,
|
|
63
|
+
int little_endian, int is_signed);
|
|
64
|
+
|
|
65
|
+
/* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long
|
|
66
|
+
v to a base-256 integer, stored in array bytes. Normally return 0,
|
|
67
|
+
return -1 on error.
|
|
68
|
+
If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at
|
|
69
|
+
bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and
|
|
70
|
+
the LSB at bytes[n-1].
|
|
71
|
+
If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes
|
|
72
|
+
are filled and there's nothing special about bit 0x80 of the MSB.
|
|
73
|
+
If is_signed is 1/true, bytes is filled with the 2's-complement
|
|
74
|
+
representation of v's value. Bit 0x80 of the MSB is the sign bit.
|
|
75
|
+
Error returns (-1):
|
|
76
|
+
+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes
|
|
77
|
+
isn't altered.
|
|
78
|
+
+ n isn't big enough to hold the full mathematical value of v. For
|
|
79
|
+
example, if is_signed is 0 and there are more digits in the v than
|
|
80
|
+
fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of
|
|
81
|
+
being large enough to hold a sign bit. OverflowError is set in this
|
|
82
|
+
case, but bytes holds the least-significant n bytes of the true value.
|
|
83
|
+
*/
|
|
84
|
+
PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
|
|
85
|
+
unsigned char* bytes, size_t n,
|
|
86
|
+
int little_endian, int is_signed, int with_exceptions);
|
|
87
|
+
|
|
88
|
+
/* For use by the gcd function in mathmodule.c */
|
|
89
|
+
PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *);
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#ifndef Py_CPYTHON_MEMORYOBJECT_H
|
|
2
|
+
# error "this header file must not be included directly"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
/* The structs are declared here so that macros can work, but they shouldn't
|
|
6
|
+
be considered public. Don't access their fields directly, use the macros
|
|
7
|
+
and functions instead! */
|
|
8
|
+
#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */
|
|
9
|
+
#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */
|
|
10
|
+
|
|
11
|
+
typedef struct {
|
|
12
|
+
PyObject_HEAD
|
|
13
|
+
int flags; /* state flags */
|
|
14
|
+
Py_ssize_t exports; /* number of direct memoryview exports */
|
|
15
|
+
Py_buffer master; /* snapshot buffer obtained from the original exporter */
|
|
16
|
+
} _PyManagedBufferObject;
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/* memoryview state flags */
|
|
20
|
+
#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */
|
|
21
|
+
#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */
|
|
22
|
+
#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */
|
|
23
|
+
#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */
|
|
24
|
+
#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */
|
|
25
|
+
#define _Py_MEMORYVIEW_RESTRICTED 0x020 /* Disallow new references to the memoryview's buffer */
|
|
26
|
+
|
|
27
|
+
typedef struct {
|
|
28
|
+
PyObject_VAR_HEAD
|
|
29
|
+
_PyManagedBufferObject *mbuf; /* managed buffer */
|
|
30
|
+
Py_hash_t hash; /* hash value for read-only views */
|
|
31
|
+
int flags; /* state flags */
|
|
32
|
+
Py_ssize_t exports; /* number of buffer re-exports */
|
|
33
|
+
Py_buffer view; /* private copy of the exporter's view */
|
|
34
|
+
PyObject *weakreflist;
|
|
35
|
+
Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */
|
|
36
|
+
} PyMemoryViewObject;
|
|
37
|
+
|
|
38
|
+
#define _PyMemoryView_CAST(op) _Py_CAST(PyMemoryViewObject*, op)
|
|
39
|
+
|
|
40
|
+
/* Get a pointer to the memoryview's private copy of the exporter's buffer. */
|
|
41
|
+
static inline Py_buffer* PyMemoryView_GET_BUFFER(PyObject *op) {
|
|
42
|
+
return (&_PyMemoryView_CAST(op)->view);
|
|
43
|
+
}
|
|
44
|
+
#define PyMemoryView_GET_BUFFER(op) PyMemoryView_GET_BUFFER(_PyObject_CAST(op))
|
|
45
|
+
|
|
46
|
+
/* Get a pointer to the exporting object (this may be NULL!). */
|
|
47
|
+
static inline PyObject* PyMemoryView_GET_BASE(PyObject *op) {
|
|
48
|
+
return _PyMemoryView_CAST(op)->view.obj;
|
|
49
|
+
}
|
|
50
|
+
#define PyMemoryView_GET_BASE(op) PyMemoryView_GET_BASE(_PyObject_CAST(op))
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#ifndef Py_CPYTHON_METHODOBJECT_H
|
|
2
|
+
# error "this header file must not be included directly"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
// PyCFunctionObject structure
|
|
6
|
+
|
|
7
|
+
typedef struct {
|
|
8
|
+
PyObject_HEAD
|
|
9
|
+
PyMethodDef *m_ml; /* Description of the C function to call */
|
|
10
|
+
PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */
|
|
11
|
+
PyObject *m_module; /* The __module__ attribute, can be anything */
|
|
12
|
+
PyObject *m_weakreflist; /* List of weak references */
|
|
13
|
+
vectorcallfunc vectorcall;
|
|
14
|
+
} PyCFunctionObject;
|
|
15
|
+
|
|
16
|
+
#define _PyCFunctionObject_CAST(func) \
|
|
17
|
+
(assert(PyCFunction_Check(func)), \
|
|
18
|
+
_Py_CAST(PyCFunctionObject*, (func)))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
// PyCMethodObject structure
|
|
22
|
+
|
|
23
|
+
typedef struct {
|
|
24
|
+
PyCFunctionObject func;
|
|
25
|
+
PyTypeObject *mm_class; /* Class that defines this method */
|
|
26
|
+
} PyCMethodObject;
|
|
27
|
+
|
|
28
|
+
#define _PyCMethodObject_CAST(func) \
|
|
29
|
+
(assert(PyCMethod_Check(func)), \
|
|
30
|
+
_Py_CAST(PyCMethodObject*, (func)))
|
|
31
|
+
|
|
32
|
+
PyAPI_DATA(PyTypeObject) PyCMethod_Type;
|
|
33
|
+
|
|
34
|
+
#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type)
|
|
35
|
+
#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/* Static inline functions for direct access to these values.
|
|
39
|
+
Type checks are *not* done, so use with care. */
|
|
40
|
+
static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) {
|
|
41
|
+
return _PyCFunctionObject_CAST(func)->m_ml->ml_meth;
|
|
42
|
+
}
|
|
43
|
+
#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func))
|
|
44
|
+
|
|
45
|
+
static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) {
|
|
46
|
+
PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj);
|
|
47
|
+
if (func->m_ml->ml_flags & METH_STATIC) {
|
|
48
|
+
return _Py_NULL;
|
|
49
|
+
}
|
|
50
|
+
return func->m_self;
|
|
51
|
+
}
|
|
52
|
+
#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func))
|
|
53
|
+
|
|
54
|
+
static inline int PyCFunction_GET_FLAGS(PyObject *func) {
|
|
55
|
+
return _PyCFunctionObject_CAST(func)->m_ml->ml_flags;
|
|
56
|
+
}
|
|
57
|
+
#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func))
|
|
58
|
+
|
|
59
|
+
static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) {
|
|
60
|
+
PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj);
|
|
61
|
+
if (func->m_ml->ml_flags & METH_METHOD) {
|
|
62
|
+
return _PyCMethodObject_CAST(func)->mm_class;
|
|
63
|
+
}
|
|
64
|
+
return _Py_NULL;
|
|
65
|
+
}
|
|
66
|
+
#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func))
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#ifndef Py_CPYTHON_MODSUPPORT_H
|
|
2
|
+
# error "this header file must not be included directly"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
// A data structure that can be used to run initialization code once in a
|
|
6
|
+
// thread-safe manner. The C++11 equivalent is std::call_once.
|
|
7
|
+
typedef struct {
|
|
8
|
+
uint8_t v;
|
|
9
|
+
} _PyOnceFlag;
|
|
10
|
+
|
|
11
|
+
typedef struct _PyArg_Parser {
|
|
12
|
+
const char *format;
|
|
13
|
+
const char * const *keywords;
|
|
14
|
+
const char *fname;
|
|
15
|
+
const char *custom_msg;
|
|
16
|
+
_PyOnceFlag once; /* atomic one-time initialization flag */
|
|
17
|
+
int is_kwtuple_owned; /* does this parser own the kwtuple object? */
|
|
18
|
+
int pos; /* number of positional-only arguments */
|
|
19
|
+
int min; /* minimal number of arguments */
|
|
20
|
+
int max; /* maximal number of positional arguments */
|
|
21
|
+
PyObject *kwtuple; /* tuple of keyword parameter names */
|
|
22
|
+
struct _PyArg_Parser *next;
|
|
23
|
+
} _PyArg_Parser;
|
|
24
|
+
|
|
25
|
+
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
|
|
26
|
+
struct _PyArg_Parser *, ...);
|