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,982 @@
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """ Nodes the represent ways to access metadata pkg_resources, importlib.resources etc.
5
+
6
+ """
7
+
8
+ from nuitka.Constants import isCompileTimeConstantValue
9
+ from nuitka.Options import isStandaloneMode, shallMakeModule
10
+ from nuitka.Tracing import inclusion_logger
11
+ from nuitka.utils.Importing import importFromCompileTime
12
+ from nuitka.utils.Utils import withNoDeprecationWarning, withNoWarning
13
+
14
+ from .AttributeNodes import makeExpressionAttributeLookup
15
+ from .ContainerMakingNodes import (
16
+ ExpressionMakeSequenceMixin,
17
+ makeExpressionMakeList,
18
+ makeExpressionMakeTuple,
19
+ )
20
+ from .DictionaryNodes import ExpressionMakeDictMixin, makeExpressionMakeDict
21
+ from .ExpressionBases import ExpressionBase, ExpressionNoSideEffectsMixin
22
+ from .ExpressionBasesGenerated import (
23
+ ExpressionImportlibMetadataBackportEntryPointsValueRefBase,
24
+ ExpressionImportlibMetadataBackportEntryPointValueRefBase,
25
+ ExpressionImportlibMetadataBackportSelectableGroupsValueRefBase,
26
+ ExpressionImportlibMetadataDistributionFailedCallBase,
27
+ ExpressionImportlibMetadataEntryPointsValueRefBase,
28
+ ExpressionImportlibMetadataEntryPointValueRefBase,
29
+ ExpressionImportlibMetadataSelectableGroupsValueRefBase,
30
+ )
31
+ from .HardImportNodesGenerated import (
32
+ ExpressionImportlibMetadataBackportEntryPointsCallBase,
33
+ ExpressionImportlibMetadataBackportVersionCallBase,
34
+ ExpressionImportlibMetadataDistributionCallBase,
35
+ ExpressionImportlibMetadataEntryPointsBefore310CallBase,
36
+ ExpressionImportlibMetadataEntryPointsSince310CallBase,
37
+ ExpressionImportlibMetadataVersionCallBase,
38
+ ExpressionPkgResourcesGetDistributionCallBase,
39
+ ExpressionPkgResourcesIterEntryPointsCallBase,
40
+ ExpressionPkgResourcesRequireCallBase,
41
+ )
42
+ from .KeyValuePairNodes import (
43
+ makeExpressionKeyValuePairConstantKey,
44
+ makeKeyValuePairExpressionsFromKwArgs,
45
+ )
46
+
47
+
48
+ def _getPkgResourcesModule():
49
+ """Helper for importing pkg_resources from installation at compile time.
50
+
51
+ This is not for using the inline copy, but the one from the actual
52
+ installation of the user. It suppresses warnings and caches the value
53
+ avoid making more __import__ calls that necessary.
54
+ """
55
+
56
+ with withNoWarning():
57
+ return importFromCompileTime("pkg_resources", must_exist=True)
58
+
59
+
60
+ class ExpressionPkgResourcesRequireCall(ExpressionPkgResourcesRequireCallBase):
61
+ kind = "EXPRESSION_PKG_RESOURCES_REQUIRE_CALL"
62
+
63
+ def replaceWithCompileTimeValue(self, trace_collection):
64
+ resources_module = _getPkgResourcesModule()
65
+
66
+ require = resources_module.require
67
+ ResolutionError = resources_module.ResolutionError
68
+
69
+ try:
70
+ InvalidRequirement = (
71
+ resources_module.extern.packaging.requirements.InvalidRequirement
72
+ )
73
+ except AttributeError:
74
+ # Very old versions of pkg_resources do not have it
75
+ InvalidRequirement = TypeError
76
+
77
+ args = tuple(
78
+ element.getCompileTimeConstant() for element in self.subnode_requirements
79
+ )
80
+
81
+ try:
82
+ distributions = require(*args)
83
+ except ResolutionError:
84
+ inclusion_logger.warning(
85
+ "Cannot find requirement %s at '%s', expect potential run time problem, unless this is unused code."
86
+ % (",".join(repr(s) for s in args), self.source_ref.getAsString())
87
+ )
88
+
89
+ trace_collection.onExceptionRaiseExit(BaseException)
90
+
91
+ return self, None, None
92
+ except (TypeError, InvalidRequirement):
93
+ trace_collection.onExceptionRaiseExit(BaseException)
94
+
95
+ return self, None, None
96
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
97
+ inclusion_logger.sysexit(
98
+ "Error, failed to find requirements '%s' at '%s' due to unhandled %s. Please report this bug."
99
+ % (
100
+ ",".join(repr(s) for s in args),
101
+ self.source_ref.getAsString(),
102
+ repr(e),
103
+ )
104
+ )
105
+ else:
106
+ result = makeExpressionMakeList(
107
+ elements=tuple(
108
+ ExpressionPkgResourcesDistributionValueRef(
109
+ distribution=distribution, source_ref=self.source_ref
110
+ )
111
+ for distribution in distributions
112
+ ),
113
+ source_ref=self.source_ref,
114
+ )
115
+
116
+ trace_collection.onExceptionRaiseExit(BaseException)
117
+
118
+ return (
119
+ result,
120
+ "new_expression",
121
+ "Compile time predicted 'pkg_resources.require' result",
122
+ )
123
+
124
+
125
+ class ExpressionPkgResourcesGetDistributionCall(
126
+ ExpressionPkgResourcesGetDistributionCallBase
127
+ ):
128
+ kind = "EXPRESSION_PKG_RESOURCES_GET_DISTRIBUTION_CALL"
129
+
130
+ def replaceWithCompileTimeValue(self, trace_collection):
131
+ pkg_resources_module = _getPkgResourcesModule()
132
+ get_distribution = pkg_resources_module.get_distribution
133
+ DistributionNotFound = pkg_resources_module.DistributionNotFound
134
+
135
+ arg = self.subnode_dist.getCompileTimeConstant()
136
+
137
+ try:
138
+ distribution = get_distribution(arg)
139
+ except DistributionNotFound:
140
+ trace_collection.onDistributionUsed(
141
+ distribution_name=arg, node=self, success=False
142
+ )
143
+
144
+ trace_collection.onExceptionRaiseExit(BaseException)
145
+
146
+ return self, None, None
147
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
148
+ inclusion_logger.sysexit(
149
+ "Error, failed to find distribution '%s' at '%s' due to unhandled %s. Please report this bug."
150
+ % (arg, self.source_ref.getAsString(), repr(e))
151
+ )
152
+ else:
153
+ trace_collection.onDistributionUsed(
154
+ distribution_name=arg, node=self, success=True
155
+ )
156
+
157
+ result = ExpressionPkgResourcesDistributionValueRef(
158
+ distribution=distribution, source_ref=self.source_ref
159
+ )
160
+
161
+ return (
162
+ result,
163
+ "new_expression",
164
+ "Compile time predicted 'pkg_resources.get_distribution' result",
165
+ )
166
+
167
+
168
+ class ImportlibMetadataVersionCallMixin(object):
169
+ __slots__ = ()
170
+
171
+ def _getImportlibMetadataModule(self):
172
+ return importFromCompileTime(self.importlib_metadata_name, must_exist=True)
173
+
174
+ def replaceWithCompileTimeValue(self, trace_collection):
175
+ version = self._getImportlibMetadataModule().version
176
+ PackageNotFoundError = self._getImportlibMetadataModule().PackageNotFoundError
177
+
178
+ arg = self.subnode_distribution_name.getCompileTimeConstant()
179
+
180
+ try:
181
+ distribution = version(arg)
182
+ except PackageNotFoundError:
183
+ trace_collection.onDistributionUsed(
184
+ distribution_name=arg, node=self, success=False
185
+ )
186
+
187
+ trace_collection.onExceptionRaiseExit(BaseException)
188
+
189
+ return self, None, None
190
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
191
+ inclusion_logger.sysexit(
192
+ "Error, failed to find distribution '%s' at '%s' due to unhandled %s. Please report this bug."
193
+ % (arg, self.source_ref.getAsString(), repr(e))
194
+ )
195
+ else:
196
+ trace_collection.onDistributionUsed(
197
+ distribution_name=arg, node=self, success=True
198
+ )
199
+
200
+ from .ConstantRefNodes import makeConstantRefNode
201
+
202
+ result = makeConstantRefNode(
203
+ constant=distribution, source_ref=self.source_ref
204
+ )
205
+
206
+ return (
207
+ result,
208
+ "new_expression",
209
+ "Compile time predicted '%s.version' result"
210
+ % self.importlib_metadata_name,
211
+ )
212
+
213
+
214
+ class ExpressionImportlibMetadataVersionCall(
215
+ ImportlibMetadataVersionCallMixin, ExpressionImportlibMetadataVersionCallBase
216
+ ):
217
+ kind = "EXPRESSION_IMPORTLIB_METADATA_VERSION_CALL"
218
+ python_version_spec = ">= 0x380"
219
+ importlib_metadata_name = "importlib.metadata"
220
+
221
+
222
+ class ExpressionImportlibMetadataBackportVersionCall(
223
+ ImportlibMetadataVersionCallMixin,
224
+ ExpressionImportlibMetadataBackportVersionCallBase,
225
+ ):
226
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_VERSION_CALL"
227
+ importlib_metadata_name = "importlib_metadata"
228
+
229
+
230
+ # TODO: This is much like a compile time variable, but not a good compile time
231
+ # constant, have that too. Treating it as semi-constant, we should get away
232
+ # with.
233
+
234
+
235
+ class ExpressionPkgResourcesDistributionValueRef(
236
+ ExpressionNoSideEffectsMixin, ExpressionBase
237
+ ):
238
+ kind = "EXPRESSION_PKG_RESOURCES_DISTRIBUTION_VALUE_REF"
239
+
240
+ __slots__ = ("distribution", "computed_attributes")
241
+
242
+ preserved_attributes = ("py_version", "platform", "version", "project_name")
243
+
244
+ def __init__(self, distribution, source_ref):
245
+ with withNoDeprecationWarning():
246
+ Distribution = _getPkgResourcesModule().Distribution
247
+
248
+ preserved_attributes = self.preserved_attributes
249
+ if not isStandaloneMode():
250
+ preserved_attributes += ("location",)
251
+
252
+ distribution = Distribution(
253
+ **dict(
254
+ (key, getattr(distribution, key)) for key in preserved_attributes
255
+ )
256
+ )
257
+
258
+ ExpressionBase.__init__(self, source_ref)
259
+
260
+ self.distribution = distribution
261
+ self.computed_attributes = {}
262
+
263
+ def finalize(self):
264
+ del self.distribution
265
+
266
+ @staticmethod
267
+ def isKnownToBeHashable():
268
+ return True
269
+
270
+ @staticmethod
271
+ def getTruthValue():
272
+ return True
273
+
274
+ @staticmethod
275
+ def mayRaiseException(exception_type):
276
+ return False
277
+
278
+ def computeExpressionRaw(self, trace_collection):
279
+ # Cannot compute any further, this is already the best.
280
+ return self, None, None
281
+
282
+ def isKnownToHaveAttribute(self, attribute_name):
283
+ if attribute_name not in self.computed_attributes:
284
+ self.computed_attributes[attribute_name] = hasattr(
285
+ self.distribution, attribute_name
286
+ )
287
+
288
+ return self.computed_attributes[attribute_name]
289
+
290
+ def getKnownAttributeValue(self, attribute_name):
291
+ return getattr(self.distribution, attribute_name)
292
+
293
+ def computeExpressionAttribute(self, lookup_node, attribute_name, trace_collection):
294
+ # If it raises, or the attribute itself is a compile time constant,
295
+ # then do execute it.
296
+ if (
297
+ self.isKnownToHaveAttribute(attribute_name)
298
+ and isCompileTimeConstantValue(
299
+ getattr(self.distribution, attribute_name, None)
300
+ )
301
+ and (attribute_name != "location" or not isStandaloneMode())
302
+ ):
303
+ return trace_collection.getCompileTimeComputationResult(
304
+ node=lookup_node,
305
+ computation=lambda: getattr(self.distribution, attribute_name),
306
+ description="Attribute '%s' pre-computed." % (attribute_name),
307
+ )
308
+
309
+ return lookup_node, None, None
310
+
311
+ def mayRaiseExceptionAttributeLookup(self, exception_type, attribute_name):
312
+ return not self.isKnownToHaveAttribute(attribute_name)
313
+
314
+
315
+ class ExpressionImportlibMetadataDistributionValueRef(
316
+ ExpressionNoSideEffectsMixin, ExpressionBase
317
+ ):
318
+ kind = "EXPRESSION_IMPORTLIB_METADATA_DISTRIBUTION_VALUE_REF"
319
+
320
+ # This is also usable with the backport, generated code finds what is working for it.
321
+
322
+ __slots__ = ("distribution", "original_name", "computed_attributes")
323
+
324
+ def __init__(self, distribution, original_name, source_ref):
325
+ ExpressionBase.__init__(self, source_ref)
326
+
327
+ self.distribution = distribution
328
+ self.original_name = original_name
329
+ self.computed_attributes = {}
330
+
331
+ def getDetails(self):
332
+ return {"distribution": self.distribution, "original_name": self.original_name}
333
+
334
+ def finalize(self):
335
+ del self.distribution
336
+
337
+ @staticmethod
338
+ def isKnownToBeHashable():
339
+ return True
340
+
341
+ @staticmethod
342
+ def getTruthValue():
343
+ return True
344
+
345
+ @staticmethod
346
+ def mayRaiseException(exception_type):
347
+ return False
348
+
349
+ def computeExpressionRaw(self, trace_collection):
350
+ # Cannot compute any further, this is already the best.
351
+ return self, None, None
352
+
353
+
354
+ class ExpressionPkgResourcesIterEntryPointsCall(
355
+ ExpressionPkgResourcesIterEntryPointsCallBase
356
+ ):
357
+ kind = "EXPRESSION_PKG_RESOURCES_ITER_ENTRY_POINTS_CALL"
358
+
359
+ def replaceWithCompileTimeValue(self, trace_collection):
360
+ pkg_resources_module = _getPkgResourcesModule()
361
+ iter_entry_points = pkg_resources_module.iter_entry_points
362
+ DistributionNotFound = pkg_resources_module.DistributionNotFound
363
+
364
+ group = self.subnode_group.getCompileTimeConstant()
365
+ if self.subnode_name is not None:
366
+ name = self.subnode_name.getCompileTimeConstant()
367
+ else:
368
+ name = None
369
+
370
+ try:
371
+ # Get entry point from generator, we cannot delay.
372
+ entry_points = tuple(iter_entry_points(group=group, name=name))
373
+ except DistributionNotFound:
374
+ trace_collection.onDistributionUsed(
375
+ distribution_name=name or group, node=self, success=False
376
+ )
377
+
378
+ trace_collection.onExceptionRaiseExit(BaseException)
379
+
380
+ return self, None, None
381
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
382
+ inclusion_logger.sysexit(
383
+ "Error, failed to find distribution '%s' at '%s' due to unhandled %s. Please report this bug."
384
+ % (name, self.source_ref.getAsString(), repr(e))
385
+ )
386
+ else:
387
+ trace_collection.onDistributionUsed(
388
+ distribution_name=name or group, node=self, success=True
389
+ )
390
+
391
+ result = makeExpressionMakeList(
392
+ elements=tuple(
393
+ ExpressionPkgResourcesEntryPointValueRef(
394
+ entry_point=entry_point, source_ref=self.source_ref
395
+ )
396
+ for entry_point in entry_points
397
+ ),
398
+ source_ref=self.source_ref,
399
+ )
400
+
401
+ return (
402
+ result,
403
+ "new_expression",
404
+ "Compile time predicted 'pkg_resources.iter_entry_points' result",
405
+ )
406
+
407
+
408
+ class ExpressionPkgResourcesEntryPointValueRef(
409
+ ExpressionNoSideEffectsMixin, ExpressionBase
410
+ ):
411
+ kind = "EXPRESSION_PKG_RESOURCES_ENTRY_POINT_VALUE_REF"
412
+
413
+ __slots__ = ("entry_point", "computed_attributes")
414
+
415
+ preserved_attributes = ("name", "module_name", "attrs", "extras")
416
+
417
+ def __init__(self, entry_point, source_ref):
418
+ with withNoDeprecationWarning():
419
+ EntryPoint = _getPkgResourcesModule().EntryPoint
420
+
421
+ entry_point = EntryPoint(
422
+ **dict(
423
+ (key, getattr(entry_point, key))
424
+ for key in self.preserved_attributes
425
+ )
426
+ )
427
+
428
+ ExpressionBase.__init__(self, source_ref)
429
+
430
+ self.entry_point = entry_point
431
+ self.computed_attributes = {}
432
+
433
+ def finalize(self):
434
+ del self.entry_point
435
+ del self.computed_attributes
436
+
437
+ @staticmethod
438
+ def isKnownToBeHashable():
439
+ return True
440
+
441
+ @staticmethod
442
+ def getTruthValue():
443
+ return True
444
+
445
+ def computeExpressionRaw(self, trace_collection):
446
+ # Cannot compute any further, this is already the best.
447
+ return self, None, None
448
+
449
+ def isKnownToHaveAttribute(self, attribute_name):
450
+ if attribute_name not in self.computed_attributes:
451
+ self.computed_attributes[attribute_name] = hasattr(
452
+ self.entry_point, attribute_name
453
+ )
454
+
455
+ return self.computed_attributes[attribute_name]
456
+
457
+ def getKnownAttributeValue(self, attribute_name):
458
+ return getattr(self.entry_point, attribute_name)
459
+
460
+ def computeExpressionAttribute(self, lookup_node, attribute_name, trace_collection):
461
+ # If it raises, or the attribute itself is a compile time constant,
462
+ # then do execute it.
463
+ if self.isKnownToHaveAttribute(attribute_name) and isCompileTimeConstantValue(
464
+ getattr(self.entry_point, attribute_name, None)
465
+ ):
466
+ return trace_collection.getCompileTimeComputationResult(
467
+ node=lookup_node,
468
+ computation=lambda: getattr(self.entry_point, attribute_name),
469
+ description="Attribute '%s' pre-computed." % (attribute_name),
470
+ )
471
+
472
+ return lookup_node, None, None
473
+
474
+
475
+ class ImportlibMetadataDistributionCallMixin(object):
476
+ __slots__ = ()
477
+
478
+ def _getImportlibMetadataModule(self):
479
+ return importFromCompileTime(self.importlib_metadata_name, must_exist=True)
480
+
481
+ def replaceWithCompileTimeValue(self, trace_collection):
482
+ # In module mode, we cannot predict if the distribution is the same or not
483
+ # so lets not optimize this further and treat it as an unknown.
484
+ if shallMakeModule():
485
+ trace_collection.onExceptionRaiseExit(BaseException)
486
+
487
+ return self, None, None
488
+
489
+ distribution_func = self._getImportlibMetadataModule().distribution
490
+ PackageNotFoundError = self._getImportlibMetadataModule().PackageNotFoundError
491
+
492
+ arg = self.subnode_distribution_name.getCompileTimeConstant()
493
+
494
+ try:
495
+ distribution = distribution_func(arg)
496
+ except PackageNotFoundError:
497
+ # TODO: In isolated standalone mode, we could go to the actual exception
498
+ # instead.
499
+
500
+ return trace_collection.computedExpressionResult(
501
+ expression=self.makeExpressionImportlibMetadataDistributionFailedCall(),
502
+ change_tags="new_expression",
503
+ change_desc="Call to '%s.distribution' failed to resolve."
504
+ % self.importlib_metadata_name,
505
+ )
506
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
507
+ inclusion_logger.sysexit(
508
+ "Error, failed to find distribution '%s' at '%s' due to unhandled %s. Please report this bug."
509
+ % (arg, self.source_ref.getAsString(), repr(e))
510
+ )
511
+ else:
512
+ trace_collection.onDistributionUsed(
513
+ distribution_name=arg, node=self, success=False
514
+ )
515
+
516
+ # Remember the original name, distributions can other names.
517
+ result = ExpressionImportlibMetadataDistributionValueRef(
518
+ distribution=distribution, original_name=arg, source_ref=self.source_ref
519
+ )
520
+
521
+ return (
522
+ result,
523
+ "new_expression",
524
+ "Compile time predicted '%s.distribution' result"
525
+ % self.importlib_metadata_name,
526
+ )
527
+
528
+
529
+ class ExpressionImportlibMetadataDistributionCall(
530
+ ImportlibMetadataDistributionCallMixin,
531
+ ExpressionImportlibMetadataDistributionCallBase,
532
+ ):
533
+ """Represents call to importlib.metadata.distribution(distribution_name)"""
534
+
535
+ kind = "EXPRESSION_IMPORTLIB_METADATA_DISTRIBUTION_CALL"
536
+
537
+ python_version_spec = ">= 0x380"
538
+
539
+ importlib_metadata_name = "importlib.metadata"
540
+
541
+ def makeExpressionImportlibMetadataDistributionFailedCall(self):
542
+ return ExpressionImportlibMetadataDistributionFailedCall(
543
+ distribution_name=self.subnode_distribution_name, source_ref=self.source_ref
544
+ )
545
+
546
+
547
+ class ExpressionImportlibMetadataDistributionFailedCallMixin(object):
548
+ __slots__ = ()
549
+
550
+ def computeExpression(self, trace_collection):
551
+ distribution_name = self.subnode_distribution_name.getCompileTimeConstant()
552
+
553
+ trace_collection.onDistributionUsed(
554
+ distribution_name=distribution_name, node=self, success=False
555
+ )
556
+
557
+ trace_collection.onExceptionRaiseExit(BaseException)
558
+
559
+ # We are kind of final, but we need to call "onDistributionUsed" still.
560
+ return self, None, None
561
+
562
+ @staticmethod
563
+ def mayRaiseExceptionOperation():
564
+ return True
565
+
566
+
567
+ class ExpressionImportlibMetadataDistributionFailedCall(
568
+ ExpressionImportlibMetadataDistributionFailedCallMixin,
569
+ ExpressionImportlibMetadataDistributionFailedCallBase,
570
+ ):
571
+ """Represents compile time failed call to importlib.metadata.distribution(distribution_name)"""
572
+
573
+ kind = "EXPRESSION_IMPORTLIB_METADATA_DISTRIBUTION_FAILED_CALL"
574
+
575
+ named_children = ("distribution_name",)
576
+
577
+ # We know it's a constant, no need to visit it anymore.
578
+ auto_compute_handling = "final_children"
579
+
580
+ python_version_spec = ">= 0x380"
581
+
582
+ importlib_metadata_name = "importlib.metadata"
583
+
584
+
585
+ class ExpressionImportlibMetadataBackportDistributionFailedCall(
586
+ ExpressionImportlibMetadataDistributionFailedCallMixin,
587
+ ExpressionImportlibMetadataDistributionFailedCallBase,
588
+ ):
589
+ """Represents compile time failed call to importlib_metadata.distribution(distribution_name)"""
590
+
591
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_DISTRIBUTION_FAILED_CALL"
592
+
593
+ named_children = ("distribution_name",)
594
+
595
+ # We know it's a constant, no need to visit it anymore.
596
+ auto_compute_handling = "final_children"
597
+
598
+ importlib_metadata_name = "importlib_metadata"
599
+
600
+
601
+ class ExpressionImportlibMetadataBackportDistributionCall(
602
+ ImportlibMetadataDistributionCallMixin,
603
+ ExpressionImportlibMetadataDistributionCallBase,
604
+ ):
605
+ """Represents call to importlib_metadata.distribution(distribution_name)"""
606
+
607
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_DISTRIBUTION_CALL"
608
+ importlib_metadata_name = "importlib_metadata"
609
+
610
+ def makeExpressionImportlibMetadataDistributionFailedCall(self):
611
+ return ExpressionImportlibMetadataBackportDistributionFailedCall(
612
+ distribution_name=self.subnode_distribution_name, source_ref=self.source_ref
613
+ )
614
+
615
+
616
+ def makeExpressionImportlibMetadataMetadataCall(distribution_name, source_ref):
617
+ return makeExpressionAttributeLookup(
618
+ expression=ExpressionImportlibMetadataDistributionCall(
619
+ distribution_name=distribution_name, source_ref=source_ref
620
+ ),
621
+ attribute_name="metadata",
622
+ source_ref=source_ref,
623
+ )
624
+
625
+
626
+ def makeExpressionImportlibMetadataBackportMetadataCall(distribution_name, source_ref):
627
+ return makeExpressionAttributeLookup(
628
+ expression=ExpressionImportlibMetadataBackportDistributionCall(
629
+ distribution_name=distribution_name, source_ref=source_ref
630
+ ),
631
+ attribute_name="metadata",
632
+ source_ref=source_ref,
633
+ )
634
+
635
+
636
+ class ExpressionImportlibMetadataEntryPointValueMixin(object):
637
+ __slots__ = ()
638
+
639
+ preserved_attributes = ("name", "value", "group")
640
+
641
+ def _getImportlibMetadataModule(self):
642
+ return importFromCompileTime(self.importlib_metadata_name, must_exist=True)
643
+
644
+ def finalize(self):
645
+ del self.entry_point
646
+ del self.computed_attributes
647
+
648
+ @staticmethod
649
+ def isKnownToBeHashable():
650
+ return True
651
+
652
+ @staticmethod
653
+ def getTruthValue():
654
+ return True
655
+
656
+ def computeExpressionRaw(self, trace_collection):
657
+ # Cannot compute any further, this is already the best.
658
+ return self, None, None
659
+
660
+ def isKnownToHaveAttribute(self, attribute_name):
661
+ if attribute_name not in self.computed_attributes:
662
+ self.computed_attributes[attribute_name] = hasattr(
663
+ self.entry_point, attribute_name
664
+ )
665
+
666
+ return self.computed_attributes[attribute_name]
667
+
668
+ def getKnownAttributeValue(self, attribute_name):
669
+ return getattr(self.entry_point, attribute_name)
670
+
671
+ def computeExpressionAttribute(self, lookup_node, attribute_name, trace_collection):
672
+ # If it raises, or the attribute itself is a compile time constant,
673
+ # then do execute it.
674
+ if self.isKnownToHaveAttribute(attribute_name) and isCompileTimeConstantValue(
675
+ getattr(self.entry_point, attribute_name, None)
676
+ ):
677
+ return trace_collection.getCompileTimeComputationResult(
678
+ node=lookup_node,
679
+ computation=lambda: getattr(self.entry_point, attribute_name),
680
+ description="Attribute '%s' pre-computed." % (attribute_name),
681
+ )
682
+
683
+ return lookup_node, None, None
684
+
685
+
686
+ class ExpressionImportlibMetadataEntryPointValueRef(
687
+ ExpressionNoSideEffectsMixin,
688
+ ExpressionImportlibMetadataEntryPointValueMixin,
689
+ ExpressionImportlibMetadataEntryPointValueRefBase,
690
+ ):
691
+ kind = "EXPRESSION_IMPORTLIB_METADATA_ENTRY_POINT_VALUE_REF"
692
+
693
+ python_version_spec = ">= 0x380"
694
+
695
+ __slots__ = ("entry_point", "computed_attributes")
696
+
697
+ auto_compute_handling = "final,no_raise"
698
+
699
+ importlib_metadata_name = "importlib.metadata"
700
+
701
+ def __init__(self, entry_point, source_ref):
702
+ ExpressionImportlibMetadataEntryPointValueRefBase.__init__(self, source_ref)
703
+
704
+ EntryPoint = self._getImportlibMetadataModule().EntryPoint
705
+
706
+ entry_point = EntryPoint(
707
+ **dict(
708
+ (key, getattr(entry_point, key)) for key in self.preserved_attributes
709
+ )
710
+ )
711
+
712
+ self.entry_point = entry_point
713
+ self.computed_attributes = {}
714
+
715
+
716
+ class ExpressionImportlibMetadataBackportEntryPointValueRef(
717
+ ExpressionNoSideEffectsMixin,
718
+ ExpressionImportlibMetadataEntryPointValueMixin,
719
+ ExpressionImportlibMetadataBackportEntryPointValueRefBase,
720
+ ):
721
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_ENTRY_POINT_VALUE_REF"
722
+
723
+ __slots__ = ("entry_point", "computed_attributes")
724
+
725
+ auto_compute_handling = "final,no_raise"
726
+
727
+ importlib_metadata_name = "importlib_metadata"
728
+
729
+ def __init__(self, entry_point, source_ref):
730
+ ExpressionImportlibMetadataBackportEntryPointValueRefBase.__init__(
731
+ self, source_ref
732
+ )
733
+
734
+ EntryPoint = self._getImportlibMetadataModule().EntryPoint
735
+
736
+ entry_point = EntryPoint(
737
+ **dict(
738
+ (key, getattr(entry_point, key)) for key in self.preserved_attributes
739
+ )
740
+ )
741
+
742
+ self.entry_point = entry_point
743
+ self.computed_attributes = {}
744
+
745
+
746
+ class ExpressionImportlibMetadataSelectableGroupsValueRef(
747
+ ExpressionMakeDictMixin, ExpressionImportlibMetadataSelectableGroupsValueRefBase
748
+ ):
749
+ kind = "EXPRESSION_IMPORTLIB_METADATA_SELECTABLE_GROUPS_VALUE_REF"
750
+
751
+ python_version_spec = ">= 0x3a0"
752
+
753
+ named_children = ("pairs|tuple",)
754
+
755
+ auto_compute_handling = "final,no_raise"
756
+
757
+ # TODO: Derived from dict shape is missing here.
758
+ @staticmethod
759
+ def isKnownToBeHashable():
760
+ return False
761
+
762
+
763
+ class ExpressionImportlibMetadataBackportSelectableGroupsValueRef(
764
+ ExpressionMakeDictMixin,
765
+ ExpressionImportlibMetadataBackportSelectableGroupsValueRefBase,
766
+ ):
767
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_SELECTABLE_GROUPS_VALUE_REF"
768
+
769
+ named_children = ("pairs|tuple",)
770
+
771
+ auto_compute_handling = "final,no_raise"
772
+
773
+ # TODO: Derived from dict shape is missing here.
774
+ @staticmethod
775
+ def isKnownToBeHashable():
776
+ return False
777
+
778
+
779
+ class ExpressionImportlibMetadataEntryPointsValueRef(
780
+ ExpressionMakeSequenceMixin,
781
+ ExpressionImportlibMetadataBackportEntryPointsValueRefBase,
782
+ ):
783
+ kind = "EXPRESSION_IMPORTLIB_METADATA_ENTRY_POINTS_VALUE_REF"
784
+
785
+ python_version_spec = ">= 0x3a0"
786
+
787
+ named_children = ("elements|tuple",)
788
+
789
+ auto_compute_handling = "final,no_raise"
790
+
791
+ # TODO: Derived from dict shape is missing here.
792
+ @staticmethod
793
+ def isKnownToBeHashable():
794
+ return False
795
+
796
+ @staticmethod
797
+ def getSequenceName():
798
+ """Get name for use in traces"""
799
+ return "importlib.metadata.EntryPoints"
800
+
801
+
802
+ class ExpressionImportlibMetadataBackportEntryPointsValueRef(
803
+ ExpressionMakeSequenceMixin, ExpressionImportlibMetadataEntryPointsValueRefBase
804
+ ):
805
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_ENTRY_POINTS_VALUE_REF"
806
+
807
+ named_children = ("elements|tuple",)
808
+
809
+ auto_compute_handling = "final,no_raise"
810
+
811
+ @staticmethod
812
+ def getSequenceName():
813
+ """Get name for use in traces"""
814
+ return "importlib_metadata.EntryPoints"
815
+
816
+ # TODO: Derived from dict shape is missing here.
817
+ @staticmethod
818
+ def isKnownToBeHashable():
819
+ return False
820
+
821
+
822
+ class ExpressionImportlibMetadataEntryPointsCallMixin(object):
823
+ __slots__ = ()
824
+
825
+ def _getImportlibMetadataModule(self):
826
+ return importFromCompileTime(self.importlib_metadata_name, must_exist=True)
827
+
828
+ def replaceWithCompileTimeValue(self, trace_collection):
829
+ metadata_importlib = self._getImportlibMetadataModule()
830
+
831
+ constant_args = dict(
832
+ (param.getKeyCompileTimeConstant(), param.getValueCompileTimeConstant())
833
+ for param in self.subnode_params
834
+ )
835
+
836
+ try:
837
+ entry_points_result = metadata_importlib.entry_points(**constant_args)
838
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
839
+ inclusion_logger.sysexit(
840
+ "Error, failed to find entrypoints at '%s' due to unhandled %s. Please report this bug."
841
+ % (self.source_ref.getAsString(), repr(e))
842
+ )
843
+ else:
844
+ if (
845
+ hasattr(metadata_importlib, "SelectableGroups")
846
+ and type(entry_points_result) is metadata_importlib.SelectableGroups
847
+ ):
848
+ pairs = [
849
+ makeExpressionKeyValuePairConstantKey(
850
+ key=key,
851
+ value=self.makeEntryPointsValueRef(
852
+ elements=tuple(
853
+ self.makeEntryPointValueRef(
854
+ entry_point=entry_point, source_ref=self.source_ref
855
+ )
856
+ for entry_point in value
857
+ ),
858
+ source_ref=self.source_ref,
859
+ ),
860
+ )
861
+ for key, value in entry_points_result.items()
862
+ ]
863
+
864
+ result = self.makeSelectableGroupsValueRef(
865
+ pairs=tuple(pairs), source_ref=self.source_ref
866
+ )
867
+ elif type(entry_points_result) is dict:
868
+ pairs = [
869
+ makeExpressionKeyValuePairConstantKey(
870
+ key=key,
871
+ value=makeExpressionMakeTuple(
872
+ elements=tuple(
873
+ self.makeEntryPointValueRef(
874
+ entry_point=entry_point, source_ref=self.source_ref
875
+ )
876
+ for entry_point in value
877
+ ),
878
+ source_ref=self.source_ref,
879
+ ),
880
+ )
881
+ for key, value in entry_points_result.items()
882
+ ]
883
+
884
+ result = makeExpressionMakeDict(
885
+ pairs=tuple(pairs), source_ref=self.source_ref
886
+ )
887
+ elif (
888
+ hasattr(metadata_importlib, "EntryPoints")
889
+ and type(entry_points_result) is metadata_importlib.EntryPoints
890
+ ):
891
+ result = self.makeEntryPointsValueRef(
892
+ elements=tuple(
893
+ self.makeEntryPointValueRef(
894
+ entry_point=entry_point, source_ref=self.source_ref
895
+ )
896
+ for entry_point in entry_points_result
897
+ ),
898
+ source_ref=self.source_ref,
899
+ )
900
+
901
+ else:
902
+ assert False, type(entry_points_result)
903
+
904
+ return (
905
+ result,
906
+ "new_expression",
907
+ "Compile time predicted '%s' result" % self.importlib_metadata_name,
908
+ )
909
+
910
+
911
+ class ExpressionImportlibMetadataEntryPointsBefore310Call(
912
+ ExpressionImportlibMetadataEntryPointsCallMixin,
913
+ ExpressionImportlibMetadataEntryPointsBefore310CallBase,
914
+ ):
915
+ kind = "EXPRESSION_IMPORTLIB_METADATA_ENTRY_POINTS_BEFORE310_CALL"
916
+
917
+ # TODO: How to be sure, this is picked up on top of base class python
918
+ # version spec
919
+ python_version_spec = ">= 0x380"
920
+
921
+ importlib_metadata_name = "importlib.metadata"
922
+
923
+ makeEntryPointValueRef = ExpressionImportlibMetadataEntryPointValueRef
924
+
925
+ # For the mixing to work properly.
926
+ subnode_params = ()
927
+
928
+
929
+ def makeExpressionImportlibMetadataEntryPointsSince310Call(params, source_ref):
930
+ return ExpressionImportlibMetadataEntryPointsSince310Call(
931
+ params=makeKeyValuePairExpressionsFromKwArgs(params), source_ref=source_ref
932
+ )
933
+
934
+
935
+ class ExpressionImportlibMetadataEntryPointsSince310Call(
936
+ ExpressionImportlibMetadataEntryPointsCallMixin,
937
+ ExpressionImportlibMetadataEntryPointsSince310CallBase,
938
+ ):
939
+ kind = "EXPRESSION_IMPORTLIB_METADATA_ENTRY_POINTS_SINCE310_CALL"
940
+
941
+ importlib_metadata_name = "importlib.metadata"
942
+
943
+ makeEntryPointsValueRef = ExpressionImportlibMetadataEntryPointsValueRef
944
+ makeEntryPointValueRef = ExpressionImportlibMetadataEntryPointValueRef
945
+ makeSelectableGroupsValueRef = ExpressionImportlibMetadataSelectableGroupsValueRef
946
+
947
+
948
+ def makeExpressionImportlibMetadataBackportEntryPointsCall(params, source_ref):
949
+ return ExpressionImportlibMetadataBackportEntryPointsCall(
950
+ params=makeKeyValuePairExpressionsFromKwArgs(params), source_ref=source_ref
951
+ )
952
+
953
+
954
+ class ExpressionImportlibMetadataBackportEntryPointsCall(
955
+ ExpressionImportlibMetadataEntryPointsCallMixin,
956
+ ExpressionImportlibMetadataBackportEntryPointsCallBase,
957
+ ):
958
+ kind = "EXPRESSION_IMPORTLIB_METADATA_BACKPORT_ENTRY_POINTS_CALL"
959
+
960
+ importlib_metadata_name = "importlib_metadata"
961
+
962
+ makeEntryPointsValueRef = ExpressionImportlibMetadataBackportEntryPointsValueRef
963
+ makeEntryPointValueRef = ExpressionImportlibMetadataBackportEntryPointValueRef
964
+ makeSelectableGroupsValueRef = (
965
+ ExpressionImportlibMetadataBackportSelectableGroupsValueRef
966
+ )
967
+
968
+
969
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
970
+ # integrates with CPython, but also works on its own.
971
+ #
972
+ # Licensed under the Apache License, Version 2.0 (the "License");
973
+ # you may not use this file except in compliance with the License.
974
+ # You may obtain a copy of the License at
975
+ #
976
+ # http://www.apache.org/licenses/LICENSE-2.0
977
+ #
978
+ # Unless required by applicable law or agreed to in writing, software
979
+ # distributed under the License is distributed on an "AS IS" BASIS,
980
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
981
+ # See the License for the specific language governing permissions and
982
+ # limitations under the License.