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.
Files changed (419) hide show
  1. pytron/__init__.py +112 -0
  2. pytron/application.py +562 -0
  3. pytron/apputils/__init__.py +0 -0
  4. pytron/apputils/chrome_ipc.py +203 -0
  5. pytron/apputils/codegen.py +261 -0
  6. pytron/apputils/config.py +303 -0
  7. pytron/apputils/deadmansswitch.py +47 -0
  8. pytron/apputils/extras.py +76 -0
  9. pytron/apputils/native.py +148 -0
  10. pytron/apputils/shell.py +73 -0
  11. pytron/apputils/windows.py +286 -0
  12. pytron/cli.py +384 -0
  13. pytron/commands/__init__.py +0 -0
  14. pytron/commands/android.py +28 -0
  15. pytron/commands/build.py +26 -0
  16. pytron/commands/doctor.py +221 -0
  17. pytron/commands/engine.py +23 -0
  18. pytron/commands/frontend.py +60 -0
  19. pytron/commands/harvest.py +112 -0
  20. pytron/commands/helpers.py +239 -0
  21. pytron/commands/info.py +50 -0
  22. pytron/commands/init.py +521 -0
  23. pytron/commands/install.py +294 -0
  24. pytron/commands/login.py +130 -0
  25. pytron/commands/package.py +228 -0
  26. pytron/commands/plugin.py +442 -0
  27. pytron/commands/run.py +312 -0
  28. pytron/commands/scan.py +210 -0
  29. pytron/commands/show.py +23 -0
  30. pytron/commands/uninstall.py +150 -0
  31. pytron/commands/utils.py +42 -0
  32. pytron/commands/workflow.py +95 -0
  33. pytron/console.py +133 -0
  34. pytron/core.py +18 -0
  35. pytron/dependencies/WebView2Loader.dll +0 -0
  36. pytron/dependencies/__init__.py +1 -0
  37. pytron/dependencies/pytron_native.so +0 -0
  38. pytron/engines/chrome/adapter.py +445 -0
  39. pytron/engines/chrome/engine.py +576 -0
  40. pytron/engines/chrome/forge.py +147 -0
  41. pytron/engines/chrome/shell/package.json +8 -0
  42. pytron/engines/chrome/shell/preload.js +12 -0
  43. pytron/engines/chrome/shell/shell.js +534 -0
  44. pytron/exceptions.py +36 -0
  45. pytron/inspector.py +201 -0
  46. pytron/inspector_ui.py +512 -0
  47. pytron/installer/Installation.nsi +236 -0
  48. pytron/installer/header.bmp +0 -0
  49. pytron/installer/pytron.ico +0 -0
  50. pytron/installer/sidebar.bmp +0 -0
  51. pytron/llms.md +98 -0
  52. pytron/manifests/README.md +29 -0
  53. pytron/manifests/windows-utf8.manifest +44 -0
  54. pytron/menu.py +128 -0
  55. pytron/nsis-setup.exe +0 -0
  56. pytron/pack/__init__.py +0 -0
  57. pytron/pack/assets.py +131 -0
  58. pytron/pack/compilers.py +289 -0
  59. pytron/pack/crystal.py +297 -0
  60. pytron/pack/graph.py +377 -0
  61. pytron/pack/inference.py +157 -0
  62. pytron/pack/installers.py +402 -0
  63. pytron/pack/introspect.py +357 -0
  64. pytron/pack/metadata.py +213 -0
  65. pytron/pack/modules.py +618 -0
  66. pytron/pack/nuitka.py +108 -0
  67. pytron/pack/pipeline.py +107 -0
  68. pytron/pack/pyinstaller.py +176 -0
  69. pytron/pack/rust_engine.py +273 -0
  70. pytron/pack/secure.py +309 -0
  71. pytron/pack/secure_loader/bin/pytron_rust_bootloader +0 -0
  72. pytron/pack/secure_loader/icon.ico +0 -0
  73. pytron/pack/utils.py +110 -0
  74. pytron/pack/virtual_root.py +124 -0
  75. pytron/platforms/__init__.py +0 -0
  76. pytron/platforms/android/__init__.py +3 -0
  77. pytron/platforms/android/android.py +103 -0
  78. pytron/platforms/android/builder.py +736 -0
  79. pytron/platforms/android/ops/build.py +79 -0
  80. pytron/platforms/android/ops/init.py +63 -0
  81. pytron/platforms/android/ops/run.py +79 -0
  82. pytron/platforms/android/ops/sync.py +770 -0
  83. pytron/platforms/android/ops/utils.py +8 -0
  84. pytron/platforms/android/shell/README.md +30 -0
  85. pytron/platforms/android/shell/app/build.gradle +64 -0
  86. pytron/platforms/android/shell/app/src/main/AndroidManifest.xml +29 -0
  87. pytron/platforms/android/shell/app/src/main/assets/python/main.py +86 -0
  88. pytron/platforms/android/shell/app/src/main/assets/python/python314.zip +0 -0
  89. pytron/platforms/android/shell/app/src/main/cpp/CMakeLists.txt +25 -0
  90. pytron/platforms/android/shell/app/src/main/cpp/include/Python.h +155 -0
  91. pytron/platforms/android/shell/app/src/main/cpp/include/abstract.h +915 -0
  92. pytron/platforms/android/shell/app/src/main/cpp/include/audit.h +30 -0
  93. pytron/platforms/android/shell/app/src/main/cpp/include/bltinmodule.h +14 -0
  94. pytron/platforms/android/shell/app/src/main/cpp/include/boolobject.h +54 -0
  95. pytron/platforms/android/shell/app/src/main/cpp/include/bytearrayobject.h +44 -0
  96. pytron/platforms/android/shell/app/src/main/cpp/include/bytesobject.h +66 -0
  97. pytron/platforms/android/shell/app/src/main/cpp/include/ceval.h +145 -0
  98. pytron/platforms/android/shell/app/src/main/cpp/include/codecs.h +176 -0
  99. pytron/platforms/android/shell/app/src/main/cpp/include/compile.h +22 -0
  100. pytron/platforms/android/shell/app/src/main/cpp/include/complexobject.h +30 -0
  101. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/abstract.h +104 -0
  102. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/audit.h +8 -0
  103. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytearrayobject.h +38 -0
  104. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytesobject.h +42 -0
  105. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/cellobject.h +50 -0
  106. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/ceval.h +43 -0
  107. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/classobject.h +71 -0
  108. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/code.h +340 -0
  109. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/compile.h +50 -0
  110. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/complexobject.h +33 -0
  111. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/context.h +107 -0
  112. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/critical_section.h +154 -0
  113. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/descrobject.h +62 -0
  114. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/dictobject.h +105 -0
  115. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileobject.h +16 -0
  116. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileutils.h +16 -0
  117. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/floatobject.h +27 -0
  118. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/frameobject.h +35 -0
  119. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/funcobject.h +185 -0
  120. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/genobject.h +56 -0
  121. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/import.h +30 -0
  122. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/initconfig.h +334 -0
  123. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/listobject.h +53 -0
  124. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/lock.h +74 -0
  125. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longintrepr.h +184 -0
  126. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longobject.h +89 -0
  127. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/memoryobject.h +50 -0
  128. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/methodobject.h +66 -0
  129. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/modsupport.h +26 -0
  130. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/monitoring.h +269 -0
  131. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/object.h +493 -0
  132. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/objimpl.h +104 -0
  133. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/odictobject.h +43 -0
  134. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/picklebufobject.h +31 -0
  135. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pthread_stubs.h +105 -0
  136. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic.h +614 -0
  137. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_gcc.h +615 -0
  138. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_msc.h +1197 -0
  139. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_std.h +1112 -0
  140. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyctype.h +39 -0
  141. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pydebug.h +38 -0
  142. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyerrors.h +132 -0
  143. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyfpe.h +15 -0
  144. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyframe.h +45 -0
  145. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyhash.h +54 -0
  146. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pylifecycle.h +89 -0
  147. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pymem.h +84 -0
  148. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystate.h +275 -0
  149. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystats.h +194 -0
  150. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythonrun.h +96 -0
  151. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythread.h +43 -0
  152. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pytime.h +27 -0
  153. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/setobject.h +71 -0
  154. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/traceback.h +13 -0
  155. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tracemalloc.h +32 -0
  156. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tupleobject.h +40 -0
  157. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/unicodeobject.h +773 -0
  158. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/warnings.h +20 -0
  159. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/weakrefobject.h +66 -0
  160. pytron/platforms/android/shell/app/src/main/cpp/include/critical_section.h +16 -0
  161. pytron/platforms/android/shell/app/src/main/cpp/include/datetime.h +267 -0
  162. pytron/platforms/android/shell/app/src/main/cpp/include/descrobject.h +100 -0
  163. pytron/platforms/android/shell/app/src/main/cpp/include/dictobject.h +108 -0
  164. pytron/platforms/android/shell/app/src/main/cpp/include/dynamic_annotations.h +499 -0
  165. pytron/platforms/android/shell/app/src/main/cpp/include/enumobject.h +17 -0
  166. pytron/platforms/android/shell/app/src/main/cpp/include/errcode.h +45 -0
  167. pytron/platforms/android/shell/app/src/main/cpp/include/exports.h +105 -0
  168. pytron/platforms/android/shell/app/src/main/cpp/include/fileobject.h +41 -0
  169. pytron/platforms/android/shell/app/src/main/cpp/include/fileutils.h +62 -0
  170. pytron/platforms/android/shell/app/src/main/cpp/include/floatobject.h +54 -0
  171. pytron/platforms/android/shell/app/src/main/cpp/include/frameobject.h +20 -0
  172. pytron/platforms/android/shell/app/src/main/cpp/include/genericaliasobject.h +14 -0
  173. pytron/platforms/android/shell/app/src/main/cpp/include/import.h +103 -0
  174. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/atomic.h +392 -0
  175. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/internal.h +969 -0
  176. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/prim.h +329 -0
  177. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/track.h +147 -0
  178. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/types.h +721 -0
  179. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc.h +565 -0
  180. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_abstract.h +61 -0
  181. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_asdl.h +112 -0
  182. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast.h +945 -0
  183. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast_state.h +271 -0
  184. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_atexit.h +31 -0
  185. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_audit.h +35 -0
  186. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_backoff.h +133 -0
  187. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bitutils.h +186 -0
  188. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_blocks_output_buffer.h +321 -0
  189. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_brc.h +73 -0
  190. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytes_methods.h +82 -0
  191. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytesobject.h +149 -0
  192. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_c_array.h +39 -0
  193. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_call.h +206 -0
  194. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_capsule.h +17 -0
  195. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_cell.h +75 -0
  196. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval.h +390 -0
  197. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval_state.h +48 -0
  198. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_code.h +671 -0
  199. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_codecs.h +76 -0
  200. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_compile.h +230 -0
  201. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_complexobject.h +34 -0
  202. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_condvar.h +93 -0
  203. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_context.h +59 -0
  204. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_critical_section.h +237 -0
  205. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp.h +406 -0
  206. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp_data_registry.h +41 -0
  207. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_debug_offsets.h +379 -0
  208. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_descrobject.h +28 -0
  209. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict.h +410 -0
  210. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict_state.h +28 -0
  211. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dtoa.h +40 -0
  212. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_signal.h +30 -0
  213. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_trampoline.h +70 -0
  214. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_exceptions.h +40 -0
  215. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_faulthandler.h +100 -0
  216. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils.h +320 -0
  217. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils_windows.h +98 -0
  218. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_floatobject.h +49 -0
  219. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_flowgraph.h +47 -0
  220. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_format.h +27 -0
  221. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_frame.h +61 -0
  222. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist.h +111 -0
  223. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist_state.h +70 -0
  224. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_function.h +53 -0
  225. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gc.h +378 -0
  226. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_genobject.h +43 -0
  227. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_getopt.h +22 -0
  228. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gil.h +66 -0
  229. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects.h +34 -0
  230. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects_fini_generated.h +1592 -0
  231. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_strings.h +854 -0
  232. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hamt.h +113 -0
  233. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hashtable.h +150 -0
  234. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_import.h +141 -0
  235. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_importdl.h +139 -0
  236. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_index_pool.h +36 -0
  237. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_initconfig.h +197 -0
  238. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruction_sequence.h +83 -0
  239. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruments.h +127 -0
  240. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp.h +109 -0
  241. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp_structs.h +977 -0
  242. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe.h +401 -0
  243. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe_structs.h +95 -0
  244. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpolation.h +26 -0
  245. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_intrinsics.h +51 -0
  246. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_jit.h +29 -0
  247. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_list.h +81 -0
  248. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_llist.h +106 -0
  249. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_lock.h +236 -0
  250. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_long.h +319 -0
  251. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_magic_number.h +305 -0
  252. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_memoryobject.h +20 -0
  253. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_mimalloc.h +69 -0
  254. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_modsupport.h +99 -0
  255. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_moduleobject.h +62 -0
  256. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_namespace.h +21 -0
  257. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object.h +1029 -0
  258. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_alloc.h +71 -0
  259. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_deferred.h +32 -0
  260. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_stack.h +95 -0
  261. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_state.h +49 -0
  262. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc.h +702 -0
  263. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc_init.h +66 -0
  264. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_metadata.h +2117 -0
  265. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_utils.h +90 -0
  266. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_optimizer.h +318 -0
  267. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parking_lot.h +97 -0
  268. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parser.h +78 -0
  269. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pathconfig.h +26 -0
  270. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyarena.h +68 -0
  271. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyatomic_ft_wrappers.h +174 -0
  272. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pybuffer.h +21 -0
  273. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyerrors.h +213 -0
  274. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyhash.h +91 -0
  275. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pylifecycle.h +136 -0
  276. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymath.h +205 -0
  277. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem.h +145 -0
  278. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem_init.h +103 -0
  279. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystate.h +339 -0
  280. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystats.h +21 -0
  281. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythonrun.h +68 -0
  282. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythread.h +172 -0
  283. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_qsbr.h +172 -0
  284. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_range.h +21 -0
  285. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime.h +63 -0
  286. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init.h +239 -0
  287. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init_generated.h +1589 -0
  288. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_structs.h +310 -0
  289. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_semaphore.h +67 -0
  290. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_setobject.h +41 -0
  291. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_signal.h +108 -0
  292. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sliceobject.h +20 -0
  293. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stackref.h +791 -0
  294. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stats.h +97 -0
  295. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_strhex.h +39 -0
  296. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structs.h +88 -0
  297. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structseq.h +40 -0
  298. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_symtable.h +201 -0
  299. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sysmodule.h +32 -0
  300. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_template.h +26 -0
  301. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_time.h +334 -0
  302. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_token.h +110 -0
  303. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_traceback.h +111 -0
  304. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tracemalloc.h +164 -0
  305. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tstate.h +88 -0
  306. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tuple.h +75 -0
  307. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typedefs.h +18 -0
  308. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typeobject.h +155 -0
  309. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typevarobject.h +28 -0
  310. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ucnhash.h +36 -0
  311. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject.h +308 -0
  312. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject_generated.h +3132 -0
  313. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unionobject.h +26 -0
  314. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uniqueid.h +57 -0
  315. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_ids.h +335 -0
  316. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_metadata.h +1204 -0
  317. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_warnings.h +21 -0
  318. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_weakref.h +133 -0
  319. pytron/platforms/android/shell/app/src/main/cpp/include/intrcheck.h +23 -0
  320. pytron/platforms/android/shell/app/src/main/cpp/include/iterobject.h +24 -0
  321. pytron/platforms/android/shell/app/src/main/cpp/include/listobject.h +55 -0
  322. pytron/platforms/android/shell/app/src/main/cpp/include/lock.h +16 -0
  323. pytron/platforms/android/shell/app/src/main/cpp/include/longobject.h +178 -0
  324. pytron/platforms/android/shell/app/src/main/cpp/include/marshal.h +31 -0
  325. pytron/platforms/android/shell/app/src/main/cpp/include/memoryobject.h +34 -0
  326. pytron/platforms/android/shell/app/src/main/cpp/include/methodobject.h +146 -0
  327. pytron/platforms/android/shell/app/src/main/cpp/include/modsupport.h +146 -0
  328. pytron/platforms/android/shell/app/src/main/cpp/include/moduleobject.h +122 -0
  329. pytron/platforms/android/shell/app/src/main/cpp/include/monitoring.h +18 -0
  330. pytron/platforms/android/shell/app/src/main/cpp/include/object.h +828 -0
  331. pytron/platforms/android/shell/app/src/main/cpp/include/objimpl.h +211 -0
  332. pytron/platforms/android/shell/app/src/main/cpp/include/opcode.h +43 -0
  333. pytron/platforms/android/shell/app/src/main/cpp/include/opcode_ids.h +259 -0
  334. pytron/platforms/android/shell/app/src/main/cpp/include/osdefs.h +57 -0
  335. pytron/platforms/android/shell/app/src/main/cpp/include/osmodule.h +17 -0
  336. pytron/platforms/android/shell/app/src/main/cpp/include/patchlevel.h +49 -0
  337. pytron/platforms/android/shell/app/src/main/cpp/include/py_curses.h +117 -0
  338. pytron/platforms/android/shell/app/src/main/cpp/include/pyatomic.h +16 -0
  339. pytron/platforms/android/shell/app/src/main/cpp/include/pybuffer.h +145 -0
  340. pytron/platforms/android/shell/app/src/main/cpp/include/pycapsule.h +58 -0
  341. pytron/platforms/android/shell/app/src/main/cpp/include/pyconfig.h +2088 -0
  342. pytron/platforms/android/shell/app/src/main/cpp/include/pydtrace.h +59 -0
  343. pytron/platforms/android/shell/app/src/main/cpp/include/pyerrors.h +335 -0
  344. pytron/platforms/android/shell/app/src/main/cpp/include/pyexpat.h +62 -0
  345. pytron/platforms/android/shell/app/src/main/cpp/include/pyframe.h +26 -0
  346. pytron/platforms/android/shell/app/src/main/cpp/include/pyhash.h +59 -0
  347. pytron/platforms/android/shell/app/src/main/cpp/include/pylifecycle.h +80 -0
  348. pytron/platforms/android/shell/app/src/main/cpp/include/pymacconfig.h +91 -0
  349. pytron/platforms/android/shell/app/src/main/cpp/include/pymacro.h +243 -0
  350. pytron/platforms/android/shell/app/src/main/cpp/include/pymath.h +65 -0
  351. pytron/platforms/android/shell/app/src/main/cpp/include/pymem.h +110 -0
  352. pytron/platforms/android/shell/app/src/main/cpp/include/pyport.h +710 -0
  353. pytron/platforms/android/shell/app/src/main/cpp/include/pystate.h +132 -0
  354. pytron/platforms/android/shell/app/src/main/cpp/include/pystats.h +28 -0
  355. pytron/platforms/android/shell/app/src/main/cpp/include/pystrcmp.h +23 -0
  356. pytron/platforms/android/shell/app/src/main/cpp/include/pystrtod.h +37 -0
  357. pytron/platforms/android/shell/app/src/main/cpp/include/pythonrun.h +42 -0
  358. pytron/platforms/android/shell/app/src/main/cpp/include/pythread.h +131 -0
  359. pytron/platforms/android/shell/app/src/main/cpp/include/pytypedefs.h +30 -0
  360. pytron/platforms/android/shell/app/src/main/cpp/include/rangeobject.h +27 -0
  361. pytron/platforms/android/shell/app/src/main/cpp/include/refcount.h +555 -0
  362. pytron/platforms/android/shell/app/src/main/cpp/include/setobject.h +49 -0
  363. pytron/platforms/android/shell/app/src/main/cpp/include/sliceobject.h +69 -0
  364. pytron/platforms/android/shell/app/src/main/cpp/include/structmember.h +56 -0
  365. pytron/platforms/android/shell/app/src/main/cpp/include/structseq.h +46 -0
  366. pytron/platforms/android/shell/app/src/main/cpp/include/sysmodule.h +27 -0
  367. pytron/platforms/android/shell/app/src/main/cpp/include/traceback.h +26 -0
  368. pytron/platforms/android/shell/app/src/main/cpp/include/tupleobject.h +46 -0
  369. pytron/platforms/android/shell/app/src/main/cpp/include/typeslots.h +96 -0
  370. pytron/platforms/android/shell/app/src/main/cpp/include/unicodeobject.h +1029 -0
  371. pytron/platforms/android/shell/app/src/main/cpp/include/warnings.h +45 -0
  372. pytron/platforms/android/shell/app/src/main/cpp/include/weakrefobject.h +46 -0
  373. pytron/platforms/android/shell/app/src/main/cpp/pytron_bridge.cpp +224 -0
  374. pytron/platforms/android/shell/app/src/main/java/com/pytron/shell/MainActivity.kt +208 -0
  375. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  376. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  377. pytron/platforms/android/shell/build.gradle +11 -0
  378. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.jar +0 -0
  379. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.properties +5 -0
  380. pytron/platforms/android/shell/gradle.properties +2 -0
  381. pytron/platforms/android/shell/gradlew.bat +85 -0
  382. pytron/platforms/android/shell/settings.gradle +16 -0
  383. pytron/platforms/darwin.py +82 -0
  384. pytron/platforms/darwin_ops/libs.py +31 -0
  385. pytron/platforms/darwin_ops/system.py +182 -0
  386. pytron/platforms/darwin_ops/utils.py +85 -0
  387. pytron/platforms/darwin_ops/webview.py +5 -0
  388. pytron/platforms/darwin_ops/window.py +102 -0
  389. pytron/platforms/interface.py +152 -0
  390. pytron/platforms/linux.py +82 -0
  391. pytron/platforms/linux_ops/libs.py +49 -0
  392. pytron/platforms/linux_ops/system.py +316 -0
  393. pytron/platforms/linux_ops/utils.py +19 -0
  394. pytron/platforms/linux_ops/webview.py +5 -0
  395. pytron/platforms/linux_ops/window.py +115 -0
  396. pytron/platforms/windows.py +136 -0
  397. pytron/platforms/windows_ops/__init__.py +0 -0
  398. pytron/platforms/windows_ops/constants.py +126 -0
  399. pytron/platforms/windows_ops/system.py +518 -0
  400. pytron/platforms/windows_ops/utils.py +3 -0
  401. pytron/platforms/windows_ops/webview.py +5 -0
  402. pytron/platforms/windows_ops/window.py +361 -0
  403. pytron/plugin.py +467 -0
  404. pytron/rcedit-x64.exe +0 -0
  405. pytron/router.py +146 -0
  406. pytron/serializer.py +240 -0
  407. pytron/shortcuts.py +279 -0
  408. pytron/state.py +76 -0
  409. pytron/tray.py +399 -0
  410. pytron/updater.py +181 -0
  411. pytron/utf8_hook.py +112 -0
  412. pytron/utils.py +44 -0
  413. pytron/webview.py +722 -0
  414. pytron_kit-0.3.12.dist-info/METADATA +131 -0
  415. pytron_kit-0.3.12.dist-info/RECORD +419 -0
  416. pytron_kit-0.3.12.dist-info/WHEEL +5 -0
  417. pytron_kit-0.3.12.dist-info/entry_points.txt +2 -0
  418. pytron_kit-0.3.12.dist-info/licenses/LICENSE +201 -0
  419. pytron_kit-0.3.12.dist-info/top_level.txt +1 -0
@@ -0,0 +1,172 @@
1
+ // The QSBR APIs (quiescent state-based reclamation) provide a mechanism for
2
+ // the free-threaded build to safely reclaim memory when there may be
3
+ // concurrent accesses.
4
+ //
5
+ // Many operations in the free-threaded build are protected by locks. However,
6
+ // in some cases, we want to allow reads to happen concurrently with updates.
7
+ // In this case, we need to delay freeing ("reclaiming") any memory that may be
8
+ // concurrently accessed by a reader. The QSBR APIs provide a way to do this.
9
+ #ifndef Py_INTERNAL_QSBR_H
10
+ #define Py_INTERNAL_QSBR_H
11
+
12
+ #include <stdbool.h>
13
+ #include <stdint.h>
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ #ifndef Py_BUILD_CORE
20
+ # error "this header requires Py_BUILD_CORE define"
21
+ #endif
22
+
23
+ // The shared write sequence is always odd and incremented by two. Detached
24
+ // threads are indicated by a read sequence of zero. This avoids collisions
25
+ // between the offline state and any valid sequence number even if the
26
+ // sequences numbers wrap around.
27
+ #define QSBR_OFFLINE 0
28
+ #define QSBR_INITIAL 1
29
+ #define QSBR_INCR 2
30
+
31
+ // Wrap-around safe comparison. This is a holdover from the FreeBSD
32
+ // implementation, which uses 32-bit sequence numbers. We currently use 64-bit
33
+ // sequence numbers, so wrap-around is unlikely.
34
+ #define QSBR_LT(a, b) ((int64_t)((a)-(b)) < 0)
35
+ #define QSBR_LEQ(a, b) ((int64_t)((a)-(b)) <= 0)
36
+
37
+ struct _qsbr_shared;
38
+ struct _PyThreadStateImpl; // forward declare to avoid circular dependency
39
+
40
+ // Per-thread state
41
+ struct _qsbr_thread_state {
42
+ // Last observed write sequence (or 0 if detached)
43
+ uint64_t seq;
44
+
45
+ // Shared (per-interpreter) QSBR state
46
+ struct _qsbr_shared *shared;
47
+
48
+ // Thread state (or NULL)
49
+ PyThreadState *tstate;
50
+
51
+ // Number of held items added by this thread since the last write sequence
52
+ // advance
53
+ int deferred_count;
54
+
55
+ // Estimate for the amount of memory that is held by this thread since
56
+ // the last write sequence advance
57
+ size_t deferred_memory;
58
+
59
+ // Amount of memory in mimalloc pages deferred from collection. When
60
+ // deferred, they are prevented from being used for a different size class
61
+ // and in a different thread.
62
+ size_t deferred_page_memory;
63
+
64
+ // True if the deferred memory frees should be processed.
65
+ bool should_process;
66
+
67
+ // Is this thread state allocated?
68
+ bool allocated;
69
+ struct _qsbr_thread_state *freelist_next;
70
+ };
71
+
72
+ // Padding to avoid false sharing
73
+ struct _qsbr_pad {
74
+ struct _qsbr_thread_state qsbr;
75
+ char __padding[64 - sizeof(struct _qsbr_thread_state)];
76
+ };
77
+
78
+ // Per-interpreter state
79
+ struct _qsbr_shared {
80
+ // Write sequence: always odd, incremented by two
81
+ uint64_t wr_seq;
82
+
83
+ // Minimum observed read sequence of all QSBR thread states
84
+ uint64_t rd_seq;
85
+
86
+ // Array of QSBR thread states.
87
+ struct _qsbr_pad *array;
88
+ Py_ssize_t size;
89
+
90
+ // Freelist of unused _qsbr_thread_states (protected by mutex)
91
+ PyMutex mutex;
92
+ struct _qsbr_thread_state *freelist;
93
+ };
94
+
95
+ static inline uint64_t
96
+ _Py_qsbr_shared_current(struct _qsbr_shared *shared)
97
+ {
98
+ return _Py_atomic_load_uint64_acquire(&shared->wr_seq);
99
+ }
100
+
101
+ // Reports a quiescent state: the caller no longer holds any pointer to shared
102
+ // data not protected by locks or reference counts.
103
+ static inline void
104
+ _Py_qsbr_quiescent_state(struct _qsbr_thread_state *qsbr)
105
+ {
106
+ uint64_t seq = _Py_qsbr_shared_current(qsbr->shared);
107
+ _Py_atomic_store_uint64_release(&qsbr->seq, seq);
108
+ }
109
+
110
+ // Have the read sequences advanced to the given goal? Like `_Py_qsbr_poll()`,
111
+ // but does not perform a scan of threads.
112
+ static inline bool
113
+ _Py_qbsr_goal_reached(struct _qsbr_thread_state *qsbr, uint64_t goal)
114
+ {
115
+ uint64_t rd_seq = _Py_atomic_load_uint64(&qsbr->shared->rd_seq);
116
+ return QSBR_LEQ(goal, rd_seq);
117
+ }
118
+
119
+ // Advance the write sequence and return the new goal. This should be called
120
+ // after data is removed. The returned goal is used with `_Py_qsbr_poll()` to
121
+ // determine when it is safe to reclaim (free) the memory.
122
+ extern uint64_t
123
+ _Py_qsbr_advance(struct _qsbr_shared *shared);
124
+
125
+ // Return the next value for the write sequence (current plus the increment).
126
+ extern uint64_t
127
+ _Py_qsbr_shared_next(struct _qsbr_shared *shared);
128
+
129
+ // Return true if deferred memory frees held by QSBR should be processed to
130
+ // determine if they can be safely freed.
131
+ static inline bool
132
+ _Py_qsbr_should_process(struct _qsbr_thread_state *qsbr)
133
+ {
134
+ return qsbr->should_process;
135
+ }
136
+
137
+ // Have the read sequences advanced to the given goal? If this returns true,
138
+ // it safe to reclaim any memory tagged with the goal (or earlier goal).
139
+ extern bool
140
+ _Py_qsbr_poll(struct _qsbr_thread_state *qsbr, uint64_t goal);
141
+
142
+ // Called when thread attaches to interpreter
143
+ extern void
144
+ _Py_qsbr_attach(struct _qsbr_thread_state *qsbr);
145
+
146
+ // Called when thread detaches from interpreter
147
+ extern void
148
+ _Py_qsbr_detach(struct _qsbr_thread_state *qsbr);
149
+
150
+ // Reserves (allocates) a QSBR state and returns its index.
151
+ extern Py_ssize_t
152
+ _Py_qsbr_reserve(PyInterpreterState *interp);
153
+
154
+ // Associates a PyThreadState with the QSBR state at the given index
155
+ extern void
156
+ _Py_qsbr_register(struct _PyThreadStateImpl *tstate,
157
+ PyInterpreterState *interp, Py_ssize_t index);
158
+
159
+ // Disassociates a PyThreadState from the QSBR state and frees the QSBR state.
160
+ extern void
161
+ _Py_qsbr_unregister(PyThreadState *tstate);
162
+
163
+ extern void
164
+ _Py_qsbr_fini(PyInterpreterState *interp);
165
+
166
+ extern void
167
+ _Py_qsbr_after_fork(struct _PyThreadStateImpl *tstate);
168
+
169
+ #ifdef __cplusplus
170
+ }
171
+ #endif
172
+ #endif /* !Py_INTERNAL_QSBR_H */
@@ -0,0 +1,21 @@
1
+ #ifndef Py_INTERNAL_RANGE_H
2
+ #define Py_INTERNAL_RANGE_H
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ #ifndef Py_BUILD_CORE
8
+ # error "this header requires Py_BUILD_CORE define"
9
+ #endif
10
+
11
+ typedef struct {
12
+ PyObject_HEAD
13
+ long start;
14
+ long step;
15
+ long len;
16
+ } _PyRangeIterObject;
17
+
18
+ #ifdef __cplusplus
19
+ }
20
+ #endif
21
+ #endif /* !Py_INTERNAL_RANGE_H */
@@ -0,0 +1,63 @@
1
+ #ifndef Py_INTERNAL_RUNTIME_H
2
+ #define Py_INTERNAL_RUNTIME_H
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ #ifndef Py_BUILD_CORE
8
+ # error "this header requires Py_BUILD_CORE define"
9
+ #endif
10
+
11
+ #include "pycore_runtime_structs.h" // _PyRuntimeState
12
+
13
+
14
+ /* API */
15
+
16
+ // Export _PyRuntime for shared extensions which use it in static inline
17
+ // functions for best performance, like _Py_IsMainThread() or _Py_ID().
18
+ // It's also made accessible for debuggers and profilers.
19
+ PyAPI_DATA(_PyRuntimeState) _PyRuntime;
20
+
21
+ extern PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime);
22
+ extern void _PyRuntimeState_Fini(_PyRuntimeState *runtime);
23
+
24
+ #ifdef HAVE_FORK
25
+ extern PyStatus _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime);
26
+ #endif
27
+
28
+ /* Initialize _PyRuntimeState.
29
+ Return NULL on success, or return an error message on failure. */
30
+ extern PyStatus _PyRuntime_Initialize(void);
31
+
32
+ extern void _PyRuntime_Finalize(void);
33
+
34
+
35
+ static inline PyThreadState*
36
+ _PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) {
37
+ return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&runtime->_finalizing);
38
+ }
39
+
40
+ static inline unsigned long
41
+ _PyRuntimeState_GetFinalizingID(_PyRuntimeState *runtime) {
42
+ return _Py_atomic_load_ulong_relaxed(&runtime->_finalizing_id);
43
+ }
44
+
45
+ static inline void
46
+ _PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) {
47
+ _Py_atomic_store_ptr_relaxed(&runtime->_finalizing, tstate);
48
+ if (tstate == NULL) {
49
+ _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, 0);
50
+ }
51
+ else {
52
+ // XXX Re-enable this assert once gh-109860 is fixed.
53
+ //assert(tstate->thread_id == PyThread_get_thread_ident());
54
+ _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id,
55
+ tstate->thread_id);
56
+ }
57
+ }
58
+
59
+
60
+ #ifdef __cplusplus
61
+ }
62
+ #endif
63
+ #endif /* !Py_INTERNAL_RUNTIME_H */
@@ -0,0 +1,239 @@
1
+ #ifndef Py_INTERNAL_RUNTIME_INIT_H
2
+ #define Py_INTERNAL_RUNTIME_INIT_H
3
+ #ifdef __cplusplus
4
+ extern "C" {
5
+ #endif
6
+
7
+ #ifndef Py_BUILD_CORE
8
+ # error "this header requires Py_BUILD_CORE define"
9
+ #endif
10
+
11
+ #include "pycore_structs.h"
12
+ #include "pycore_ceval_state.h" // _PyEval_RUNTIME_PERF_INIT
13
+ #include "pycore_debug_offsets.h" // _Py_DebugOffsets_INIT()
14
+ #include "pycore_dtoa.h" // _dtoa_state_INIT()
15
+ #include "pycore_faulthandler.h" // _faulthandler_runtime_state_INIT
16
+ #include "pycore_floatobject.h" // _py_float_format_unknown
17
+ #include "pycore_function.h"
18
+ #include "pycore_hamt.h" // _PyHamt_BitmapNode_Type
19
+ #include "pycore_import.h" // IMPORTS_INIT
20
+ #include "pycore_object.h" // _PyObject_HEAD_INIT
21
+ #include "pycore_obmalloc_init.h" // _obmalloc_global_state_INIT
22
+ #include "pycore_parser.h" // _parser_runtime_state_INIT
23
+ #include "pycore_pyhash.h" // pyhash_state_INIT
24
+ #include "pycore_pymem_init.h" // _pymem_allocators_standard_INIT
25
+ #include "pycore_pythread.h" // _pythread_RUNTIME_INIT
26
+ #include "pycore_qsbr.h" // QSBR_INITIAL
27
+ #include "pycore_runtime_init_generated.h" // _Py_bytes_characters_INIT
28
+ #include "pycore_signal.h" // _signals_RUNTIME_INIT
29
+ #include "pycore_tracemalloc.h" // _tracemalloc_runtime_state_INIT
30
+ #include "pycore_tuple.h" // _PyTuple_HASH_EMPTY
31
+
32
+
33
+ extern PyTypeObject _PyExc_MemoryError;
34
+
35
+
36
+ /* The static initializers defined here should only be used
37
+ in the runtime init code (in pystate.c and pylifecycle.c). */
38
+
39
+ #define _PyRuntimeState_INIT(runtime, debug_cookie) \
40
+ { \
41
+ .debug_offsets = _Py_DebugOffsets_INIT(debug_cookie), \
42
+ .allocators = { \
43
+ .standard = _pymem_allocators_standard_INIT(runtime), \
44
+ .debug = _pymem_allocators_debug_INIT, \
45
+ .obj_arena = _pymem_allocators_obj_arena_INIT, \
46
+ .is_debug_enabled = _pymem_is_debug_enabled_INIT, \
47
+ }, \
48
+ .obmalloc = _obmalloc_global_state_INIT, \
49
+ .pyhash_state = pyhash_state_INIT, \
50
+ .threads = _pythread_RUNTIME_INIT(runtime.threads), \
51
+ .signals = _signals_RUNTIME_INIT, \
52
+ .interpreters = { \
53
+ /* This prevents interpreters from getting created \
54
+ until _PyInterpreterState_Enable() is called. */ \
55
+ .next_id = -1, \
56
+ }, \
57
+ .xi = { \
58
+ .data_lookup = { \
59
+ .registry = { \
60
+ .global = 1, \
61
+ }, \
62
+ }, \
63
+ }, \
64
+ /* A TSS key must be initialized with Py_tss_NEEDS_INIT \
65
+ in accordance with the specification. */ \
66
+ .autoTSSkey = Py_tss_NEEDS_INIT, \
67
+ .parser = _parser_runtime_state_INIT, \
68
+ .ceval = { \
69
+ .pending_mainthread = { \
70
+ .max = MAXPENDINGCALLS_MAIN, \
71
+ .maxloop = MAXPENDINGCALLSLOOP_MAIN, \
72
+ }, \
73
+ .perf = _PyEval_RUNTIME_PERF_INIT, \
74
+ }, \
75
+ .gilstate = { \
76
+ .check_enabled = 1, \
77
+ }, \
78
+ .fileutils = { \
79
+ .force_ascii = -1, \
80
+ }, \
81
+ .faulthandler = _faulthandler_runtime_state_INIT, \
82
+ .tracemalloc = _tracemalloc_runtime_state_INIT, \
83
+ .ref_tracer = { \
84
+ .tracer_func = NULL, \
85
+ .tracer_data = NULL, \
86
+ }, \
87
+ .stoptheworld = { \
88
+ .is_global = 1, \
89
+ }, \
90
+ .float_state = { \
91
+ .float_format = _py_float_format_unknown, \
92
+ .double_format = _py_float_format_unknown, \
93
+ }, \
94
+ .types = { \
95
+ .next_version_tag = _Py_TYPE_VERSION_NEXT, \
96
+ }, \
97
+ .static_objects = { \
98
+ .singletons = { \
99
+ .small_ints = _Py_small_ints_INIT, \
100
+ .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \
101
+ .bytes_characters = _Py_bytes_characters_INIT, \
102
+ .strings = { \
103
+ .literals = _Py_str_literals_INIT, \
104
+ .identifiers = _Py_str_identifiers_INIT, \
105
+ .ascii = _Py_str_ascii_INIT, \
106
+ .latin1 = _Py_str_latin1_INIT, \
107
+ }, \
108
+ .tuple_empty = { \
109
+ .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \
110
+ .ob_hash = _PyTuple_HASH_EMPTY, \
111
+ }, \
112
+ .hamt_bitmap_node_empty = { \
113
+ .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \
114
+ }, \
115
+ .context_token_missing = { \
116
+ .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type), \
117
+ }, \
118
+ }, \
119
+ }, \
120
+ ._main_interpreter = _PyInterpreterState_INIT(runtime._main_interpreter), \
121
+ }
122
+
123
+ #define _PyInterpreterState_INIT(INTERP) \
124
+ { \
125
+ .id_refcount = -1, \
126
+ ._whence = _PyInterpreterState_WHENCE_NOTSET, \
127
+ .threads = { \
128
+ .preallocated = &(INTERP)._initial_thread, \
129
+ }, \
130
+ .imports = IMPORTS_INIT, \
131
+ .ceval = { \
132
+ .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \
133
+ .pending = { \
134
+ .max = MAXPENDINGCALLS, \
135
+ .maxloop = MAXPENDINGCALLSLOOP, \
136
+ }, \
137
+ }, \
138
+ .gc = { \
139
+ .enabled = 1, \
140
+ .young = { .threshold = 2000, }, \
141
+ .old = { \
142
+ { .threshold = 10, }, \
143
+ { .threshold = 0, }, \
144
+ }, \
145
+ .work_to_do = -5000, \
146
+ .phase = GC_PHASE_MARK, \
147
+ }, \
148
+ .qsbr = { \
149
+ .wr_seq = QSBR_INITIAL, \
150
+ .rd_seq = QSBR_INITIAL, \
151
+ }, \
152
+ .dtoa = _dtoa_state_INIT(&(INTERP)), \
153
+ .dict_state = _dict_state_INIT, \
154
+ .mem_free_queue = _Py_mem_free_queue_INIT(INTERP.mem_free_queue), \
155
+ .func_state = { \
156
+ .next_version = FUNC_VERSION_FIRST_VALID, \
157
+ }, \
158
+ .types = { \
159
+ .next_version_tag = _Py_TYPE_BASE_VERSION_TAG, \
160
+ }, \
161
+ .static_objects = { \
162
+ .singletons = { \
163
+ ._not_used = 1, \
164
+ .hamt_empty = { \
165
+ .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type), \
166
+ .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \
167
+ }, \
168
+ .last_resort_memory_error = { \
169
+ _PyObject_HEAD_INIT(&_PyExc_MemoryError), \
170
+ .args = (PyObject*)&_Py_SINGLETON(tuple_empty) \
171
+ }, \
172
+ }, \
173
+ }, \
174
+ ._initial_thread = _PyThreadStateImpl_INIT, \
175
+ }
176
+
177
+ #define _PyThreadStateImpl_INIT \
178
+ { \
179
+ .base = _PyThreadState_INIT, \
180
+ /* The thread and the interpreter's linked list hold a reference */ \
181
+ .refcount = 2, \
182
+ }
183
+
184
+ #define _PyThreadState_INIT \
185
+ { \
186
+ ._whence = _PyThreadState_WHENCE_NOTSET, \
187
+ .py_recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \
188
+ .context_ver = 1, \
189
+ }
190
+
191
+
192
+ // global objects
193
+
194
+ #define _PyBytes_SIMPLE_INIT(CH, LEN) \
195
+ { \
196
+ _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)), \
197
+ .ob_shash = -1, \
198
+ .ob_sval = { (CH) }, \
199
+ }
200
+ #define _PyBytes_CHAR_INIT(CH) \
201
+ { \
202
+ _PyBytes_SIMPLE_INIT((CH), 1) \
203
+ }
204
+
205
+ #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \
206
+ { \
207
+ .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type), \
208
+ .length = sizeof(LITERAL) - 1, \
209
+ .hash = -1, \
210
+ .state = { \
211
+ .kind = 1, \
212
+ .compact = 1, \
213
+ .ascii = (ASCII), \
214
+ .statically_allocated = 1, \
215
+ }, \
216
+ }
217
+ #define _PyASCIIObject_INIT(LITERAL) \
218
+ { \
219
+ ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \
220
+ ._data = (LITERAL) \
221
+ }
222
+ #define INIT_STR(NAME, LITERAL) \
223
+ ._py_ ## NAME = _PyASCIIObject_INIT(LITERAL)
224
+ #define INIT_ID(NAME) \
225
+ ._py_ ## NAME = _PyASCIIObject_INIT(#NAME)
226
+ #define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \
227
+ { \
228
+ ._latin1 = { \
229
+ ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \
230
+ .utf8 = (UTF8), \
231
+ .utf8_length = sizeof(UTF8) - 1, \
232
+ }, \
233
+ ._data = (LITERAL), \
234
+ }
235
+
236
+ #ifdef __cplusplus
237
+ }
238
+ #endif
239
+ #endif /* !Py_INTERNAL_RUNTIME_INIT_H */