Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-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 (728) hide show
  1. Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
  2. Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
  3. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
  4. Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
  5. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +49 -17
  7. nuitka/BytecodeCaching.py +24 -20
  8. nuitka/Bytecodes.py +23 -19
  9. nuitka/CacheCleanup.py +28 -23
  10. nuitka/Constants.py +19 -17
  11. nuitka/Errors.py +23 -17
  12. nuitka/HardImportRegistry.py +408 -0
  13. nuitka/MainControl.py +209 -116
  14. nuitka/ModuleRegistry.py +83 -20
  15. nuitka/OptionParsing.py +467 -221
  16. nuitka/Options.py +701 -225
  17. nuitka/OutputDirectories.py +47 -23
  18. nuitka/PostProcessing.py +133 -79
  19. nuitka/Progress.py +73 -24
  20. nuitka/PythonFlavors.py +141 -32
  21. nuitka/PythonOperators.py +18 -17
  22. nuitka/PythonVersions.py +107 -19
  23. nuitka/Serialization.py +70 -55
  24. nuitka/SourceCodeReferences.py +19 -17
  25. nuitka/Tracing.py +176 -70
  26. nuitka/TreeXML.py +31 -26
  27. nuitka/Variables.py +39 -41
  28. nuitka/Version.py +22 -8
  29. nuitka/__init__.py +5 -4
  30. nuitka/__main__.py +95 -29
  31. nuitka/__past__.py +44 -34
  32. nuitka/build/Backend.scons +243 -141
  33. nuitka/build/CCompilerVersion.scons +45 -31
  34. nuitka/build/DataComposerInterface.py +20 -17
  35. nuitka/build/Onefile.scons +56 -54
  36. nuitka/build/SconsCaching.py +105 -92
  37. nuitka/build/SconsCompilerSettings.py +167 -68
  38. nuitka/build/SconsHacks.py +25 -19
  39. nuitka/build/SconsInterface.py +155 -54
  40. nuitka/build/SconsProgress.py +19 -18
  41. nuitka/build/SconsSpawn.py +62 -33
  42. nuitka/build/SconsUtils.py +152 -55
  43. nuitka/build/__init__.py +5 -4
  44. nuitka/build/include/nuitka/allocator.h +228 -22
  45. nuitka/build/include/nuitka/builtins.h +17 -17
  46. nuitka/build/include/nuitka/calling.h +24 -24
  47. nuitka/build/include/nuitka/checkers.h +17 -18
  48. nuitka/build/include/nuitka/checksum_tools.h +14 -19
  49. nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
  50. nuitka/build/include/nuitka/compiled_cell.h +33 -18
  51. nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
  52. nuitka/build/include/nuitka/compiled_frame.h +93 -54
  53. nuitka/build/include/nuitka/compiled_function.h +42 -20
  54. nuitka/build/include/nuitka/compiled_generator.h +24 -18
  55. nuitka/build/include/nuitka/compiled_method.h +17 -18
  56. nuitka/build/include/nuitka/constants.h +35 -18
  57. nuitka/build/include/nuitka/constants_blob.h +17 -17
  58. nuitka/build/include/nuitka/debug_settings.h +60 -0
  59. nuitka/build/include/nuitka/environment_variables.h +30 -0
  60. nuitka/build/include/nuitka/environment_variables_system.h +45 -0
  61. nuitka/build/include/nuitka/exception_groups.h +23 -26
  62. nuitka/build/include/nuitka/exceptions.h +717 -171
  63. nuitka/build/include/nuitka/filesystem_paths.h +26 -20
  64. nuitka/build/include/nuitka/freelists.h +38 -18
  65. nuitka/build/include/nuitka/helper/attributes.h +24 -22
  66. nuitka/build/include/nuitka/helper/boolean.h +17 -17
  67. nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
  68. nuitka/build/include/nuitka/helper/bytes.h +14 -15
  69. nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
  70. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
  71. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
  72. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
  73. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
  74. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
  75. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
  76. nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
  77. nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
  78. nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
  79. nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
  80. nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
  81. nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
  82. nuitka/build/include/nuitka/helper/complex.h +17 -17
  83. nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
  84. nuitka/build/include/nuitka/helper/floats.h +17 -18
  85. nuitka/build/include/nuitka/helper/import_hard.h +25 -17
  86. nuitka/build/include/nuitka/helper/indexes.h +17 -18
  87. nuitka/build/include/nuitka/helper/ints.h +115 -54
  88. nuitka/build/include/nuitka/helper/iterators.h +99 -51
  89. nuitka/build/include/nuitka/helper/lists.h +26 -24
  90. nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
  91. nuitka/build/include/nuitka/helper/mappings.h +17 -18
  92. nuitka/build/include/nuitka/helper/operations.h +20 -17
  93. nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
  94. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
  95. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
  96. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
  97. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
  98. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
  99. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
  100. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
  101. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
  102. nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
  103. nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
  104. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
  105. nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
  106. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
  107. nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
  108. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
  109. nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
  110. nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
  111. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
  112. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
  113. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
  114. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
  115. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
  116. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
  117. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
  118. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
  119. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
  120. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
  121. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
  122. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
  123. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
  124. nuitka/build/include/nuitka/helper/raising.h +68 -37
  125. nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
  126. nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
  127. nuitka/build/include/nuitka/helper/sequences.h +19 -13
  128. nuitka/build/include/nuitka/helper/sets.h +11 -12
  129. nuitka/build/include/nuitka/helper/slices.h +31 -25
  130. nuitka/build/include/nuitka/helper/strings.h +16 -17
  131. nuitka/build/include/nuitka/helper/subscripts.h +18 -201
  132. nuitka/build/include/nuitka/helper/tuples.h +64 -52
  133. nuitka/build/include/nuitka/helpers.h +50 -22
  134. nuitka/build/include/nuitka/importing.h +28 -21
  135. nuitka/build/include/nuitka/jit_sources.h +25 -0
  136. nuitka/build/include/nuitka/prelude.h +163 -71
  137. nuitka/build/include/nuitka/printing.h +29 -22
  138. nuitka/build/include/nuitka/python_pgo.h +19 -18
  139. nuitka/build/include/nuitka/safe_string_ops.h +20 -18
  140. nuitka/build/include/nuitka/threading.h +45 -32
  141. nuitka/build/include/nuitka/tracing.h +28 -18
  142. nuitka/build/include/nuitka/type_aliases.h +30 -0
  143. nuitka/build/include/nuitka/unfreezing.h +29 -23
  144. nuitka/build/inline_copy/bin/scons.py +14 -0
  145. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
  146. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
  147. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  148. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  149. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  150. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  151. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  152. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  153. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  154. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  155. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  156. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  157. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  158. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  159. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  160. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  161. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  162. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  163. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  164. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  165. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  166. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  167. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  168. nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
  169. nuitka/build/inline_copy/stubgen/six.py +998 -0
  170. nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
  171. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
  172. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
  173. nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
  174. nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
  175. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  176. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  177. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  178. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  179. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  180. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  181. nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
  182. nuitka/build/static_src/CompiledCellType.c +69 -44
  183. nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
  184. nuitka/build/static_src/CompiledCoroutineType.c +229 -226
  185. nuitka/build/static_src/CompiledFrameType.c +323 -138
  186. nuitka/build/static_src/CompiledFunctionType.c +547 -231
  187. nuitka/build/static_src/CompiledGeneratorType.c +416 -290
  188. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
  189. nuitka/build/static_src/CompiledMethodType.c +91 -82
  190. nuitka/build/static_src/HelpersAllocator.c +352 -45
  191. nuitka/build/static_src/HelpersAttributes.c +30 -72
  192. nuitka/build/static_src/HelpersBuiltin.c +65 -46
  193. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
  194. nuitka/build/static_src/HelpersBytes.c +19 -20
  195. nuitka/build/static_src/HelpersCalling.c +40 -37
  196. nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
  197. nuitka/build/static_src/HelpersChecksumTools.c +35 -21
  198. nuitka/build/static_src/HelpersClasses.c +17 -17
  199. nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
  200. nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
  201. nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
  202. nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
  203. nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
  204. nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
  205. nuitka/build/static_src/HelpersComparisonEq.c +536 -496
  206. nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
  207. nuitka/build/static_src/HelpersComparisonGe.c +531 -501
  208. nuitka/build/static_src/HelpersComparisonGt.c +530 -500
  209. nuitka/build/static_src/HelpersComparisonLe.c +531 -501
  210. nuitka/build/static_src/HelpersComparisonLt.c +530 -500
  211. nuitka/build/static_src/HelpersComparisonNe.c +538 -496
  212. nuitka/build/static_src/HelpersConsole.c +122 -0
  213. nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
  214. nuitka/build/static_src/HelpersDeepcopy.c +33 -33
  215. nuitka/build/static_src/HelpersDictionaries.c +232 -63
  216. nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
  217. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  218. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  219. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
  220. nuitka/build/static_src/HelpersExceptions.c +147 -62
  221. nuitka/build/static_src/HelpersFiles.c +116 -22
  222. nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
  223. nuitka/build/static_src/HelpersFloats.c +37 -31
  224. nuitka/build/static_src/HelpersHeapStorage.c +21 -17
  225. nuitka/build/static_src/HelpersImport.c +61 -29
  226. nuitka/build/static_src/HelpersImportHard.c +74 -61
  227. nuitka/build/static_src/HelpersJitSources.c +46 -0
  228. nuitka/build/static_src/HelpersLists.c +237 -58
  229. nuitka/build/static_src/HelpersListsGenerated.c +41 -41
  230. nuitka/build/static_src/HelpersMappings.c +17 -17
  231. nuitka/build/static_src/HelpersMatching.c +137 -51
  232. nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
  233. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
  234. nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
  235. nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
  236. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
  237. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
  238. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
  239. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
  240. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
  241. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
  242. nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
  243. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
  244. nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
  245. nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
  246. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
  247. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
  248. nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
  249. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
  250. nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
  251. nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
  252. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
  253. nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
  254. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
  255. nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
  256. nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
  257. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
  258. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
  259. nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
  260. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
  261. nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
  262. nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
  263. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
  264. nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
  265. nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
  266. nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
  267. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
  268. nuitka/build/static_src/HelpersProfiling.c +25 -24
  269. nuitka/build/static_src/HelpersPythonPgo.c +22 -22
  270. nuitka/build/static_src/HelpersRaising.c +296 -283
  271. nuitka/build/static_src/HelpersSafeStrings.c +34 -22
  272. nuitka/build/static_src/HelpersSequences.c +18 -19
  273. nuitka/build/static_src/HelpersSlices.c +29 -23
  274. nuitka/build/static_src/HelpersStrings.c +235 -38
  275. nuitka/build/static_src/HelpersTuples.c +46 -34
  276. nuitka/build/static_src/HelpersTypes.c +166 -25
  277. nuitka/build/static_src/InspectPatcher.c +108 -27
  278. nuitka/build/static_src/MainProgram.c +464 -280
  279. nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
  280. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
  281. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
  282. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
  283. nuitka/build/static_src/OnefileBootstrap.c +281 -164
  284. nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
  285. nuitka/code_generation/AsyncgenCodes.py +21 -23
  286. nuitka/code_generation/AttributeCodes.py +31 -27
  287. nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
  288. nuitka/code_generation/BranchCodes.py +19 -17
  289. nuitka/code_generation/BuiltinCodes.py +29 -18
  290. nuitka/code_generation/CallCodes.py +35 -33
  291. nuitka/code_generation/ClassCodes.py +19 -17
  292. nuitka/code_generation/CodeGeneration.py +61 -28
  293. nuitka/code_generation/CodeHelperSelection.py +20 -18
  294. nuitka/code_generation/CodeHelpers.py +28 -21
  295. nuitka/code_generation/CodeObjectCodes.py +36 -26
  296. nuitka/code_generation/ComparisonCodes.py +51 -22
  297. nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
  298. nuitka/code_generation/ConditionalCodes.py +19 -17
  299. nuitka/code_generation/ConstantCodes.py +82 -28
  300. nuitka/code_generation/Contexts.py +180 -42
  301. nuitka/code_generation/CoroutineCodes.py +21 -23
  302. nuitka/code_generation/CtypesCodes.py +19 -17
  303. nuitka/code_generation/DictCodes.py +28 -26
  304. nuitka/code_generation/Emission.py +21 -18
  305. nuitka/code_generation/ErrorCodes.py +57 -79
  306. nuitka/code_generation/EvalCodes.py +24 -20
  307. nuitka/code_generation/ExceptionCodes.py +182 -104
  308. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
  309. nuitka/code_generation/ExpressionCodes.py +19 -17
  310. nuitka/code_generation/FrameCodes.py +28 -31
  311. nuitka/code_generation/FunctionCodes.py +26 -27
  312. nuitka/code_generation/GeneratorCodes.py +25 -26
  313. nuitka/code_generation/GlobalConstants.py +51 -25
  314. nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
  315. nuitka/code_generation/IdCodes.py +19 -17
  316. nuitka/code_generation/ImportCodes.py +90 -50
  317. nuitka/code_generation/Indentation.py +23 -22
  318. nuitka/code_generation/IndexCodes.py +19 -17
  319. nuitka/code_generation/InjectCCodes.py +14 -12
  320. nuitka/code_generation/IntegerCodes.py +19 -17
  321. nuitka/code_generation/IteratorCodes.py +86 -71
  322. nuitka/code_generation/JitCodes.py +44 -0
  323. nuitka/code_generation/LabelCodes.py +19 -17
  324. nuitka/code_generation/LineNumberCodes.py +20 -20
  325. nuitka/code_generation/ListCodes.py +32 -36
  326. nuitka/code_generation/LoaderCodes.py +22 -17
  327. nuitka/code_generation/LocalsDictCodes.py +56 -32
  328. nuitka/code_generation/LoopCodes.py +19 -17
  329. nuitka/code_generation/MatchCodes.py +42 -22
  330. nuitka/code_generation/ModuleCodes.py +71 -29
  331. nuitka/code_generation/Namify.py +27 -23
  332. nuitka/code_generation/NetworkxCodes.py +51 -0
  333. nuitka/code_generation/OperationCodes.py +80 -51
  334. nuitka/code_generation/PackageResourceCodes.py +96 -23
  335. nuitka/code_generation/PrintCodes.py +19 -17
  336. nuitka/code_generation/PythonAPICodes.py +19 -17
  337. nuitka/code_generation/RaisingCodes.py +183 -107
  338. nuitka/code_generation/Reports.py +32 -22
  339. nuitka/code_generation/ReturnCodes.py +20 -32
  340. nuitka/code_generation/SetCodes.py +19 -17
  341. nuitka/code_generation/SliceCodes.py +22 -20
  342. nuitka/code_generation/StringCodes.py +19 -17
  343. nuitka/code_generation/SubscriptCodes.py +24 -30
  344. nuitka/code_generation/TensorflowCodes.py +54 -0
  345. nuitka/code_generation/TryCodes.py +31 -41
  346. nuitka/code_generation/TupleCodes.py +20 -18
  347. nuitka/code_generation/TypeAliasCodes.py +119 -0
  348. nuitka/code_generation/VariableCodes.py +118 -55
  349. nuitka/code_generation/VariableDeclarations.py +28 -25
  350. nuitka/code_generation/YieldCodes.py +23 -21
  351. nuitka/code_generation/__init__.py +5 -4
  352. nuitka/code_generation/c_types/CTypeBases.py +29 -19
  353. nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
  354. nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
  355. nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
  356. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
  357. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
  358. nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
  359. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
  360. nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
  361. nuitka/code_generation/c_types/CTypeVoids.py +20 -17
  362. nuitka/code_generation/c_types/__init__.py +5 -4
  363. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
  364. nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
  365. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
  366. nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
  367. nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
  368. nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
  369. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
  370. nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
  371. nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
  372. nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
  373. nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
  374. nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
  375. nuitka/code_generation/templates/__init__.py +5 -4
  376. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
  377. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
  378. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
  379. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
  380. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
  381. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
  382. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
  383. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
  384. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
  385. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
  386. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
  387. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
  388. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
  389. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
  390. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
  391. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
  392. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
  393. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
  394. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
  395. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
  396. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
  397. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
  398. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
  399. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
  400. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
  401. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
  402. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
  403. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
  404. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
  405. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
  406. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
  407. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
  408. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
  409. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
  410. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
  411. nuitka/containers/Namedtuples.py +25 -18
  412. nuitka/containers/OrderedSets.py +105 -5
  413. nuitka/containers/OrderedSetsFallback.py +19 -17
  414. nuitka/containers/__init__.py +5 -4
  415. nuitka/distutils/Build.py +33 -18
  416. nuitka/distutils/DistutilCommands.py +84 -33
  417. nuitka/distutils/__init__.py +5 -4
  418. nuitka/finalizations/Finalization.py +21 -18
  419. nuitka/finalizations/FinalizeMarkups.py +31 -55
  420. nuitka/finalizations/__init__.py +5 -4
  421. nuitka/freezer/DependsExe.py +60 -30
  422. nuitka/freezer/DllDependenciesCommon.py +47 -20
  423. nuitka/freezer/DllDependenciesMacOS.py +165 -58
  424. nuitka/freezer/DllDependenciesPosix.py +29 -19
  425. nuitka/freezer/DllDependenciesWin32.py +55 -33
  426. nuitka/freezer/ImportDetection.py +23 -17
  427. nuitka/freezer/IncludedDataFiles.py +142 -48
  428. nuitka/freezer/IncludedEntryPoints.py +104 -39
  429. nuitka/freezer/Onefile.py +32 -22
  430. nuitka/freezer/Standalone.py +166 -53
  431. nuitka/freezer/__init__.py +5 -4
  432. nuitka/importing/IgnoreListing.py +19 -17
  433. nuitka/importing/ImportCache.py +24 -21
  434. nuitka/importing/ImportResolving.py +103 -95
  435. nuitka/importing/Importing.py +319 -98
  436. nuitka/importing/PreloadedPackages.py +21 -18
  437. nuitka/importing/Recursion.py +142 -47
  438. nuitka/importing/StandardLibrary.py +96 -80
  439. nuitka/importing/__init__.py +5 -4
  440. nuitka/nodes/AsyncgenNodes.py +22 -23
  441. nuitka/nodes/AttributeLookupNodes.py +19 -17
  442. nuitka/nodes/AttributeNodes.py +19 -17
  443. nuitka/nodes/AttributeNodesGenerated.py +49 -24
  444. nuitka/nodes/BuiltinAllNodes.py +19 -17
  445. nuitka/nodes/BuiltinAnyNodes.py +19 -17
  446. nuitka/nodes/BuiltinComplexNodes.py +20 -17
  447. nuitka/nodes/BuiltinDecodingNodes.py +19 -17
  448. nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
  449. nuitka/nodes/BuiltinDictNodes.py +19 -17
  450. nuitka/nodes/BuiltinFormatNodes.py +20 -17
  451. nuitka/nodes/BuiltinHashNodes.py +19 -17
  452. nuitka/nodes/BuiltinInputNodes.py +19 -17
  453. nuitka/nodes/BuiltinIntegerNodes.py +19 -17
  454. nuitka/nodes/BuiltinIteratorNodes.py +25 -21
  455. nuitka/nodes/BuiltinLenNodes.py +19 -17
  456. nuitka/nodes/BuiltinNextNodes.py +19 -17
  457. nuitka/nodes/BuiltinOpenNodes.py +52 -18
  458. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
  459. nuitka/nodes/BuiltinRangeNodes.py +21 -19
  460. nuitka/nodes/BuiltinRefNodes.py +73 -40
  461. nuitka/nodes/BuiltinSumNodes.py +20 -18
  462. nuitka/nodes/BuiltinTypeNodes.py +19 -17
  463. nuitka/nodes/BuiltinVarsNodes.py +19 -18
  464. nuitka/nodes/BytesNodes.py +19 -17
  465. nuitka/nodes/CallNodes.py +19 -17
  466. nuitka/nodes/Checkers.py +19 -17
  467. nuitka/nodes/ChildrenHavingMixins.py +1624 -283
  468. nuitka/nodes/ClassNodes.py +49 -29
  469. nuitka/nodes/CodeObjectSpecs.py +29 -18
  470. nuitka/nodes/ComparisonNodes.py +19 -17
  471. nuitka/nodes/ConditionalNodes.py +24 -25
  472. nuitka/nodes/ConstantRefNodes.py +57 -17
  473. nuitka/nodes/ContainerMakingNodes.py +19 -17
  474. nuitka/nodes/ContainerOperationNodes.py +19 -17
  475. nuitka/nodes/CoroutineNodes.py +22 -23
  476. nuitka/nodes/CtypesNodes.py +19 -18
  477. nuitka/nodes/DictionaryNodes.py +19 -18
  478. nuitka/nodes/ExceptionNodes.py +131 -43
  479. nuitka/nodes/ExecEvalNodes.py +19 -17
  480. nuitka/nodes/ExpressionBases.py +34 -26
  481. nuitka/nodes/ExpressionBasesGenerated.py +341 -35
  482. nuitka/nodes/ExpressionShapeMixins.py +19 -17
  483. nuitka/nodes/FrameNodes.py +41 -28
  484. nuitka/nodes/FunctionAttributeNodes.py +19 -17
  485. nuitka/nodes/FunctionNodes.py +84 -38
  486. nuitka/nodes/FutureSpecs.py +35 -20
  487. nuitka/nodes/GeneratorNodes.py +24 -25
  488. nuitka/nodes/GlobalsLocalsNodes.py +22 -17
  489. nuitka/nodes/HardImportNodesGenerated.py +746 -148
  490. nuitka/nodes/ImportHardNodes.py +46 -38
  491. nuitka/nodes/ImportNodes.py +438 -448
  492. nuitka/nodes/IndicatorMixins.py +19 -17
  493. nuitka/nodes/InjectCNodes.py +19 -18
  494. nuitka/nodes/IterationHandles.py +55 -34
  495. nuitka/nodes/KeyValuePairNodes.py +19 -17
  496. nuitka/nodes/ListOperationNodes.py +33 -21
  497. nuitka/nodes/LocalsDictNodes.py +19 -17
  498. nuitka/nodes/LocalsScopes.py +41 -41
  499. nuitka/nodes/LoopNodes.py +28 -17
  500. nuitka/nodes/MatchNodes.py +37 -24
  501. nuitka/nodes/ModuleAttributeNodes.py +18 -35
  502. nuitka/nodes/ModuleNodes.py +90 -31
  503. nuitka/nodes/NetworkxNodes.py +45 -0
  504. nuitka/nodes/NodeBases.py +73 -44
  505. nuitka/nodes/NodeMakingHelpers.py +92 -69
  506. nuitka/nodes/NodeMetaClasses.py +45 -28
  507. nuitka/nodes/OperatorNodes.py +28 -26
  508. nuitka/nodes/OperatorNodesUnary.py +148 -20
  509. nuitka/nodes/OsSysNodes.py +97 -18
  510. nuitka/nodes/OutlineNodes.py +24 -22
  511. nuitka/nodes/PackageMetadataNodes.py +37 -27
  512. nuitka/nodes/PackageResourceNodes.py +29 -23
  513. nuitka/nodes/PrintNodes.py +19 -17
  514. nuitka/nodes/ReturnNodes.py +20 -18
  515. nuitka/nodes/SideEffectNodes.py +19 -17
  516. nuitka/nodes/SliceNodes.py +20 -18
  517. nuitka/nodes/StatementBasesGenerated.py +125 -79
  518. nuitka/nodes/StatementNodes.py +27 -24
  519. nuitka/nodes/StrNodes.py +19 -17
  520. nuitka/nodes/StringConcatenationNodes.py +20 -17
  521. nuitka/nodes/SubscriptNodes.py +27 -25
  522. nuitka/nodes/TensorflowNodes.py +38 -0
  523. nuitka/nodes/TryNodes.py +19 -17
  524. nuitka/nodes/TypeMatchNodes.py +19 -17
  525. nuitka/nodes/TypeNodes.py +68 -18
  526. nuitka/nodes/VariableAssignNodes.py +122 -64
  527. nuitka/nodes/VariableDelNodes.py +19 -17
  528. nuitka/nodes/VariableNameNodes.py +19 -17
  529. nuitka/nodes/VariableRefNodes.py +63 -26
  530. nuitka/nodes/VariableReleaseNodes.py +19 -17
  531. nuitka/nodes/YieldNodes.py +21 -19
  532. nuitka/nodes/__init__.py +5 -4
  533. nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
  534. nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
  535. nuitka/nodes/shapes/ShapeMixins.py +57 -17
  536. nuitka/nodes/shapes/StandardShapes.py +80 -21
  537. nuitka/nodes/shapes/__init__.py +5 -4
  538. nuitka/optimizations/BytecodeDemotion.py +21 -18
  539. nuitka/optimizations/FunctionInlining.py +22 -23
  540. nuitka/optimizations/Graphs.py +19 -17
  541. nuitka/optimizations/Optimization.py +39 -35
  542. nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
  543. nuitka/optimizations/Tags.py +19 -18
  544. nuitka/optimizations/TraceCollections.py +67 -24
  545. nuitka/optimizations/ValueTraces.py +92 -25
  546. nuitka/optimizations/__init__.py +5 -4
  547. nuitka/pgo/PGO.py +33 -23
  548. nuitka/pgo/__init__.py +5 -4
  549. nuitka/plugins/PluginBase.py +655 -112
  550. nuitka/plugins/Plugins.py +247 -61
  551. nuitka/plugins/YamlPluginBase.py +121 -0
  552. nuitka/plugins/__init__.py +5 -4
  553. nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
  554. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
  555. nuitka/plugins/standard/DataFilesPlugin.py +65 -29
  556. nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
  557. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  558. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
  559. nuitka/plugins/standard/DillPlugin.py +42 -134
  560. nuitka/plugins/standard/DllFilesPlugin.py +125 -42
  561. nuitka/plugins/standard/EnumPlugin.py +19 -17
  562. nuitka/plugins/standard/EventletPlugin.py +19 -17
  563. nuitka/plugins/standard/GeventPlugin.py +19 -17
  564. nuitka/plugins/standard/GiPlugin.py +44 -28
  565. nuitka/plugins/standard/GlfwPlugin.py +20 -17
  566. nuitka/plugins/standard/ImplicitImports.py +403 -54
  567. nuitka/plugins/standard/KivyPlugin.py +24 -20
  568. nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
  569. nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
  570. nuitka/plugins/standard/NumpyPlugin.py +19 -17
  571. nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
  572. nuitka/plugins/standard/PbrPlugin.py +21 -19
  573. nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
  574. nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
  575. nuitka/plugins/standard/PmwPlugin.py +30 -27
  576. nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
  577. nuitka/plugins/standard/PywebViewPlugin.py +19 -17
  578. nuitka/plugins/standard/SpacyPlugin.py +136 -0
  579. nuitka/plugins/standard/TensorflowPlugin.py +20 -17
  580. nuitka/plugins/standard/TkinterPlugin.py +102 -108
  581. nuitka/plugins/standard/TorchPlugin.py +20 -17
  582. nuitka/plugins/standard/TransformersPlugin.py +90 -231
  583. nuitka/plugins/standard/TrioPlugin.py +18 -15
  584. nuitka/plugins/standard/UpxPlugin.py +21 -19
  585. nuitka/plugins/standard/__init__.py +5 -4
  586. nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
  587. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
  588. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
  589. nuitka/reports/CompilationReportReader.py +79 -0
  590. nuitka/reports/LicenseReport.rst.j2 +21 -21
  591. nuitka/reports/Reports.py +363 -76
  592. nuitka/reports/__init__.py +5 -4
  593. nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
  594. nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
  595. nuitka/specs/BuiltinListOperationSpecs.py +18 -17
  596. nuitka/specs/BuiltinParameterSpecs.py +35 -21
  597. nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
  598. nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
  599. nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
  600. nuitka/specs/HardImportSpecs.py +74 -22
  601. nuitka/specs/ParameterSpecs.py +60 -45
  602. nuitka/specs/__init__.py +5 -4
  603. nuitka/tools/Basics.py +20 -18
  604. nuitka/tools/__init__.py +5 -4
  605. nuitka/tools/commercial/__init__.py +7 -6
  606. nuitka/tools/data_composer/DataComposer.py +78 -62
  607. nuitka/tools/data_composer/__init__.py +5 -4
  608. nuitka/tools/data_composer/__main__.py +18 -17
  609. nuitka/tools/environments/CreateEnvironment.py +20 -17
  610. nuitka/tools/environments/Virtualenv.py +60 -32
  611. nuitka/tools/environments/__init__.py +5 -4
  612. nuitka/tools/general/__init__.py +5 -4
  613. nuitka/tools/general/dll_report/__init__.py +5 -4
  614. nuitka/tools/general/dll_report/__main__.py +29 -22
  615. nuitka/tools/general/find_module/FindModuleCode.py +35 -22
  616. nuitka/tools/general/find_module/__init__.py +5 -4
  617. nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
  618. nuitka/tools/onefile_compressor/__init__.py +5 -4
  619. nuitka/tools/onefile_compressor/__main__.py +18 -17
  620. nuitka/tools/podman/Podman.py +19 -17
  621. nuitka/tools/podman/__init__.py +5 -4
  622. nuitka/tools/podman/__main__.py +35 -19
  623. nuitka/tools/profiler/__init__.py +5 -4
  624. nuitka/tools/profiler/__main__.py +18 -17
  625. nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
  626. nuitka/tools/scanning/DisplayPackageData.py +31 -19
  627. nuitka/tools/scanning/__init__.py +5 -4
  628. nuitka/tools/specialize/CTypeDescriptions.py +251 -80
  629. nuitka/tools/specialize/Common.py +18 -17
  630. nuitka/tools/specialize/SpecializeC.py +248 -82
  631. nuitka/tools/specialize/SpecializePython.py +108 -45
  632. nuitka/tools/specialize/__init__.py +5 -4
  633. nuitka/tools/testing/Common.py +175 -114
  634. nuitka/tools/testing/Constructs.py +19 -17
  635. nuitka/tools/testing/OutputComparison.py +54 -18
  636. nuitka/tools/testing/Pythons.py +19 -18
  637. nuitka/tools/testing/RuntimeTracing.py +20 -19
  638. nuitka/tools/testing/SearchModes.py +26 -20
  639. nuitka/tools/testing/Valgrind.py +19 -17
  640. nuitka/tools/testing/__init__.py +5 -4
  641. nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
  642. nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
  643. nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
  644. nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
  645. nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
  646. nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
  647. nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
  648. nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
  649. nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
  650. nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
  651. nuitka/tools/watch/AutoStage.py +145 -0
  652. nuitka/tools/watch/GitHub.py +113 -0
  653. nuitka/tools/watch/__init__.py +5 -4
  654. nuitka/tools/watch/__main__.py +322 -91
  655. nuitka/tree/Building.py +184 -182
  656. nuitka/tree/ComplexCallHelperFunctions.py +84 -58
  657. nuitka/tree/Extractions.py +19 -17
  658. nuitka/tree/InternalModule.py +29 -20
  659. nuitka/tree/Operations.py +19 -17
  660. nuitka/tree/ReformulationAssertStatements.py +51 -31
  661. nuitka/tree/ReformulationAssignmentStatements.py +96 -91
  662. nuitka/tree/ReformulationBooleanExpressions.py +19 -17
  663. nuitka/tree/ReformulationCallExpressions.py +20 -18
  664. nuitka/tree/ReformulationClasses.py +45 -39
  665. nuitka/tree/ReformulationClasses3.py +239 -116
  666. nuitka/tree/ReformulationComparisonExpressions.py +29 -35
  667. nuitka/tree/ReformulationContractionExpressions.py +58 -55
  668. nuitka/tree/ReformulationDictionaryCreation.py +41 -35
  669. nuitka/tree/ReformulationExecStatements.py +42 -39
  670. nuitka/tree/ReformulationForLoopStatements.py +30 -34
  671. nuitka/tree/ReformulationFunctionStatements.py +59 -55
  672. nuitka/tree/ReformulationImportStatements.py +34 -29
  673. nuitka/tree/ReformulationLambdaExpressions.py +23 -24
  674. nuitka/tree/ReformulationMatchStatements.py +246 -92
  675. nuitka/tree/ReformulationMultidist.py +22 -18
  676. nuitka/tree/ReformulationNamespacePackages.py +55 -46
  677. nuitka/tree/ReformulationPrintStatements.py +23 -24
  678. nuitka/tree/ReformulationSequenceCreation.py +50 -49
  679. nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
  680. nuitka/tree/ReformulationTryExceptStatements.py +19 -17
  681. nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
  682. nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
  683. nuitka/tree/ReformulationWithStatements.py +39 -41
  684. nuitka/tree/ReformulationYieldExpressions.py +44 -24
  685. nuitka/tree/SourceHandling.py +76 -31
  686. nuitka/tree/SyntaxErrors.py +19 -17
  687. nuitka/tree/TreeHelpers.py +33 -20
  688. nuitka/tree/VariableClosure.py +35 -39
  689. nuitka/tree/__init__.py +5 -4
  690. nuitka/utils/AppDirs.py +41 -20
  691. nuitka/utils/CStrings.py +66 -21
  692. nuitka/utils/CommandLineOptions.py +111 -22
  693. nuitka/utils/Distributions.py +445 -54
  694. nuitka/utils/Download.py +89 -57
  695. nuitka/utils/Execution.py +102 -58
  696. nuitka/utils/FileOperations.py +357 -128
  697. nuitka/utils/Hashing.py +55 -33
  698. nuitka/utils/Images.py +26 -19
  699. nuitka/utils/Importing.py +119 -37
  700. nuitka/utils/InlineCopies.py +52 -0
  701. nuitka/utils/InstalledPythons.py +85 -75
  702. nuitka/utils/InstanceCounters.py +20 -17
  703. nuitka/utils/Jinja2.py +30 -22
  704. nuitka/utils/Json.py +21 -19
  705. nuitka/utils/MacOSApp.py +26 -18
  706. nuitka/utils/MemoryUsage.py +20 -18
  707. nuitka/utils/ModuleNames.py +42 -26
  708. nuitka/utils/PackageResources.py +44 -0
  709. nuitka/utils/ReExecute.py +50 -28
  710. nuitka/utils/Rest.py +20 -17
  711. nuitka/utils/SharedLibraries.py +161 -75
  712. nuitka/utils/Shebang.py +20 -17
  713. nuitka/utils/Signing.py +63 -18
  714. nuitka/utils/SlotMetaClasses.py +57 -0
  715. nuitka/utils/StaticLibraries.py +83 -56
  716. nuitka/utils/ThreadedExecutor.py +18 -17
  717. nuitka/utils/Timing.py +22 -20
  718. nuitka/utils/Utils.py +132 -25
  719. nuitka/utils/WindowsFileUsage.py +22 -20
  720. nuitka/utils/WindowsResources.py +25 -18
  721. nuitka/utils/Yaml.py +62 -24
  722. nuitka/utils/__init__.py +5 -4
  723. Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
  724. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
  725. nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
  726. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
  727. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
  728. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ Locating modules and package source on disk.
19
5
 
20
6
  The actual import of a module would already execute code that changes things.
@@ -35,27 +21,31 @@ it's from the standard library, one can abuse the attribute ``__file__`` of the
35
21
 
36
22
  """
37
23
 
38
-
39
24
  import collections
40
- import hashlib
41
25
  import os
42
26
  import sys
43
27
  import zipfile
44
28
 
45
- from nuitka import Options, SourceCodeReferences
29
+ from nuitka import SourceCodeReferences
46
30
  from nuitka.__past__ import iter_modules
47
31
  from nuitka.containers.Namedtuples import makeNamedtupleClass
48
32
  from nuitka.containers.OrderedSets import OrderedSet
49
- from nuitka.importing import StandardLibrary
50
33
  from nuitka.plugins.Plugins import Plugins
51
34
  from nuitka.PythonFlavors import isNuitkaPython
52
35
  from nuitka.PythonVersions import python_version
53
36
  from nuitka.Tracing import my_print, recursion_logger
54
37
  from nuitka.tree.ReformulationMultidist import locateMultidistModule
55
38
  from nuitka.utils.AppDirs import getCacheDir
56
- from nuitka.utils.FileOperations import listDir, removeDirectory
39
+ from nuitka.utils.FileOperations import (
40
+ getNormalizedPath,
41
+ listDir,
42
+ removeDirectory,
43
+ )
44
+ from nuitka.utils.Hashing import getFileContentsHash
57
45
  from nuitka.utils.Importing import (
46
+ builtin_module_names,
58
47
  getModuleFilenameSuffixes,
48
+ getPackageDirFilename,
59
49
  getSharedLibrarySuffixes,
60
50
  isBuiltinModuleName,
61
51
  )
@@ -63,12 +53,53 @@ from nuitka.utils.ModuleNames import ModuleName
63
53
  from nuitka.utils.SharedLibraries import (
64
54
  hasUniversalOrMatchingMacOSArchitecture,
65
55
  )
66
- from nuitka.utils.Utils import isMacOS, isWin32OrPosixWindows
56
+ from nuitka.utils.Utils import (
57
+ getLaunchingNuitkaProcessEnvironmentValue,
58
+ isMacOS,
59
+ isWin32OrPosixWindows,
60
+ )
67
61
 
68
62
  from .IgnoreListing import isIgnoreListedNotExistingModule
69
63
  from .PreloadedPackages import getPreloadedPackagePath, isPreloadedPackagePath
64
+ from .StandardLibrary import isStandardLibraryPath
65
+
66
+ # Debug traces, enabled via --explain-imports
67
+ _debug_module_finding = None
68
+
69
+ # Preference as expressed via --prefer-source-code
70
+ _prefer_source_code_over_extension_modules = None
71
+
72
+
73
+ def setupImportingFromOptions():
74
+ """Set up the importing layer from giving options."""
75
+
76
+ # Should only be used inside of here.
77
+ from nuitka import Options
78
+
79
+ # singleton, pylint: disable=global-statement
80
+ global _debug_module_finding
81
+ _debug_module_finding = Options.shallExplainImports()
82
+
83
+ global _prefer_source_code_over_extension_modules
84
+ _prefer_source_code_over_extension_modules = (
85
+ Options.shallPreferSourceCodeOverExtensionModules()
86
+ )
87
+
88
+ # Lets try and have this complete, please report failures.
89
+ if Options.is_debug and not isNuitkaPython():
90
+ _checkRaisingBuiltinComplete()
91
+
92
+ main_filenames = Options.getMainEntryPointFilenames()
93
+ for filename in main_filenames:
94
+ # Inform the importing layer about the main script directory, so it can use
95
+ # it when attempting to follow imports.
96
+ addMainScriptDirectory(main_dir=os.path.dirname(os.path.abspath(filename)))
97
+
98
+
99
+ def _checkRaisingBuiltinComplete():
100
+ for module_name in builtin_module_names:
101
+ assert module_name in _stdlib_module_raises, module_name
70
102
 
71
- _debug_module_finding = Options.shallExplainImports()
72
103
 
73
104
  warned_about = set()
74
105
 
@@ -108,6 +139,38 @@ def makeModuleUsageAttempt(
108
139
  )
109
140
 
110
141
 
142
+ def makeParentModuleUsagesAttempts(module_usage_attempt):
143
+ result = []
144
+
145
+ for parent_package_name in module_usage_attempt.module_name.getParentPackageNames():
146
+ (
147
+ _parent_package_name,
148
+ parent_module_filename,
149
+ parent_module_kind,
150
+ parent_module_finding,
151
+ ) = locateModule(
152
+ module_name=parent_package_name,
153
+ parent_package=None,
154
+ level=0,
155
+ )
156
+
157
+ result.append(
158
+ makeModuleUsageAttempt(
159
+ module_name=parent_package_name,
160
+ filename=parent_module_filename,
161
+ finding=parent_module_finding,
162
+ module_kind=parent_module_kind,
163
+ level=0,
164
+ source_ref=module_usage_attempt.source_ref,
165
+ reason="import path parent",
166
+ )
167
+ )
168
+
169
+ result.append(module_usage_attempt)
170
+
171
+ return tuple(result)
172
+
173
+
111
174
  def addMainScriptDirectory(main_dir):
112
175
  """Initialize the main script directory.
113
176
 
@@ -130,7 +193,7 @@ def hasMainScriptDirectory():
130
193
  def isPackageDir(dirname):
131
194
  """Decide if a directory is a package.
132
195
 
133
- Before Python3.3 it's required to have a "__init__.py" file, but then
196
+ Before Python3 it's required to have a "__init__.py" file, but then
134
197
  it became impossible to decide, and for extra fun, there is also the
135
198
  extra packages provided via "*.pth" file tricks by "site.py" loading.
136
199
  """
@@ -174,6 +237,16 @@ def getModuleNameAndKindFromFilename(module_filename):
174
237
  )
175
238
 
176
239
  if os.path.isdir(module_filename):
240
+ package_filename = getPackageDirFilename(module_filename)
241
+
242
+ if package_filename is not None:
243
+ for suffix in getSharedLibrarySuffixes():
244
+ if package_filename.endswith(suffix):
245
+ return (
246
+ ModuleName(os.path.basename(module_filename)),
247
+ "extension",
248
+ )
249
+
177
250
  return ModuleName(os.path.basename(module_filename)), "py"
178
251
 
179
252
  return None, None
@@ -183,10 +256,10 @@ def isIgnoreListedImportMaker(source_ref):
183
256
  if isNuitkaPython():
184
257
  return True
185
258
 
186
- return StandardLibrary.isStandardLibraryPath(source_ref.getFilename())
259
+ return isStandardLibraryPath(source_ref.getFilename())
187
260
 
188
261
 
189
- def warnAbout(importing, module_name, level, source_ref):
262
+ def warnAboutNotFoundImport(importing, module_name, level, source_ref):
190
263
  # This probably should not be dealt with here
191
264
  if module_name == "":
192
265
  return
@@ -275,10 +348,19 @@ def findModule(module_name, parent_package, level):
275
348
  # TODO: Should give a warning and return not found if the levels
276
349
  # exceed the package name.
277
350
  if parent_package is not None:
278
- parent_package = parent_package.getRelativePackageName(level)
351
+ parent_package = parent_package.getRelativePackageName(level - 1)
279
352
  else:
280
353
  return None, None, None, "not-found"
281
354
 
355
+ if level == 1 and not module_name:
356
+ # Not actually allowed, but we only catch that at run-time.
357
+ if parent_package is None:
358
+ return None, None, None, "not-found"
359
+
360
+ module_name = parent_package
361
+ parent_package = None
362
+ level = 0
363
+
282
364
  # Try relative imports first if we have a parent package.
283
365
  if level != 0 and parent_package is not None:
284
366
  if module_name:
@@ -313,37 +395,11 @@ def findModule(module_name, parent_package, level):
313
395
 
314
396
  return full_name.getPackageName(), module_filename, module_kind, "relative"
315
397
 
316
- if level < 1 and module_name != "":
398
+ if level < 1 and module_name:
317
399
  module_name = normalizePackageName(module_name)
318
400
 
319
401
  package_name = module_name.getPackageName()
320
402
 
321
- # Built-in module names must not be searched any further.
322
- if module_name in sys.builtin_module_names:
323
- if _debug_module_finding:
324
- my_print(
325
- "findModule: Absolute imported module '%s' in as built-in':"
326
- % (module_name,)
327
- )
328
- return package_name, None, None, "built-in"
329
-
330
- # Frozen module names are similar to built-in, but there is no list of
331
- # them, therefore check loader name. Not useful at this time
332
- # to make a difference with built-in.
333
- if python_version >= 0x300 and module_name in sys.modules:
334
- loader = getattr(sys.modules[module_name], "__loader__", None)
335
-
336
- if (
337
- loader is not None
338
- and getattr(loader, "__name__", "") == "FrozenImporter"
339
- ):
340
- if _debug_module_finding:
341
- my_print(
342
- "findModule: Absolute imported module '%s' in as frozen':"
343
- % (module_name,)
344
- )
345
- return package_name, None, None, "built-in"
346
-
347
403
  preloaded_path = getPreloadedPackagePath(module_name)
348
404
 
349
405
  if preloaded_path is not None:
@@ -393,10 +449,7 @@ def _reportCandidates(package_name, module_name, candidate, candidates):
393
449
  else module_name
394
450
  )
395
451
 
396
- if (
397
- candidate.priority == 1
398
- and Options.shallPreferSourceCodeOverExtensionModules() is None
399
- ):
452
+ if candidate.priority == 1 and _prefer_source_code_over_extension_modules is None:
400
453
  for c in candidates:
401
454
  # Don't compare to itself and don't consider unused bytecode a problem.
402
455
  if c is candidate or c.priority == 3:
@@ -454,7 +507,7 @@ def _findModuleInPath2(package_name, module_name, search_path):
454
507
  # Higher values are lower priority.
455
508
  priority_map = {
456
509
  "PY_COMPILED": 3,
457
- "PY_SOURCE": 0 if Options.shallPreferSourceCodeOverExtensionModules() else 2,
510
+ "PY_SOURCE": 0 if _prefer_source_code_over_extension_modules else 2,
458
511
  "C_EXTENSION": 1,
459
512
  }
460
513
 
@@ -473,9 +526,6 @@ def _findModuleInPath2(package_name, module_name, search_path):
473
526
  found = False
474
527
 
475
528
  for suffix, module_type in getModuleFilenameSuffixes():
476
- if module_type == "C_EXTENSION":
477
- continue
478
-
479
529
  package_file_name = "__init__" + suffix
480
530
 
481
531
  file_path = os.path.join(package_directory, package_file_name)
@@ -557,7 +607,11 @@ def _findModuleInPath2(package_name, module_name, search_path):
557
607
  if (
558
608
  found_candidate.module_type == "C_EXTENSION"
559
609
  and isMacOS()
560
- and not hasUniversalOrMatchingMacOSArchitecture(found_candidate.full_path)
610
+ and not hasUniversalOrMatchingMacOSArchitecture(
611
+ getPackageDirFilename(found_candidate.full_path)
612
+ if os.path.isdir(found_candidate.full_path)
613
+ else found_candidate.full_path
614
+ )
561
615
  ):
562
616
  # Not usable for target architecture.
563
617
  raise ImportError
@@ -582,26 +636,31 @@ def _unpackPathElement(path_entry):
582
636
  if not path_entry:
583
637
  return "." # empty means current directory
584
638
 
585
- if os.path.isfile(path_entry) and path_entry.lower().endswith(".egg"):
586
- if path_entry not in _egg_files:
587
- with open(path_entry, "rb") as f:
588
- checksum = hashlib.md5(f.read()).hexdigest()
589
-
590
- target_dir = os.path.join(getCacheDir(), "egg-content", checksum)
591
-
592
- if not os.path.exists(target_dir):
593
- try:
594
- # Not all Python versions allow using with here, pylint: disable=consider-using-with
595
- zip_ref = zipfile.ZipFile(path_entry, "r")
596
- zip_ref.extractall(target_dir)
597
- zip_ref.close()
598
- except BaseException:
599
- removeDirectory(target_dir, ignore_errors=True)
600
- raise
639
+ if os.path.isfile(path_entry):
640
+ if path_entry.lower().endswith((".egg", ".zip")):
641
+ if path_entry not in _egg_files:
642
+ checksum = getFileContentsHash(path_entry)
643
+
644
+ target_dir = os.path.join(getCacheDir("egg-content"), checksum)
645
+
646
+ if not os.path.exists(target_dir):
647
+ try:
648
+ # Not all Python versions allow using with here, pylint: disable=consider-using-with
649
+ zip_ref = zipfile.ZipFile(path_entry, "r")
650
+ zip_ref.extractall(target_dir)
651
+ zip_ref.close()
652
+ except BaseException:
653
+ removeDirectory(
654
+ target_dir,
655
+ logger=recursion_logger,
656
+ ignore_errors=True,
657
+ extra_recommendation=None,
658
+ )
659
+ raise
601
660
 
602
- _egg_files[path_entry] = target_dir
661
+ _egg_files[path_entry] = target_dir
603
662
 
604
- return _egg_files[path_entry]
663
+ return _egg_files[path_entry]
605
664
 
606
665
  return path_entry
607
666
 
@@ -614,7 +673,8 @@ def getPythonUnpackedSearchPath():
614
673
 
615
674
 
616
675
  def getPackageSearchPath(package_name):
617
- assert _main_paths
676
+ if not _main_paths:
677
+ return None
618
678
 
619
679
  if package_name is None:
620
680
  result = (
@@ -632,8 +692,9 @@ def getPackageSearchPath(package_name):
632
692
 
633
693
  if isPackageDir(package_dir):
634
694
  result.append(package_dir)
635
- # Hack for "uniconverter". TODO: Move this to plug-in decision. This
695
+ # Hack for "uniconvertor". TODO: Move this to plug-in decision. This
636
696
  # fails the above test, but at run time should be a package.
697
+ # spell-checker: ignore uniconvertor
637
698
  elif package_name == "uniconvertor.app.modules":
638
699
  result.append(package_dir)
639
700
 
@@ -671,14 +732,14 @@ def _findModuleInPath(module_name):
671
732
  # executed, while we normally search in PYTHONPATH after it was executed,
672
733
  # and on some systems, that fails.
673
734
  if package_name is None and module_name == "site":
674
- candidate = os.environ.get("NUITKA_SITE_FILENAME", "")
735
+ candidate = getLaunchingNuitkaProcessEnvironmentValue("NUITKA_SITE_FILENAME")
675
736
 
676
737
  if candidate:
677
738
  return candidate, "py"
678
739
 
679
740
  # Free pass for built-in modules, they need not exist.
680
741
  if package_name is None and isBuiltinModuleName(module_name):
681
- return None
742
+ return None, "built-in"
682
743
 
683
744
  search_path = getPackageSearchPath(package_name)
684
745
 
@@ -698,7 +759,7 @@ def _findModuleInPath(module_name):
698
759
  module_name if package_name is None else package_name + "." + module_name,
699
760
  )
700
761
 
701
- return None
762
+ return None, None
702
763
 
703
764
  if _debug_module_finding:
704
765
  my_print("_findModuleInPath: _findModuleInPath2 gave", module_filename)
@@ -737,6 +798,8 @@ def _findModule(module_name):
737
798
  module_search_cache[key] = ImportError
738
799
  raise
739
800
 
801
+ # assert len(module_search_cache[key]) == 2, (module_name, module_search_cache[key])
802
+
740
803
  return module_search_cache[key]
741
804
 
742
805
 
@@ -747,9 +810,10 @@ def locateModule(module_name, parent_package, level):
747
810
  as with "__import__" built-in.
748
811
 
749
812
  Returns:
750
- Returns a triple of module name the module has considering
813
+ Returns a tuple of module name the module has considering
751
814
  package containing it, and filename of it which can be a
752
- directory for packages, and the location method used.
815
+ directory for packages, the module kind, and the finding
816
+ kind.
753
817
  """
754
818
 
755
819
  if module_name.isMultidistModuleName():
@@ -762,17 +826,14 @@ def locateModule(module_name, parent_package, level):
762
826
  )
763
827
 
764
828
  # Allowing ourselves to be lazy.
765
- if module_filename is None:
766
- module_kind = None
767
- else:
768
- assert module_kind is not None, module_filename
829
+ assert module_kind is not None or module_filename is None, module_name
769
830
 
770
831
  assert module_package is None or (
771
832
  type(module_package) is ModuleName and module_package != ""
772
- ), repr(module_package)
833
+ ), ("Must not attempt to locate %r" % module_name)
773
834
 
774
835
  if module_filename is not None:
775
- module_filename = os.path.normpath(module_filename)
836
+ module_filename = getNormalizedPath(module_filename)
776
837
 
777
838
  module_name, module_kind = getModuleNameAndKindFromFilename(module_filename)
778
839
  module_name = ModuleName.makeModuleNameInPackage(module_name, module_package)
@@ -817,7 +878,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
817
878
  is_package = False
818
879
 
819
880
  if is_main and os.path.isdir(filename):
820
- source_filename = os.path.join(filename, "__main__.py")
881
+ source_filename = getNormalizedPath(os.path.join(filename, "__main__.py"))
821
882
 
822
883
  if not os.path.isfile(source_filename):
823
884
  sys.stderr.write(
@@ -847,7 +908,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
847
908
  elif isPackageDir(filename):
848
909
  is_package = True
849
910
 
850
- source_filename = os.path.join(filename, "__init__.py")
911
+ source_filename = getNormalizedPath(os.path.join(filename, "__init__.py"))
851
912
 
852
913
  if not os.path.isfile(source_filename):
853
914
  source_ref = SourceCodeReferences.fromFilename(
@@ -856,7 +917,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
856
917
  is_namespace = True
857
918
  else:
858
919
  source_ref = SourceCodeReferences.fromFilename(
859
- filename=os.path.abspath(source_filename)
920
+ filename=getNormalizedPath(os.path.abspath(source_filename))
860
921
  )
861
922
 
862
923
  else:
@@ -872,3 +933,163 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
872
933
  source_ref,
873
934
  source_filename,
874
935
  )
936
+
937
+
938
+ # spell-checker: ignore _posixsubprocess,pyexpat,xxsubtype
939
+
940
+ _stdlib_module_raises = {
941
+ "__builtin__": False,
942
+ "_abc": False,
943
+ "_ast": False,
944
+ "_bisect": False,
945
+ "_blake2": False,
946
+ "_bytesio": False,
947
+ "_codecs": False,
948
+ "_codecs_cn": False,
949
+ "_codecs_hk": False,
950
+ "_codecs_iso2022": False,
951
+ "_codecs_jp": False,
952
+ "_codecs_kr": False,
953
+ "_codecs_tw": False,
954
+ "_collections": False,
955
+ "_contextvars": False,
956
+ "_csv": False,
957
+ "_datetime": False,
958
+ "_elementtree": False,
959
+ "_fileio": False,
960
+ "_functools": False,
961
+ "_heapq": False,
962
+ "_hotshot": False,
963
+ "_imp": False,
964
+ "_io": False,
965
+ "_json": False,
966
+ "_locale": False,
967
+ "_lsprof": False,
968
+ "_md5": False,
969
+ "_multibytecodec": False,
970
+ "_opcode": False,
971
+ "_operator": False,
972
+ "_peg_parser": False,
973
+ "_pickle": False,
974
+ "_posixsubprocess": False,
975
+ "_random": False,
976
+ "_subprocess": False,
977
+ "_sha": False, # TODO: Not entirely clear if that's true
978
+ "_sha1": False,
979
+ "_sha2": False,
980
+ "_sha256": False,
981
+ "_sha3": False,
982
+ "_sha512": False,
983
+ "_signal": False,
984
+ "_socket": False,
985
+ "_sre": False,
986
+ "_stat": False,
987
+ "_statistics": False,
988
+ "_string": False,
989
+ "_struct": False,
990
+ "_symtable": False,
991
+ "_thread": False,
992
+ "_tracemalloc": False,
993
+ "_tokenize": False,
994
+ "_typing": False,
995
+ "_warnings": False,
996
+ "_weakref": False,
997
+ "_winapi": False,
998
+ "_winreg": False,
999
+ "_xxsubinterpreters": False,
1000
+ "array": False,
1001
+ "atexit": False,
1002
+ "audioop": False,
1003
+ "binascii": False,
1004
+ "builtins": False,
1005
+ "cmath": False,
1006
+ "cStringIO": False,
1007
+ "cPickle": False,
1008
+ "datetime": False,
1009
+ "errno": False,
1010
+ "exceptions": False,
1011
+ "faulthandler": False,
1012
+ "fcntl": False,
1013
+ "future_builtins": False,
1014
+ "gc": False,
1015
+ "grp": False,
1016
+ "itertools": False,
1017
+ "imageop": False,
1018
+ "imp": False,
1019
+ "operator": False,
1020
+ "marshal": False,
1021
+ "math": False,
1022
+ "mmap": False,
1023
+ "msvcrt": False,
1024
+ "nt": False,
1025
+ "parser": False,
1026
+ "posix": False,
1027
+ "pwd": False,
1028
+ "pyexpat": False,
1029
+ "select": False,
1030
+ "signal": False,
1031
+ "strop": False,
1032
+ "spwd": False,
1033
+ "sys": False,
1034
+ "syslog": False,
1035
+ "time": False,
1036
+ "thread": False,
1037
+ "unicodedata": False,
1038
+ "winreg": False,
1039
+ "xxsubtype": False,
1040
+ "zipimport": False,
1041
+ "zlib": False,
1042
+ "_ssl": True,
1043
+ "_xxinterpchannels": False,
1044
+ # TODO: 3.13 clarify if this is actually true
1045
+ "_interpchannels": False,
1046
+ "_interpreters": False,
1047
+ "_interpqueues": False,
1048
+ "_sysconfig": False,
1049
+ "_suggestions": False,
1050
+ }
1051
+
1052
+
1053
+ def isNonRaisingBuiltinModule(module_name):
1054
+ assert isBuiltinModuleName(module_name), module_name
1055
+
1056
+ # Return None, if we don't know.
1057
+ return _stdlib_module_raises.get(module_name)
1058
+
1059
+
1060
+ def _getChildPackageNames(module_name):
1061
+ module_name = ModuleName(module_name)
1062
+
1063
+ _module_name, module_filename, _module_kind, _finding = locateModule(
1064
+ parent_package=None, module_name=module_name, level=0
1065
+ )
1066
+
1067
+ package_dir = module_filename
1068
+
1069
+ for module_info in iter_modules([package_dir]):
1070
+ child_name = module_name.getChildNamed(module_info.name)
1071
+ yield child_name
1072
+
1073
+ if module_info.ispkg:
1074
+ for sub_module_name in getChildPackageNames(child_name):
1075
+ yield sub_module_name
1076
+
1077
+
1078
+ def getChildPackageNames(module_name):
1079
+ return tuple(_getChildPackageNames(module_name))
1080
+
1081
+
1082
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1083
+ # integrates with CPython, but also works on its own.
1084
+ #
1085
+ # Licensed under the Apache License, Version 2.0 (the "License");
1086
+ # you may not use this file except in compliance with the License.
1087
+ # You may obtain a copy of the License at
1088
+ #
1089
+ # http://www.apache.org/licenses/LICENSE-2.0
1090
+ #
1091
+ # Unless required by applicable law or agreed to in writing, software
1092
+ # distributed under the License is distributed on an "AS IS" BASIS,
1093
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1094
+ # See the License for the specific language governing permissions and
1095
+ # limitations under the License.
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ This module abstracts what site.py is normally doing in .pth files.
19
5
 
20
6
  This tries to extract "namespaces" packages that were manually created and
@@ -27,6 +13,7 @@ import sys
27
13
 
28
14
  from nuitka.Tracing import recursion_logger
29
15
  from nuitka.utils.FileOperations import getFileContentByLine, listDir
16
+ from nuitka.utils.ModuleNames import ModuleName
30
17
 
31
18
 
32
19
  def getLoadedPackages():
@@ -154,8 +141,24 @@ def setPthImportedPackages(value):
154
141
  # We need to set this from the outside, pylint: disable=global-statement
155
142
  global pth_imported_packages
156
143
 
157
- pth_imported_packages = value
144
+ pth_imported_packages = tuple(ModuleName(module_name) for module_name in value)
158
145
 
159
146
 
160
147
  def getPthImportedPackages():
161
148
  return pth_imported_packages
149
+
150
+
151
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
152
+ # integrates with CPython, but also works on its own.
153
+ #
154
+ # Licensed under the Apache License, Version 2.0 (the "License");
155
+ # you may not use this file except in compliance with the License.
156
+ # You may obtain a copy of the License at
157
+ #
158
+ # http://www.apache.org/licenses/LICENSE-2.0
159
+ #
160
+ # Unless required by applicable law or agreed to in writing, software
161
+ # distributed under the License is distributed on an "AS IS" BASIS,
162
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
163
+ # See the License for the specific language governing permissions and
164
+ # limitations under the License.