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
nuitka/tree/Building.py CHANGED
@@ -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
  """ Build the internal node tree from source code.
19
5
 
20
6
  Does all the Python parsing and puts it into a tree structure for use in later
@@ -48,15 +34,11 @@ special attribute lookups for "__enter__" and "__exit__", calls of them,
48
34
  catching and passing in exceptions raised.
49
35
 
50
36
  """
37
+
51
38
  import marshal
52
39
  import os
53
40
 
54
- from nuitka import (
55
- ModuleRegistry,
56
- Options,
57
- OutputDirectories,
58
- SourceCodeReferences,
59
- )
41
+ from nuitka import ModuleRegistry, OutputDirectories, SourceCodeReferences
60
42
  from nuitka.__past__ import long, unicode
61
43
  from nuitka.BytecodeCaching import (
62
44
  getCachedImportedModuleUsageAttempts,
@@ -97,7 +79,10 @@ from nuitka.nodes.ExceptionNodes import (
97
79
  StatementReraiseException,
98
80
  )
99
81
  from nuitka.nodes.FutureSpecs import FutureSpec
100
- from nuitka.nodes.GeneratorNodes import StatementGeneratorReturn
82
+ from nuitka.nodes.GeneratorNodes import (
83
+ StatementGeneratorReturn,
84
+ StatementGeneratorReturnNone,
85
+ )
101
86
  from nuitka.nodes.ImportNodes import (
102
87
  isHardModuleWithoutSideEffect,
103
88
  makeExpressionImportModuleFixed,
@@ -128,7 +113,16 @@ from nuitka.nodes.VariableNameNodes import (
128
113
  StatementAssignmentVariableName,
129
114
  )
130
115
  from nuitka.optimizations.BytecodeDemotion import demoteSourceCodeToBytecode
131
- from nuitka.Options import shallWarnUnusualCode
116
+ from nuitka.Options import (
117
+ getMainEntryPointFilenames,
118
+ hasPythonFlagNoSite,
119
+ hasPythonFlagPackageMode,
120
+ isShowMemory,
121
+ isStandaloneMode,
122
+ shallDisableBytecodeCacheUsage,
123
+ shallMakeModule,
124
+ shallWarnUnusualCode,
125
+ )
132
126
  from nuitka.pgo.PGO import decideCompilationFromPGO
133
127
  from nuitka.plugins.Plugins import Plugins
134
128
  from nuitka.PythonVersions import python_version
@@ -141,6 +135,7 @@ from nuitka.Tracing import (
141
135
  )
142
136
  from nuitka.utils import MemoryUsage
143
137
  from nuitka.utils.ModuleNames import ModuleName
138
+ from nuitka.utils.Utils import withNoSyntaxWarning
144
139
 
145
140
  from . import SyntaxErrors
146
141
  from .ReformulationAssertStatements import buildAssertNode
@@ -150,6 +145,8 @@ from .ReformulationAssignmentStatements import (
150
145
  buildDeleteNode,
151
146
  buildInplaceAssignNode,
152
147
  buildNamedExprNode,
148
+ buildTypeAliasNode,
149
+ buildTypeVarNode,
153
150
  )
154
151
  from .ReformulationBooleanExpressions import buildBoolOpNode
155
152
  from .ReformulationCallExpressions import buildCallNode
@@ -292,9 +289,9 @@ def buildTryFinallyNode2(provider, node, source_ref):
292
289
 
293
290
 
294
291
  def buildTryNode(provider, node, source_ref):
295
- # Note: This variant is used for Python3.3 or higher only, older stuff uses
296
- # the above ones, this one merges try/except with try/finally in the
297
- # "ast". We split it up again, as it's logically separated of course.
292
+ # Note: This variant is used for Python3 only, older stuff uses the above
293
+ # ones, this one merges try/except with try/finally in the "ast". We split
294
+ # it up again, as it's logically separated of course.
298
295
 
299
296
  # Shortcut missing try/finally.
300
297
  if not node.handlers:
@@ -440,7 +437,7 @@ def handleGlobalDeclarationNode(provider, node, source_ref):
440
437
  for variable_name in node.names:
441
438
  closure_variable = None
442
439
 
443
- # Re-use already taken global variables, in order to avoid creating yet
440
+ # Reuse already taken global variables, in order to avoid creating yet
444
441
  # another instance, esp. as the indications could then potentially not
445
442
  # be shared.
446
443
  if provider.hasTakenVariable(variable_name):
@@ -467,7 +464,7 @@ def handleGlobalDeclarationNode(provider, node, source_ref):
467
464
  provider.isExpressionClassBodyBase()
468
465
  and closure_variable.getName() == "__class__"
469
466
  ):
470
- if python_version < 0x340:
467
+ if python_version < 0x300:
471
468
  SyntaxErrors.raiseSyntaxError(
472
469
  "cannot make __class__ global", source_ref
473
470
  )
@@ -594,10 +591,12 @@ def buildReturnNode(provider, node, source_ref):
594
591
  provider.isExpressionGeneratorObjectBody()
595
592
  or provider.isExpressionAsyncgenObjectBody()
596
593
  ):
597
- if expression is None:
598
- expression = ExpressionConstantNoneRef(source_ref=source_ref)
599
-
600
- return StatementGeneratorReturn(expression=expression, source_ref=source_ref)
594
+ if expression is None or expression.isExpressionConstantNoneRef():
595
+ return StatementGeneratorReturnNone(source_ref=source_ref)
596
+ else:
597
+ return StatementGeneratorReturn(
598
+ expression=expression, source_ref=source_ref
599
+ )
601
600
  else:
602
601
  return makeStatementReturn(expression=expression, source_ref=source_ref)
603
602
 
@@ -771,6 +770,7 @@ setBuildingDispatchers(
771
770
  "NamedExpr": buildNamedExprNode,
772
771
  "Slice": buildSliceNode,
773
772
  "Match": buildMatchNode,
773
+ "TypeAlias": buildTypeAliasNode,
774
774
  },
775
775
  path_args2={
776
776
  "Constant": buildNamedConstantNode, # Python3.8
@@ -779,24 +779,24 @@ setBuildingDispatchers(
779
779
  "Num": buildNumberNode,
780
780
  "Bytes": buildBytesNode,
781
781
  "Continue": buildStatementLoopContinue,
782
+ "TypeVar": buildTypeVarNode,
782
783
  },
783
784
  path_args1={"Ellipsis": buildEllipsisNode},
784
785
  )
785
786
 
786
787
 
787
- def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
788
+ def buildParseTree(provider, ast_tree, source_ref, is_main):
788
789
  # There are a bunch of branches here, mostly to deal with version
789
- # differences for module default variables. pylint: disable=too-many-branches
790
+ # differences for module default variables.
790
791
 
791
792
  # Maybe one day, we do exec inlining again, that is what this is for,
792
793
  # then is_module won't be True, for now it always is.
793
- pushFutureSpec()
794
- if is_module:
795
- provider.setFutureSpec(getFutureSpec())
794
+ pushFutureSpec(provider.getFullName())
795
+ provider.setFutureSpec(getFutureSpec())
796
796
 
797
797
  body, doc = extractDocFromBody(ast_tree)
798
798
 
799
- if is_module and is_main and python_version >= 0x360:
799
+ if is_main and python_version >= 0x360:
800
800
  provider.markAsNeedsAnnotationsDictionary()
801
801
 
802
802
  try:
@@ -817,100 +817,105 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
817
817
 
818
818
  statements = []
819
819
 
820
- if is_module:
821
- # Add import of "site" module of main programs visibly in the node tree,
822
- # so recursion and optimization can pick it up, checking its effects.
823
- if is_main and not Options.hasPythonFlagNoSite():
820
+ # Add import of "site" module of main programs visibly in the node tree,
821
+ # so recursion and optimization can pick it up, checking its effects.
822
+ if is_main and not hasPythonFlagNoSite():
823
+ statements.append(
824
+ StatementExpressionOnly(
825
+ expression=makeExpressionImportModuleFixed(
826
+ using_module_name=provider.getParentModule().getFullName(),
827
+ module_name="site",
828
+ value_name="site",
829
+ source_ref=source_ref,
830
+ ),
831
+ source_ref=source_ref,
832
+ )
833
+ )
834
+
835
+ for path_imported_name in getPthImportedPackages():
836
+ if isHardModuleWithoutSideEffect(path_imported_name):
837
+ continue
838
+
824
839
  statements.append(
825
840
  StatementExpressionOnly(
826
841
  expression=makeExpressionImportModuleFixed(
827
- module_name="site", source_ref=source_ref
842
+ using_module_name=provider.getParentModule().getFullName(),
843
+ module_name=path_imported_name,
844
+ value_name=path_imported_name.getTopLevelPackageName(),
845
+ source_ref=source_ref,
828
846
  ),
829
847
  source_ref=source_ref,
830
848
  )
831
849
  )
832
850
 
833
- for path_imported_name in getPthImportedPackages():
834
- if isHardModuleWithoutSideEffect(path_imported_name):
835
- continue
836
-
837
- statements.append(
838
- StatementExpressionOnly(
839
- expression=makeExpressionImportModuleFixed(
840
- module_name=path_imported_name, source_ref=source_ref
841
- ),
842
- source_ref=source_ref,
843
- )
844
- )
851
+ statements.append(
852
+ StatementAssignmentVariableName(
853
+ provider=provider,
854
+ variable_name="__doc__",
855
+ source=makeConstantRefNode(
856
+ constant=doc, source_ref=internal_source_ref, user_provided=True
857
+ ),
858
+ source_ref=internal_source_ref,
859
+ )
860
+ )
845
861
 
846
- statements.append(
847
- StatementAssignmentVariableName(
848
- provider=provider,
849
- variable_name="__doc__",
850
- source=makeConstantRefNode(
851
- constant=doc, source_ref=internal_source_ref, user_provided=True
852
- ),
862
+ statements.append(
863
+ StatementAssignmentVariableName(
864
+ provider=provider,
865
+ variable_name="__file__",
866
+ source=ExpressionModuleAttributeFileRef(
867
+ variable=provider.getVariableForReference("__file__"),
853
868
  source_ref=internal_source_ref,
854
- )
869
+ ),
870
+ source_ref=internal_source_ref,
855
871
  )
872
+ )
856
873
 
857
- statements.append(
858
- StatementAssignmentVariableName(
859
- provider=provider,
860
- variable_name="__file__",
874
+ if provider.isCompiledPythonPackage():
875
+ # This assigns "__path__" value.
876
+ statements.append(createPathAssignment(provider, internal_source_ref))
877
+
878
+ if python_version >= 0x300 and not is_main:
879
+ statements += (
880
+ StatementAssignmentAttribute(
881
+ expression=ExpressionModuleAttributeSpecRef(
882
+ variable=provider.getVariableForReference("__spec__"),
883
+ source_ref=internal_source_ref,
884
+ ),
885
+ attribute_name="origin",
861
886
  source=ExpressionModuleAttributeFileRef(
862
887
  variable=provider.getVariableForReference("__file__"),
863
888
  source_ref=internal_source_ref,
864
889
  ),
865
890
  source_ref=internal_source_ref,
866
- )
891
+ ),
892
+ StatementAssignmentAttribute(
893
+ expression=ExpressionModuleAttributeSpecRef(
894
+ variable=provider.getVariableForReference("__spec__"),
895
+ source_ref=internal_source_ref,
896
+ ),
897
+ attribute_name="has_location",
898
+ source=makeConstantRefNode(True, internal_source_ref),
899
+ source_ref=internal_source_ref,
900
+ ),
867
901
  )
868
902
 
869
903
  if provider.isCompiledPythonPackage():
870
- # This assigns "__path__" value.
871
- statements.append(createPathAssignment(provider, internal_source_ref))
872
-
873
- if python_version >= 0x340 and not is_main:
874
- statements += (
904
+ statements.append(
875
905
  StatementAssignmentAttribute(
876
906
  expression=ExpressionModuleAttributeSpecRef(
877
907
  variable=provider.getVariableForReference("__spec__"),
878
908
  source_ref=internal_source_ref,
879
909
  ),
880
- attribute_name="origin",
881
- source=ExpressionModuleAttributeFileRef(
882
- variable=provider.getVariableForReference("__file__"),
883
- source_ref=internal_source_ref,
884
- ),
885
- source_ref=internal_source_ref,
886
- ),
887
- StatementAssignmentAttribute(
888
- expression=ExpressionModuleAttributeSpecRef(
889
- variable=provider.getVariableForReference("__spec__"),
910
+ attribute_name="submodule_search_locations",
911
+ source=ExpressionVariableNameRef(
912
+ provider=provider,
913
+ variable_name="__path__",
890
914
  source_ref=internal_source_ref,
891
915
  ),
892
- attribute_name="has_location",
893
- source=makeConstantRefNode(True, internal_source_ref),
894
916
  source_ref=internal_source_ref,
895
- ),
896
- )
897
-
898
- if provider.isCompiledPythonPackage():
899
- statements.append(
900
- StatementAssignmentAttribute(
901
- expression=ExpressionModuleAttributeSpecRef(
902
- variable=provider.getVariableForReference("__spec__"),
903
- source_ref=internal_source_ref,
904
- ),
905
- attribute_name="submodule_search_locations",
906
- source=ExpressionVariableNameRef(
907
- provider=provider,
908
- variable_name="__path__",
909
- source_ref=internal_source_ref,
910
- ),
911
- source_ref=internal_source_ref,
912
- )
913
917
  )
918
+ )
914
919
 
915
920
  if python_version >= 0x300:
916
921
  statements.append(
@@ -922,23 +927,6 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
922
927
  )
923
928
  )
924
929
 
925
- needs__initializing__ = (
926
- not provider.isMainModule() and 0x300 <= python_version < 0x340
927
- )
928
-
929
- if needs__initializing__:
930
- # Set "__initializing__" at the beginning to True
931
- statements.append(
932
- StatementAssignmentVariableName(
933
- provider=provider,
934
- variable_name="__initializing__",
935
- source=makeConstantRefNode(
936
- constant=True, source_ref=internal_source_ref, user_provided=True
937
- ),
938
- source_ref=internal_source_ref,
939
- )
940
- )
941
-
942
930
  if provider.needsAnnotationsDictionary():
943
931
  # Set "__annotations__" on module level to {}
944
932
  statements.append(
@@ -956,46 +944,33 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
956
944
  if result is not None:
957
945
  statements.extend(result.subnode_statements)
958
946
 
959
- if needs__initializing__:
960
- # Set "__initializing__" at the end to False
961
- statements.append(
962
- StatementAssignmentVariableName(
963
- provider=provider,
964
- variable_name="__initializing__",
965
- source=makeConstantRefNode(
966
- constant=False, source_ref=internal_source_ref, user_provided=True
967
- ),
968
- source_ref=internal_source_ref,
969
- )
970
- )
971
-
972
- if is_module:
973
- result = makeModuleFrame(
974
- module=provider, statements=statements, source_ref=source_ref
975
- )
947
+ result = makeModuleFrame(
948
+ module=provider, statements=statements, source_ref=source_ref
949
+ )
976
950
 
977
- popFutureSpec()
951
+ popFutureSpec()
978
952
 
979
- return result
980
- else:
981
- assert False
953
+ return result
982
954
 
983
955
 
984
- def decideCompilationMode(is_top, module_name, for_pgo):
956
+ def decideCompilationMode(is_top, module_name, module_filename, for_pgo):
985
957
  """Decide the compilation mode for a module.
986
958
 
987
959
  module_name - The module to decide compilation mode for.
988
960
  for_pgo - consider PGO information or not
989
961
  """
990
962
 
991
- # Technically required modules must be bytecode
992
- if module_name in detectEarlyImports():
963
+ is_stdlib = module_filename is not None and isStandardLibraryPath(module_filename)
964
+
965
+ # Technically required modules must be bytecode, do not even ask plugins
966
+ # about it.
967
+ if is_stdlib and module_name in detectEarlyImports():
993
968
  return "bytecode"
994
969
 
995
970
  result = Plugins.decideCompilation(module_name)
996
971
 
997
- # Cannot change mode of __main__ to bytecode, that is not going
998
- # to work currently.
972
+ # Cannot change mode of "__main__" to bytecode, that is not going to work
973
+ # currently, maybe in the future we could allow it.
999
974
  if result == "bytecode" and is_top:
1000
975
  plugins_logger.warning(
1001
976
  """\
@@ -1008,13 +983,8 @@ required to compiled."""
1008
983
 
1009
984
  # Include all of standard library as bytecode, for now. We need to identify
1010
985
  # which ones really need that.
1011
- if not is_top:
1012
- module_filename = Importing.locateModule(
1013
- module_name=module_name, parent_package=None, level=0
1014
- )[1]
1015
-
1016
- if module_filename is not None and isStandardLibraryPath(module_filename):
1017
- result = "bytecode"
986
+ if not is_top and is_stdlib and result is None:
987
+ result = "bytecode"
1018
988
 
1019
989
  # Plugins need to win over PGO, as they might know it better
1020
990
  if result is None and not for_pgo:
@@ -1022,7 +992,7 @@ required to compiled."""
1022
992
 
1023
993
  # Default if neither plugins nor PGO have expressed an opinion
1024
994
  if result is None:
1025
- if module_name in detectStdlibAutoInclusionModules():
995
+ if is_stdlib and module_name in detectStdlibAutoInclusionModules():
1026
996
  result = "bytecode"
1027
997
  else:
1028
998
  result = "compiled"
@@ -1061,6 +1031,7 @@ def _loadUncompiledModuleFromCache(
1061
1031
 
1062
1032
  def _createModule(
1063
1033
  module_name,
1034
+ module_filename,
1064
1035
  module_kind,
1065
1036
  reason,
1066
1037
  source_code,
@@ -1071,11 +1042,14 @@ def _createModule(
1071
1042
  is_main,
1072
1043
  main_added,
1073
1044
  ):
1045
+ is_stdlib = module_filename is not None and isStandardLibraryPath(module_filename)
1046
+
1074
1047
  if module_kind == "extension":
1075
1048
  result = PythonExtensionModule(
1076
1049
  module_name=module_name,
1050
+ module_filename=module_filename,
1077
1051
  reason=reason,
1078
- technical=module_name in detectEarlyImports(),
1052
+ technical=is_stdlib and module_name in detectEarlyImports(),
1079
1053
  source_ref=source_ref,
1080
1054
  )
1081
1055
  elif is_main:
@@ -1085,7 +1059,10 @@ def _createModule(
1085
1059
  main_added=main_added,
1086
1060
  module_name=module_name,
1087
1061
  mode=decideCompilationMode(
1088
- is_top=is_top, module_name=module_name, for_pgo=False
1062
+ is_top=is_top,
1063
+ module_name=module_name,
1064
+ module_filename=module_filename,
1065
+ for_pgo=False,
1089
1066
  ),
1090
1067
  future_spec=None,
1091
1068
  source_ref=source_ref,
@@ -1101,13 +1078,16 @@ def _createModule(
1101
1078
  )
1102
1079
  else:
1103
1080
  mode = decideCompilationMode(
1104
- is_top=is_top, module_name=module_name, for_pgo=False
1081
+ is_top=is_top,
1082
+ module_name=module_name,
1083
+ module_filename=module_filename,
1084
+ for_pgo=False,
1105
1085
  )
1106
1086
 
1107
1087
  if (
1108
1088
  mode == "bytecode"
1109
1089
  and not is_top
1110
- and not Options.shallDisableBytecodeCacheUsage()
1090
+ and not shallDisableBytecodeCacheUsage()
1111
1091
  and hasCachedImportedModuleUsageAttempts(
1112
1092
  module_name=module_name, source_code=source_code, source_ref=source_ref
1113
1093
  )
@@ -1146,14 +1126,13 @@ def _createModule(
1146
1126
 
1147
1127
 
1148
1128
  def createModuleTree(module, source_ref, ast_tree, is_main):
1149
- if Options.isShowMemory():
1129
+ if isShowMemory():
1150
1130
  memory_watch = MemoryUsage.MemoryWatch()
1151
1131
 
1152
1132
  module_body = buildParseTree(
1153
1133
  provider=module,
1154
1134
  ast_tree=ast_tree,
1155
1135
  source_ref=source_ref,
1156
- is_module=True,
1157
1136
  is_main=is_main,
1158
1137
  )
1159
1138
 
@@ -1164,17 +1143,19 @@ def createModuleTree(module, source_ref, ast_tree, is_main):
1164
1143
 
1165
1144
  completeVariableClosures(module)
1166
1145
 
1167
- if Options.isShowMemory():
1146
+ if isShowMemory():
1168
1147
  memory_watch.finish(
1169
1148
  "Memory usage changed loading module '%s'" % module.getFullName()
1170
1149
  )
1171
1150
 
1172
1151
 
1173
- def buildMainModuleTree(filename, source_code):
1152
+ def buildMainModuleTree(source_code):
1174
1153
  # Detect to be frozen modules if any, so we can consider to not follow
1175
1154
  # to them.
1176
1155
 
1177
- if Options.shallMakeModule():
1156
+ filename = getMainEntryPointFilenames()[0]
1157
+
1158
+ if shallMakeModule():
1178
1159
  module_name = Importing.getModuleNameAndKindFromFilename(filename)[0]
1179
1160
 
1180
1161
  if module_name is None:
@@ -1184,7 +1165,7 @@ def buildMainModuleTree(filename, source_code):
1184
1165
  )
1185
1166
  else:
1186
1167
  # TODO: Doesn't work for deeply nested packages at all.
1187
- if Options.hasPythonFlagPackageMode():
1168
+ if hasPythonFlagPackageMode():
1188
1169
  module_name = ModuleName(os.path.basename(filename) + ".__main__")
1189
1170
  else:
1190
1171
  module_name = ModuleName("__main__")
@@ -1195,13 +1176,13 @@ def buildMainModuleTree(filename, source_code):
1195
1176
  module_filename=filename,
1196
1177
  source_code=source_code,
1197
1178
  is_top=True,
1198
- is_main=not Options.shallMakeModule(),
1179
+ is_main=not shallMakeModule(),
1199
1180
  module_kind="py",
1200
1181
  is_fake=source_code is not None,
1201
1182
  hide_syntax_error=False,
1202
1183
  )
1203
1184
 
1204
- if Options.isStandaloneMode():
1185
+ if isStandaloneMode():
1205
1186
  module.setStandardLibraryModules(
1206
1187
  early_module_names=detectEarlyImports(),
1207
1188
  stdlib_modules_names=detectStdlibAutoInclusionModules(),
@@ -1233,7 +1214,7 @@ Cannot follow import to module '%s' because of '%s'."""
1233
1214
  reason=reason,
1234
1215
  is_top=False,
1235
1216
  mode="compiled",
1236
- future_spec=FutureSpec(),
1217
+ future_spec=FutureSpec(use_annotations=False),
1237
1218
  source_ref=source_ref,
1238
1219
  )
1239
1220
 
@@ -1259,11 +1240,14 @@ def _makeModuleBodyTooComplex(
1259
1240
  if module_filename not in Importing.warned_about:
1260
1241
  Importing.warned_about.add(module_filename)
1261
1242
 
1262
- recursion_logger.info(
1263
- """\
1243
+ # Known harmless case, not causing issues, lets not warn about it.
1244
+ # spell-checker: ignore sympy,numberfields
1245
+ if module_name != "sympy.polys.numberfields.resolvent_lookup":
1246
+ recursion_logger.info(
1247
+ """\
1264
1248
  Cannot compile module '%s' because its code is too complex, included as bytecode."""
1265
- % module_name
1266
- )
1249
+ % module_name
1250
+ )
1267
1251
 
1268
1252
  return makeUncompiledPythonModule(
1269
1253
  module_name=module_name,
@@ -1304,8 +1288,8 @@ def buildModule(
1304
1288
  logger=general,
1305
1289
  )
1306
1290
 
1307
- if Options.hasPythonFlagPackageMode():
1308
- if is_top and Options.shallMakeModule():
1291
+ if hasPythonFlagPackageMode():
1292
+ if is_top and shallMakeModule():
1309
1293
  optimization_logger.warning(
1310
1294
  "Python flag -m (package_mode) has no effect in module mode, it's only for executables."
1311
1295
  )
@@ -1358,12 +1342,13 @@ def buildModule(
1358
1342
  )
1359
1343
 
1360
1344
  try:
1361
- ast_tree = parseSourceCodeToAst(
1362
- source_code=source_code,
1363
- module_name=module_name,
1364
- filename=source_filename,
1365
- line_offset=0,
1366
- )
1345
+ with withNoSyntaxWarning():
1346
+ ast_tree = parseSourceCodeToAst(
1347
+ source_code=source_code,
1348
+ module_name=module_name,
1349
+ filename=source_filename,
1350
+ line_offset=0,
1351
+ )
1367
1352
  except (SyntaxError, IndentationError) as e:
1368
1353
  # Do not hide SyntaxError if asked not to.
1369
1354
  if not hide_syntax_error:
@@ -1384,7 +1369,7 @@ def buildModule(
1384
1369
  source_diff = getSourceCodeDiff(original_source_code, source_code)
1385
1370
 
1386
1371
  for line in source_diff:
1387
- plugins_logger.warning(line)
1372
+ plugins_logger.warning(line, keep_format=True)
1388
1373
 
1389
1374
  if len(contributing_plugins) == 1:
1390
1375
  next(iter(contributing_plugins)).sysexit(
@@ -1421,6 +1406,7 @@ def buildModule(
1421
1406
 
1422
1407
  module = _createModule(
1423
1408
  module_name=module_name,
1409
+ module_filename=None if is_fake else module_filename,
1424
1410
  module_kind=module_kind,
1425
1411
  reason=reason,
1426
1412
  source_code=source_code,
@@ -1459,3 +1445,19 @@ def buildModule(
1459
1445
  )
1460
1446
 
1461
1447
  return module
1448
+
1449
+
1450
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1451
+ # integrates with CPython, but also works on its own.
1452
+ #
1453
+ # Licensed under the Apache License, Version 2.0 (the "License");
1454
+ # you may not use this file except in compliance with the License.
1455
+ # You may obtain a copy of the License at
1456
+ #
1457
+ # http://www.apache.org/licenses/LICENSE-2.0
1458
+ #
1459
+ # Unless required by applicable law or agreed to in writing, software
1460
+ # distributed under the License is distributed on an "AS IS" BASIS,
1461
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1462
+ # See the License for the specific language governing permissions and
1463
+ # limitations under the License.