Nuitka-winsvc 2.7.7__cp313-cp313-win_amd64.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.

Potentially problematic release.


This version of Nuitka-winsvc might be problematic. Click here for more details.

Files changed (995) hide show
  1. nuitka/Builtins.py +259 -0
  2. nuitka/BytecodeCaching.py +184 -0
  3. nuitka/Bytecodes.py +109 -0
  4. nuitka/CacheCleanup.py +54 -0
  5. nuitka/Constants.py +425 -0
  6. nuitka/Errors.py +93 -0
  7. nuitka/HardImportRegistry.py +408 -0
  8. nuitka/MainControl.py +1201 -0
  9. nuitka/ModuleRegistry.py +364 -0
  10. nuitka/OptionParsing.py +2473 -0
  11. nuitka/Options.py +2948 -0
  12. nuitka/OutputDirectories.py +201 -0
  13. nuitka/PostProcessing.py +551 -0
  14. nuitka/Progress.py +252 -0
  15. nuitka/PythonFlavors.py +426 -0
  16. nuitka/PythonOperators.py +146 -0
  17. nuitka/PythonVersions.py +513 -0
  18. nuitka/Serialization.py +291 -0
  19. nuitka/SourceCodeReferences.py +176 -0
  20. nuitka/Tracing.py +579 -0
  21. nuitka/TreeXML.py +141 -0
  22. nuitka/Variables.py +515 -0
  23. nuitka/Version.py +88 -0
  24. nuitka/__init__.py +19 -0
  25. nuitka/__main__.py +224 -0
  26. nuitka/__past__.py +217 -0
  27. nuitka/build/Backend.scons +1111 -0
  28. nuitka/build/CCompilerVersion.scons +281 -0
  29. nuitka/build/DataComposerInterface.py +116 -0
  30. nuitka/build/Offsets.scons +626 -0
  31. nuitka/build/Onefile.scons +564 -0
  32. nuitka/build/SconsCaching.py +451 -0
  33. nuitka/build/SconsCompilerSettings.py +1133 -0
  34. nuitka/build/SconsHacks.py +215 -0
  35. nuitka/build/SconsInterface.py +664 -0
  36. nuitka/build/SconsProgress.py +100 -0
  37. nuitka/build/SconsSpawn.py +436 -0
  38. nuitka/build/SconsUtils.py +939 -0
  39. nuitka/build/__init__.py +19 -0
  40. nuitka/build/include/nuitka/allocator.h +450 -0
  41. nuitka/build/include/nuitka/builtins.h +97 -0
  42. nuitka/build/include/nuitka/calling.h +123 -0
  43. nuitka/build/include/nuitka/checkers.h +39 -0
  44. nuitka/build/include/nuitka/checksum_tools.h +28 -0
  45. nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
  46. nuitka/build/include/nuitka/compiled_cell.h +64 -0
  47. nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
  48. nuitka/build/include/nuitka/compiled_frame.h +502 -0
  49. nuitka/build/include/nuitka/compiled_function.h +170 -0
  50. nuitka/build/include/nuitka/compiled_generator.h +287 -0
  51. nuitka/build/include/nuitka/compiled_method.h +54 -0
  52. nuitka/build/include/nuitka/constants.h +251 -0
  53. nuitka/build/include/nuitka/constants_blob.h +34 -0
  54. nuitka/build/include/nuitka/debug_settings.h +60 -0
  55. nuitka/build/include/nuitka/environment_variables.h +30 -0
  56. nuitka/build/include/nuitka/environment_variables_system.h +51 -0
  57. nuitka/build/include/nuitka/exception_groups.h +167 -0
  58. nuitka/build/include/nuitka/exceptions.h +1458 -0
  59. nuitka/build/include/nuitka/filesystem_paths.h +117 -0
  60. nuitka/build/include/nuitka/freelists.h +92 -0
  61. nuitka/build/include/nuitka/hedley.h +1774 -0
  62. nuitka/build/include/nuitka/helper/attributes.h +90 -0
  63. nuitka/build/include/nuitka/helper/boolean.h +86 -0
  64. nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
  65. nuitka/build/include/nuitka/helper/bytes.h +28 -0
  66. nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
  67. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
  68. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
  69. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
  70. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
  71. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
  73. nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
  74. nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
  75. nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
  76. nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
  77. nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
  78. nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
  79. nuitka/build/include/nuitka/helper/complex.h +46 -0
  80. nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
  81. nuitka/build/include/nuitka/helper/floats.h +32 -0
  82. nuitka/build/include/nuitka/helper/import_hard.h +121 -0
  83. nuitka/build/include/nuitka/helper/indexes.h +47 -0
  84. nuitka/build/include/nuitka/helper/ints.h +165 -0
  85. nuitka/build/include/nuitka/helper/iterators.h +376 -0
  86. nuitka/build/include/nuitka/helper/lists.h +94 -0
  87. nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
  88. nuitka/build/include/nuitka/helper/mappings.h +39 -0
  89. nuitka/build/include/nuitka/helper/operations.h +114 -0
  90. nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
  91. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
  92. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
  93. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
  94. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
  95. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
  96. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
  97. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
  98. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
  99. nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
  100. nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
  101. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
  102. nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
  103. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
  104. nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
  105. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
  106. nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
  107. nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
  108. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
  109. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
  110. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
  111. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
  112. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
  113. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
  114. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
  115. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
  116. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
  117. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
  118. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
  119. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
  120. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
  121. nuitka/build/include/nuitka/helper/raising.h +114 -0
  122. nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
  123. nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
  124. nuitka/build/include/nuitka/helper/sequences.h +33 -0
  125. nuitka/build/include/nuitka/helper/sets.h +25 -0
  126. nuitka/build/include/nuitka/helper/slices.h +314 -0
  127. nuitka/build/include/nuitka/helper/strings.h +30 -0
  128. nuitka/build/include/nuitka/helper/subscripts.h +390 -0
  129. nuitka/build/include/nuitka/helper/tuples.h +187 -0
  130. nuitka/build/include/nuitka/helpers.h +417 -0
  131. nuitka/build/include/nuitka/importing.h +149 -0
  132. nuitka/build/include/nuitka/incbin.h +402 -0
  133. nuitka/build/include/nuitka/jit_sources.h +25 -0
  134. nuitka/build/include/nuitka/prelude.h +626 -0
  135. nuitka/build/include/nuitka/printing.h +84 -0
  136. nuitka/build/include/nuitka/python_pgo.h +57 -0
  137. nuitka/build/include/nuitka/safe_string_ops.h +57 -0
  138. nuitka/build/include/nuitka/threading.h +142 -0
  139. nuitka/build/include/nuitka/tracing.h +82 -0
  140. nuitka/build/include/nuitka/type_aliases.h +30 -0
  141. nuitka/build/include/nuitka/unfreezing.h +91 -0
  142. nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
  143. nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
  144. nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
  145. nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
  146. nuitka/build/inline_copy/bin/scons.py +58 -0
  147. nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
  148. nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
  149. nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
  150. nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
  151. nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
  152. nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
  153. nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
  154. nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
  155. nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
  156. nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
  157. nuitka/build/inline_copy/glob2/LICENSE +27 -0
  158. nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
  159. nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
  160. nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
  161. nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
  162. nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
  163. nuitka/build/inline_copy/jinja2/README.rst +2 -0
  164. nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
  165. nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
  166. nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
  167. nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
  168. nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
  169. nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
  170. nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
  171. nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
  172. nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
  173. nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
  174. nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
  175. nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
  176. nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
  177. nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
  178. nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
  179. nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
  180. nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
  181. nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
  182. nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
  183. nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
  184. nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
  185. nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
  186. nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
  187. nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
  188. nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
  189. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
  190. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
  191. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
  192. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
  193. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
  194. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
  195. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
  196. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
  197. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
  198. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
  199. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
  200. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
  201. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
  202. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
  203. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
  204. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
  205. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
  206. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
  207. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
  208. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
  209. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
  210. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
  211. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
  212. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
  213. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
  214. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
  215. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
  216. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
  217. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
  218. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
  219. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
  220. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
  221. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
  222. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
  223. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
  224. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
  225. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
  226. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
  227. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
  228. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
  229. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
  230. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
  231. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
  232. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
  233. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
  234. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
  235. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
  236. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
  237. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
  238. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
  239. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
  240. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
  241. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
  242. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
  243. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
  244. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
  245. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
  246. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
  247. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
  248. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
  249. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
  250. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
  251. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
  252. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
  253. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
  254. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
  255. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
  256. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
  257. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
  258. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
  259. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
  260. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
  261. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
  262. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
  263. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
  264. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
  265. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
  266. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
  267. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
  268. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
  269. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
  270. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
  271. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
  272. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
  273. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
  274. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
  275. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
  276. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
  277. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
  278. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
  279. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
  280. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
  281. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
  282. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
  283. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
  284. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
  285. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
  286. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
  287. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
  288. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
  289. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
  290. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
  291. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
  292. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
  293. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
  294. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
  295. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
  296. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
  297. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
  298. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
  299. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
  300. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
  301. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
  302. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
  303. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
  304. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
  305. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
  306. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
  307. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
  308. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
  309. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
  310. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
  311. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
  312. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
  313. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
  314. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
  315. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
  316. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
  317. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
  318. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
  319. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
  320. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
  321. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
  322. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
  323. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
  324. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
  325. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
  326. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
  327. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
  328. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
  329. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
  330. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
  331. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
  332. nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
  333. nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
  334. nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
  335. nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
  336. nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
  337. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  338. nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
  339. nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
  340. nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
  341. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  342. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
  343. nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
  344. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  345. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  346. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  347. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  348. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  349. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  350. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  351. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  352. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  353. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  354. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  355. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  356. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  357. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  358. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  359. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  360. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  361. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  362. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  363. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  364. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  365. nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
  366. nuitka/build/inline_copy/stubgen/six.py +998 -0
  367. nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
  368. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
  369. nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
  370. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
  371. nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
  372. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
  373. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
  374. nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
  375. nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
  376. nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
  377. nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
  378. nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
  379. nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
  380. nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
  381. nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
  382. nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
  383. nuitka/build/inline_copy/yaml/LICENSE +20 -0
  384. nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
  385. nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
  386. nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
  387. nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
  388. nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
  389. nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
  390. nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
  391. nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
  392. nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
  393. nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
  394. nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
  395. nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
  396. nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
  397. nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
  398. nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
  399. nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
  400. nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
  401. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  402. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  403. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  404. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  405. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  406. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  407. nuitka/build/inline_copy/zstd/LICENSE.txt +30 -0
  408. nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
  409. nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
  410. nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
  411. nuitka/build/inline_copy/zstd/common/debug.h +107 -0
  412. nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
  413. nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
  414. nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
  415. nuitka/build/inline_copy/zstd/common/fse.h +715 -0
  416. nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
  417. nuitka/build/inline_copy/zstd/common/huf.h +361 -0
  418. nuitka/build/inline_copy/zstd/common/mem.h +426 -0
  419. nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
  420. nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
  421. nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
  422. nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
  423. nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
  424. nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
  425. nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
  426. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
  427. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
  428. nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
  429. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
  430. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
  431. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
  432. nuitka/build/inline_copy/zstd/zstd.h +2391 -0
  433. nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
  434. nuitka/build/static_src/CompiledCellType.c +300 -0
  435. nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
  436. nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
  437. nuitka/build/static_src/CompiledFrameType.c +1337 -0
  438. nuitka/build/static_src/CompiledFunctionType.c +3320 -0
  439. nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
  440. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
  441. nuitka/build/static_src/CompiledMethodType.c +614 -0
  442. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  443. nuitka/build/static_src/HelpersAllocator.c +939 -0
  444. nuitka/build/static_src/HelpersAttributes.c +1241 -0
  445. nuitka/build/static_src/HelpersBuiltin.c +901 -0
  446. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
  447. nuitka/build/static_src/HelpersBytes.c +107 -0
  448. nuitka/build/static_src/HelpersCalling.c +397 -0
  449. nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
  450. nuitka/build/static_src/HelpersChecksumTools.c +59 -0
  451. nuitka/build/static_src/HelpersClasses.c +91 -0
  452. nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
  453. nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
  454. nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
  455. nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
  456. nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
  457. nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
  458. nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
  459. nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
  460. nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
  461. nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
  462. nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
  463. nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
  464. nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
  465. nuitka/build/static_src/HelpersConsole.c +124 -0
  466. nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
  467. nuitka/build/static_src/HelpersDeepcopy.c +636 -0
  468. nuitka/build/static_src/HelpersDictionaries.c +1739 -0
  469. nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
  470. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  471. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  472. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
  473. nuitka/build/static_src/HelpersExceptions.c +298 -0
  474. nuitka/build/static_src/HelpersFiles.c +353 -0
  475. nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
  476. nuitka/build/static_src/HelpersFloats.c +92 -0
  477. nuitka/build/static_src/HelpersHeapStorage.c +68 -0
  478. nuitka/build/static_src/HelpersImport.c +506 -0
  479. nuitka/build/static_src/HelpersImportHard.c +526 -0
  480. nuitka/build/static_src/HelpersJitSources.c +48 -0
  481. nuitka/build/static_src/HelpersLists.c +899 -0
  482. nuitka/build/static_src/HelpersListsGenerated.c +564 -0
  483. nuitka/build/static_src/HelpersMappings.c +46 -0
  484. nuitka/build/static_src/HelpersMatching.c +192 -0
  485. nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
  486. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
  487. nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
  488. nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
  489. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
  490. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
  491. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
  492. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
  493. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
  494. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
  495. nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
  496. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
  497. nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
  498. nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
  499. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
  500. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
  501. nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
  502. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
  503. nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
  504. nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
  505. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
  506. nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
  507. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
  508. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
  509. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
  510. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
  511. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
  512. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
  513. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
  514. nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
  515. nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
  516. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
  517. nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
  518. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
  519. nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
  520. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
  521. nuitka/build/static_src/HelpersProfiling.c +104 -0
  522. nuitka/build/static_src/HelpersPythonPgo.c +113 -0
  523. nuitka/build/static_src/HelpersRaising.c +447 -0
  524. nuitka/build/static_src/HelpersSafeStrings.c +185 -0
  525. nuitka/build/static_src/HelpersSequences.c +134 -0
  526. nuitka/build/static_src/HelpersSlices.c +73 -0
  527. nuitka/build/static_src/HelpersStrings.c +998 -0
  528. nuitka/build/static_src/HelpersTuples.c +148 -0
  529. nuitka/build/static_src/HelpersTypes.c +329 -0
  530. nuitka/build/static_src/InspectPatcher.c +439 -0
  531. nuitka/build/static_src/MainProgram.c +2060 -0
  532. nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
  533. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
  534. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
  535. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
  536. nuitka/build/static_src/OnefileBootstrap.c +1580 -0
  537. nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
  538. nuitka/code_generation/AsyncgenCodes.py +186 -0
  539. nuitka/code_generation/AttributeCodes.py +357 -0
  540. nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
  541. nuitka/code_generation/BranchCodes.py +67 -0
  542. nuitka/code_generation/BuiltinCodes.py +529 -0
  543. nuitka/code_generation/CallCodes.py +1186 -0
  544. nuitka/code_generation/ClassCodes.py +156 -0
  545. nuitka/code_generation/CodeGeneration.py +1078 -0
  546. nuitka/code_generation/CodeHelperSelection.py +81 -0
  547. nuitka/code_generation/CodeHelpers.py +455 -0
  548. nuitka/code_generation/CodeObjectCodes.py +165 -0
  549. nuitka/code_generation/ComparisonCodes.py +569 -0
  550. nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
  551. nuitka/code_generation/ConditionalCodes.py +236 -0
  552. nuitka/code_generation/ConstantCodes.py +243 -0
  553. nuitka/code_generation/Contexts.py +1248 -0
  554. nuitka/code_generation/CoroutineCodes.py +253 -0
  555. nuitka/code_generation/CtypesCodes.py +46 -0
  556. nuitka/code_generation/DictCodes.py +918 -0
  557. nuitka/code_generation/Emission.py +75 -0
  558. nuitka/code_generation/ErrorCodes.py +281 -0
  559. nuitka/code_generation/EvalCodes.py +444 -0
  560. nuitka/code_generation/ExceptionCodes.py +337 -0
  561. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
  562. nuitka/code_generation/ExpressionCodes.py +61 -0
  563. nuitka/code_generation/FrameCodes.py +518 -0
  564. nuitka/code_generation/FunctionCodes.py +858 -0
  565. nuitka/code_generation/GeneratorCodes.py +218 -0
  566. nuitka/code_generation/GlobalConstants.py +249 -0
  567. nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
  568. nuitka/code_generation/IdCodes.py +53 -0
  569. nuitka/code_generation/ImportCodes.py +468 -0
  570. nuitka/code_generation/Indentation.py +45 -0
  571. nuitka/code_generation/IndexCodes.py +50 -0
  572. nuitka/code_generation/InjectCCodes.py +28 -0
  573. nuitka/code_generation/IntegerCodes.py +110 -0
  574. nuitka/code_generation/IteratorCodes.py +378 -0
  575. nuitka/code_generation/JitCodes.py +44 -0
  576. nuitka/code_generation/LabelCodes.py +68 -0
  577. nuitka/code_generation/LineNumberCodes.py +91 -0
  578. nuitka/code_generation/ListCodes.py +502 -0
  579. nuitka/code_generation/LoaderCodes.py +193 -0
  580. nuitka/code_generation/LocalsDictCodes.py +359 -0
  581. nuitka/code_generation/LoopCodes.py +88 -0
  582. nuitka/code_generation/MatchCodes.py +67 -0
  583. nuitka/code_generation/ModuleCodes.py +247 -0
  584. nuitka/code_generation/Namify.py +260 -0
  585. nuitka/code_generation/NetworkxCodes.py +51 -0
  586. nuitka/code_generation/OperationCodes.py +398 -0
  587. nuitka/code_generation/PackageResourceCodes.py +986 -0
  588. nuitka/code_generation/PrintCodes.py +93 -0
  589. nuitka/code_generation/PythonAPICodes.py +215 -0
  590. nuitka/code_generation/RaisingCodes.py +481 -0
  591. nuitka/code_generation/Reports.py +115 -0
  592. nuitka/code_generation/ReturnCodes.py +143 -0
  593. nuitka/code_generation/SetCodes.py +196 -0
  594. nuitka/code_generation/SliceCodes.py +465 -0
  595. nuitka/code_generation/StringCodes.py +303 -0
  596. nuitka/code_generation/SubscriptCodes.py +263 -0
  597. nuitka/code_generation/TensorflowCodes.py +54 -0
  598. nuitka/code_generation/TryCodes.py +326 -0
  599. nuitka/code_generation/TupleCodes.py +115 -0
  600. nuitka/code_generation/TypeAliasCodes.py +120 -0
  601. nuitka/code_generation/VariableCodes.py +519 -0
  602. nuitka/code_generation/VariableDeclarations.py +279 -0
  603. nuitka/code_generation/YieldCodes.py +253 -0
  604. nuitka/code_generation/__init__.py +19 -0
  605. nuitka/code_generation/c_types/CTypeBases.py +177 -0
  606. nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
  607. nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
  608. nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
  609. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
  610. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
  611. nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
  612. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
  613. nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
  614. nuitka/code_generation/c_types/CTypeVoids.py +92 -0
  615. nuitka/code_generation/c_types/__init__.py +19 -0
  616. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
  617. nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
  618. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
  619. nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
  620. nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
  621. nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
  622. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
  623. nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
  624. nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
  625. nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
  626. nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
  627. nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
  628. nuitka/code_generation/templates/__init__.py +19 -0
  629. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
  630. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
  631. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
  632. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
  633. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
  634. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
  635. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
  636. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
  637. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
  638. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
  639. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
  640. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
  641. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
  642. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
  643. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
  644. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
  645. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
  646. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
  647. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
  648. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
  649. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
  650. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
  651. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
  652. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
  653. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
  654. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
  655. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
  656. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
  657. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
  658. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
  659. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
  660. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
  661. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
  662. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
  663. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
  664. nuitka/containers/Namedtuples.py +51 -0
  665. nuitka/containers/OrderedDicts.py +191 -0
  666. nuitka/containers/OrderedSets.py +123 -0
  667. nuitka/containers/OrderedSetsFallback.py +139 -0
  668. nuitka/containers/__init__.py +19 -0
  669. nuitka/distutils/Build.py +76 -0
  670. nuitka/distutils/DistutilCommands.py +438 -0
  671. nuitka/distutils/__init__.py +19 -0
  672. nuitka/finalizations/Finalization.py +35 -0
  673. nuitka/finalizations/FinalizeMarkups.py +136 -0
  674. nuitka/finalizations/__init__.py +19 -0
  675. nuitka/freezer/DependsExe.py +257 -0
  676. nuitka/freezer/DllDependenciesCommon.py +97 -0
  677. nuitka/freezer/DllDependenciesMacOS.py +444 -0
  678. nuitka/freezer/DllDependenciesPosix.py +242 -0
  679. nuitka/freezer/DllDependenciesWin32.py +315 -0
  680. nuitka/freezer/ImportDetection.py +359 -0
  681. nuitka/freezer/IncludedDataFiles.py +689 -0
  682. nuitka/freezer/IncludedEntryPoints.py +376 -0
  683. nuitka/freezer/Onefile.py +296 -0
  684. nuitka/freezer/Standalone.py +520 -0
  685. nuitka/freezer/__init__.py +19 -0
  686. nuitka/importing/IgnoreListing.py +449 -0
  687. nuitka/importing/ImportCache.py +95 -0
  688. nuitka/importing/ImportResolving.py +186 -0
  689. nuitka/importing/Importing.py +1200 -0
  690. nuitka/importing/PreloadedPackages.py +164 -0
  691. nuitka/importing/Recursion.py +611 -0
  692. nuitka/importing/StandardLibrary.py +429 -0
  693. nuitka/importing/__init__.py +19 -0
  694. nuitka/nodes/AsyncgenNodes.py +107 -0
  695. nuitka/nodes/AttributeLookupNodes.py +124 -0
  696. nuitka/nodes/AttributeNodes.py +386 -0
  697. nuitka/nodes/AttributeNodesGenerated.py +10734 -0
  698. nuitka/nodes/BuiltinAllNodes.py +115 -0
  699. nuitka/nodes/BuiltinAnyNodes.py +124 -0
  700. nuitka/nodes/BuiltinComplexNodes.py +83 -0
  701. nuitka/nodes/BuiltinDecodingNodes.py +52 -0
  702. nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
  703. nuitka/nodes/BuiltinDictNodes.py +140 -0
  704. nuitka/nodes/BuiltinFormatNodes.py +159 -0
  705. nuitka/nodes/BuiltinHashNodes.py +63 -0
  706. nuitka/nodes/BuiltinInputNodes.py +39 -0
  707. nuitka/nodes/BuiltinIntegerNodes.py +170 -0
  708. nuitka/nodes/BuiltinIteratorNodes.py +391 -0
  709. nuitka/nodes/BuiltinLenNodes.py +61 -0
  710. nuitka/nodes/BuiltinNextNodes.py +111 -0
  711. nuitka/nodes/BuiltinOpenNodes.py +148 -0
  712. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
  713. nuitka/nodes/BuiltinRangeNodes.py +690 -0
  714. nuitka/nodes/BuiltinRefNodes.py +314 -0
  715. nuitka/nodes/BuiltinSumNodes.py +104 -0
  716. nuitka/nodes/BuiltinTypeNodes.py +454 -0
  717. nuitka/nodes/BuiltinVarsNodes.py +44 -0
  718. nuitka/nodes/BytesNodes.py +829 -0
  719. nuitka/nodes/CallNodes.py +217 -0
  720. nuitka/nodes/Checkers.py +55 -0
  721. nuitka/nodes/ChildrenHavingMixins.py +21576 -0
  722. nuitka/nodes/ClassNodes.py +286 -0
  723. nuitka/nodes/CodeObjectSpecs.py +230 -0
  724. nuitka/nodes/ComparisonNodes.py +687 -0
  725. nuitka/nodes/ConditionalNodes.py +884 -0
  726. nuitka/nodes/ConstantRefNodes.py +1717 -0
  727. nuitka/nodes/ContainerMakingNodes.py +408 -0
  728. nuitka/nodes/ContainerOperationNodes.py +87 -0
  729. nuitka/nodes/CoroutineNodes.py +144 -0
  730. nuitka/nodes/CtypesNodes.py +51 -0
  731. nuitka/nodes/DictionaryNodes.py +1513 -0
  732. nuitka/nodes/ExceptionNodes.py +393 -0
  733. nuitka/nodes/ExecEvalNodes.py +229 -0
  734. nuitka/nodes/ExpressionBases.py +1301 -0
  735. nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
  736. nuitka/nodes/ExpressionShapeMixins.py +886 -0
  737. nuitka/nodes/FrameNodes.py +413 -0
  738. nuitka/nodes/FunctionAttributeNodes.py +102 -0
  739. nuitka/nodes/FunctionNodes.py +1303 -0
  740. nuitka/nodes/FutureSpecs.py +224 -0
  741. nuitka/nodes/GeneratorNodes.py +201 -0
  742. nuitka/nodes/GlobalsLocalsNodes.py +209 -0
  743. nuitka/nodes/HardImportNodesGenerated.py +3599 -0
  744. nuitka/nodes/ImportHardNodes.py +185 -0
  745. nuitka/nodes/ImportNodes.py +1366 -0
  746. nuitka/nodes/IndicatorMixins.py +79 -0
  747. nuitka/nodes/InjectCNodes.py +51 -0
  748. nuitka/nodes/IterationHandles.py +407 -0
  749. nuitka/nodes/KeyValuePairNodes.py +378 -0
  750. nuitka/nodes/ListOperationNodes.py +525 -0
  751. nuitka/nodes/LocalsDictNodes.py +717 -0
  752. nuitka/nodes/LocalsScopes.py +505 -0
  753. nuitka/nodes/LoopNodes.py +445 -0
  754. nuitka/nodes/MatchNodes.py +60 -0
  755. nuitka/nodes/ModuleAttributeNodes.py +180 -0
  756. nuitka/nodes/ModuleNodes.py +1137 -0
  757. nuitka/nodes/NetworkxNodes.py +45 -0
  758. nuitka/nodes/NodeBases.py +890 -0
  759. nuitka/nodes/NodeMakingHelpers.py +481 -0
  760. nuitka/nodes/NodeMetaClasses.py +172 -0
  761. nuitka/nodes/OperatorNodes.py +944 -0
  762. nuitka/nodes/OperatorNodesUnary.py +403 -0
  763. nuitka/nodes/OsSysNodes.py +215 -0
  764. nuitka/nodes/OutlineNodes.py +372 -0
  765. nuitka/nodes/PackageMetadataNodes.py +982 -0
  766. nuitka/nodes/PackageResourceNodes.py +424 -0
  767. nuitka/nodes/PrintNodes.py +105 -0
  768. nuitka/nodes/ReturnNodes.py +255 -0
  769. nuitka/nodes/SideEffectNodes.py +139 -0
  770. nuitka/nodes/SliceNodes.py +386 -0
  771. nuitka/nodes/StatementBasesGenerated.py +3419 -0
  772. nuitka/nodes/StatementNodes.py +316 -0
  773. nuitka/nodes/StrNodes.py +919 -0
  774. nuitka/nodes/StringConcatenationNodes.py +103 -0
  775. nuitka/nodes/SubscriptNodes.py +245 -0
  776. nuitka/nodes/TensorflowNodes.py +38 -0
  777. nuitka/nodes/TryNodes.py +519 -0
  778. nuitka/nodes/TypeMatchNodes.py +65 -0
  779. nuitka/nodes/TypeNodes.py +390 -0
  780. nuitka/nodes/VariableAssignNodes.py +1177 -0
  781. nuitka/nodes/VariableDelNodes.py +320 -0
  782. nuitka/nodes/VariableNameNodes.py +153 -0
  783. nuitka/nodes/VariableRefNodes.py +895 -0
  784. nuitka/nodes/VariableReleaseNodes.py +153 -0
  785. nuitka/nodes/YieldNodes.py +121 -0
  786. nuitka/nodes/__init__.py +19 -0
  787. nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
  788. nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
  789. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  790. nuitka/nodes/shapes/ShapeMixins.py +255 -0
  791. nuitka/nodes/shapes/StandardShapes.py +1384 -0
  792. nuitka/nodes/shapes/__init__.py +19 -0
  793. nuitka/optimizations/BytecodeDemotion.py +105 -0
  794. nuitka/optimizations/FunctionInlining.py +110 -0
  795. nuitka/optimizations/Graphs.py +70 -0
  796. nuitka/optimizations/Optimization.py +363 -0
  797. nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
  798. nuitka/optimizations/Tags.py +76 -0
  799. nuitka/optimizations/TraceCollections.py +1257 -0
  800. nuitka/optimizations/ValueTraces.py +980 -0
  801. nuitka/optimizations/__init__.py +19 -0
  802. nuitka/pgo/PGO.py +160 -0
  803. nuitka/pgo/__init__.py +19 -0
  804. nuitka/plugins/PluginBase.py +1924 -0
  805. nuitka/plugins/Plugins.py +2007 -0
  806. nuitka/plugins/YamlPluginBase.py +121 -0
  807. nuitka/plugins/__init__.py +19 -0
  808. nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
  809. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
  810. nuitka/plugins/standard/DataFilesPlugin.py +311 -0
  811. nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
  812. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  813. nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
  814. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
  815. nuitka/plugins/standard/DillPlugin.py +137 -0
  816. nuitka/plugins/standard/DllFilesPlugin.py +527 -0
  817. nuitka/plugins/standard/EnumPlugin.py +64 -0
  818. nuitka/plugins/standard/EventletPlugin.py +57 -0
  819. nuitka/plugins/standard/GeventPlugin.py +64 -0
  820. nuitka/plugins/standard/GiPlugin.py +118 -0
  821. nuitka/plugins/standard/GlfwPlugin.py +138 -0
  822. nuitka/plugins/standard/ImplicitImports.py +845 -0
  823. nuitka/plugins/standard/KivyPlugin.py +141 -0
  824. nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
  825. nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
  826. nuitka/plugins/standard/NumpyPlugin.py +35 -0
  827. nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
  828. nuitka/plugins/standard/PbrPlugin.py +62 -0
  829. nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
  830. nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
  831. nuitka/plugins/standard/PmwPlugin.py +248 -0
  832. nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
  833. nuitka/plugins/standard/PywebViewPlugin.py +81 -0
  834. nuitka/plugins/standard/SpacyPlugin.py +137 -0
  835. nuitka/plugins/standard/TensorflowPlugin.py +35 -0
  836. nuitka/plugins/standard/TkinterPlugin.py +416 -0
  837. nuitka/plugins/standard/TorchPlugin.py +35 -0
  838. nuitka/plugins/standard/TransformersPlugin.py +121 -0
  839. nuitka/plugins/standard/TrioPlugin.py +33 -0
  840. nuitka/plugins/standard/UpxPlugin.py +174 -0
  841. nuitka/plugins/standard/__init__.py +19 -0
  842. nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
  843. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
  844. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
  845. nuitka/reports/CompilationReportReader.py +83 -0
  846. nuitka/reports/LicenseReport.rst.j2 +41 -0
  847. nuitka/reports/Reports.py +961 -0
  848. nuitka/reports/__init__.py +19 -0
  849. nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
  850. nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
  851. nuitka/specs/BuiltinListOperationSpecs.py +80 -0
  852. nuitka/specs/BuiltinParameterSpecs.py +831 -0
  853. nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
  854. nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
  855. nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
  856. nuitka/specs/HardImportSpecs.py +236 -0
  857. nuitka/specs/ParameterSpecs.py +630 -0
  858. nuitka/specs/__init__.py +19 -0
  859. nuitka/tools/Basics.py +55 -0
  860. nuitka/tools/__init__.py +19 -0
  861. nuitka/tools/commercial/__init__.py +21 -0
  862. nuitka/tools/data_composer/DataComposer.py +593 -0
  863. nuitka/tools/data_composer/__init__.py +19 -0
  864. nuitka/tools/data_composer/__main__.py +41 -0
  865. nuitka/tools/environments/CreateEnvironment.py +69 -0
  866. nuitka/tools/environments/Virtualenv.py +158 -0
  867. nuitka/tools/environments/__init__.py +19 -0
  868. nuitka/tools/general/__init__.py +19 -0
  869. nuitka/tools/general/dll_report/__init__.py +19 -0
  870. nuitka/tools/general/dll_report/__main__.py +83 -0
  871. nuitka/tools/general/find_module/FindModuleCode.py +127 -0
  872. nuitka/tools/general/find_module/__init__.py +19 -0
  873. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  874. nuitka/tools/general/generate_header/__init__.py +19 -0
  875. nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
  876. nuitka/tools/onefile_compressor/__init__.py +19 -0
  877. nuitka/tools/onefile_compressor/__main__.py +41 -0
  878. nuitka/tools/podman/Podman.py +55 -0
  879. nuitka/tools/podman/__init__.py +19 -0
  880. nuitka/tools/podman/__main__.py +425 -0
  881. nuitka/tools/profiler/__init__.py +19 -0
  882. nuitka/tools/profiler/__main__.py +93 -0
  883. nuitka/tools/scanning/DisplayDistributions.py +39 -0
  884. nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
  885. nuitka/tools/scanning/DisplayPackageData.py +73 -0
  886. nuitka/tools/scanning/__init__.py +19 -0
  887. nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
  888. nuitka/tools/specialize/Common.py +380 -0
  889. nuitka/tools/specialize/SpecializeC.py +1483 -0
  890. nuitka/tools/specialize/SpecializePython.py +1151 -0
  891. nuitka/tools/specialize/__init__.py +19 -0
  892. nuitka/tools/testing/Common.py +2007 -0
  893. nuitka/tools/testing/Constructs.py +53 -0
  894. nuitka/tools/testing/DocTests.py +156 -0
  895. nuitka/tools/testing/OutputComparison.py +313 -0
  896. nuitka/tools/testing/Pythons.py +34 -0
  897. nuitka/tools/testing/RuntimeTracing.py +260 -0
  898. nuitka/tools/testing/SearchModes.py +208 -0
  899. nuitka/tools/testing/Valgrind.py +103 -0
  900. nuitka/tools/testing/__init__.py +19 -0
  901. nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
  902. nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
  903. nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
  904. nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
  905. nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
  906. nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
  907. nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
  908. nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
  909. nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
  910. nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
  911. nuitka/tools/watch/AutoStage.py +145 -0
  912. nuitka/tools/watch/Common.py +55 -0
  913. nuitka/tools/watch/Conda.py +125 -0
  914. nuitka/tools/watch/GitHub.py +113 -0
  915. nuitka/tools/watch/Pacman.py +73 -0
  916. nuitka/tools/watch/Pipenv.py +145 -0
  917. nuitka/tools/watch/__init__.py +19 -0
  918. nuitka/tools/watch/__main__.py +615 -0
  919. nuitka/tree/Building.py +1459 -0
  920. nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
  921. nuitka/tree/Extractions.py +48 -0
  922. nuitka/tree/FutureSpecState.py +71 -0
  923. nuitka/tree/InternalModule.py +96 -0
  924. nuitka/tree/Operations.py +45 -0
  925. nuitka/tree/ReformulationAssertStatements.py +97 -0
  926. nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
  927. nuitka/tree/ReformulationBooleanExpressions.py +97 -0
  928. nuitka/tree/ReformulationCallExpressions.py +314 -0
  929. nuitka/tree/ReformulationClasses.py +407 -0
  930. nuitka/tree/ReformulationClasses3.py +1149 -0
  931. nuitka/tree/ReformulationComparisonExpressions.py +174 -0
  932. nuitka/tree/ReformulationContractionExpressions.py +676 -0
  933. nuitka/tree/ReformulationDictionaryCreation.py +304 -0
  934. nuitka/tree/ReformulationExecStatements.py +386 -0
  935. nuitka/tree/ReformulationForLoopStatements.py +215 -0
  936. nuitka/tree/ReformulationFunctionStatements.py +931 -0
  937. nuitka/tree/ReformulationImportStatements.py +333 -0
  938. nuitka/tree/ReformulationLambdaExpressions.py +185 -0
  939. nuitka/tree/ReformulationMatchStatements.py +797 -0
  940. nuitka/tree/ReformulationMultidist.py +80 -0
  941. nuitka/tree/ReformulationNamespacePackages.py +239 -0
  942. nuitka/tree/ReformulationPrintStatements.py +127 -0
  943. nuitka/tree/ReformulationSequenceCreation.py +438 -0
  944. nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
  945. nuitka/tree/ReformulationTryExceptStatements.py +418 -0
  946. nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
  947. nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
  948. nuitka/tree/ReformulationWithStatements.py +382 -0
  949. nuitka/tree/ReformulationYieldExpressions.py +133 -0
  950. nuitka/tree/SourceHandling.py +476 -0
  951. nuitka/tree/SyntaxErrors.py +143 -0
  952. nuitka/tree/TreeHelpers.py +720 -0
  953. nuitka/tree/VariableClosure.py +483 -0
  954. nuitka/tree/__init__.py +19 -0
  955. nuitka/utils/AppDirs.py +104 -0
  956. nuitka/utils/CStrings.py +208 -0
  957. nuitka/utils/CommandLineOptions.py +207 -0
  958. nuitka/utils/Distributions.py +728 -0
  959. nuitka/utils/Download.py +217 -0
  960. nuitka/utils/Execution.py +517 -0
  961. nuitka/utils/FileOperations.py +1587 -0
  962. nuitka/utils/Hashing.py +137 -0
  963. nuitka/utils/Images.py +79 -0
  964. nuitka/utils/Importing.py +335 -0
  965. nuitka/utils/InlineCopies.py +52 -0
  966. nuitka/utils/InstalledPythons.py +254 -0
  967. nuitka/utils/InstanceCounters.py +86 -0
  968. nuitka/utils/Jinja2.py +158 -0
  969. nuitka/utils/Json.py +40 -0
  970. nuitka/utils/MacOSApp.py +134 -0
  971. nuitka/utils/MemoryUsage.py +165 -0
  972. nuitka/utils/ModuleNames.py +317 -0
  973. nuitka/utils/PackageResources.py +44 -0
  974. nuitka/utils/ReExecute.py +152 -0
  975. nuitka/utils/Rest.py +60 -0
  976. nuitka/utils/SharedLibraries.py +1014 -0
  977. nuitka/utils/Shebang.py +113 -0
  978. nuitka/utils/Signing.py +144 -0
  979. nuitka/utils/SlotMetaClasses.py +57 -0
  980. nuitka/utils/StaticLibraries.py +260 -0
  981. nuitka/utils/ThreadedExecutor.py +87 -0
  982. nuitka/utils/Timing.py +102 -0
  983. nuitka/utils/Utils.py +483 -0
  984. nuitka/utils/WindowsFileUsage.py +337 -0
  985. nuitka/utils/WindowsResources.py +652 -0
  986. nuitka/utils/Yaml.py +247 -0
  987. nuitka/utils/__init__.py +19 -0
  988. nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
  989. nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
  990. nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
  991. nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
  992. nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
  993. nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
  994. nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
  995. nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1137 @@
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """ Module/Package nodes
5
+
6
+ The top of the tree. Packages are also modules. Modules are what hold a program
7
+ together and cross-module optimizations are the most difficult to tackle.
8
+ """
9
+
10
+ import os
11
+
12
+ from nuitka import Options, Variables
13
+ from nuitka.containers.OrderedSets import OrderedSet
14
+ from nuitka.importing.Importing import locateModule, makeModuleUsageAttempt
15
+ from nuitka.importing.Recursion import decideRecursion, recurseTo
16
+ from nuitka.ModuleRegistry import getModuleByName, getOwnerFromCodeName
17
+ from nuitka.optimizations.TraceCollections import TraceCollectionModule
18
+ from nuitka.Options import hasPythonFlagIsolated
19
+ from nuitka.PythonVersions import python_version
20
+ from nuitka.SourceCodeReferences import fromFilename
21
+ from nuitka.tree.SourceHandling import parsePyIFile, readSourceCodeFromFilename
22
+ from nuitka.utils.CStrings import encodePythonIdentifierToC
23
+ from nuitka.utils.FileOperations import switchFilenameExtension
24
+ from nuitka.utils.Importing import (
25
+ getExtensionModuleSuffixes,
26
+ getPackageDirFilename,
27
+ )
28
+ from nuitka.utils.ModuleNames import ModuleName
29
+
30
+ from .ChildrenHavingMixins import (
31
+ ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin,
32
+ )
33
+ from .FutureSpecs import fromFlags
34
+ from .IndicatorMixins import EntryPointMixin, MarkNeedsAnnotationsMixin
35
+ from .LocalsScopes import getLocalsDictHandle
36
+ from .NodeBases import (
37
+ ClosureGiverNodeMixin,
38
+ NodeBase,
39
+ extractKindAndArgsFromXML,
40
+ fromXML,
41
+ )
42
+
43
+
44
+ class PythonModuleBase(NodeBase):
45
+ # Base classes can be abstract, pylint: disable=abstract-method
46
+
47
+ __slots__ = ("module_name", "reason")
48
+
49
+ def __init__(self, module_name, reason, source_ref):
50
+ assert type(module_name) is ModuleName, module_name
51
+ assert module_name != "", source_ref
52
+
53
+ NodeBase.__init__(self, source_ref=source_ref)
54
+
55
+ self.module_name = module_name
56
+ self.reason = reason
57
+
58
+ def getDetails(self):
59
+ return {"module_name": self.module_name}
60
+
61
+ def getFullName(self):
62
+ return self.module_name
63
+
64
+ @staticmethod
65
+ def isMainModule():
66
+ return False
67
+
68
+ @staticmethod
69
+ def isTopModule():
70
+ return False
71
+
72
+ def attemptRecursion(self):
73
+ # Make sure the package is recursed to if any
74
+ package_name = self.module_name.getPackageName()
75
+ if package_name is None:
76
+ return ()
77
+
78
+ # Return the list of newly added modules.
79
+
80
+ package = getModuleByName(package_name)
81
+
82
+ if package_name is not None and package is None:
83
+ (
84
+ _package_name,
85
+ package_filename,
86
+ package_module_kind,
87
+ finding,
88
+ ) = locateModule(
89
+ module_name=package_name,
90
+ parent_package=None,
91
+ level=0,
92
+ )
93
+
94
+ # If we can't find the package for Python3 that is semi-OK, it might be in a
95
+ # namespace package, these have no init code.
96
+ if python_version >= 0x300 and not package_filename:
97
+ return ()
98
+
99
+ if package_name == "uniconvertor.app.modules":
100
+ return ()
101
+
102
+ assert package_filename is not None, (package_name, finding)
103
+
104
+ assert _package_name == package_name, (
105
+ package_filename,
106
+ _package_name,
107
+ package_name,
108
+ )
109
+
110
+ decision, _reason = decideRecursion(
111
+ using_module_name=self.getFullName(),
112
+ module_filename=package_filename,
113
+ module_name=package_name,
114
+ module_kind=package_module_kind,
115
+ )
116
+
117
+ if decision is not None:
118
+ package = recurseTo(
119
+ module_name=package_name,
120
+ module_filename=package_filename,
121
+ module_kind=package_module_kind,
122
+ source_ref=self.source_ref,
123
+ reason="parent package",
124
+ using_module_name=self.module_name,
125
+ )
126
+
127
+ if package:
128
+ from nuitka.ModuleRegistry import addUsedModule
129
+
130
+ addUsedModule(
131
+ package,
132
+ using_module=self,
133
+ usage_tag="package",
134
+ reason="Containing package of '%s'." % self.getFullName(),
135
+ source_ref=self.source_ref,
136
+ )
137
+
138
+ def getCodeName(self):
139
+ # Virtual method, pylint: disable=no-self-use
140
+ return None
141
+
142
+ def getCompileTimeFilename(self):
143
+ """The compile time filename for the module.
144
+
145
+ Returns:
146
+ Full path to module file at compile time.
147
+ Notes:
148
+ We are getting the absolute path here, since we do
149
+ not want to have to deal with resolving paths at
150
+ all.
151
+
152
+ """
153
+ return os.path.abspath(self.source_ref.getFilename())
154
+
155
+ def getCompileTimeDirectory(self):
156
+ """The compile time directory for the module.
157
+
158
+ Returns:
159
+ Full path to module directory at compile time.
160
+ Notes:
161
+ For packages, we let the package directory be
162
+ the result, otherwise the containing directory
163
+ is the result.
164
+ Notes:
165
+ Use this to find files nearby a module, mainly
166
+ in plugin code.
167
+ """
168
+ result = self.getCompileTimeFilename()
169
+ if not os.path.isdir(result):
170
+ result = os.path.dirname(result)
171
+ return result
172
+
173
+ def getRunTimeFilename(self):
174
+ reference_mode = Options.getFileReferenceMode()
175
+
176
+ if reference_mode == "original":
177
+ return self.getCompileTimeFilename()
178
+ elif reference_mode == "frozen":
179
+ return "<frozen %s>" % self.getFullName()
180
+ else:
181
+ filename = self.getCompileTimeFilename()
182
+
183
+ full_name = self.getFullName()
184
+
185
+ result = os.path.basename(filename)
186
+ current = filename
187
+
188
+ levels = full_name.count(".")
189
+ if (
190
+ self.isCompiledPythonPackage()
191
+ and not self.isCompiledPythonNamespacePackage()
192
+ ):
193
+ levels += 1
194
+
195
+ for _i in range(levels):
196
+ current = os.path.dirname(current)
197
+
198
+ result = os.path.join(os.path.basename(current), result)
199
+
200
+ # Avoid unnecessary unicode path values
201
+ if str is not bytes:
202
+ try:
203
+ result = str(result)
204
+ except UnicodeDecodeError:
205
+ pass
206
+
207
+ return result
208
+
209
+ @staticmethod
210
+ def isExtensionModulePackage():
211
+ return False
212
+
213
+
214
+ class CompiledPythonModule(
215
+ ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin,
216
+ ClosureGiverNodeMixin,
217
+ MarkNeedsAnnotationsMixin,
218
+ EntryPointMixin,
219
+ PythonModuleBase,
220
+ ):
221
+ """Compiled Python Module"""
222
+
223
+ # This one has a few indicators, pylint: disable=too-many-instance-attributes
224
+
225
+ kind = "COMPILED_PYTHON_MODULE"
226
+
227
+ __slots__ = (
228
+ "is_top",
229
+ "name",
230
+ "code_prefix",
231
+ "code_name",
232
+ "uids",
233
+ "temp_variables",
234
+ "temp_scopes",
235
+ "preserver_id",
236
+ "needs_annotations_dict",
237
+ "trace_collection",
238
+ "mode",
239
+ "variables",
240
+ "active_functions",
241
+ "visited_functions",
242
+ "cross_used_functions",
243
+ "used_modules",
244
+ "future_spec",
245
+ "source_code",
246
+ "module_dict_name",
247
+ "locals_scope",
248
+ )
249
+
250
+ named_children = ("body|statements_or_none+setter", "functions|tuple+setter")
251
+
252
+ def __init__(self, module_name, reason, is_top, mode, future_spec, source_ref):
253
+ PythonModuleBase.__init__(
254
+ self,
255
+ module_name=module_name,
256
+ reason=reason,
257
+ source_ref=source_ref,
258
+ )
259
+
260
+ ClosureGiverNodeMixin.__init__(
261
+ self, name=module_name.getBasename(), code_prefix="module"
262
+ )
263
+
264
+ ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin.__init__(
265
+ self,
266
+ body=None, # delayed
267
+ functions=(),
268
+ )
269
+
270
+ MarkNeedsAnnotationsMixin.__init__(self)
271
+
272
+ EntryPointMixin.__init__(self)
273
+
274
+ self.is_top = is_top
275
+
276
+ self.mode = mode
277
+
278
+ self.variables = {}
279
+
280
+ # Functions that have been used.
281
+ self.active_functions = OrderedSet()
282
+
283
+ # Functions that should be visited again.
284
+ self.visited_functions = set()
285
+
286
+ self.cross_used_functions = OrderedSet()
287
+
288
+ self.used_modules = OrderedSet()
289
+
290
+ # Often "None" until tree building finishes its part.
291
+ self.future_spec = future_spec
292
+
293
+ # The source code of the module if changed or not from disk.
294
+ self.source_code = None
295
+
296
+ self.module_dict_name = "globals_%s" % (self.getCodeName(),)
297
+
298
+ self.locals_scope = getLocalsDictHandle(
299
+ self.module_dict_name, "module_dict", self
300
+ )
301
+
302
+ self.used_modules = OrderedSet()
303
+
304
+ @staticmethod
305
+ def isCompiledPythonModule():
306
+ return True
307
+
308
+ def getDetails(self):
309
+ return {
310
+ "filename": self.source_ref.getFilename(),
311
+ "module_name": self.module_name,
312
+ }
313
+
314
+ def getDetailsForDisplay(self):
315
+ result = self.getDetails()
316
+
317
+ if self.future_spec is not None:
318
+ result["code_flags"] = ",".join(self.future_spec.asFlags())
319
+
320
+ return result
321
+
322
+ def getCompilationMode(self):
323
+ return self.mode
324
+
325
+ @classmethod
326
+ def fromXML(cls, provider, source_ref, **args):
327
+ # Modules are not having any provider, must not be used,
328
+ assert False
329
+
330
+ def getFutureSpec(self):
331
+ return self.future_spec
332
+
333
+ def setFutureSpec(self, future_spec):
334
+ self.future_spec = future_spec
335
+
336
+ def isTopModule(self):
337
+ return self.is_top
338
+
339
+ def asGraph(self, graph, desc):
340
+ graph = graph.add_subgraph(
341
+ name="cluster_%s" % desc, comment="Graph for %s" % self.getName()
342
+ )
343
+
344
+ # graph.body.append("style=filled")
345
+ # graph.body.append("color=lightgrey")
346
+ # graph.body.append("label=Iteration_%d" % desc)
347
+
348
+ def makeTraceNodeName(variable, version, variable_trace):
349
+ return "%s/ %s %s %s" % (
350
+ desc,
351
+ variable.getName(),
352
+ version,
353
+ variable_trace.__class__.__name__,
354
+ )
355
+
356
+ for function_body in self.active_functions:
357
+ trace_collection = function_body.trace_collection
358
+
359
+ node_names = {}
360
+
361
+ for (
362
+ (variable, version),
363
+ variable_trace,
364
+ ) in trace_collection.getVariableTracesAll().items():
365
+ node_name = makeTraceNodeName(variable, version, variable_trace)
366
+
367
+ node_names[variable_trace] = node_name
368
+
369
+ for (
370
+ (variable, version),
371
+ variable_trace,
372
+ ) in trace_collection.getVariableTracesAll().items():
373
+ node_name = node_names[variable_trace]
374
+
375
+ previous = variable_trace.getPrevious()
376
+
377
+ attrs = {"style": "filled"}
378
+
379
+ if variable_trace.getUsageCount():
380
+ attrs["color"] = "blue"
381
+ else:
382
+ attrs["color"] = "red"
383
+
384
+ graph.add_node(node_name, **attrs)
385
+
386
+ if type(previous) is tuple:
387
+ for prev_trace in previous:
388
+ graph.add_edge(node_names[prev_trace], node_name)
389
+
390
+ assert prev_trace is not variable_trace
391
+
392
+ elif previous is not None:
393
+ assert previous is not variable_trace
394
+ graph.add_edge(node_names[previous], node_name)
395
+
396
+ return graph
397
+
398
+ def getSourceCode(self):
399
+ if self.source_code is not None:
400
+ return self.source_code
401
+ else:
402
+ # This should of course give same result as before.
403
+ return readSourceCodeFromFilename(
404
+ module_name=self.getFullName(),
405
+ source_filename=self.getCompileTimeFilename(),
406
+ )
407
+
408
+ def setSourceCode(self, code):
409
+ self.source_code = code
410
+
411
+ def getParent(self):
412
+ # We have never have a parent
413
+ return None
414
+
415
+ def getParentVariableProvider(self):
416
+ # We have never have a provider
417
+ return None
418
+
419
+ def hasVariableName(self, variable_name):
420
+ return variable_name in self.variables or variable_name in self.temp_variables
421
+
422
+ def getProvidedVariables(self):
423
+ return self.variables.values()
424
+
425
+ def getFilename(self):
426
+ return self.source_ref.getFilename()
427
+
428
+ def getVariableForAssignment(self, variable_name):
429
+ return self.getProvidedVariable(variable_name)
430
+
431
+ def getVariableForReference(self, variable_name):
432
+ return self.getProvidedVariable(variable_name)
433
+
434
+ def getVariableForClosure(self, variable_name):
435
+ return self.getProvidedVariable(variable_name=variable_name)
436
+
437
+ def createProvidedVariable(self, variable_name):
438
+ assert variable_name not in self.variables
439
+
440
+ result = Variables.ModuleVariable(module=self, variable_name=variable_name)
441
+
442
+ self.variables[variable_name] = result
443
+
444
+ return result
445
+
446
+ @staticmethod
447
+ def getContainingClassDictCreation():
448
+ return None
449
+
450
+ @staticmethod
451
+ def isEarlyClosure():
452
+ # Modules should immediately closure variables on use.
453
+ return True
454
+
455
+ def getEntryPoint(self):
456
+ return self
457
+
458
+ def getCodeName(self):
459
+ # For code name of modules, we need to translate to C identifiers,
460
+ # removing characters illegal for that.
461
+
462
+ if self.code_name is None:
463
+ self.code_name = encodePythonIdentifierToC(self.module_name)
464
+
465
+ return self.code_name
466
+
467
+ @staticmethod
468
+ def getChildQualname(function_name):
469
+ return function_name
470
+
471
+ def addFunction(self, function_body):
472
+ functions = self.subnode_functions
473
+ assert function_body not in functions
474
+ functions += (function_body,)
475
+ self.setChildFunctions(functions)
476
+
477
+ def startTraversal(self):
478
+ self.used_modules = None
479
+ self.active_functions = OrderedSet()
480
+
481
+ def restartTraversal(self):
482
+ self.visited_functions = set()
483
+ self.used_modules = None
484
+
485
+ def getUsedModules(self):
486
+ if self.trace_collection is None:
487
+ # Optimization is not yet done at all, but report writing for error
488
+ # exit may happen.
489
+ return ()
490
+
491
+ return self.trace_collection.getModuleUsageAttempts()
492
+
493
+ def getUsedDistributions(self):
494
+ return self.trace_collection.getUsedDistributions()
495
+
496
+ def addUsedFunction(self, function_body):
497
+ assert function_body in self.subnode_functions, function_body
498
+
499
+ assert (
500
+ function_body.isExpressionFunctionBody()
501
+ or function_body.isExpressionClassBodyBase()
502
+ or function_body.isExpressionGeneratorObjectBody()
503
+ or function_body.isExpressionCoroutineObjectBody()
504
+ or function_body.isExpressionAsyncgenObjectBody()
505
+ )
506
+
507
+ self.active_functions.add(function_body)
508
+
509
+ result = function_body not in self.visited_functions
510
+ self.visited_functions.add(function_body)
511
+
512
+ return result
513
+
514
+ def getUsedFunctions(self):
515
+ return self.active_functions
516
+
517
+ def getUnusedFunctions(self):
518
+ for function in self.subnode_functions:
519
+ if function not in self.active_functions:
520
+ yield function
521
+
522
+ def addCrossUsedFunction(self, function_body):
523
+ if function_body not in self.cross_used_functions:
524
+ self.cross_used_functions.add(function_body)
525
+
526
+ def getCrossUsedFunctions(self):
527
+ return self.cross_used_functions
528
+
529
+ def getFunctionFromCodeName(self, code_name):
530
+ for function in self.subnode_functions:
531
+ if function.getCodeName() == code_name:
532
+ return function
533
+
534
+ def getOutputFilename(self):
535
+ main_filename = self.getFilename()
536
+
537
+ if main_filename.endswith(".py"):
538
+ result = main_filename[:-3]
539
+ elif main_filename.endswith(".pyw"):
540
+ result = main_filename[:-4]
541
+ else:
542
+ result = main_filename
543
+
544
+ # There are some characters that somehow are passed to shell, by
545
+ # Scons or unknown, so lets avoid them for now.
546
+ return result.replace(")", "").replace("(", "")
547
+
548
+ def computeModule(self):
549
+ self.restartTraversal()
550
+
551
+ old_collection = self.trace_collection
552
+
553
+ self.trace_collection = TraceCollectionModule(
554
+ self,
555
+ very_trusted_module_variables=(
556
+ old_collection.getVeryTrustedModuleVariables()
557
+ if old_collection is not None
558
+ else {}
559
+ ),
560
+ )
561
+
562
+ module_body = self.subnode_body
563
+
564
+ if module_body is not None:
565
+ result = module_body.computeStatementsSequence(
566
+ trace_collection=self.trace_collection
567
+ )
568
+
569
+ if result is not module_body:
570
+ self.setChildBody(result)
571
+
572
+ self.attemptRecursion()
573
+
574
+ # We determine the trusted module variable for use on next turnaround to provide functions with traces for them.
575
+ very_trusted_module_variables = {}
576
+ for module_variable in self.locals_scope.getLocalsRelevantVariables():
577
+ very_trusted_node = self.trace_collection.getVariableCurrentTrace(
578
+ module_variable
579
+ ).getAttributeNodeVeryTrusted()
580
+ if very_trusted_node is not None:
581
+ very_trusted_module_variables[module_variable] = very_trusted_node
582
+
583
+ if self.trace_collection.updateVeryTrustedModuleVariables(
584
+ very_trusted_module_variables
585
+ ):
586
+ self.trace_collection.signalChange(
587
+ tags="trusted_module_variables",
588
+ message="Trusting module variable(s) '%s'"
589
+ % ",".join(
590
+ variable.getName()
591
+ for variable in self.trace_collection.getVeryTrustedModuleVariables()
592
+ ),
593
+ source_ref=self.source_ref,
594
+ )
595
+
596
+ # Finalize locals scopes previously determined for removal in last pass.
597
+ self.trace_collection.updateVariablesFromCollection(
598
+ old_collection=old_collection, source_ref=self.source_ref
599
+ )
600
+
601
+ # Indicate if this is pass 1 for the module as return value.
602
+ was_complete = not self.locals_scope.complete
603
+
604
+ def markAsComplete(body, trace_collection):
605
+ if body.locals_scope is not None:
606
+ # Make sure the propagated stuff releases memory.
607
+ if body.locals_scope.isMarkedForPropagation():
608
+ body.locals_scope.onPropagationComplete()
609
+
610
+ body.locals_scope.markAsComplete(trace_collection)
611
+
612
+ def markEntryPointAsComplete(body):
613
+ markAsComplete(body, body.trace_collection)
614
+
615
+ outline_bodies = body.trace_collection.getOutlineFunctions()
616
+
617
+ if outline_bodies is not None:
618
+ for outline_body in outline_bodies:
619
+ markAsComplete(outline_body, body.trace_collection)
620
+
621
+ body.optimizeUnusedTempVariables()
622
+
623
+ markEntryPointAsComplete(self)
624
+
625
+ for function_body in self.getUsedFunctions():
626
+ markEntryPointAsComplete(function_body)
627
+
628
+ function_body.optimizeUnusedClosureVariables()
629
+ function_body.optimizeVariableReleases()
630
+
631
+ return was_complete
632
+
633
+ def getTraceCollections(self):
634
+ yield self.trace_collection
635
+
636
+ for function in self.getUsedFunctions():
637
+ yield function.trace_collection
638
+
639
+ def isUnoptimized(self):
640
+ # Modules don't do this, pylint: disable=no-self-use
641
+ return False
642
+
643
+ def getLocalVariables(self):
644
+ # Modules don't do this, pylint: disable=no-self-use
645
+ return ()
646
+
647
+ def getUserLocalVariables(self):
648
+ # Modules don't do this, pylint: disable=no-self-use
649
+ return ()
650
+
651
+ @staticmethod
652
+ def getFunctionVariablesWithAutoReleases():
653
+ """Return the list of function variables that should be released at exit."""
654
+ return ()
655
+
656
+ def getOutlineLocalVariables(self):
657
+ outlines = self.getTraceCollection().getOutlineFunctions()
658
+
659
+ if outlines is None:
660
+ return ()
661
+
662
+ result = []
663
+
664
+ for outline in outlines:
665
+ result.extend(outline.getUserLocalVariables())
666
+
667
+ return result
668
+
669
+ def hasClosureVariable(self, variable):
670
+ # Modules don't do this, pylint: disable=no-self-use,unused-argument
671
+ return False
672
+
673
+ def removeUserVariable(self, variable):
674
+ outlines = self.getTraceCollection().getOutlineFunctions()
675
+
676
+ for outline in outlines:
677
+ user_locals = outline.getUserLocalVariables()
678
+
679
+ if variable in user_locals:
680
+ outline.removeUserVariable(variable)
681
+ break
682
+
683
+ def getLocalsScope(self):
684
+ return self.locals_scope
685
+
686
+ def getRuntimePackageValue(self):
687
+ if self.isCompiledPythonPackage():
688
+ return self.getFullName().asString()
689
+
690
+ value = self.getFullName().getPackageName()
691
+
692
+ if value is not None:
693
+ return value.asString()
694
+
695
+ if self.isMainModule():
696
+ if self.main_added:
697
+ return ""
698
+ else:
699
+ return None
700
+ else:
701
+ return None
702
+
703
+ def getRuntimeNameValue(self):
704
+ if self.isMainModule() and Options.hasPythonFlagPackageMode():
705
+ return "__main__"
706
+ elif self.module_name.isMultidistModuleName():
707
+ return "__main__"
708
+ else:
709
+ return self.getFullName().asString()
710
+
711
+
712
+ class CompiledPythonPackage(CompiledPythonModule):
713
+ kind = "COMPILED_PYTHON_PACKAGE"
714
+
715
+ def __init__(self, module_name, reason, is_top, mode, future_spec, source_ref):
716
+ CompiledPythonModule.__init__(
717
+ self,
718
+ module_name=module_name,
719
+ reason=reason,
720
+ is_top=is_top,
721
+ mode=mode,
722
+ future_spec=future_spec,
723
+ source_ref=source_ref,
724
+ )
725
+
726
+ @staticmethod
727
+ def isCompiledPythonPackage():
728
+ return True
729
+
730
+ def getOutputFilename(self):
731
+ result = self.getFilename()
732
+
733
+ if os.path.isdir(result):
734
+ return result
735
+ else:
736
+ return os.path.dirname(result)
737
+
738
+ @staticmethod
739
+ def canHaveExternalImports():
740
+ return not hasPythonFlagIsolated()
741
+
742
+
743
+ class CompiledPythonNamespacePackage(CompiledPythonPackage):
744
+ kind = "COMPILED_PYTHON_NAMESPACE_PACKAGE"
745
+
746
+ @staticmethod
747
+ def isCompiledPythonNamespacePackage():
748
+ return True
749
+
750
+ # These have no source code obviously.
751
+ @staticmethod
752
+ def getSourceCode():
753
+ return None
754
+
755
+
756
+ def makeUncompiledPythonModule(
757
+ module_name, reason, filename, bytecode, is_package, technical
758
+ ):
759
+ source_ref = fromFilename(filename)
760
+
761
+ if is_package:
762
+ return UncompiledPythonPackage(
763
+ module_name=module_name,
764
+ reason=reason,
765
+ bytecode=bytecode,
766
+ filename=filename,
767
+ technical=technical,
768
+ source_ref=source_ref,
769
+ )
770
+ else:
771
+ return UncompiledPythonModule(
772
+ module_name=module_name,
773
+ reason=reason,
774
+ bytecode=bytecode,
775
+ filename=filename,
776
+ technical=technical,
777
+ source_ref=source_ref,
778
+ )
779
+
780
+
781
+ class UncompiledPythonModule(PythonModuleBase):
782
+ """Uncompiled Python Module"""
783
+
784
+ kind = "UNCOMPILED_PYTHON_MODULE"
785
+
786
+ __slots__ = (
787
+ "bytecode",
788
+ "filename",
789
+ "technical",
790
+ "used_modules",
791
+ "distribution_names",
792
+ )
793
+
794
+ def __init__(
795
+ self,
796
+ module_name,
797
+ reason,
798
+ bytecode,
799
+ filename,
800
+ technical,
801
+ source_ref,
802
+ ):
803
+ PythonModuleBase.__init__(
804
+ self,
805
+ module_name=module_name,
806
+ reason=reason,
807
+ source_ref=source_ref,
808
+ )
809
+
810
+ self.bytecode = bytecode
811
+ self.filename = filename
812
+
813
+ self.technical = technical
814
+
815
+ self.used_modules = ()
816
+ self.distribution_names = ()
817
+
818
+ def finalize(self):
819
+ del self.used_modules
820
+ del self.bytecode
821
+
822
+ @staticmethod
823
+ def isUncompiledPythonModule():
824
+ return True
825
+
826
+ def isTechnical(self):
827
+ """Must be bytecode as it's used in CPython library initialization."""
828
+ return self.technical
829
+
830
+ def getByteCode(self):
831
+ return self.bytecode
832
+
833
+ def getFilename(self):
834
+ return self.filename
835
+
836
+ def getUsedModules(self):
837
+ return self.used_modules
838
+
839
+ def setUsedModules(self, used_modules):
840
+ self.used_modules = used_modules
841
+
842
+ def getUsedDistributions(self):
843
+ return self.distribution_names
844
+
845
+ def setUsedDistributions(self, distribution_names):
846
+ self.distribution_names = distribution_names
847
+
848
+ @staticmethod
849
+ def startTraversal():
850
+ pass
851
+
852
+
853
+ class UncompiledPythonPackage(UncompiledPythonModule):
854
+ kind = "UNCOMPILED_PYTHON_PACKAGE"
855
+
856
+
857
+ class PythonMainModule(CompiledPythonModule):
858
+ """Main module of a program, typically "__main__" but can be inside a package too."""
859
+
860
+ kind = "PYTHON_MAIN_MODULE"
861
+
862
+ __slots__ = ("main_added", "standard_library_modules")
863
+
864
+ def __init__(self, module_name, main_added, mode, future_spec, source_ref):
865
+ assert not Options.shallMakeModule()
866
+
867
+ # Is this one from a "__main__.py" file
868
+ self.main_added = main_added
869
+
870
+ CompiledPythonModule.__init__(
871
+ self,
872
+ module_name=module_name,
873
+ reason="main",
874
+ is_top=True,
875
+ mode=mode,
876
+ future_spec=future_spec,
877
+ source_ref=source_ref,
878
+ )
879
+
880
+ self.standard_library_modules = ()
881
+
882
+ def getDetails(self):
883
+ return {
884
+ "filename": self.source_ref.getFilename(),
885
+ "module_name": self.module_name,
886
+ "main_added": self.main_added,
887
+ "mode": self.mode,
888
+ }
889
+
890
+ @classmethod
891
+ def fromXML(cls, provider, source_ref, **args):
892
+ future_spec = fromFlags(args["code_flags"])
893
+
894
+ result = cls(
895
+ main_added=args["main_added"] == "True",
896
+ mode=args["mode"],
897
+ module_name=ModuleName(args["module_name"]),
898
+ future_spec=future_spec,
899
+ source_ref=source_ref,
900
+ )
901
+
902
+ from nuitka.ModuleRegistry import addRootModule
903
+
904
+ addRootModule(result)
905
+
906
+ function_work = []
907
+
908
+ for xml in args["functions"]:
909
+ _kind, node_class, func_args, source_ref = extractKindAndArgsFromXML(
910
+ xml, source_ref
911
+ )
912
+
913
+ if "provider" in func_args:
914
+ func_args["provider"] = getOwnerFromCodeName(func_args["provider"])
915
+ else:
916
+ func_args["provider"] = result
917
+
918
+ if "flags" in args:
919
+ func_args["flags"] = set(func_args["flags"].split(","))
920
+
921
+ if "doc" not in args:
922
+ func_args["doc"] = None
923
+
924
+ function = node_class.fromXML(source_ref=source_ref, **func_args)
925
+
926
+ # Could do more checks for look up of body here, but so what...
927
+ function_work.append((function, iter(iter(xml).next()).next()))
928
+
929
+ for function, xml in function_work:
930
+ function.setChildBody(
931
+ fromXML(
932
+ provider=function, xml=xml, source_ref=function.getSourceReference()
933
+ )
934
+ )
935
+
936
+ result.setChildBody(
937
+ fromXML(provider=result, xml=args["body"][0], source_ref=source_ref)
938
+ )
939
+
940
+ return result
941
+
942
+ @staticmethod
943
+ def isMainModule():
944
+ return True
945
+
946
+ def getOutputFilename(self):
947
+ if self.main_added:
948
+ return os.path.dirname(self.getFilename())
949
+ else:
950
+ return CompiledPythonModule.getOutputFilename(self)
951
+
952
+ def getUsedModules(self):
953
+ for used_module in CompiledPythonModule.getUsedModules(self):
954
+ yield used_module
955
+
956
+ for used_module in self.standard_library_modules:
957
+ yield used_module
958
+
959
+ def setStandardLibraryModules(self, early_module_names, stdlib_modules_names):
960
+ self.standard_library_modules = OrderedSet()
961
+
962
+ for early_module_name in early_module_names + stdlib_modules_names:
963
+ _early_module_name, module_filename, module_kind, finding = locateModule(
964
+ module_name=early_module_name,
965
+ parent_package=None,
966
+ level=0,
967
+ )
968
+
969
+ # Technically required, but not found must not happen
970
+ assert finding != "not-found", early_module_name
971
+
972
+ self.standard_library_modules.add(
973
+ makeModuleUsageAttempt(
974
+ module_name=early_module_name,
975
+ filename=module_filename,
976
+ module_kind=module_kind,
977
+ finding=finding,
978
+ level=0,
979
+ source_ref=self.source_ref,
980
+ reason="stdlib",
981
+ )
982
+ )
983
+
984
+
985
+ class PythonExtensionModule(PythonModuleBase):
986
+ kind = "PYTHON_EXTENSION_MODULE"
987
+
988
+ __slots__ = ("used_modules", "module_filename", "technical", "is_package")
989
+
990
+ avoid_duplicates = set()
991
+
992
+ def __init__(
993
+ self,
994
+ module_name,
995
+ module_filename,
996
+ reason,
997
+ technical,
998
+ source_ref,
999
+ ):
1000
+ PythonModuleBase.__init__(
1001
+ self,
1002
+ module_name=module_name,
1003
+ reason=reason,
1004
+ source_ref=source_ref,
1005
+ )
1006
+
1007
+ # That would be a mistake we just made.
1008
+ assert os.path.basename(source_ref.getFilename()) != "<frozen>"
1009
+
1010
+ # That is too likely a bug.
1011
+ assert module_name != "__main__"
1012
+
1013
+ # Duplicates should be avoided by us caching elsewhere before creating
1014
+ # the object.
1015
+ assert self.getFullName() not in self.avoid_duplicates, self.getFullName()
1016
+ self.avoid_duplicates.add(self.getFullName())
1017
+
1018
+ # Required to startup
1019
+ self.technical = technical
1020
+
1021
+ self.used_modules = None
1022
+
1023
+ if os.path.isdir(module_filename):
1024
+ module_filename = getPackageDirFilename(module_filename)
1025
+ self.is_package = True
1026
+ else:
1027
+ self.is_package = False
1028
+
1029
+ self.module_filename = module_filename
1030
+
1031
+ def isExtensionModulePackage(self):
1032
+ return self.is_package
1033
+
1034
+ def finalize(self):
1035
+ del self.used_modules
1036
+
1037
+ def getFilename(self):
1038
+ return self.module_filename
1039
+
1040
+ @staticmethod
1041
+ def startTraversal():
1042
+ pass
1043
+
1044
+ def isTechnical(self):
1045
+ """Must be present as it's used in CPython library initialization."""
1046
+ return self.technical
1047
+
1048
+ def _getPyIFilename(self):
1049
+ """Get Python type description filename."""
1050
+
1051
+ path = self.getFilename()
1052
+
1053
+ for extension_module_suffix in getExtensionModuleSuffixes():
1054
+ if path.endswith(extension_module_suffix):
1055
+ for pyi_suffix in (".pyi", ".py"):
1056
+ candidate = switchFilenameExtension(
1057
+ path=path,
1058
+ old_extension=extension_module_suffix,
1059
+ new_extension=pyi_suffix,
1060
+ )
1061
+
1062
+ if os.path.exists(candidate):
1063
+ return candidate
1064
+
1065
+ return None
1066
+
1067
+ def _readPyIFile(self):
1068
+ """Read the .pyi file if present and scan for dependencies."""
1069
+
1070
+ if self.used_modules is None:
1071
+ # TODO: Make this a locatePyIFilename function instead.
1072
+ pyi_filename = self._getPyIFilename()
1073
+
1074
+ if pyi_filename is not None:
1075
+ pyi_deps = parsePyIFile(
1076
+ module_name=self.getFullName(),
1077
+ package_name=(
1078
+ self.getFullName()
1079
+ if self.is_package
1080
+ else self.getFullName().getPackageName()
1081
+ ),
1082
+ pyi_filename=pyi_filename,
1083
+ )
1084
+
1085
+ # These are not to be taken serious.
1086
+ if "typing" in pyi_deps:
1087
+ pyi_deps.discard("typing")
1088
+ if "__future__" in pyi_deps:
1089
+ pyi_deps.discard("__future__")
1090
+
1091
+ # Dependency on itself makes no sense.
1092
+ if self.getFullName() in pyi_deps:
1093
+ pyi_deps.discard(self.getFullName())
1094
+
1095
+ # Dependency on containing package makes no sense.
1096
+ if self.getFullName().getPackageName() in pyi_deps:
1097
+ pyi_deps.discard(self.getFullName().getPackageName())
1098
+
1099
+ self.used_modules = tuple(pyi_deps)
1100
+ else:
1101
+ self.used_modules = ()
1102
+
1103
+ def getPyIModuleImportedNames(self):
1104
+ self._readPyIFile()
1105
+
1106
+ assert "." not in self.used_modules, self
1107
+
1108
+ return self.used_modules
1109
+
1110
+ @staticmethod
1111
+ def getUsedModules():
1112
+ # The PyI contents is currently delivered via implicit imports
1113
+ # plugin.
1114
+ return ()
1115
+
1116
+ @staticmethod
1117
+ def getUsedDistributions():
1118
+ return {}
1119
+
1120
+ def getParentModule(self):
1121
+ return self
1122
+
1123
+
1124
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1125
+ # integrates with CPython, but also works on its own.
1126
+ #
1127
+ # Licensed under the Apache License, Version 2.0 (the "License");
1128
+ # you may not use this file except in compliance with the License.
1129
+ # You may obtain a copy of the License at
1130
+ #
1131
+ # http://www.apache.org/licenses/LICENSE-2.0
1132
+ #
1133
+ # Unless required by applicable law or agreed to in writing, software
1134
+ # distributed under the License is distributed on an "AS IS" BASIS,
1135
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1136
+ # See the License for the specific language governing permissions and
1137
+ # limitations under the License.