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,236 @@
1
+ ; Pytron NSIS Installer Script (polished)
2
+ ; - Expects BUILD_DIR to be defined when invoking makensis
3
+ ; - Uses assets found in the same directory as this script
4
+
5
+ !include "MUI2.nsh"
6
+ !include "LogicLib.nsh"
7
+ !include "WinMessages.nsh"
8
+
9
+ ; ---------------------
10
+ ; ---------------------
11
+ ; Configurable values
12
+ ; ---------------------
13
+ !ifndef NAME
14
+ !define NAME "Pytron"
15
+ !endif
16
+ !ifndef VERSION
17
+ !define VERSION "1.0"
18
+ !endif
19
+ !ifndef COMPANY
20
+ !define COMPANY "Pytron User"
21
+ !endif
22
+ !ifndef DESCRIPTION
23
+ !define DESCRIPTION "${NAME} Installer"
24
+ !endif
25
+ !ifndef COPYRIGHT
26
+ !define COPYRIGHT "Copyright © 2025 ${COMPANY}"
27
+ !endif
28
+ !ifndef BUILD_DIR
29
+ !error "BUILD_DIR must be defined"
30
+ !endif
31
+ !ifndef MAIN_EXE_NAME
32
+ !define MAIN_EXE_NAME "Pytron.exe"
33
+ !endif
34
+ !ifndef OUT_DIR
35
+ !define OUT_DIR "$EXEDIR"
36
+ !endif
37
+
38
+ Name "${NAME}"
39
+ OutFile "${OUT_DIR}\${NAME}_Installer_${VERSION}.exe"
40
+ InstallDir "$PROGRAMFILES\\${NAME}"
41
+ InstallDirRegKey HKLM "Software\${NAME}" "Install_Dir"
42
+ ; Explicitly set the installer icon if defined
43
+ !ifdef MUI_ICON
44
+ Icon "${MUI_ICON}"
45
+ !endif
46
+ !ifdef MUI_UNICON
47
+ UninstallIcon "${MUI_UNICON}"
48
+ !endif
49
+ RequestExecutionLevel admin
50
+
51
+ ; Version Info for the Installer EXE
52
+ VIProductVersion "${VERSION}.0.0"
53
+ VIAddVersionKey "ProductName" "${NAME}"
54
+ VIAddVersionKey "CompanyName" "${COMPANY}"
55
+ VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
56
+ VIAddVersionKey "FileDescription" "${DESCRIPTION}"
57
+ VIAddVersionKey "FileVersion" "${VERSION}"
58
+ VIAddVersionKey "ProductVersion" "${VERSION}"
59
+
60
+ ; Use ZLIB compression for better AV compatibility (LZMA often flagged)
61
+ SetCompressor /SOLID zlib
62
+ ; SetCompressorDictSize 32 ; Not applicable for zlib usually, or default is fine
63
+
64
+ ; Welcome/Finish Page Image (Left side)
65
+ !define MUI_WELCOMEFINISHPAGE_BITMAP "sidebar.bmp"
66
+ !define MUI_UNWELCOMEFINISHPAGE_BITMAP "sidebar.bmp"
67
+
68
+ ; Finish Page options
69
+ !define MUI_FINISHPAGE_RUN "$INSTDIR\${MAIN_EXE_NAME}"
70
+ !define MUI_FINISHPAGE_RUN_TEXT "Run ${NAME}"
71
+ !define MUI_FINISHPAGE_LINK "Built with Pytron"
72
+ !define MUI_FINISHPAGE_LINK_LOCATION "https://github.com/Ghua8088/pytron"
73
+
74
+ ; ---------------------
75
+ ; Detect Existing Install
76
+ ; ---------------------
77
+ Var IS_UPDATE
78
+
79
+ Function .onInit
80
+ ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString"
81
+ ${If} $R0 != ""
82
+ StrCpy $IS_UPDATE "1"
83
+ ReadRegStr $INSTDIR HKLM "Software\${NAME}" "Install_Dir"
84
+
85
+ ; Check if the application is running
86
+ check_running:
87
+ ClearErrors
88
+ FileOpen $0 "$INSTDIR\${MAIN_EXE_NAME}" "a"
89
+ FileClose $0
90
+ IfErrors 0 not_running
91
+
92
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "${NAME} is still running. Please close it before updating." IDRETRY check_running
93
+ Quit
94
+ ${Else}
95
+ StrCpy $IS_UPDATE "0"
96
+ ${EndIf}
97
+ not_running:
98
+ FunctionEnd
99
+
100
+ ; ---------------------
101
+ ; Pages
102
+ ; ---------------------
103
+ !define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeShow
104
+ !insertmacro MUI_PAGE_WELCOME
105
+
106
+ Function WelcomeShow
107
+ ${If} $IS_UPDATE == "1"
108
+ ; MUI2 Welcome/Finish pages are special child dialogs (#32770)
109
+ FindWindow $1 "#32770" "" $HWNDPARENT
110
+ ; 1000 is the title control, 1001 is the text control
111
+ GetDlgItem $0 $1 1000
112
+ SendMessage $0 ${WM_SETTEXT} 0 "STR:Welcome to the ${NAME} Update/Repair Wizard"
113
+ GetDlgItem $0 $1 1001
114
+ SendMessage $0 ${WM_SETTEXT} 0 "STR:This wizard will guide you through updating or fixing your existing installation of ${NAME}.$\r$\n$\r$\nClick Next to continue."
115
+ ${EndIf}
116
+ FunctionEnd
117
+
118
+ ; !insertmacro MUI_PAGE_LICENSE "${BUILD_DIR}\\LICENSE.txt" ; Uncomment if you have a license
119
+ !insertmacro MUI_PAGE_DIRECTORY
120
+ !insertmacro MUI_PAGE_INSTFILES
121
+
122
+ !define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishShow
123
+ !insertmacro MUI_PAGE_FINISH
124
+
125
+ Function FinishShow
126
+ ${If} $IS_UPDATE == "1"
127
+ FindWindow $1 "#32770" "" $HWNDPARENT
128
+ GetDlgItem $0 $1 1000
129
+ SendMessage $0 ${WM_SETTEXT} 0 "STR:Update/Repair Complete"
130
+ ${EndIf}
131
+ FunctionEnd
132
+
133
+ !insertmacro MUI_UNPAGE_WELCOME
134
+ ; Custom uninstaller page for data deletion
135
+ Var DeleteAppDataCheckbox
136
+ Var DELETE_APPA_DATA
137
+ UninstPage custom un.ConfirmDataPage un.ConfirmDataPageLeave
138
+ !insertmacro MUI_UNPAGE_CONFIRM
139
+ !insertmacro MUI_UNPAGE_INSTFILES
140
+ !insertmacro MUI_UNPAGE_FINISH
141
+
142
+ !include "nsDialogs.nsh"
143
+
144
+ Function un.ConfirmDataPage
145
+ nsDialogs::Create 1018
146
+ Pop $0
147
+ ${If} $0 == error
148
+ Abort
149
+ ${EndIf}
150
+
151
+ ${NSD_CreateLabel} 0 0 100% 24u "Uninstall ${NAME}"
152
+ ${NSD_CreateLabel} 0 30u 100% 24u "Do you want to delete your application data (settings, cache, etc)?$\r$\nThis cannot be undone."
153
+
154
+ ${NSD_CreateCheckbox} 0 60u 100% 10u "Delete application data ($LOCALAPPDATA\${NAME})"
155
+ Pop $DeleteAppDataCheckbox
156
+
157
+ nsDialogs::Show
158
+ FunctionEnd
159
+
160
+ Function un.ConfirmDataPageLeave
161
+ ${NSD_GetState} $DeleteAppDataCheckbox $0
162
+ StrCpy $DELETE_APPA_DATA $0
163
+ FunctionEnd
164
+
165
+ !insertmacro MUI_LANGUAGE "English"
166
+
167
+ ; ---------------------
168
+ ; Uninstaller Initialization
169
+ ; ---------------------
170
+ Function un.onInit
171
+ ; Check if the application is running by trying to open the EXE for writing
172
+ un.check_running:
173
+ ClearErrors
174
+ FileOpen $0 "$INSTDIR\${MAIN_EXE_NAME}" "a"
175
+ FileClose $0
176
+ IfErrors 0 un.not_running
177
+
178
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "${NAME} is still running. Please close it before uninstalling." IDRETRY un.check_running
179
+ Quit
180
+
181
+ un.not_running:
182
+ FunctionEnd
183
+
184
+ ; ---------------------
185
+ ; Installation section
186
+ ; ---------------------
187
+ Section "Install"
188
+ ; Ensure the install directory exists and copy all built files
189
+ SetOutPath "$INSTDIR"
190
+ SetOverwrite on
191
+ File /r "${BUILD_DIR}\*.*"
192
+
193
+ ; Write useful uninstall registry entries
194
+ WriteRegStr HKLM "Software\${NAME}" "Install_Dir" "$INSTDIR"
195
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME}"
196
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "${VERSION}"
197
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "${COMPANY}"
198
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "InstallLocation" "$INSTDIR"
199
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" "$INSTDIR\\uninstall.exe"
200
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\${MAIN_EXE_NAME}"
201
+
202
+ WriteUninstaller "$INSTDIR\\uninstall.exe"
203
+
204
+ ; Shortcuts
205
+ CreateDirectory "$SMPROGRAMS\${NAME}"
206
+ CreateShortCut "$SMPROGRAMS\${NAME}\${NAME}.lnk" "$INSTDIR\${MAIN_EXE_NAME}" "" "$INSTDIR\${MAIN_EXE_NAME}" 0
207
+ CreateShortCut "$DESKTOP\${NAME}.lnk" "$INSTDIR\${MAIN_EXE_NAME}" "" "$INSTDIR\${MAIN_EXE_NAME}" 0
208
+ SectionEnd
209
+
210
+ ; ---------------------
211
+ ; Uninstaller
212
+ ; ---------------------
213
+ Section "Uninstall"
214
+ ; Avoid locking the installation directory
215
+ SetOutPath "$TEMP"
216
+
217
+ ; Remove shortcuts first
218
+ Delete "$DESKTOP\${NAME}.lnk"
219
+ Delete "$SMPROGRAMS\${NAME}\${NAME}.lnk"
220
+ RMDir "$SMPROGRAMS\${NAME}"
221
+
222
+ ; Remove files and install directory
223
+ RMDir /r "$INSTDIR"
224
+
225
+ ; Delete AppData if requested
226
+ ${If} $DELETE_APPA_DATA == "1"
227
+ DetailPrint "Deleting application data..."
228
+ RMDir /r "$LOCALAPPDATA\${NAME}"
229
+ ${EndIf}
230
+
231
+ ; Clean up registry
232
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}"
233
+ DeleteRegKey HKLM "Software\\${NAME}"
234
+ SectionEnd
235
+
236
+ ; EOF
Binary file
Binary file
Binary file
pytron/llms.md ADDED
@@ -0,0 +1,98 @@
1
+ # Pytron AI Guide
2
+
3
+ This guide is intended for AI agents (LLMs) to understand how to interact with, develop, and extend the Pytron framework.
4
+
5
+ ## 🚀 Overview
6
+
7
+ Pytron is an Electron-like framework for Python that allows developers to build desktop applications using Python for the backend and modern Web technologies (React, Vue, Vite, etc.) for the frontend.
8
+
9
+ ### Core Architecture
10
+ - **Pytron Kit (`pytron`)**: The Python backend that manages application windows, handles IPC, and synchronizes state.
11
+ - **Pytron Client (`pytron-client`)**: A JavaScript/TypeScript library that provides an RPC bridge and state synchronization in the frontend.
12
+ - **Pytron UI (`pytron-ui`)**: A React-based UI component library designed for building native-feeling desktop applications.
13
+
14
+ ---
15
+
16
+ ## 🛠 Backend Development (Python)
17
+
18
+ ### 1. The `App` Instance
19
+ The entry point of any Pytron application is the `App` class.
20
+ ```python
21
+ from pytron import App
22
+ app = App()
23
+ ```
24
+
25
+ ### 2. Exposing Functions
26
+ Functions can be exposed to the frontend using the `@app.expose` decorator.
27
+ ```python
28
+ @app.expose
29
+ def greet(name: str):
30
+ return f"Hello, {name}!"
31
+ ```
32
+ *Note: Pytron automatically generates TypeScript definitions for these functions.*
33
+
34
+ ### 3. Reactive State
35
+ Pytron maintains a reactive state shared between Python and the frontend via `app.state`.
36
+ ```python
37
+ app.state.user = {"name": "Alice", "role": "admin"}
38
+ ```
39
+ Any change to `app.state` is automatically synchronized to the frontend.
40
+
41
+ ---
42
+
43
+ ## 🌐 Frontend Development (JS/TS)
44
+
45
+ ### 1. Calling Python Functions
46
+ Use the `pytron` client (usually a proxy) to call exposed Python functions.
47
+ ```javascript
48
+ import pytron from 'pytron-client';
49
+
50
+ const result = await pytron.greet("Agent");
51
+ ```
52
+
53
+ ### 2. Consuming State
54
+ Listen for state updates to react to backend changes.
55
+ ```javascript
56
+ pytron.on('pytron:state-update', (change) => {
57
+ console.log("State updated:", change);
58
+ });
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 📁 Project Structure & Key Files
64
+
65
+ - `pytron/application.py`: Main `App` class and window orchestration.
66
+ - `pytron/webview.py`: Integration with system WebView (Edge WebView2, WebKit, etc.).
67
+ - `pytron/state.py`: Reactive state implementation.
68
+ - `pytron/cli.py`: Command line interface for project management.
69
+ - `pyproject.toml`: Package configuration and dependencies.
70
+
71
+ ---
72
+
73
+ ## ⌨️ CLI Commands
74
+
75
+ - `pytron init`: Initialize a new project from templates.
76
+ - `pytron run`: Start the application in development mode with hot-reloading.
77
+ - `pytron build`: Package the app into a standalone executable.
78
+
79
+ ---
80
+
81
+ ## 💡 Best Practices for LLMs
82
+ 1. **Always use `@app.expose`** for functions you want the UI to call.
83
+ 2. **Prefer `app.state`** for data synchronization rather than frequent RPC calls if the data needs to be reactive.
84
+ 3. **Check `application.py`** for window management settings (width, height, title, frameless mode).
85
+ 4. **Use Type Hints** in Python functions; they are used to generate accurate TypeScript definitions.
86
+
87
+ ---
88
+
89
+ ## 📱 Android Development
90
+
91
+ Pytron supports building and deploying applications to Android devices.
92
+
93
+ ### Commands
94
+ - `pytron android init`: Initialize Android project.
95
+ - `pytron android sync`: Sync python code and frontend to Android project. **Automatically re-compiles C-extensions using NDK.**
96
+ - `pytron android run`: Install and run the app on connected device.
97
+ - `pytron android logcat`: View device logs.
98
+
@@ -0,0 +1,29 @@
1
+ # Windows UTF-8 Manifest (process opt-in)
2
+
3
+ This folder contains a process manifest that opts an application into Windows' "UTF-8 for worldwide language support" (the UTF-8 code page) for the C runtime.
4
+
5
+ - File: `windows-utf8.manifest`
6
+
7
+ Usage (PyInstaller .spec):
8
+
9
+ Add the manifest to the `EXE()` call in your `.spec` file, for example:
10
+
11
+ ```python
12
+ exe = EXE(
13
+ pyz,
14
+ ...,
15
+ manifest='pytron/manifests/windows-utf8.manifest',
16
+ ...
17
+ )
18
+ ```
19
+
20
+ Notes:
21
+ - The manifest adds the `<UseUnicodeUTF8>true</UseUnicodeUTF8>` setting for the process. This asks the Microsoft C runtime to treat the ANSI code page as UTF-8 for narrow-character (`char`/`printf`/`fopen`-style) APIs.
22
+ - Behavior depends on OS and CRT version. Test your application on target Windows versions.
23
+ - If you embed the manifest with other tools (e.g. `mt.exe`, `rcedit`, or build systems), pass the manifest as the application's resource/manifest.
24
+
25
+ If you want, I can also update `pytron` packaging helpers to automatically include this manifest when building Windows executables.
26
+
27
+ Note on Installer Compression:
28
+
29
+ - The Windows installer script (`pytron/installer/Installation.nsi`) has been updated to prefer ZLIB compression by default for better compatibility with some antivirus products. If you customize the NSIS script, be aware of the `SetCompressor` directive: newer builds may use `SetCompressor /SOLID zlib` instead of `SetCompressor lzma`.
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3
+ <assemblyIdentity type="win32" name="Pytron.App" version="1.0.0.0" processorArchitecture="*"/>
4
+
5
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
6
+ <application>
7
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> </application>
8
+ </compatibility>
9
+
10
+ <dependency>
11
+ <dependentAssembly>
12
+ <assemblyIdentity
13
+ type="win32"
14
+ name="Microsoft.Windows.Common-Controls"
15
+ version="6.0.0.0"
16
+ processorArchitecture="*"
17
+ publicKeyToken="6595b64144ccf1df"
18
+ language="*"
19
+ />
20
+ </dependentAssembly>
21
+ </dependency>
22
+
23
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
24
+ <security>
25
+ <requestedPrivileges>
26
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
27
+ </requestedPrivileges>
28
+ </security>
29
+ </trustInfo>
30
+
31
+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
32
+ <windowsSettings>
33
+ <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
34
+
35
+ <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
36
+ <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
37
+
38
+ <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
39
+
40
+ <heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
41
+ </windowsSettings>
42
+ </application>
43
+
44
+ </assembly>
pytron/menu.py ADDED
@@ -0,0 +1,128 @@
1
+ import ctypes
2
+ from typing import List, Optional, Callable
3
+
4
+
5
+ class Menu:
6
+ """
7
+ Abstraction for a native system menu.
8
+ """
9
+
10
+ def __init__(self, title: str = ""):
11
+ self.title = title
12
+ self.items: List["MenuItem"] = []
13
+ self._hmenu = None
14
+
15
+ def add_item(
16
+ self, label: str, callback: Optional[Callable] = None, shortcut: str = ""
17
+ ):
18
+ item = MenuItem(label, callback, shortcut)
19
+ self.items.append(item)
20
+ return item
21
+
22
+ def add_submenu(self, title: str):
23
+ submenu = Menu(title)
24
+ item = MenuItem(title, submenu=submenu)
25
+ self.items.append(item)
26
+ return submenu
27
+
28
+ def add_separator(self):
29
+ item = MenuItem("", is_separator=True)
30
+ self.items.append(item)
31
+ return item
32
+
33
+
34
+ class MenuItem:
35
+ def __init__(
36
+ self,
37
+ label: str,
38
+ callback: Optional[Callable] = None,
39
+ shortcut: str = "",
40
+ submenu: Optional[Menu] = None,
41
+ is_separator: bool = False,
42
+ ):
43
+ self.label = label
44
+ self.callback = callback
45
+ self.shortcut = shortcut
46
+ self.submenu = submenu
47
+ self.is_separator = is_separator
48
+ self.enabled = True
49
+ self.checked = False
50
+ self.id = None # Assigned by the platform when starting
51
+
52
+
53
+ class MenuBar:
54
+ """
55
+ A collection of Menus that forms the application's top menu bar.
56
+ """
57
+
58
+ def __init__(self):
59
+ self.menus: List[Menu] = []
60
+ self._id_counter = 1000
61
+ self._callbacks = {}
62
+
63
+ def add_menu(self, menu: Menu):
64
+ self.menus.append(menu)
65
+ return menu
66
+
67
+ def build_for_windows(self, hwnd):
68
+ """Creates and attaches a Win32 menu to the given HWND."""
69
+ user32 = ctypes.windll.user32
70
+ from .platforms.windows_ops.constants import (
71
+ MF_STRING,
72
+ MF_POPUP,
73
+ MF_SEPARATOR,
74
+ MF_GRAYED,
75
+ MF_CHECKED,
76
+ )
77
+
78
+ h_menubar = user32.CreateMenu()
79
+
80
+ def _build_recursive(menu_obj, is_top=False):
81
+ if is_top:
82
+ h_menu = h_menubar
83
+ else:
84
+ h_menu = user32.CreatePopupMenu() if not is_top else h_menubar
85
+
86
+ for item in menu_obj.items:
87
+ flags = 0
88
+ if item.is_separator:
89
+ user32.AppendMenuW(h_menu, MF_SEPARATOR, 0, None)
90
+ continue
91
+
92
+ if item.submenu:
93
+ h_sub = _build_recursive(item.submenu)
94
+ user32.AppendMenuW(h_menu, MF_STRING | MF_POPUP, h_sub, item.label)
95
+ else:
96
+ self._id_counter += 1
97
+ item.id = self._id_counter
98
+ if item.callback:
99
+ self._callbacks[item.id] = item.callback
100
+
101
+ if not item.enabled:
102
+ flags |= MF_GRAYED
103
+ if item.checked:
104
+ flags |= MF_CHECKED
105
+
106
+ label = item.label
107
+ if item.shortcut:
108
+ label += f"\t{item.shortcut}"
109
+
110
+ user32.AppendMenuW(h_menu, flags | MF_STRING, item.id, label)
111
+
112
+ return h_menu
113
+
114
+ for top_menu in self.menus:
115
+ h_sub = _build_recursive(top_menu)
116
+ user32.AppendMenuW(h_menubar, MF_STRING | MF_POPUP, h_sub, top_menu.title)
117
+
118
+ user32.SetMenu(hwnd, h_menubar)
119
+ return h_menubar
120
+
121
+ def handle_command(self, cmd_id):
122
+ """Dispatches a menu command to the appropriate callback."""
123
+ if cmd_id in self._callbacks:
124
+ import threading
125
+
126
+ threading.Thread(target=self._callbacks[cmd_id], daemon=True).start()
127
+ return True
128
+ return False
pytron/nsis-setup.exe ADDED
Binary file
File without changes
pytron/pack/assets.py ADDED
@@ -0,0 +1,131 @@
1
+ import os
2
+ from pathlib import Path
3
+ from ..console import log
4
+
5
+
6
+ def get_smart_assets(
7
+ script_dir: Path,
8
+ frontend_dist: Path | None = None,
9
+ include_patterns: list | None = None,
10
+ exclude_patterns: list | None = None,
11
+ ):
12
+ """Recursively collect project assets to include with PyInstaller.
13
+
14
+ - Skips known unwanted directories (venv, node_modules, .git, build, dist, etc.)
15
+ - Skips files with Python/source extensions and common dev files
16
+ - respects include_patterns (overrides defaults) and exclude_patterns
17
+ - Skips frontend folder since it's handled separately
18
+ Returns a list of strings in the "abs_path{os.pathsep}rel_path" format
19
+ expected by PyInstaller's `--add-data`.
20
+ """
21
+ import fnmatch
22
+
23
+ add_data = []
24
+ # Default Excludes
25
+ EXCLUDE_DIRS = {
26
+ "venv",
27
+ ".venv",
28
+ "env",
29
+ ".env",
30
+ "node_modules",
31
+ ".git",
32
+ ".vscode",
33
+ ".idea",
34
+ "build",
35
+ "dist",
36
+ "__pycache__",
37
+ "site",
38
+ ".pytest_cache",
39
+ "installer",
40
+ "frontend",
41
+ }
42
+ EXCLUDE_SUFFIXES = {".py", ".pyc", ".pyo", ".spec", ".md", ".map"}
43
+ EXCLUDE_FILES = {
44
+ ".gitignore",
45
+ "package-lock.json",
46
+ "npm-debug.log",
47
+ ".DS_Store",
48
+ "thumbs.db",
49
+ "settings.json",
50
+ "pnpm-lock.yaml",
51
+ "bun.lockb",
52
+ }
53
+
54
+ include_patterns = include_patterns or []
55
+ exclude_patterns = exclude_patterns or []
56
+
57
+ root_path = str(script_dir)
58
+ for root, dirs, files in os.walk(root_path):
59
+ # Prune directories we never want to enter
60
+ # We always exclude invalid dirs unless explicitly included
61
+ # But for directories, "including" is tricky in os.walk.
62
+ # We'll stick to default prune for safety, but check user patterns.
63
+
64
+ # Filter dirs in-place
65
+ i = 0
66
+ while i < len(dirs):
67
+ d = dirs[i]
68
+ d_path = os.path.join(root, d)
69
+ d_rel = os.path.relpath(d_path, root_path)
70
+
71
+ # Check user excludes for folders
72
+ is_user_excluded = False
73
+ for pat in exclude_patterns:
74
+ if fnmatch.fnmatch(d, pat) or fnmatch.fnmatch(d_rel, pat):
75
+ is_user_excluded = True
76
+ break
77
+
78
+ if is_user_excluded:
79
+ del dirs[i]
80
+ continue
81
+
82
+ # Default excludes (only if not explicitly included?)
83
+ # For simplicity, we enforce default folder excludes unless strictly needed.
84
+ if d in EXCLUDE_DIRS or d.startswith("."):
85
+ del dirs[i]
86
+ continue
87
+
88
+ i += 1
89
+
90
+ # If this path is part of frontend, skip (we handle frontend separately)
91
+ if frontend_dist and str(frontend_dist) in root:
92
+ continue
93
+
94
+ for filename in files:
95
+ file_path = os.path.join(root, filename)
96
+ rel_path = os.path.relpath(file_path, root_path)
97
+
98
+ # 1. User Exclude (Highest Priority)
99
+ is_user_excluded = False
100
+ for pat in exclude_patterns:
101
+ if fnmatch.fnmatch(filename, pat) or fnmatch.fnmatch(rel_path, pat):
102
+ is_user_excluded = True
103
+ break
104
+ if is_user_excluded:
105
+ continue
106
+
107
+ # 2. User Include (Overrides defaults)
108
+ is_user_included = False
109
+ for pat in include_patterns:
110
+ if fnmatch.fnmatch(filename, pat) or fnmatch.fnmatch(rel_path, pat):
111
+ is_user_included = True
112
+ break
113
+
114
+ if is_user_included:
115
+ add_data.append(f"{file_path}{os.pathsep}{rel_path}")
116
+ log(f"Explicitly included asset: {rel_path}", style="cyan")
117
+ continue
118
+
119
+ # 3. Default Checks
120
+ if filename in EXCLUDE_FILES:
121
+ continue
122
+
123
+ _, ext = os.path.splitext(filename)
124
+ if ext.lower() in EXCLUDE_SUFFIXES:
125
+ continue
126
+
127
+ # If passed all checks
128
+ add_data.append(f"{file_path}{os.pathsep}{rel_path}")
129
+ log(f"Auto-including asset: {rel_path}", style="dim")
130
+
131
+ return add_data