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,1200 @@
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """ Locating modules and package source on disk.
5
+
6
+ The actual import of a module would already execute code that changes things.
7
+ Imagine a module that does ``os.system()``, it would be done during
8
+ compilation. People often connect to databases, and these kind of things, at
9
+ import time.
10
+
11
+ Therefore CPython exhibits the interfaces in an ``imp`` module in standard
12
+ library, which one can use those to know ahead of time, what file import would
13
+ load. For us unfortunately there is nothing in CPython that is easily
14
+ accessible and gives us this functionality for packages and search paths
15
+ exactly like CPython does, so we implement here a multi step search process
16
+ that is compatible.
17
+
18
+ This approach is much safer of course and there is no loss. To determine if
19
+ it's from the standard library, one can abuse the attribute ``__file__`` of the
20
+ ``os`` module like it's done in ``isStandardLibraryPath`` of this module.
21
+
22
+ """
23
+
24
+ import collections
25
+ import os
26
+ import sys
27
+ import zipfile
28
+
29
+ from nuitka import SourceCodeReferences
30
+ from nuitka.__past__ import iter_modules
31
+ from nuitka.containers.Namedtuples import makeNamedtupleClass
32
+ from nuitka.containers.OrderedSets import OrderedSet
33
+ from nuitka.Errors import NuitkaCodeDeficit
34
+ from nuitka.plugins.Plugins import Plugins
35
+ from nuitka.PythonFlavors import isNuitkaPython
36
+ from nuitka.PythonVersions import python_version
37
+ from nuitka.Tracing import recursion_logger
38
+ from nuitka.tree.ReformulationMultidist import locateMultidistModule
39
+ from nuitka.utils.AppDirs import getCacheDir
40
+ from nuitka.utils.FileOperations import (
41
+ getNormalizedPath,
42
+ listDir,
43
+ removeDirectory,
44
+ )
45
+ from nuitka.utils.Hashing import getFileContentsHash
46
+ from nuitka.utils.Importing import (
47
+ builtin_module_names,
48
+ getExtensionModuleSuffixes,
49
+ getModuleFilenameSuffixes,
50
+ getPackageDirFilename,
51
+ isBuiltinModuleName,
52
+ )
53
+ from nuitka.utils.ModuleNames import ModuleName
54
+ from nuitka.utils.SharedLibraries import (
55
+ hasUniversalOrMatchingMacOSArchitecture,
56
+ )
57
+ from nuitka.utils.Utils import (
58
+ getLaunchingNuitkaProcessEnvironmentValue,
59
+ isMacOS,
60
+ isWin32OrPosixWindows,
61
+ )
62
+
63
+ from .IgnoreListing import isIgnoreListedNotExistingModule
64
+ from .PreloadedPackages import getPreloadedPackagePath, isPreloadedPackagePath
65
+ from .StandardLibrary import isStandardLibraryPath
66
+
67
+ # Debug traces, enabled via --explain-imports
68
+ _debug_module_finding = None
69
+
70
+ # Preference as expressed via --prefer-source-code
71
+ _prefer_source_code_over_extension_modules = None
72
+
73
+ # Do not add current directory to search path.
74
+ _safe_path = None
75
+
76
+
77
+ def setupImportingFromOptions():
78
+ """Set up the importing layer from giving options."""
79
+
80
+ # Should only be used inside of here.
81
+ from nuitka import Options
82
+
83
+ # singleton, pylint: disable=global-statement
84
+ global _debug_module_finding
85
+ _debug_module_finding = Options.shallExplainImports()
86
+
87
+ global _prefer_source_code_over_extension_modules
88
+ _prefer_source_code_over_extension_modules = (
89
+ Options.shallPreferSourceCodeOverExtensionModules()
90
+ )
91
+
92
+ global _safe_path
93
+ _safe_path = Options.hasPythonFlagNoCurrentDirectoryInPath()
94
+
95
+ # Lets try and have this complete, please report failures.
96
+ if Options.is_debug and not isNuitkaPython():
97
+ _checkRaisingBuiltinComplete()
98
+
99
+ main_filenames = Options.getMainEntryPointFilenames()
100
+ for filename in main_filenames:
101
+ # Inform the importing layer about the main script directory, so it can use
102
+ # it when attempting to follow imports.
103
+ addMainScriptDirectory(main_dir=os.path.dirname(os.path.abspath(filename)))
104
+
105
+
106
+ def _checkRaisingBuiltinComplete():
107
+ for module_name in builtin_module_names:
108
+ assert module_name in _stdlib_module_raises, module_name
109
+
110
+
111
+ warned_about = set()
112
+
113
+ # Directory where the main script lives. Should attempt to import from there.
114
+ _main_paths = OrderedSet()
115
+
116
+ # Additions to sys.paths from plugins.
117
+ _extra_paths = OrderedSet()
118
+
119
+ ModuleUsageAttempt = makeNamedtupleClass(
120
+ "ModuleUsageAttempt",
121
+ (
122
+ "module_name",
123
+ "filename",
124
+ "module_kind",
125
+ "finding",
126
+ "level",
127
+ "source_ref",
128
+ "reason",
129
+ ),
130
+ )
131
+
132
+
133
+ def makeModuleUsageAttempt(
134
+ module_name, filename, module_kind, finding, level, source_ref, reason
135
+ ):
136
+ assert source_ref is not None
137
+
138
+ return ModuleUsageAttempt(
139
+ module_name=module_name,
140
+ filename=filename,
141
+ module_kind=module_kind,
142
+ finding=finding,
143
+ level=level,
144
+ source_ref=source_ref,
145
+ reason=reason,
146
+ )
147
+
148
+
149
+ def makeParentModuleUsagesAttempts(module_usage_attempt):
150
+ result = []
151
+
152
+ for parent_package_name in module_usage_attempt.module_name.getParentPackageNames():
153
+ (
154
+ _parent_package_name,
155
+ parent_module_filename,
156
+ parent_module_kind,
157
+ parent_module_finding,
158
+ ) = locateModule(
159
+ module_name=parent_package_name,
160
+ parent_package=None,
161
+ level=0,
162
+ )
163
+
164
+ result.append(
165
+ makeModuleUsageAttempt(
166
+ module_name=parent_package_name,
167
+ filename=parent_module_filename,
168
+ finding=parent_module_finding,
169
+ module_kind=parent_module_kind,
170
+ level=0,
171
+ source_ref=module_usage_attempt.source_ref,
172
+ reason="import path parent",
173
+ )
174
+ )
175
+
176
+ result.append(module_usage_attempt)
177
+
178
+ return tuple(result)
179
+
180
+
181
+ def addMainScriptDirectory(main_dir):
182
+ """Initialize the main script directory.
183
+
184
+ We use this as part of the search path for modules.
185
+ """
186
+ _main_paths.add(main_dir)
187
+
188
+
189
+ def addExtraSysPaths(directories):
190
+ for directory in directories:
191
+ assert os.path.isdir(directory), directory
192
+
193
+ _extra_paths.add(directory)
194
+
195
+
196
+ def hasMainScriptDirectory():
197
+ return bool(_main_paths)
198
+
199
+
200
+ def isPackageDir(dirname):
201
+ """Decide if a directory is a package.
202
+
203
+ Before Python3 it's required to have a "__init__.py" file, but then
204
+ it became impossible to decide, and for extra fun, there is also the
205
+ extra packages provided via "*.pth" file tricks by "site.py" loading.
206
+ """
207
+
208
+ return (
209
+ "." not in os.path.basename(dirname)
210
+ and os.path.isdir(dirname)
211
+ and (
212
+ python_version >= 0x300
213
+ or isPreloadedPackagePath(dirname)
214
+ or getPackageDirFilename(dirname) is not None
215
+ )
216
+ )
217
+
218
+
219
+ _package_module_name_cache = {}
220
+
221
+
222
+ def isPackageModuleName(module_name):
223
+ """Decide if the give n module name is a package or not.
224
+
225
+ module, Cached as it involves disk access."""
226
+
227
+ if module_name not in _package_module_name_cache:
228
+ _module_name, module_filename, _module_kind, _finding = locateModule(
229
+ module_name=module_name,
230
+ parent_package=None,
231
+ level=0,
232
+ )
233
+
234
+ (
235
+ _main_added,
236
+ is_package,
237
+ _is_namespace,
238
+ _source_ref,
239
+ _source_filename,
240
+ ) = decideModuleSourceRef(
241
+ filename=module_filename,
242
+ module_name=module_name,
243
+ is_main=False,
244
+ is_fake=False,
245
+ logger=None,
246
+ )
247
+
248
+ _package_module_name_cache[module_name] = is_package
249
+
250
+ return _package_module_name_cache[module_name]
251
+
252
+
253
+ def getModuleNameAndKindFromFilename(module_filename):
254
+ """Given a filename, decide the module name and kind.
255
+
256
+ Args:
257
+ module_name - file path of the module
258
+ Returns:
259
+ Tuple with the name of the module basename, and the kind of the
260
+ module derived from the file suffix. Can be None, None if is is not a
261
+ known file suffix.
262
+ Notes:
263
+ This doesn't concern itself with packages, that needs to be tracked
264
+ by the using code. It cannot be decided from the filename at all.
265
+ """
266
+
267
+ if module_filename.endswith(".py"):
268
+ return ModuleName(os.path.basename(module_filename)[:-3]), "py"
269
+
270
+ if module_filename.endswith(".pyc"):
271
+ return ModuleName(os.path.basename(module_filename)[:-4]), "pyc"
272
+
273
+ # TODO: This sorting is necessary for at least Python2, but probably
274
+ # elsewhere too, need to be sure we follow the scan order of core Python
275
+ # here.
276
+ for suffix in sorted(getExtensionModuleSuffixes(), key=lambda suffix: -len(suffix)):
277
+ if module_filename.endswith(suffix):
278
+ return (
279
+ ModuleName(os.path.basename(module_filename)[: -len(suffix)]),
280
+ "extension",
281
+ )
282
+
283
+ if os.path.isdir(module_filename):
284
+ package_filename = getPackageDirFilename(module_filename)
285
+
286
+ if package_filename is not None:
287
+ for suffix in getExtensionModuleSuffixes():
288
+ if package_filename.endswith(suffix):
289
+ return (
290
+ ModuleName(os.path.basename(module_filename)),
291
+ "extension",
292
+ )
293
+
294
+ return ModuleName(os.path.basename(module_filename)), "py"
295
+
296
+ return None, None
297
+
298
+
299
+ def isIgnoreListedImportMaker(source_ref):
300
+ if isNuitkaPython():
301
+ return True
302
+
303
+ return isStandardLibraryPath(source_ref.getFilename())
304
+
305
+
306
+ def warnAboutNotFoundImport(importing, module_name, level, source_ref):
307
+ # This probably should not be dealt with here
308
+ if module_name == "":
309
+ return
310
+
311
+ if not isIgnoreListedNotExistingModule(
312
+ module_name
313
+ ) and not isIgnoreListedImportMaker(source_ref):
314
+ key = module_name, level
315
+
316
+ if key not in warned_about:
317
+ warned_about.add(key)
318
+
319
+ if Plugins.suppressUnknownImportWarning(
320
+ importing=importing, source_ref=source_ref, module_name=module_name
321
+ ):
322
+ return
323
+
324
+ if level == 0:
325
+ level_desc = "as absolute import"
326
+ elif level == -1:
327
+ level_desc = "as relative or absolute import"
328
+ elif level == 1:
329
+ level_desc = "%d package level up" % level
330
+ else:
331
+ level_desc = "%d package levels up" % level
332
+
333
+ if _debug_module_finding:
334
+ if importing.getFullName().getPackageName() is not None:
335
+ recursion_logger.warning(
336
+ "%s: Cannot find '%s' in package '%s' %s."
337
+ % (
338
+ importing.getSourceReference().getAsString(),
339
+ module_name,
340
+ importing.getFullName().getPackageName().asString(),
341
+ level_desc,
342
+ )
343
+ )
344
+ else:
345
+ recursion_logger.warning(
346
+ "%s: Cannot find '%s' %s."
347
+ % (
348
+ importing.getSourceReference().getAsString(),
349
+ module_name,
350
+ level_desc,
351
+ )
352
+ )
353
+
354
+
355
+ def normalizePackageName(module_name):
356
+ # The "os.path" is strangely hacked into the "os" module, dispatching per
357
+ # platform, we either cannot look into it, or we require that we resolve it
358
+ # here correctly.
359
+ if module_name == "os.path":
360
+ module_name = ModuleName(os.path.basename(os.path.__name__))
361
+
362
+ return module_name
363
+
364
+
365
+ def findModule(module_name, parent_package, level, logger):
366
+ """Find a module with given package name as parent.
367
+
368
+ The package name can be None of course. Level is the same
369
+ as with "__import__" built-in. Warnings are optional.
370
+
371
+ Returns:
372
+ Returns a triple of package name the module is in, filename of
373
+ it, which can be a directory for packages, and the location
374
+ method used.
375
+ """
376
+ # We have many branches here, because there are a lot of cases to try.
377
+ # pylint: disable=too-many-branches,too-many-return-statements
378
+
379
+ assert type(module_name) is ModuleName, module_name
380
+
381
+ if logger is not None:
382
+ logger.info(
383
+ "findModule: Enter to search %r in package %r level %s."
384
+ % (module_name, parent_package, level)
385
+ )
386
+
387
+ # Do not allow star imports to get here. We just won't find modules with
388
+ # that name, but it would be wasteful.
389
+ assert module_name != "*"
390
+
391
+ if level > 1:
392
+ # TODO: Should give a warning and return not found if the levels
393
+ # exceed the package name.
394
+ if parent_package is not None:
395
+ parent_package = parent_package.getRelativePackageName(level - 1)
396
+ else:
397
+ return None, None, None, "not-found"
398
+
399
+ if level == 1 and not module_name:
400
+ # Not actually allowed, but we only catch that at run-time.
401
+ if parent_package is None:
402
+ return None, None, None, "not-found"
403
+
404
+ module_name = parent_package
405
+ parent_package = None
406
+ level = 0
407
+
408
+ # Try relative imports first if we have a parent package.
409
+ if level != 0 and parent_package is not None:
410
+ if module_name:
411
+ full_name = ModuleName(parent_package + "." + module_name)
412
+ else:
413
+ full_name = ModuleName(parent_package)
414
+
415
+ full_name = normalizePackageName(full_name)
416
+
417
+ preloaded_path = getPreloadedPackagePath(module_name)
418
+
419
+ if preloaded_path is not None:
420
+ for module_filename in preloaded_path:
421
+ if os.path.exists(module_filename):
422
+ break
423
+ else:
424
+ module_filename = None
425
+
426
+ return full_name.getPackageName(), module_filename, "py", "pth"
427
+
428
+ try:
429
+ module_filename, module_kind = _findModule(
430
+ module_name=full_name,
431
+ logger=logger,
432
+ )
433
+ except ImportError:
434
+ # For relative import, that is OK, we will still try absolute.
435
+ pass
436
+ else:
437
+ if logger is not None:
438
+ logger.info(
439
+ "findModule: Relative imported module '%s' as '%s' in filename '%s':"
440
+ % (module_name, full_name, module_filename)
441
+ )
442
+
443
+ return full_name.getPackageName(), module_filename, module_kind, "relative"
444
+
445
+ if level < 1 and module_name:
446
+ module_name = normalizePackageName(module_name)
447
+
448
+ package_name = module_name.getPackageName()
449
+
450
+ preloaded_path = getPreloadedPackagePath(module_name)
451
+
452
+ if preloaded_path is not None:
453
+ for module_filename in preloaded_path:
454
+ if os.path.exists(module_filename):
455
+ break
456
+ else:
457
+ module_filename = None
458
+
459
+ return package_name, module_filename, "py", "pth"
460
+
461
+ try:
462
+ module_filename, module_kind = _findModule(
463
+ module_name=module_name,
464
+ logger=logger,
465
+ )
466
+ except ImportError:
467
+ # For relative import, that is OK, we will still try absolute.
468
+ pass
469
+ else:
470
+ if logger is not None:
471
+ logger.info(
472
+ "findModule: Found absolute imported module '%s' in filename '%s':"
473
+ % (module_name, module_filename)
474
+ )
475
+
476
+ return package_name, module_filename, module_kind, "absolute"
477
+
478
+ return None, None, None, "not-found"
479
+
480
+
481
+ # Some platforms are case insensitive.
482
+ case_sensitive = not isMacOS() and not isWin32OrPosixWindows()
483
+
484
+ ImportScanFinding = collections.namedtuple(
485
+ "ImportScanFinding",
486
+ ("found_in", "module_type", "priority", "full_path", "search_order"),
487
+ )
488
+
489
+ # We put here things that are not worth it (Cython is not really used by
490
+ # anything really, or where it's know to not have a big # impact, e.g. lxml.
491
+
492
+ # TODO: Do we really want this warning to persist?
493
+ unworthy_namespaces = ("Cython", "lxml", "black", "tomli")
494
+
495
+
496
+ def _reportCandidates(package_name, module_name, candidate, candidates):
497
+ module_name = (
498
+ package_name.getChildNamed(module_name)
499
+ if package_name is not None
500
+ else module_name
501
+ )
502
+
503
+ if candidate.priority == 1 and _prefer_source_code_over_extension_modules is None:
504
+ for c in candidates:
505
+ # Don't compare to itself and don't consider unused bytecode a problem.
506
+ if c is candidate or c.priority == 3:
507
+ continue
508
+
509
+ if c.search_order == candidate.search_order:
510
+ if not module_name.hasOneOfNamespaces(unworthy_namespaces):
511
+ recursion_logger.info(
512
+ """\
513
+ Should decide '--prefer-source-code' vs. '--no-prefer-source-code', using \
514
+ existing '%s' extension module by default. Candidates were: %s <-> %s."""
515
+ % (module_name, candidate, c)
516
+ )
517
+
518
+
519
+ _list_dir_cache = {}
520
+
521
+
522
+ def listDirCached(path):
523
+ """Cached listing of a directory."""
524
+
525
+ if path not in _list_dir_cache:
526
+ _list_dir_cache[path] = tuple(listDir(path))
527
+
528
+ return _list_dir_cache[path]
529
+
530
+
531
+ def flushImportCache():
532
+ """Clear import related caches.
533
+
534
+ In some situations, e.g. during package rebuild, we scan and then decide to remove
535
+ files and scan again. This allows that. Nothing in standard Nuitka should do it,
536
+ as it throws away so much.
537
+ """
538
+ _list_dir_cache.clear()
539
+ module_search_cache.clear()
540
+
541
+
542
+ def _findModuleInPath2(package_name, module_name, search_path, logger):
543
+ """This is out own module finding low level implementation.
544
+
545
+ Just the full module name and search path are given. This is then
546
+ tasked to raise "ImportError" or return a path if it finds it, or
547
+ None, if it is a built-in.
548
+ """
549
+ # We have many branches here, because there are a lot of cases to try.
550
+ # pylint: disable=too-many-branches,too-many-locals
551
+
552
+ # We may have to decide between package and module, therefore build
553
+ # a list of candidates.
554
+ candidates = OrderedSet()
555
+
556
+ considered = set()
557
+
558
+ # Higher values are lower priority.
559
+ priority_map = {
560
+ "PY_COMPILED": 3,
561
+ "PY_SOURCE": 0 if _prefer_source_code_over_extension_modules else 2,
562
+ "C_EXTENSION": 1,
563
+ }
564
+
565
+ for count, entry in enumerate(search_path):
566
+ # Don't try again, just with an entry of different casing or complete
567
+ # duplicate.
568
+ if os.path.normcase(entry) in considered:
569
+ continue
570
+ considered.add(os.path.normcase(entry))
571
+
572
+ package_directory = os.path.join(entry, module_name.asPath())
573
+
574
+ # First, check for a package with an init file, that would be the
575
+ # first choice.
576
+ if os.path.isdir(package_directory):
577
+ found = False
578
+
579
+ for suffix, module_type in getModuleFilenameSuffixes():
580
+ package_file_name = "__init__" + suffix
581
+
582
+ file_path = os.path.join(package_directory, package_file_name)
583
+
584
+ if os.path.isfile(file_path):
585
+ candidates.add(
586
+ ImportScanFinding(
587
+ found_in=entry,
588
+ module_type=module_type,
589
+ priority=priority_map[module_type],
590
+ full_path=package_directory,
591
+ search_order=count,
592
+ )
593
+ )
594
+ found = True
595
+
596
+ if not found and python_version >= 0x300:
597
+ candidates.add(
598
+ ImportScanFinding(
599
+ found_in=entry,
600
+ module_type=10,
601
+ priority=10,
602
+ full_path=package_directory,
603
+ search_order=count + len(search_path),
604
+ )
605
+ )
606
+
607
+ # Then, check out suffixes of all kinds, but only for one directory.
608
+ last_module_type = 0
609
+ for suffix, module_type in getModuleFilenameSuffixes():
610
+ # Use first match per kind only.
611
+ if module_type == last_module_type:
612
+ continue
613
+
614
+ full_path = os.path.join(entry, module_name + suffix)
615
+
616
+ if os.path.isfile(full_path):
617
+ candidates.add(
618
+ ImportScanFinding(
619
+ found_in=entry,
620
+ module_type=module_type,
621
+ priority=4 + priority_map[module_type],
622
+ full_path=full_path,
623
+ search_order=count,
624
+ )
625
+ )
626
+ last_module_type = module_type
627
+
628
+ if logger is not None:
629
+ logger.info("Candidates: %r" % candidates)
630
+
631
+ found_candidate = None
632
+
633
+ if candidates:
634
+ # Sort by priority, with entries from same path element coming first, then desired type.
635
+ candidates = tuple(
636
+ sorted(candidates, key=lambda c: (c.search_order, c.priority))
637
+ )
638
+
639
+ # On case sensitive systems, no resolution needed.
640
+ if case_sensitive:
641
+ found_candidate = candidates[0]
642
+ else:
643
+ for candidate in candidates:
644
+ for fullname, _filename in listDirCached(candidate.found_in):
645
+ if fullname == candidate.full_path:
646
+ found_candidate = candidate
647
+ break
648
+
649
+ if found_candidate:
650
+ break
651
+
652
+ # Only exact case matches matter, all candidates were ignored,
653
+ # lets just fall through to raising the import error.
654
+
655
+ if found_candidate is None:
656
+ # Nothing found.
657
+ raise ImportError
658
+ if (
659
+ found_candidate.module_type == "C_EXTENSION"
660
+ and isMacOS()
661
+ and not hasUniversalOrMatchingMacOSArchitecture(
662
+ getPackageDirFilename(found_candidate.full_path)
663
+ if os.path.isdir(found_candidate.full_path)
664
+ else found_candidate.full_path
665
+ )
666
+ ):
667
+ # Not usable for target architecture.
668
+ raise ImportError
669
+
670
+ _reportCandidates(
671
+ package_name=package_name,
672
+ module_name=module_name,
673
+ candidate=found_candidate,
674
+ candidates=candidates,
675
+ )
676
+
677
+ return (
678
+ found_candidate.full_path,
679
+ "extension" if found_candidate.module_type == "C_EXTENSION" else "py",
680
+ )
681
+
682
+
683
+ _egg_files = {}
684
+
685
+
686
+ def _unpackPathElement(path_entry):
687
+ if not path_entry:
688
+ return "." # empty means current directory
689
+
690
+ if os.path.isfile(path_entry):
691
+ if path_entry.lower().endswith((".egg", ".zip")):
692
+ if path_entry not in _egg_files:
693
+ checksum = getFileContentsHash(path_entry)
694
+
695
+ target_dir = os.path.join(getCacheDir("egg-content"), checksum)
696
+
697
+ if not os.path.exists(target_dir):
698
+ try:
699
+ # Not all Python versions allow using with here, pylint: disable=consider-using-with
700
+ zip_ref = zipfile.ZipFile(path_entry, "r")
701
+ zip_ref.extractall(target_dir)
702
+ zip_ref.close()
703
+ except BaseException:
704
+ removeDirectory(
705
+ target_dir,
706
+ logger=recursion_logger,
707
+ ignore_errors=True,
708
+ extra_recommendation=None,
709
+ )
710
+ raise
711
+
712
+ _egg_files[path_entry] = target_dir
713
+
714
+ return _egg_files[path_entry]
715
+
716
+ return path_entry
717
+
718
+
719
+ def getPythonUnpackedSearchPath():
720
+ """Python search path with with eggs unpacked."""
721
+
722
+ # TODO: Maybe cache this for a given "sys.path" as we do IO checks each time.
723
+ return [_unpackPathElement(path_element) for path_element in sys.path]
724
+
725
+
726
+ def getPackageSearchPath(package_name):
727
+ if not _main_paths:
728
+ return None
729
+
730
+ if package_name is None:
731
+ result = []
732
+
733
+ if not _safe_path:
734
+ result.append(os.getcwd())
735
+
736
+ result += list(_main_paths) + getPythonUnpackedSearchPath() + list(_extra_paths)
737
+ elif "." in package_name:
738
+ parent_package_name, child_package_name = package_name.splitModuleBasename()
739
+
740
+ result = []
741
+ for element in getPackageSearchPath(parent_package_name):
742
+ package_dir = os.path.join(element, child_package_name.asPath())
743
+
744
+ if isPackageDir(package_dir):
745
+ result.append(package_dir)
746
+ # Hack for "uniconvertor". TODO: Move this to plug-in decision. This
747
+ # fails the above test, but at run time should be a package.
748
+ # spell-checker: ignore uniconvertor
749
+ elif package_name == "uniconvertor.app.modules":
750
+ result.append(package_dir)
751
+
752
+ return result
753
+
754
+ else:
755
+ preloaded_path = getPreloadedPackagePath(package_name)
756
+
757
+ if preloaded_path is not None:
758
+ return preloaded_path
759
+
760
+ def getPackageDirCandidates(element):
761
+ yield os.path.join(element, package_name.asPath()), False
762
+
763
+ for extra_path in Plugins.getPackageExtraScanPaths(package_name, element):
764
+ yield extra_path, True
765
+
766
+ result = []
767
+ for element in getPackageSearchPath(None):
768
+ for package_dir, force_package in getPackageDirCandidates(element):
769
+ if isPackageDir(package_dir) or force_package:
770
+ result.append(package_dir)
771
+
772
+ return OrderedSet(
773
+ element for element in OrderedSet(result) if os.path.exists(element)
774
+ )
775
+
776
+
777
+ def _findModuleInPath(module_name, logger):
778
+ package_name, module_name = module_name.splitModuleBasename()
779
+
780
+ if logger is not None:
781
+ logger.info(
782
+ "_findModuleInPath: Enter for %s in %s" % (module_name, package_name)
783
+ )
784
+
785
+ # The "site" module must be located based on PYTHONPATH before it was
786
+ # executed, while we normally search in PYTHONPATH after it was executed,
787
+ # and on some systems, that fails.
788
+ if package_name is None and module_name == "site":
789
+ candidate = getLaunchingNuitkaProcessEnvironmentValue("NUITKA_SITE_FILENAME")
790
+
791
+ if candidate:
792
+ return candidate, "py"
793
+
794
+ # Free pass for built-in modules, they need not exist.
795
+ if package_name is None and isBuiltinModuleName(module_name):
796
+ return None, "built-in"
797
+
798
+ search_path = getPackageSearchPath(package_name)
799
+
800
+ if logger is not None:
801
+ logger.info(
802
+ "_findModuleInPath: Using search path %s for %s"
803
+ % (search_path, package_name)
804
+ )
805
+
806
+ try:
807
+ module_filename, module_kind = _findModuleInPath2(
808
+ package_name=package_name,
809
+ module_name=module_name,
810
+ search_path=search_path,
811
+ logger=logger,
812
+ )
813
+ except SyntaxError:
814
+ # Warn user, as this is kind of unusual.
815
+ recursion_logger.warning(
816
+ "%s: Module cannot be imported due to syntax errors.",
817
+ module_name if package_name is None else package_name + "." + module_name,
818
+ )
819
+
820
+ return None, None
821
+
822
+ if logger is not None:
823
+ logger.info(
824
+ "_findModuleInPath: _findModuleInPath2 gave %s %s"
825
+ % (module_filename, module_kind)
826
+ )
827
+
828
+ return module_filename, module_kind
829
+
830
+
831
+ module_search_cache = {}
832
+
833
+
834
+ def _findModule(module_name, logger):
835
+ # Not a good module name. TODO: Push this to ModuleName() creation maybe.
836
+ assert module_name != ""
837
+
838
+ if logger is not None:
839
+ logger.info("_findModule: Enter to search '%s'." % module_name)
840
+
841
+ assert module_name.getBasename(), module_name
842
+
843
+ key = module_name
844
+
845
+ if key in module_search_cache:
846
+ result = module_search_cache[key]
847
+
848
+ if logger is not None:
849
+ logger.info("_findModule: Cached result (see previous call).")
850
+
851
+ if result is ImportError:
852
+ raise ImportError
853
+
854
+ return result
855
+
856
+ try:
857
+ module_search_cache[key] = _findModuleInPath(
858
+ module_name=module_name,
859
+ logger=logger,
860
+ )
861
+ except ImportError:
862
+ module_search_cache[key] = ImportError
863
+ raise
864
+
865
+ # assert len(module_search_cache[key]) == 2, (module_name, module_search_cache[key])
866
+
867
+ return module_search_cache[key]
868
+
869
+
870
+ def locateModule(module_name, parent_package, level, logger=None):
871
+ """Locate a module with given package name as parent.
872
+
873
+ The package name can be None of course. Level is the same
874
+ as with "__import__" built-in.
875
+
876
+ Returns:
877
+ Returns a tuple of module name the module has considering
878
+ package containing it, and filename of it which can be a
879
+ directory for packages, the module kind, and the finding
880
+ kind.
881
+ """
882
+
883
+ if not _main_paths:
884
+ raise NuitkaCodeDeficit(
885
+ "Error, cannot locate modules before import mechanism is setup."
886
+ )
887
+
888
+ if module_name.isMultidistModuleName():
889
+ return locateMultidistModule(module_name)
890
+
891
+ if _debug_module_finding and logger is None:
892
+ logger = recursion_logger
893
+
894
+ module_package, module_filename, module_kind, finding = findModule(
895
+ module_name=module_name,
896
+ parent_package=parent_package,
897
+ level=level,
898
+ logger=logger,
899
+ )
900
+
901
+ # Allowing ourselves to be lazy.
902
+ assert module_kind is not None or module_filename is None, module_name
903
+
904
+ assert module_package is None or (
905
+ type(module_package) is ModuleName and module_package != ""
906
+ ), ("Must not attempt to locate %r" % module_name)
907
+
908
+ if module_filename is not None:
909
+ module_filename = getNormalizedPath(module_filename)
910
+
911
+ module_name, module_kind = getModuleNameAndKindFromFilename(module_filename)
912
+ module_name = ModuleName.makeModuleNameInPackage(module_name, module_package)
913
+ elif finding == "not-found":
914
+ if parent_package is not None:
915
+ if not module_name:
916
+ module_name = parent_package
917
+ elif level != 0:
918
+ module_name = ModuleName.makeModuleNameInPackage(
919
+ package_name=parent_package, module_name=module_name
920
+ )
921
+ elif level > 0:
922
+ module_name = ModuleName("")
923
+
924
+ return module_name, module_filename, module_kind, finding
925
+
926
+
927
+ def locateModules(package_name):
928
+ """Determine child module names.
929
+
930
+ Return:
931
+ generator of ModuleName objects
932
+ """
933
+ package_name = ModuleName(package_name)
934
+
935
+ module_filename = locateModule(
936
+ module_name=ModuleName(package_name), parent_package=None, level=0
937
+ )[1]
938
+
939
+ if module_filename is not None:
940
+ for sub_module in iter_modules([module_filename]):
941
+ yield package_name.getChildNamed(sub_module.name)
942
+
943
+
944
+ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
945
+ # Many branches due to the many cases
946
+
947
+ assert type(module_name) is ModuleName, module_name
948
+ assert filename is not None
949
+
950
+ is_namespace = False
951
+ is_package = False
952
+
953
+ if is_main and os.path.isdir(filename):
954
+ source_filename = getNormalizedPath(os.path.join(filename, "__main__.py"))
955
+
956
+ if not os.path.isfile(source_filename):
957
+ sys.stderr.write(
958
+ "%s: can't find '__main__' module in '%s'\n"
959
+ % (os.path.basename(sys.argv[0]), filename)
960
+ )
961
+ sys.exit(2)
962
+
963
+ filename = source_filename
964
+
965
+ main_added = True
966
+ else:
967
+ main_added = False
968
+
969
+ if is_fake:
970
+ source_filename = filename
971
+
972
+ source_ref = SourceCodeReferences.fromFilename(filename=filename)
973
+
974
+ module_name = is_fake
975
+
976
+ elif os.path.isfile(filename):
977
+ source_filename = filename
978
+
979
+ source_ref = SourceCodeReferences.fromFilename(filename=filename)
980
+
981
+ elif isPackageDir(filename):
982
+ is_package = True
983
+
984
+ source_filename = getNormalizedPath(os.path.join(filename, "__init__.py"))
985
+
986
+ if not os.path.isfile(source_filename):
987
+ source_ref = SourceCodeReferences.fromFilename(
988
+ filename=filename
989
+ ).atInternal()
990
+ is_namespace = True
991
+ else:
992
+ source_ref = SourceCodeReferences.fromFilename(
993
+ filename=getNormalizedPath(os.path.abspath(source_filename))
994
+ )
995
+
996
+ else:
997
+ logger.sysexit(
998
+ "%s: can't open file '%s'." % (os.path.basename(sys.argv[0]), filename),
999
+ exit_code=2,
1000
+ )
1001
+
1002
+ return (
1003
+ main_added,
1004
+ is_package,
1005
+ is_namespace,
1006
+ source_ref,
1007
+ source_filename,
1008
+ )
1009
+
1010
+
1011
+ # spell-checker: ignore _posixsubprocess,pyexpat,xxsubtype,_bytesio,_interpchannels
1012
+ # spell-checker: ignore _interpqueues,_lsprof,_multibytecodec,_posixshmem _winapi
1013
+ # spell-checker: ignore _testbuffer _testexternalinspection _testimportmultiple
1014
+ # spell-checker: ignore _testinternalcapi _testmultiphase _testsinglephase
1015
+ # spell-checker: ignore _xxtestfuzz _xxsubinterpreters imageop _xxinterpchannels
1016
+ _stdlib_module_raises = {
1017
+ "_abc": False,
1018
+ "__builtin__": False,
1019
+ "_ast": False,
1020
+ "_asyncio": False,
1021
+ "_bisect": False,
1022
+ "_blake2": False,
1023
+ "_bytesio": False,
1024
+ "_bz2": False,
1025
+ "_codecs_cn": False,
1026
+ "_codecs_hk": False,
1027
+ "_codecs_iso2022": False,
1028
+ "_codecs_jp": False,
1029
+ "_codecs_kr": False,
1030
+ "_codecs_tw": False,
1031
+ "_codecs": False,
1032
+ "_collections": False,
1033
+ "_contextvars": False,
1034
+ "_crypt": False,
1035
+ "_csv": False,
1036
+ "_ctypes": False,
1037
+ "_ctypes_test": False,
1038
+ "_curses": False,
1039
+ "_curses_panel": False,
1040
+ "_datetime": False,
1041
+ "_dbm": False,
1042
+ "_decimal": False,
1043
+ "_elementtree": False,
1044
+ "_fileio": False,
1045
+ "_functools": False,
1046
+ "_hashlib": False,
1047
+ "_heapq": False,
1048
+ "_hotshot": False,
1049
+ "_imp": False,
1050
+ "_interpchannels": False,
1051
+ "_interpqueues": False,
1052
+ "_interpreters": False,
1053
+ "_io": False,
1054
+ "_json": False,
1055
+ "_locale": False,
1056
+ "_lsprof": False,
1057
+ "_lzma": False,
1058
+ "_md5": False,
1059
+ "_multiprocessing": False,
1060
+ "_multibytecodec": False,
1061
+ "_opcode": False,
1062
+ "_operator": False,
1063
+ "_peg_parser": False,
1064
+ "_pickle": False,
1065
+ "_posixshmem": False,
1066
+ "_posixsubprocess": False,
1067
+ "_queue": False,
1068
+ "_random": False,
1069
+ "_sha": False, # TODO: Not entirely clear if that's true
1070
+ "_sha1": False,
1071
+ "_sha2": False,
1072
+ "_sha256": False,
1073
+ "_sha3": False,
1074
+ "_sha512": False,
1075
+ "_signal": False,
1076
+ "_socket": False,
1077
+ "_sqlite3": False,
1078
+ "_sre": False,
1079
+ "_stat": False,
1080
+ "_statistics": False,
1081
+ "_ssl": True,
1082
+ "_string": False,
1083
+ "_struct": False,
1084
+ "_subprocess": False,
1085
+ "_suggestions": False,
1086
+ "_symtable": False,
1087
+ "_sysconfig": False,
1088
+ "_testbuffer": False,
1089
+ "_testexternalinspection": False,
1090
+ "_testimportmultiple": False,
1091
+ "_testinternalcapi": False,
1092
+ "_testmultiphase": False,
1093
+ "_testsinglephase": False,
1094
+ "_thread": False,
1095
+ "_tkinter": True,
1096
+ "_tokenize": False,
1097
+ "_tracemalloc": False,
1098
+ "_typing": False,
1099
+ "_uuid": False,
1100
+ "_warnings": False,
1101
+ "_weakref": False,
1102
+ "_winapi": False,
1103
+ "_winreg": False,
1104
+ "_xxtestfuzz": False,
1105
+ "_xxsubinterpreters": False,
1106
+ "_xxinterpchannels": False,
1107
+ "_zoneinfo": False,
1108
+ "array": False,
1109
+ "atexit": False,
1110
+ "audioop": False,
1111
+ "binascii": False,
1112
+ "builtins": False,
1113
+ "cPickle": False,
1114
+ "cStringIO": False,
1115
+ "cmath": False,
1116
+ "datetime": False,
1117
+ "errno": False,
1118
+ "exceptions": False,
1119
+ "faulthandler": False,
1120
+ "fcntl": False,
1121
+ "future_builtins": False,
1122
+ "gc": False,
1123
+ "grp": False,
1124
+ "imageop": False,
1125
+ "imp": False,
1126
+ "itertools": False,
1127
+ "marshal": False,
1128
+ "math": False,
1129
+ "mmap": False,
1130
+ "msvcrt": False,
1131
+ "nis": False,
1132
+ "nt": False,
1133
+ "operator": False,
1134
+ "ossaudiodev": False,
1135
+ "parser": False,
1136
+ "posix": False,
1137
+ "pwd": False,
1138
+ "pyexpat": False,
1139
+ "readline": True,
1140
+ "resource": False,
1141
+ "select": False,
1142
+ "signal": False,
1143
+ "spwd": False,
1144
+ "strop": False,
1145
+ "sys": False,
1146
+ "syslog": False,
1147
+ "termios": False,
1148
+ "thread": False,
1149
+ "time": False,
1150
+ "unicodedata": False,
1151
+ "winreg": False,
1152
+ "xxsubtype": False,
1153
+ "zipimport": False,
1154
+ "zlib": False,
1155
+ }
1156
+
1157
+
1158
+ def isNonRaisingBuiltinModule(module_name):
1159
+ assert isBuiltinModuleName(module_name), module_name
1160
+
1161
+ # Return None, if we don't know.
1162
+ return _stdlib_module_raises.get(module_name)
1163
+
1164
+
1165
+ def _getChildPackageNames(module_name):
1166
+ module_name = ModuleName(module_name)
1167
+
1168
+ _module_name, module_filename, _module_kind, _finding = locateModule(
1169
+ parent_package=None, module_name=module_name, level=0
1170
+ )
1171
+
1172
+ package_dir = module_filename
1173
+
1174
+ for module_info in iter_modules([package_dir]):
1175
+ child_name = module_name.getChildNamed(module_info.name)
1176
+ yield child_name
1177
+
1178
+ if module_info.ispkg: # spell-checker: ignore ispkg
1179
+ for sub_module_name in getChildPackageNames(child_name):
1180
+ yield sub_module_name
1181
+
1182
+
1183
+ def getChildPackageNames(module_name):
1184
+ return tuple(_getChildPackageNames(module_name))
1185
+
1186
+
1187
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1188
+ # integrates with CPython, but also works on its own.
1189
+ #
1190
+ # Licensed under the Apache License, Version 2.0 (the "License");
1191
+ # you may not use this file except in compliance with the License.
1192
+ # You may obtain a copy of the License at
1193
+ #
1194
+ # http://www.apache.org/licenses/LICENSE-2.0
1195
+ #
1196
+ # Unless required by applicable law or agreed to in writing, software
1197
+ # distributed under the License is distributed on an "AS IS" BASIS,
1198
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1199
+ # See the License for the specific language governing permissions and
1200
+ # limitations under the License.