Nuitka-winsvc 2.5.6__cp311-cp311-win_amd64.whl → 2.6.5__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 (701) hide show
  1. {Nuitka_winsvc-2.5.6.data → Nuitka_winsvc-2.6.5.data}/scripts/nuitka-run.cmd +1 -1
  2. {Nuitka_winsvc-2.5.6.data → Nuitka_winsvc-2.6.5.data}/scripts/nuitka.cmd +1 -1
  3. {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/METADATA +36 -24
  4. Nuitka_winsvc-2.6.5.dist-info/RECORD +992 -0
  5. {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +1 -1
  7. nuitka/BytecodeCaching.py +15 -4
  8. nuitka/Bytecodes.py +1 -1
  9. nuitka/CacheCleanup.py +1 -1
  10. nuitka/Constants.py +1 -1
  11. nuitka/Errors.py +1 -1
  12. nuitka/HardImportRegistry.py +1 -1
  13. nuitka/MainControl.py +93 -94
  14. nuitka/ModuleRegistry.py +19 -4
  15. nuitka/OptionParsing.py +86 -17
  16. nuitka/Options.py +230 -106
  17. nuitka/OutputDirectories.py +5 -3
  18. nuitka/PostProcessing.py +76 -27
  19. nuitka/Progress.py +1 -1
  20. nuitka/PythonFlavors.py +24 -3
  21. nuitka/PythonOperators.py +1 -1
  22. nuitka/PythonVersions.py +8 -4
  23. nuitka/Serialization.py +1 -1
  24. nuitka/SourceCodeReferences.py +1 -1
  25. nuitka/Tracing.py +2 -1
  26. nuitka/TreeXML.py +1 -1
  27. nuitka/Variables.py +1 -1
  28. nuitka/Version.py +2 -2
  29. nuitka/__init__.py +1 -1
  30. nuitka/__main__.py +4 -1
  31. nuitka/__past__.py +1 -1
  32. nuitka/build/Backend.scons +44 -66
  33. nuitka/build/CCompilerVersion.scons +2 -1
  34. nuitka/build/DataComposerInterface.py +2 -1
  35. nuitka/build/Offsets.scons +644 -0
  36. nuitka/build/Onefile.scons +5 -13
  37. nuitka/build/SconsCaching.py +9 -7
  38. nuitka/build/SconsCompilerSettings.py +57 -35
  39. nuitka/build/SconsHacks.py +3 -3
  40. nuitka/build/SconsInterface.py +86 -58
  41. nuitka/build/SconsProgress.py +12 -5
  42. nuitka/build/SconsSpawn.py +3 -3
  43. nuitka/build/SconsUtils.py +20 -1
  44. nuitka/build/__init__.py +1 -1
  45. nuitka/build/include/nuitka/allocator.h +3 -1
  46. nuitka/build/include/nuitka/builtins.h +1 -1
  47. nuitka/build/include/nuitka/calling.h +1 -1
  48. nuitka/build/include/nuitka/checkers.h +1 -1
  49. nuitka/build/include/nuitka/checksum_tools.h +1 -1
  50. nuitka/build/include/nuitka/compiled_asyncgen.h +4 -2
  51. nuitka/build/include/nuitka/compiled_cell.h +1 -1
  52. nuitka/build/include/nuitka/compiled_coroutine.h +3 -2
  53. nuitka/build/include/nuitka/compiled_frame.h +6 -13
  54. nuitka/build/include/nuitka/compiled_function.h +2 -3
  55. nuitka/build/include/nuitka/compiled_generator.h +3 -2
  56. nuitka/build/include/nuitka/compiled_method.h +1 -1
  57. nuitka/build/include/nuitka/constants.h +5 -1
  58. nuitka/build/include/nuitka/constants_blob.h +1 -1
  59. nuitka/build/include/nuitka/debug_settings.h +1 -1
  60. nuitka/build/include/nuitka/environment_variables.h +1 -1
  61. nuitka/build/include/nuitka/environment_variables_system.h +1 -1
  62. nuitka/build/include/nuitka/exception_groups.h +1 -1
  63. nuitka/build/include/nuitka/exceptions.h +2 -2
  64. nuitka/build/include/nuitka/filesystem_paths.h +4 -1
  65. nuitka/build/include/nuitka/freelists.h +2 -2
  66. nuitka/build/include/nuitka/helper/attributes.h +1 -1
  67. nuitka/build/include/nuitka/helper/boolean.h +1 -1
  68. nuitka/build/include/nuitka/helper/bytearrays.h +1 -1
  69. nuitka/build/include/nuitka/helper/bytes.h +1 -1
  70. nuitka/build/include/nuitka/helper/calling_generated.h +1 -1
  71. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +1 -1
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +1 -1
  73. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +1 -1
  74. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +1 -1
  75. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +1 -1
  76. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +1 -1
  77. nuitka/build/include/nuitka/helper/comparisons_eq.h +1 -1
  78. nuitka/build/include/nuitka/helper/comparisons_ge.h +1 -1
  79. nuitka/build/include/nuitka/helper/comparisons_gt.h +1 -1
  80. nuitka/build/include/nuitka/helper/comparisons_le.h +1 -1
  81. nuitka/build/include/nuitka/helper/comparisons_lt.h +1 -1
  82. nuitka/build/include/nuitka/helper/comparisons_ne.h +1 -1
  83. nuitka/build/include/nuitka/helper/complex.h +1 -1
  84. nuitka/build/include/nuitka/helper/dictionaries.h +1 -1
  85. nuitka/build/include/nuitka/helper/floats.h +1 -1
  86. nuitka/build/include/nuitka/helper/import_hard.h +1 -1
  87. nuitka/build/include/nuitka/helper/indexes.h +1 -1
  88. nuitka/build/include/nuitka/helper/ints.h +1 -1
  89. nuitka/build/include/nuitka/helper/iterators.h +1 -1
  90. nuitka/build/include/nuitka/helper/lists.h +1 -1
  91. nuitka/build/include/nuitka/helper/lists_generated.h +1 -1
  92. nuitka/build/include/nuitka/helper/mappings.h +1 -1
  93. nuitka/build/include/nuitka/helper/operations.h +1 -1
  94. nuitka/build/include/nuitka/helper/operations_binary_add.h +1 -1
  95. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +1 -1
  96. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +1 -1
  97. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +1 -1
  98. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +1 -1
  99. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +1 -1
  100. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +1 -1
  101. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +1 -1
  102. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +1 -1
  103. nuitka/build/include/nuitka/helper/operations_binary_mod.h +1 -1
  104. nuitka/build/include/nuitka/helper/operations_binary_mult.h +1 -1
  105. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +1 -1
  106. nuitka/build/include/nuitka/helper/operations_binary_pow.h +1 -1
  107. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +1 -1
  108. nuitka/build/include/nuitka/helper/operations_binary_sub.h +1 -1
  109. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +1 -1
  110. nuitka/build/include/nuitka/helper/operations_builtin_types.h +1 -1
  111. nuitka/build/include/nuitka/helper/operations_inplace_add.h +1 -1
  112. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +1 -1
  113. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +1 -1
  114. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +1 -1
  115. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +1 -1
  116. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +1 -1
  117. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +1 -1
  118. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +1 -1
  119. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +1 -1
  120. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +1 -1
  121. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +1 -1
  122. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +1 -1
  123. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +1 -1
  124. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +1 -1
  125. nuitka/build/include/nuitka/helper/raising.h +1 -1
  126. nuitka/build/include/nuitka/helper/rangeobjects.h +1 -1
  127. nuitka/build/include/nuitka/helper/richcomparisons.h +1 -1
  128. nuitka/build/include/nuitka/helper/sequences.h +1 -1
  129. nuitka/build/include/nuitka/helper/sets.h +1 -1
  130. nuitka/build/include/nuitka/helper/slices.h +1 -1
  131. nuitka/build/include/nuitka/helper/strings.h +1 -1
  132. nuitka/build/include/nuitka/helper/subscripts.h +1 -1
  133. nuitka/build/include/nuitka/helper/tuples.h +1 -1
  134. nuitka/build/include/nuitka/helpers.h +1 -43
  135. nuitka/build/include/nuitka/importing.h +1 -1
  136. nuitka/build/include/nuitka/jit_sources.h +1 -1
  137. nuitka/build/include/nuitka/prelude.h +10 -10
  138. nuitka/build/include/nuitka/printing.h +1 -1
  139. nuitka/build/include/nuitka/python_pgo.h +1 -1
  140. nuitka/build/include/nuitka/safe_string_ops.h +1 -1
  141. nuitka/build/include/nuitka/threading.h +1 -1
  142. nuitka/build/include/nuitka/tracing.h +1 -1
  143. nuitka/build/include/nuitka/type_aliases.h +2 -2
  144. nuitka/build/include/nuitka/unfreezing.h +1 -1
  145. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  146. nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
  147. nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
  148. nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
  149. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  150. nuitka/build/static_src/CompiledAsyncgenType.c +80 -75
  151. nuitka/build/static_src/CompiledCellType.c +2 -1
  152. nuitka/build/static_src/CompiledCodeHelpers.c +10 -28
  153. nuitka/build/static_src/CompiledCoroutineType.c +30 -40
  154. nuitka/build/static_src/CompiledFrameType.c +63 -5
  155. nuitka/build/static_src/CompiledFunctionType.c +11 -13
  156. nuitka/build/static_src/CompiledGeneratorType.c +56 -13
  157. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +1 -1
  158. nuitka/build/static_src/CompiledMethodType.c +2 -1
  159. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  160. nuitka/build/static_src/HelpersAllocator.c +1 -1
  161. nuitka/build/static_src/HelpersAttributes.c +5 -2
  162. nuitka/build/static_src/HelpersBuiltin.c +1 -1
  163. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +1 -1
  164. nuitka/build/static_src/HelpersBytes.c +1 -1
  165. nuitka/build/static_src/HelpersCalling.c +1 -1
  166. nuitka/build/static_src/HelpersCallingGenerated.c +6 -16
  167. nuitka/build/static_src/HelpersChecksumTools.c +1 -1
  168. nuitka/build/static_src/HelpersClasses.c +1 -1
  169. nuitka/build/static_src/HelpersComparisonDualEq.c +1 -1
  170. nuitka/build/static_src/HelpersComparisonDualGe.c +1 -1
  171. nuitka/build/static_src/HelpersComparisonDualGt.c +1 -1
  172. nuitka/build/static_src/HelpersComparisonDualLe.c +1 -1
  173. nuitka/build/static_src/HelpersComparisonDualLt.c +1 -1
  174. nuitka/build/static_src/HelpersComparisonDualNe.c +1 -1
  175. nuitka/build/static_src/HelpersComparisonEq.c +1 -1
  176. nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -1
  177. nuitka/build/static_src/HelpersComparisonGe.c +1 -1
  178. nuitka/build/static_src/HelpersComparisonGt.c +1 -1
  179. nuitka/build/static_src/HelpersComparisonLe.c +1 -1
  180. nuitka/build/static_src/HelpersComparisonLt.c +1 -1
  181. nuitka/build/static_src/HelpersComparisonNe.c +1 -1
  182. nuitka/build/static_src/HelpersConsole.c +2 -2
  183. nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
  184. nuitka/build/static_src/HelpersDeepcopy.c +3 -1
  185. nuitka/build/static_src/HelpersDictionaries.c +1 -1
  186. nuitka/build/static_src/HelpersDictionariesGenerated.c +1 -1
  187. nuitka/build/static_src/HelpersDumpBacktraces.c +1 -1
  188. nuitka/build/static_src/HelpersEnvironmentVariables.c +1 -1
  189. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +1 -1
  190. nuitka/build/static_src/HelpersExceptions.c +1 -1
  191. nuitka/build/static_src/HelpersFiles.c +18 -10
  192. nuitka/build/static_src/HelpersFilesystemPaths.c +36 -16
  193. nuitka/build/static_src/HelpersFloats.c +1 -1
  194. nuitka/build/static_src/HelpersHeapStorage.c +1 -1
  195. nuitka/build/static_src/HelpersImport.c +1 -1
  196. nuitka/build/static_src/HelpersImportHard.c +1 -1
  197. nuitka/build/static_src/HelpersJitSources.c +1 -1
  198. nuitka/build/static_src/HelpersLists.c +2 -1
  199. nuitka/build/static_src/HelpersListsGenerated.c +1 -1
  200. nuitka/build/static_src/HelpersMappings.c +1 -1
  201. nuitka/build/static_src/HelpersMatching.c +1 -1
  202. nuitka/build/static_src/HelpersOperationBinaryAdd.c +1 -1
  203. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +1 -1
  204. nuitka/build/static_src/HelpersOperationBinaryBitand.c +1 -1
  205. nuitka/build/static_src/HelpersOperationBinaryBitor.c +1 -1
  206. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +1 -1
  207. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +1 -1
  208. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +1 -1
  209. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +1 -1
  210. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +1 -1
  211. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +1 -1
  212. nuitka/build/static_src/HelpersOperationBinaryLshift.c +1 -1
  213. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -1
  214. nuitka/build/static_src/HelpersOperationBinaryMod.c +1 -1
  215. nuitka/build/static_src/HelpersOperationBinaryMult.c +1 -1
  216. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +1 -1
  217. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +1 -1
  218. nuitka/build/static_src/HelpersOperationBinaryPow.c +1 -1
  219. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +1 -1
  220. nuitka/build/static_src/HelpersOperationBinaryRshift.c +1 -1
  221. nuitka/build/static_src/HelpersOperationBinarySub.c +1 -1
  222. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +1 -1
  223. nuitka/build/static_src/HelpersOperationInplaceAdd.c +1 -1
  224. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
  225. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1 -1
  226. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1 -1
  227. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1 -1
  228. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +1 -1
  229. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1 -1
  230. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -1
  231. nuitka/build/static_src/HelpersOperationInplaceMod.c +1 -1
  232. nuitka/build/static_src/HelpersOperationInplaceMult.c +1 -1
  233. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +1 -1
  234. nuitka/build/static_src/HelpersOperationInplacePow.c +1 -1
  235. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1 -1
  236. nuitka/build/static_src/HelpersOperationInplaceSub.c +1 -1
  237. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +1 -1
  238. nuitka/build/static_src/HelpersProfiling.c +1 -1
  239. nuitka/build/static_src/HelpersPythonPgo.c +5 -2
  240. nuitka/build/static_src/HelpersRaising.c +1 -1
  241. nuitka/build/static_src/HelpersSafeStrings.c +1 -1
  242. nuitka/build/static_src/HelpersSequences.c +1 -1
  243. nuitka/build/static_src/HelpersSlices.c +1 -1
  244. nuitka/build/static_src/HelpersStrings.c +1 -1
  245. nuitka/build/static_src/HelpersTuples.c +1 -1
  246. nuitka/build/static_src/HelpersTypes.c +5 -5
  247. nuitka/build/static_src/InspectPatcher.c +2 -1
  248. nuitka/build/static_src/MainProgram.c +30 -6
  249. nuitka/build/static_src/MetaPathBasedLoader.c +19 -11
  250. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +1 -1
  251. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +1 -1
  252. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +17 -4
  253. nuitka/build/static_src/OnefileBootstrap.c +6 -4
  254. nuitka/build/static_src/OnefileSplashScreen.cpp +1 -1
  255. nuitka/code_generation/AsyncgenCodes.py +5 -6
  256. nuitka/code_generation/AttributeCodes.py +1 -1
  257. nuitka/code_generation/BinaryOperationHelperDefinitions.py +1 -1
  258. nuitka/code_generation/BranchCodes.py +1 -1
  259. nuitka/code_generation/BuiltinCodes.py +15 -5
  260. nuitka/code_generation/CallCodes.py +1 -1
  261. nuitka/code_generation/ClassCodes.py +1 -1
  262. nuitka/code_generation/CodeGeneration.py +23 -17
  263. nuitka/code_generation/CodeHelperSelection.py +1 -1
  264. nuitka/code_generation/CodeHelpers.py +1 -1
  265. nuitka/code_generation/CodeObjectCodes.py +19 -2
  266. nuitka/code_generation/ComparisonCodes.py +1 -1
  267. nuitka/code_generation/ComparisonHelperDefinitions.py +1 -1
  268. nuitka/code_generation/ConditionalCodes.py +1 -1
  269. nuitka/code_generation/ConstantCodes.py +1 -1
  270. nuitka/code_generation/Contexts.py +52 -39
  271. nuitka/code_generation/CoroutineCodes.py +4 -5
  272. nuitka/code_generation/CtypesCodes.py +1 -1
  273. nuitka/code_generation/DictCodes.py +1 -1
  274. nuitka/code_generation/Emission.py +1 -1
  275. nuitka/code_generation/ErrorCodes.py +1 -1
  276. nuitka/code_generation/EvalCodes.py +1 -1
  277. nuitka/code_generation/ExceptionCodes.py +1 -1
  278. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -1
  279. nuitka/code_generation/ExpressionCodes.py +1 -1
  280. nuitka/code_generation/FrameCodes.py +26 -17
  281. nuitka/code_generation/FunctionCodes.py +9 -15
  282. nuitka/code_generation/GeneratorCodes.py +9 -10
  283. nuitka/code_generation/GlobalConstants.py +6 -4
  284. nuitka/code_generation/GlobalsLocalsCodes.py +1 -1
  285. nuitka/code_generation/IdCodes.py +1 -1
  286. nuitka/code_generation/ImportCodes.py +1 -1
  287. nuitka/code_generation/Indentation.py +1 -1
  288. nuitka/code_generation/IndexCodes.py +1 -1
  289. nuitka/code_generation/InjectCCodes.py +1 -1
  290. nuitka/code_generation/IntegerCodes.py +1 -1
  291. nuitka/code_generation/IteratorCodes.py +1 -1
  292. nuitka/code_generation/JitCodes.py +1 -1
  293. nuitka/code_generation/LabelCodes.py +1 -1
  294. nuitka/code_generation/LineNumberCodes.py +1 -1
  295. nuitka/code_generation/ListCodes.py +1 -1
  296. nuitka/code_generation/LoaderCodes.py +1 -1
  297. nuitka/code_generation/LocalsDictCodes.py +1 -1
  298. nuitka/code_generation/LoopCodes.py +1 -1
  299. nuitka/code_generation/MatchCodes.py +1 -1
  300. nuitka/code_generation/ModuleCodes.py +31 -4
  301. nuitka/code_generation/Namify.py +4 -1
  302. nuitka/code_generation/NetworkxCodes.py +1 -1
  303. nuitka/code_generation/OperationCodes.py +1 -1
  304. nuitka/code_generation/PackageResourceCodes.py +4 -10
  305. nuitka/code_generation/PrintCodes.py +1 -1
  306. nuitka/code_generation/PythonAPICodes.py +1 -1
  307. nuitka/code_generation/RaisingCodes.py +1 -1
  308. nuitka/code_generation/Reports.py +1 -1
  309. nuitka/code_generation/ReturnCodes.py +1 -1
  310. nuitka/code_generation/SetCodes.py +1 -1
  311. nuitka/code_generation/SliceCodes.py +1 -1
  312. nuitka/code_generation/StringCodes.py +1 -1
  313. nuitka/code_generation/SubscriptCodes.py +1 -1
  314. nuitka/code_generation/TensorflowCodes.py +1 -1
  315. nuitka/code_generation/TryCodes.py +1 -1
  316. nuitka/code_generation/TupleCodes.py +1 -1
  317. nuitka/code_generation/TypeAliasCodes.py +4 -3
  318. nuitka/code_generation/VariableCodes.py +1 -1
  319. nuitka/code_generation/VariableDeclarations.py +1 -1
  320. nuitka/code_generation/YieldCodes.py +1 -1
  321. nuitka/code_generation/__init__.py +1 -1
  322. nuitka/code_generation/c_types/CTypeBases.py +1 -1
  323. nuitka/code_generation/c_types/CTypeBooleans.py +1 -1
  324. nuitka/code_generation/c_types/CTypeCFloats.py +1 -1
  325. nuitka/code_generation/c_types/CTypeCLongs.py +1 -1
  326. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +1 -1
  327. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +1 -1
  328. nuitka/code_generation/c_types/CTypeNuitkaInts.py +1 -1
  329. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
  330. nuitka/code_generation/c_types/CTypePyObjectPointers.py +1 -1
  331. nuitka/code_generation/c_types/CTypeVoids.py +1 -1
  332. nuitka/code_generation/c_types/__init__.py +1 -1
  333. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +1 -1
  334. nuitka/code_generation/templates/CodeTemplatesConstants.py +2 -2
  335. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +1 -1
  336. nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
  337. nuitka/code_generation/templates/CodeTemplatesFrames.py +21 -25
  338. nuitka/code_generation/templates/CodeTemplatesFunction.py +1 -1
  339. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +3 -3
  340. nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -1
  341. nuitka/code_generation/templates/CodeTemplatesLoader.py +26 -3
  342. nuitka/code_generation/templates/CodeTemplatesModules.py +21 -8
  343. nuitka/code_generation/templates/CodeTemplatesVariables.py +1 -1
  344. nuitka/code_generation/templates/TemplateDebugWrapper.py +1 -1
  345. nuitka/code_generation/templates/__init__.py +1 -1
  346. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +1 -1
  347. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
  348. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +1 -1
  349. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +21 -1
  350. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +1 -1
  351. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +1 -1
  352. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +1 -1
  353. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +1 -1
  354. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
  355. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
  356. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +1 -1
  357. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +1 -1
  358. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +1 -1
  359. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +1 -1
  360. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +1 -1
  361. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +1 -1
  362. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
  363. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
  364. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +1 -1
  365. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +1 -1
  366. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +1 -1
  367. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +1 -1
  368. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +1 -1
  369. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
  370. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
  371. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +1 -1
  372. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +1 -1
  373. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +1 -1
  374. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +1 -1
  375. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +1 -1
  376. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
  377. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +1 -1
  378. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +1 -1
  379. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +1 -1
  380. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +1 -1
  381. nuitka/containers/Namedtuples.py +1 -1
  382. nuitka/containers/OrderedSetsFallback.py +1 -1
  383. nuitka/containers/__init__.py +1 -1
  384. nuitka/distutils/Build.py +1 -1
  385. nuitka/distutils/DistutilCommands.py +2 -2
  386. nuitka/distutils/__init__.py +1 -1
  387. nuitka/finalizations/Finalization.py +1 -1
  388. nuitka/finalizations/FinalizeMarkups.py +1 -1
  389. nuitka/finalizations/__init__.py +1 -1
  390. nuitka/freezer/DependsExe.py +2 -1
  391. nuitka/freezer/DllDependenciesCommon.py +1 -1
  392. nuitka/freezer/DllDependenciesMacOS.py +8 -3
  393. nuitka/freezer/DllDependenciesPosix.py +23 -4
  394. nuitka/freezer/DllDependenciesWin32.py +112 -25
  395. nuitka/freezer/ImportDetection.py +1 -1
  396. nuitka/freezer/IncludedDataFiles.py +2 -2
  397. nuitka/freezer/IncludedEntryPoints.py +9 -1
  398. nuitka/freezer/Onefile.py +13 -15
  399. nuitka/freezer/Standalone.py +16 -4
  400. nuitka/freezer/__init__.py +1 -1
  401. nuitka/importing/IgnoreListing.py +1 -1
  402. nuitka/importing/ImportCache.py +1 -1
  403. nuitka/importing/ImportResolving.py +1 -1
  404. nuitka/importing/Importing.py +6 -4
  405. nuitka/importing/PreloadedPackages.py +1 -1
  406. nuitka/importing/Recursion.py +37 -12
  407. nuitka/importing/StandardLibrary.py +1 -1
  408. nuitka/importing/__init__.py +1 -1
  409. nuitka/nodes/AsyncgenNodes.py +1 -1
  410. nuitka/nodes/AttributeLookupNodes.py +1 -1
  411. nuitka/nodes/AttributeNodes.py +1 -1
  412. nuitka/nodes/AttributeNodesGenerated.py +1 -1
  413. nuitka/nodes/BuiltinAllNodes.py +1 -1
  414. nuitka/nodes/BuiltinAnyNodes.py +1 -1
  415. nuitka/nodes/BuiltinComplexNodes.py +1 -1
  416. nuitka/nodes/BuiltinDecodingNodes.py +1 -1
  417. nuitka/nodes/BuiltinDecoratorNodes.py +1 -1
  418. nuitka/nodes/BuiltinDictNodes.py +1 -1
  419. nuitka/nodes/BuiltinFormatNodes.py +1 -1
  420. nuitka/nodes/BuiltinHashNodes.py +1 -1
  421. nuitka/nodes/BuiltinInputNodes.py +1 -1
  422. nuitka/nodes/BuiltinIntegerNodes.py +1 -1
  423. nuitka/nodes/BuiltinIteratorNodes.py +1 -1
  424. nuitka/nodes/BuiltinLenNodes.py +1 -1
  425. nuitka/nodes/BuiltinNextNodes.py +1 -1
  426. nuitka/nodes/BuiltinOpenNodes.py +1 -1
  427. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +1 -1
  428. nuitka/nodes/BuiltinRangeNodes.py +1 -1
  429. nuitka/nodes/BuiltinRefNodes.py +1 -1
  430. nuitka/nodes/BuiltinSumNodes.py +1 -1
  431. nuitka/nodes/BuiltinTypeNodes.py +1 -1
  432. nuitka/nodes/BuiltinVarsNodes.py +1 -1
  433. nuitka/nodes/BytesNodes.py +1 -1
  434. nuitka/nodes/CallNodes.py +1 -1
  435. nuitka/nodes/Checkers.py +1 -1
  436. nuitka/nodes/ChildrenHavingMixins.py +240 -16
  437. nuitka/nodes/ClassNodes.py +1 -1
  438. nuitka/nodes/CodeObjectSpecs.py +4 -4
  439. nuitka/nodes/ComparisonNodes.py +1 -1
  440. nuitka/nodes/ConditionalNodes.py +1 -1
  441. nuitka/nodes/ConstantRefNodes.py +1 -1
  442. nuitka/nodes/ContainerMakingNodes.py +1 -1
  443. nuitka/nodes/ContainerOperationNodes.py +1 -1
  444. nuitka/nodes/CoroutineNodes.py +1 -1
  445. nuitka/nodes/CtypesNodes.py +1 -1
  446. nuitka/nodes/DictionaryNodes.py +1 -1
  447. nuitka/nodes/ExceptionNodes.py +1 -1
  448. nuitka/nodes/ExecEvalNodes.py +1 -1
  449. nuitka/nodes/ExpressionBases.py +1 -1
  450. nuitka/nodes/ExpressionBasesGenerated.py +1 -1
  451. nuitka/nodes/ExpressionShapeMixins.py +1 -1
  452. nuitka/nodes/FrameNodes.py +19 -7
  453. nuitka/nodes/FunctionAttributeNodes.py +1 -1
  454. nuitka/nodes/FunctionNodes.py +8 -1
  455. nuitka/nodes/FutureSpecs.py +34 -2
  456. nuitka/nodes/GeneratorNodes.py +1 -1
  457. nuitka/nodes/GlobalsLocalsNodes.py +1 -1
  458. nuitka/nodes/HardImportNodesGenerated.py +140 -56
  459. nuitka/nodes/ImportHardNodes.py +1 -1
  460. nuitka/nodes/ImportNodes.py +1 -1
  461. nuitka/nodes/IndicatorMixins.py +1 -1
  462. nuitka/nodes/InjectCNodes.py +1 -1
  463. nuitka/nodes/IterationHandles.py +1 -1
  464. nuitka/nodes/KeyValuePairNodes.py +1 -1
  465. nuitka/nodes/ListOperationNodes.py +1 -1
  466. nuitka/nodes/LocalsDictNodes.py +1 -1
  467. nuitka/nodes/LocalsScopes.py +1 -1
  468. nuitka/nodes/LoopNodes.py +1 -1
  469. nuitka/nodes/MatchNodes.py +1 -1
  470. nuitka/nodes/ModuleAttributeNodes.py +1 -1
  471. nuitka/nodes/ModuleNodes.py +23 -9
  472. nuitka/nodes/NetworkxNodes.py +1 -1
  473. nuitka/nodes/NodeBases.py +1 -1
  474. nuitka/nodes/NodeMakingHelpers.py +1 -1
  475. nuitka/nodes/NodeMetaClasses.py +1 -1
  476. nuitka/nodes/OperatorNodes.py +1 -1
  477. nuitka/nodes/OperatorNodesUnary.py +1 -1
  478. nuitka/nodes/OsSysNodes.py +1 -1
  479. nuitka/nodes/OutlineNodes.py +1 -1
  480. nuitka/nodes/PackageMetadataNodes.py +4 -2
  481. nuitka/nodes/PackageResourceNodes.py +42 -7
  482. nuitka/nodes/PrintNodes.py +1 -1
  483. nuitka/nodes/ReturnNodes.py +1 -1
  484. nuitka/nodes/SideEffectNodes.py +1 -1
  485. nuitka/nodes/SliceNodes.py +1 -1
  486. nuitka/nodes/StatementBasesGenerated.py +1 -1
  487. nuitka/nodes/StatementNodes.py +1 -1
  488. nuitka/nodes/StrNodes.py +1 -1
  489. nuitka/nodes/StringConcatenationNodes.py +1 -1
  490. nuitka/nodes/SubscriptNodes.py +1 -1
  491. nuitka/nodes/TensorflowNodes.py +1 -1
  492. nuitka/nodes/TryNodes.py +1 -1
  493. nuitka/nodes/TypeMatchNodes.py +1 -1
  494. nuitka/nodes/TypeNodes.py +4 -4
  495. nuitka/nodes/VariableAssignNodes.py +1 -1
  496. nuitka/nodes/VariableDelNodes.py +1 -1
  497. nuitka/nodes/VariableNameNodes.py +1 -1
  498. nuitka/nodes/VariableRefNodes.py +1 -1
  499. nuitka/nodes/VariableReleaseNodes.py +1 -1
  500. nuitka/nodes/YieldNodes.py +1 -1
  501. nuitka/nodes/__init__.py +1 -1
  502. nuitka/nodes/shapes/BuiltinTypeShapes.py +1 -1
  503. nuitka/nodes/shapes/ControlFlowDescriptions.py +1 -1
  504. nuitka/nodes/shapes/IteratorShapes.py +1 -1
  505. nuitka/nodes/shapes/ShapeMixins.py +1 -1
  506. nuitka/nodes/shapes/StandardShapes.py +1 -1
  507. nuitka/nodes/shapes/__init__.py +1 -1
  508. nuitka/optimizations/BytecodeDemotion.py +1 -1
  509. nuitka/optimizations/FunctionInlining.py +1 -1
  510. nuitka/optimizations/Graphs.py +1 -1
  511. nuitka/optimizations/Optimization.py +1 -1
  512. nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
  513. nuitka/optimizations/Tags.py +1 -1
  514. nuitka/optimizations/TraceCollections.py +1 -1
  515. nuitka/optimizations/ValueTraces.py +1 -1
  516. nuitka/optimizations/__init__.py +1 -1
  517. nuitka/pgo/PGO.py +1 -1
  518. nuitka/pgo/__init__.py +1 -1
  519. nuitka/plugins/PluginBase.py +91 -16
  520. nuitka/plugins/Plugins.py +58 -15
  521. nuitka/plugins/YamlPluginBase.py +1 -1
  522. nuitka/plugins/__init__.py +1 -1
  523. nuitka/plugins/standard/AntiBloatPlugin.py +138 -66
  524. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +2 -1
  525. nuitka/plugins/standard/DataFilesPlugin.py +2 -2
  526. nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
  527. nuitka/plugins/standard/DillPlugin/DillPlugin.c +1 -1
  528. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +1 -1
  529. nuitka/plugins/standard/DillPlugin.py +2 -2
  530. nuitka/plugins/standard/DllFilesPlugin.py +2 -12
  531. nuitka/plugins/standard/EnumPlugin.py +2 -2
  532. nuitka/plugins/standard/EventletPlugin.py +2 -1
  533. nuitka/plugins/standard/GeventPlugin.py +2 -1
  534. nuitka/plugins/standard/GiPlugin.py +2 -1
  535. nuitka/plugins/standard/GlfwPlugin.py +2 -1
  536. nuitka/plugins/standard/ImplicitImports.py +7 -6
  537. nuitka/plugins/standard/KivyPlugin.py +2 -1
  538. nuitka/plugins/standard/MatplotlibPlugin.py +2 -1
  539. nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
  540. nuitka/plugins/standard/NumpyPlugin.py +2 -1
  541. nuitka/plugins/standard/OptionsNannyPlugin.py +2 -2
  542. nuitka/plugins/standard/PbrPlugin.py +2 -2
  543. nuitka/plugins/standard/PkgResourcesPlugin.py +2 -1
  544. nuitka/plugins/standard/PlaywrightPlugin.py +10 -15
  545. nuitka/plugins/standard/PmwPlugin.py +2 -1
  546. nuitka/plugins/standard/PySidePyQtPlugin.py +25 -15
  547. nuitka/plugins/standard/PywebViewPlugin.py +2 -1
  548. nuitka/plugins/standard/SpacyPlugin.py +2 -1
  549. nuitka/plugins/standard/TensorflowPlugin.py +2 -1
  550. nuitka/plugins/standard/TkinterPlugin.py +15 -2
  551. nuitka/plugins/standard/TorchPlugin.py +2 -1
  552. nuitka/plugins/standard/TransformersPlugin.py +2 -2
  553. nuitka/plugins/standard/TrioPlugin.py +2 -1
  554. nuitka/plugins/standard/UpxPlugin.py +2 -1
  555. nuitka/plugins/standard/__init__.py +1 -1
  556. nuitka/plugins/standard/standard.nuitka-package.config.yml +257 -89
  557. nuitka/reports/CompilationReportReader.py +5 -1
  558. nuitka/reports/LicenseReport.rst.j2 +1 -1
  559. nuitka/reports/Reports.py +30 -3
  560. nuitka/reports/__init__.py +1 -1
  561. nuitka/specs/BuiltinBytesOperationSpecs.py +1 -1
  562. nuitka/specs/BuiltinDictOperationSpecs.py +1 -1
  563. nuitka/specs/BuiltinListOperationSpecs.py +1 -1
  564. nuitka/specs/BuiltinParameterSpecs.py +1 -1
  565. nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
  566. nuitka/specs/BuiltinTypeOperationSpecs.py +1 -1
  567. nuitka/specs/BuiltinUnicodeOperationSpecs.py +1 -1
  568. nuitka/specs/HardImportSpecs.py +10 -2
  569. nuitka/specs/ParameterSpecs.py +17 -2
  570. nuitka/specs/__init__.py +1 -1
  571. nuitka/tools/Basics.py +1 -1
  572. nuitka/tools/__init__.py +1 -1
  573. nuitka/tools/commercial/__init__.py +1 -1
  574. nuitka/tools/data_composer/DataComposer.py +125 -1
  575. nuitka/tools/data_composer/__init__.py +1 -1
  576. nuitka/tools/data_composer/__main__.py +1 -1
  577. nuitka/tools/environments/CreateEnvironment.py +1 -1
  578. nuitka/tools/environments/Virtualenv.py +1 -1
  579. nuitka/tools/environments/__init__.py +1 -1
  580. nuitka/tools/general/__init__.py +1 -1
  581. nuitka/tools/general/dll_report/__init__.py +1 -1
  582. nuitka/tools/general/dll_report/__main__.py +1 -1
  583. nuitka/tools/general/find_module/FindModuleCode.py +6 -3
  584. nuitka/tools/general/find_module/__init__.py +1 -1
  585. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  586. nuitka/tools/general/generate_header/__init__.py +19 -0
  587. nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
  588. nuitka/tools/onefile_compressor/__init__.py +1 -1
  589. nuitka/tools/onefile_compressor/__main__.py +1 -1
  590. nuitka/tools/podman/Podman.py +1 -1
  591. nuitka/tools/podman/__init__.py +1 -1
  592. nuitka/tools/podman/__main__.py +4 -2
  593. nuitka/tools/profiler/__init__.py +1 -1
  594. nuitka/tools/profiler/__main__.py +1 -1
  595. nuitka/tools/scanning/DisplayPackageDLLs.py +42 -20
  596. nuitka/tools/scanning/DisplayPackageData.py +1 -1
  597. nuitka/tools/scanning/__init__.py +1 -1
  598. nuitka/tools/specialize/CTypeDescriptions.py +1 -1
  599. nuitka/tools/specialize/Common.py +1 -1
  600. nuitka/tools/specialize/SpecializeC.py +1 -1
  601. nuitka/tools/specialize/SpecializePython.py +7 -3
  602. nuitka/tools/specialize/__init__.py +1 -1
  603. nuitka/tools/testing/Common.py +140 -19
  604. nuitka/tools/testing/Constructs.py +1 -1
  605. nuitka/tools/testing/OutputComparison.py +5 -4
  606. nuitka/tools/testing/Pythons.py +1 -1
  607. nuitka/tools/testing/RuntimeTracing.py +1 -1
  608. nuitka/tools/testing/SearchModes.py +1 -1
  609. nuitka/tools/testing/Valgrind.py +1 -1
  610. nuitka/tools/testing/__init__.py +1 -1
  611. nuitka/tools/testing/check_reference_counts/__init__.py +1 -1
  612. nuitka/tools/testing/check_reference_counts/__main__.py +6 -2
  613. nuitka/tools/testing/compare_with_cpython/__init__.py +1 -1
  614. nuitka/tools/testing/compare_with_cpython/__main__.py +51 -14
  615. nuitka/tools/testing/find_sxs_modules/__init__.py +1 -1
  616. nuitka/tools/testing/find_sxs_modules/__main__.py +1 -1
  617. nuitka/tools/testing/measure_construct_performance/__init__.py +1 -1
  618. nuitka/tools/testing/measure_construct_performance/__main__.py +1 -1
  619. nuitka/tools/testing/run_nuitka_tests/__init__.py +1 -1
  620. nuitka/tools/testing/run_nuitka_tests/__main__.py +1 -1
  621. nuitka/tools/watch/AutoStage.py +1 -1
  622. nuitka/tools/watch/Common.py +55 -0
  623. nuitka/tools/watch/Conda.py +125 -0
  624. nuitka/tools/watch/GitHub.py +1 -1
  625. nuitka/tools/watch/Pacman.py +73 -0
  626. nuitka/tools/watch/Pipenv.py +143 -0
  627. nuitka/tools/watch/__init__.py +1 -1
  628. nuitka/tools/watch/__main__.py +124 -266
  629. nuitka/tree/Building.py +5 -7
  630. nuitka/tree/ComplexCallHelperFunctions.py +1 -1
  631. nuitka/tree/Extractions.py +1 -1
  632. nuitka/tree/FutureSpecState.py +71 -0
  633. nuitka/tree/InternalModule.py +1 -1
  634. nuitka/tree/Operations.py +1 -1
  635. nuitka/tree/ReformulationAssertStatements.py +1 -1
  636. nuitka/tree/ReformulationAssignmentStatements.py +3 -3
  637. nuitka/tree/ReformulationBooleanExpressions.py +1 -1
  638. nuitka/tree/ReformulationCallExpressions.py +1 -1
  639. nuitka/tree/ReformulationClasses.py +1 -1
  640. nuitka/tree/ReformulationClasses3.py +1 -1
  641. nuitka/tree/ReformulationComparisonExpressions.py +1 -1
  642. nuitka/tree/ReformulationContractionExpressions.py +3 -1
  643. nuitka/tree/ReformulationDictionaryCreation.py +3 -3
  644. nuitka/tree/ReformulationExecStatements.py +1 -1
  645. nuitka/tree/ReformulationForLoopStatements.py +1 -1
  646. nuitka/tree/ReformulationFunctionStatements.py +2 -2
  647. nuitka/tree/ReformulationImportStatements.py +5 -52
  648. nuitka/tree/ReformulationLambdaExpressions.py +2 -1
  649. nuitka/tree/ReformulationMatchStatements.py +1 -1
  650. nuitka/tree/ReformulationMultidist.py +2 -2
  651. nuitka/tree/ReformulationNamespacePackages.py +28 -6
  652. nuitka/tree/ReformulationPrintStatements.py +1 -1
  653. nuitka/tree/ReformulationSequenceCreation.py +1 -1
  654. nuitka/tree/ReformulationSubscriptExpressions.py +1 -1
  655. nuitka/tree/ReformulationTryExceptStatements.py +1 -1
  656. nuitka/tree/ReformulationTryFinallyStatements.py +1 -1
  657. nuitka/tree/ReformulationWhileLoopStatements.py +1 -1
  658. nuitka/tree/ReformulationWithStatements.py +1 -1
  659. nuitka/tree/ReformulationYieldExpressions.py +1 -1
  660. nuitka/tree/SourceHandling.py +57 -18
  661. nuitka/tree/SyntaxErrors.py +1 -1
  662. nuitka/tree/TreeHelpers.py +24 -10
  663. nuitka/tree/VariableClosure.py +1 -1
  664. nuitka/tree/__init__.py +1 -1
  665. nuitka/utils/AppDirs.py +5 -2
  666. nuitka/utils/CStrings.py +1 -1
  667. nuitka/utils/CommandLineOptions.py +2 -2
  668. nuitka/utils/Distributions.py +197 -15
  669. nuitka/utils/Download.py +14 -6
  670. nuitka/utils/Execution.py +43 -14
  671. nuitka/utils/FileOperations.py +43 -10
  672. nuitka/utils/Hashing.py +1 -1
  673. nuitka/utils/Images.py +8 -2
  674. nuitka/utils/Importing.py +1 -1
  675. nuitka/utils/InlineCopies.py +1 -1
  676. nuitka/utils/InstalledPythons.py +1 -1
  677. nuitka/utils/InstanceCounters.py +1 -1
  678. nuitka/utils/Jinja2.py +1 -1
  679. nuitka/utils/Json.py +2 -2
  680. nuitka/utils/MacOSApp.py +4 -3
  681. nuitka/utils/MemoryUsage.py +1 -1
  682. nuitka/utils/ModuleNames.py +1 -1
  683. nuitka/utils/PackageResources.py +1 -1
  684. nuitka/utils/ReExecute.py +1 -1
  685. nuitka/utils/Rest.py +1 -1
  686. nuitka/utils/SharedLibraries.py +52 -7
  687. nuitka/utils/Shebang.py +1 -1
  688. nuitka/utils/Signing.py +2 -4
  689. nuitka/utils/SlotMetaClasses.py +1 -1
  690. nuitka/utils/StaticLibraries.py +29 -1
  691. nuitka/utils/ThreadedExecutor.py +1 -1
  692. nuitka/utils/Timing.py +1 -1
  693. nuitka/utils/Utils.py +1 -1
  694. nuitka/utils/WindowsFileUsage.py +1 -1
  695. nuitka/utils/WindowsResources.py +3 -1
  696. nuitka/utils/Yaml.py +1 -1
  697. nuitka/utils/__init__.py +1 -1
  698. Nuitka_winsvc-2.5.6.dist-info/RECORD +0 -978
  699. {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/LICENSE.txt +0 -0
  700. {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/entry_points.txt +0 -0
  701. {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Nuitka watch main part.
@@ -8,7 +8,6 @@ of Nuitka changes on PyPI packages.
8
8
  """
9
9
 
10
10
  import os
11
- import subprocess
12
11
  import sys
13
12
  from optparse import OptionParser
14
13
 
@@ -21,14 +20,13 @@ from nuitka.TreeXML import fromFile
21
20
  from nuitka.utils.Execution import (
22
21
  check_call,
23
22
  executeProcess,
24
- executeToolChecked,
25
- withEnvironmentVarOverridden,
23
+ withEnvironmentVarsOverridden,
26
24
  )
27
25
  from nuitka.utils.FileOperations import (
28
- changeTextFileContents,
29
26
  deleteFile,
30
27
  getFileContents,
31
28
  getFileList,
29
+ getNormalizedPath,
32
30
  listDir,
33
31
  makePath,
34
32
  putTextFileContents,
@@ -41,7 +39,14 @@ from nuitka.utils.Utils import isLinux, isMacOS, isWin32Windows
41
39
  from nuitka.utils.Yaml import parseYaml
42
40
  from nuitka.Version import parseNuitkaVersionToTuple
43
41
 
42
+ from .Conda import (
43
+ getCondaRunCommand,
44
+ updateCondaEnvironmentFile,
45
+ updateCondaEnvironmentLockFile,
46
+ )
44
47
  from .GitHub import createNuitkaWatchPR
48
+ from .Pacman import updatePacmanFile, updatePacmanLockFile
49
+ from .Pipenv import updatePipenvFile, updatePipenvLockFile
45
50
 
46
51
  watch_logger = OurLogger("", base_style="blue")
47
52
 
@@ -89,217 +94,52 @@ def selectPythons(python_version_req, anaconda, msys2_mingw64):
89
94
 
90
95
 
91
96
  def selectOS(os_values):
92
- # return driven, pylint: disable=too-many-return-statements
97
+ # Need to move the Anaconda/MSYS2 handling into options of installed Pythons
98
+ # return driven, pylint: disable=too-many-branches,too-many-return-statements
93
99
 
94
100
  for value in os_values:
95
- if value not in ("Linux", "Win32", "macOS", "Win32-MSYS2", "Win32-Anaconda"):
101
+ if value not in (
102
+ "Linux",
103
+ "Win32",
104
+ "macOS",
105
+ "Win32-MSYS2",
106
+ "Win32-Anaconda",
107
+ "Linux-Anaconda",
108
+ "macOS-Anaconda",
109
+ ):
96
110
  watch_logger.sysexit("Illegal value for OS: %s" % value)
97
111
 
98
- if isLinux() and "Linux" in os_values:
99
- return "Linux"
112
+ # TODO: Once installed python detects MSYS2 and Anaconda, we should remove
113
+ # this in favor of passed options that allow flavors or not.
114
+ if isLinux():
115
+ if isAnacondaPython():
116
+ if "Linux-Anaconda" in os_values:
117
+ return "Linux-Anaconda"
118
+
119
+ return None
120
+ elif "Linux" in os_values:
121
+ return "Linux"
100
122
  if isWin32Windows():
101
123
  if isMSYS2MingwPython():
102
124
  if "Win32-MSYS2" in os_values:
103
125
  return "Win32-MSYS2"
104
126
 
105
127
  return None
106
- if isAnacondaPython():
128
+ elif isAnacondaPython():
107
129
  if "Win32-Anaconda" in os_values:
108
130
  return "Win32-Anaconda"
109
-
110
- return None
111
- if "Win32" in os_values:
131
+ elif "Win32" in os_values:
112
132
  return "Win32"
113
- if isMacOS() and "macOS" in os_values:
114
- return "macOS"
133
+ if isMacOS():
134
+ if isAnacondaPython():
135
+ if "macOS-Anaconda" in os_values:
136
+ return "macOS-Anaconda"
137
+ elif "macOS" in os_values:
138
+ return "macOS"
115
139
 
116
140
  return None
117
141
 
118
142
 
119
- def getPlatformRequirements(installed_python, case_data):
120
- requirements = list(case_data["requirements"])
121
-
122
- # Nuitka house keeping, these are from setup.py but we ignore onefile needs
123
- # as that is not currently covered in watches.
124
- # spell-checker: ignore orderedset,imageio
125
- needs_onefile = False
126
-
127
- if installed_python.getHexVersion() >= 0x370:
128
- requirements.append("ordered-set >= 4.1.0")
129
- if installed_python.getHexVersion() < 0x300:
130
- requirements.append("subprocess32")
131
- if needs_onefile and installed_python.getHexVersion() >= 0x370:
132
- requirements.append("zstandard >= 0.15")
133
- if (
134
- os.name != "nt"
135
- and sys.platform != "darwin"
136
- and installed_python.getHexVersion() < 0x370
137
- ):
138
- requirements.append("orderedset >= 2.0.3")
139
- if sys.platform == "darwin" and installed_python.getHexVersion() < 0x370:
140
- requirements.append("orderedset >= 2.0.3")
141
-
142
- # For icon conversion.
143
- if case_data.get("icons", "no") == "yes":
144
- requirements.append("imageio")
145
-
146
- return requirements
147
-
148
-
149
- def _updatePipenvFile(installed_python, case_data, dry_run, result_path):
150
- pipenv_filename = os.path.join(result_path, "Pipfile")
151
- pipenv_package_requirements = []
152
-
153
- for requirement in getPlatformRequirements(
154
- installed_python=installed_python, case_data=case_data
155
- ):
156
- # Ignore spaces in requirements.
157
- requirement = requirement.replace(" ", "")
158
-
159
- if all(char not in requirement for char in "=><"):
160
- pipenv_package_requirements.append('"%s" = "*"' % requirement)
161
- else:
162
- operator_index = min(
163
- requirement.find(char) for char in "=><" if char in requirement
164
- )
165
-
166
- pipenv_package_requirements.append(
167
- '"%s" = "%s"'
168
- % (requirement[:operator_index], requirement[operator_index:])
169
- )
170
-
171
- # TODO: Other indexes, e.g. nvidia might be needed too
172
- changed_pipenv_file = changeTextFileContents(
173
- pipenv_filename,
174
- """\
175
- [[source]]
176
- name = "pypi"
177
- url = "https://pypi.org/simple"
178
- verify_ssl = true
179
-
180
- [requires]
181
- python_version = "%(python_version)s"
182
-
183
- [packages]
184
- %(pipenv_package_requirements)s
185
- """
186
- % {
187
- "pipenv_package_requirements": "\n".join(pipenv_package_requirements),
188
- "python_version": installed_python.getPythonVersion(),
189
- },
190
- compare_only=dry_run,
191
- )
192
-
193
- return changed_pipenv_file, pipenv_filename
194
-
195
-
196
- def _updatePacmanFile(installed_python, case_data, dry_run, result_path):
197
- pipenv_filename = os.path.join(result_path, "Pacman.txt")
198
- pipenv_package_requirements = []
199
-
200
- for requirement in getPlatformRequirements(
201
- installed_python=installed_python, case_data=case_data
202
- ):
203
- # Ignore spaces in requirements.
204
- requirement = requirement.replace(" ", "")
205
-
206
- # TODO: Other indexes, e.g. nvidia might be needed too
207
- changed_pipenv_file = changeTextFileContents(
208
- pipenv_filename,
209
- """\
210
- [python]
211
- %(python_version)s
212
- [packages]
213
- %(pipenv_package_requirements)s
214
- """
215
- % {
216
- "pipenv_package_requirements": "\n".join(pipenv_package_requirements),
217
- "python_version": installed_python.getPythonVersion(),
218
- },
219
- compare_only=dry_run,
220
- )
221
-
222
- return changed_pipenv_file, pipenv_filename
223
-
224
-
225
- def _execPipenvCommand(installed_python, command, retry=False):
226
- try:
227
- check_call(
228
- [
229
- installed_python.getPythonExe(),
230
- "-m",
231
- "pipenv",
232
- command,
233
- "--python",
234
- installed_python.getPythonExe(),
235
- ],
236
- logger=watch_logger,
237
- )
238
- except subprocess.CalledProcessError:
239
- if command in ("install", "update") and not retry:
240
- _execPipenvCommand(installed_python, "--rm")
241
- _execPipenvCommand(installed_python, command)
242
-
243
- else:
244
- raise
245
-
246
-
247
- def _updatePipenvLockFile(
248
- installed_python, dry_run, pipenv_filename_full, no_pipenv_update
249
- ):
250
- if os.path.exists("Pipfile.lock"):
251
- if no_pipenv_update:
252
- watch_logger.info(
253
- "Keeping existing lock file with pipenv file '%s'."
254
- % pipenv_filename_full
255
- )
256
-
257
- _execPipenvCommand(installed_python, "install")
258
-
259
- elif not dry_run:
260
- watch_logger.info(
261
- "Working with pipenv file '%s' to update virtualenv, may take a while."
262
- % pipenv_filename_full
263
- )
264
-
265
- _execPipenvCommand(installed_python, "update")
266
- else:
267
- watch_logger.info(
268
- "Working with pipenv file '%s' to install virtualenv, may take a while."
269
- % pipenv_filename_full
270
- )
271
-
272
- check_call(
273
- [
274
- installed_python.getPythonExe(),
275
- "-m",
276
- "pipenv",
277
- "install",
278
- "--python",
279
- installed_python.getPythonExe(),
280
- ]
281
- )
282
-
283
- return "Pipfile.lock"
284
-
285
-
286
- def _updatePacmanLockFile():
287
- pacman_lock_filename = "Pacman.lock"
288
-
289
- pacman_output = executeToolChecked(
290
- logger=watch_logger,
291
- command=["pacman", "-Q"],
292
- absence_message="needs pacman to query package status on MSYS2",
293
- )
294
-
295
- if str is not bytes:
296
- pacman_output = pacman_output.decode("utf8")
297
-
298
- changeTextFileContents(filename=pacman_lock_filename, contents=pacman_output)
299
-
300
- return pacman_lock_filename
301
-
302
-
303
143
  def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
304
144
  preferred_package_type = installed_python.getPreferredPackageType()
305
145
 
@@ -319,8 +159,12 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
319
159
  run_command = ["python"]
320
160
 
321
161
  extra_options.append("--disable-ccache")
162
+ elif preferred_package_type == "conda":
163
+ run_command = getCondaRunCommand(
164
+ installed_python=installed_python, case_data=case_data
165
+ )
322
166
  else:
323
- assert False
167
+ assert False, preferred_package_type
324
168
 
325
169
  if jobs is not None:
326
170
  extra_options.append("--jobs=%s" % jobs)
@@ -336,7 +180,8 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
336
180
  "--report-user-provided=pipenv_hash=%s"
337
181
  % getFileContentsHash(lock_filename),
338
182
  ]
339
- + extra_options
183
+ + extra_options,
184
+ logger=watch_logger,
340
185
  )
341
186
 
342
187
  if case_data["interactive"] == "no":
@@ -349,7 +194,12 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
349
194
  if len(binaries) != 1:
350
195
  sys.exit("Error, failed to identify created binary.")
351
196
 
352
- with withEnvironmentVarOverridden("NUITKA_LAUNCH_TOKEN", "1"):
197
+ env = {
198
+ "NUITKA_LAUNCH_TOKEN": "1",
199
+ "NUITKA_TEST_INTERACTIVE": "0",
200
+ }
201
+
202
+ with withEnvironmentVarsOverridden(env):
353
203
  stdout, stderr, exit_nuitka = executeProcess([binaries[0]], timeout=5 * 60)
354
204
 
355
205
  with open("compiled-stdout.txt", "wb") as output:
@@ -371,60 +221,81 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
371
221
  )
372
222
 
373
223
 
374
- def _updateCase(
375
- case_dir,
224
+ def _updateCaseLock(
225
+ installed_python,
376
226
  case_data,
377
- dry_run,
227
+ case_dir,
378
228
  no_pipenv_update,
379
- nuitka_update_mode,
380
- installed_python,
381
229
  result_path,
382
- jobs,
383
230
  ):
384
- # Many details and cases due to package method being handled here.
385
- # pylint: disable=too-many-branches,too-many-locals
386
-
387
- # Not good for dry run, but tough life.
388
- makePath(result_path)
389
-
390
231
  # Update the pipenv file in any case, ought to be stable but we follow
391
232
  # global changes this way.
392
233
  preferred_package_type = installed_python.getPreferredPackageType()
393
- if preferred_package_type == "pip":
394
- changed_pipenv_file, pipenv_filename = _updatePipenvFile(
395
- installed_python=installed_python,
396
- case_data=case_data,
397
- dry_run=dry_run,
398
- result_path=result_path,
399
- )
400
234
 
401
- pipenv_filename_full = os.path.join(case_dir, pipenv_filename)
235
+ # Not good for actual dry run, but tough life.
236
+ makePath(result_path)
237
+
238
+ with withDirectoryChange(result_path):
239
+ if preferred_package_type == "pip":
240
+ pipenv_filename = updatePipenvFile(
241
+ installed_python=installed_python,
242
+ case_data=case_data,
243
+ )
402
244
 
403
- if dry_run and changed_pipenv_file:
404
- watch_logger.info("Would create pipenv file '%s'." % pipenv_filename_full)
405
- return
245
+ pipenv_filename_full = os.path.join(case_dir, pipenv_filename)
406
246
 
407
- with withDirectoryChange(result_path):
408
247
  # Update or create lockfile of pipenv.
409
- lock_filename = _updatePipenvLockFile(
248
+ lock_filename = updatePipenvLockFile(
249
+ logger=watch_logger,
410
250
  installed_python=installed_python,
411
- dry_run=dry_run,
412
251
  pipenv_filename_full=pipenv_filename_full,
413
252
  no_pipenv_update=no_pipenv_update,
414
253
  )
415
- elif preferred_package_type == "pacman":
416
- changed_pipenv_file, pipenv_filename = _updatePacmanFile(
417
- installed_python=installed_python,
418
- case_data=case_data,
419
- dry_run=dry_run,
420
- result_path=result_path,
421
- )
254
+ elif preferred_package_type == "pacman":
255
+ updatePacmanFile(
256
+ installed_python=installed_python,
257
+ case_data=case_data,
258
+ )
422
259
 
423
- with withDirectoryChange(result_path):
424
260
  # Update or create lockfile of pipenv.
425
- lock_filename = _updatePacmanLockFile()
426
- else:
427
- assert False, preferred_package_type
261
+ lock_filename = updatePacmanLockFile(logger=watch_logger)
262
+ elif preferred_package_type == "conda":
263
+ updateCondaEnvironmentFile(
264
+ installed_python=installed_python,
265
+ case_data=case_data,
266
+ )
267
+
268
+ # Update or create lockfile of pipenv.
269
+ lock_filename = updateCondaEnvironmentLockFile(
270
+ logger=watch_logger,
271
+ installed_python=installed_python,
272
+ case_data=case_data,
273
+ )
274
+
275
+ lock_filename = os.path.abspath(lock_filename)
276
+
277
+ return lock_filename
278
+
279
+
280
+ def _updateCase(
281
+ case_dir,
282
+ case_data,
283
+ no_pipenv_update,
284
+ nuitka_update_mode,
285
+ installed_python,
286
+ result_path,
287
+ jobs,
288
+ ):
289
+ # Many details and cases due to package method being handled here.
290
+ # pylint: disable=too-many-branches
291
+
292
+ lock_filename = _updateCaseLock(
293
+ installed_python=installed_python,
294
+ case_data=case_data,
295
+ case_dir=case_dir,
296
+ no_pipenv_update=no_pipenv_update,
297
+ result_path=result_path,
298
+ )
428
299
 
429
300
  # Check if compilation is required.
430
301
  with withDirectoryChange(result_path):
@@ -449,7 +320,7 @@ def _updateCase(
449
320
  if existing_hash != old_report_root_hash:
450
321
  watch_logger.info(
451
322
  "Recompilation with identical Nuitka for '%s' due to changed pipfile."
452
- % pipenv_filename_full
323
+ % lock_filename
453
324
  )
454
325
 
455
326
  need_compile = True
@@ -459,7 +330,7 @@ def _updateCase(
459
330
  else:
460
331
  watch_logger.info(
461
332
  "Skipping compilation with identical Nuitka for '%s'."
462
- % pipenv_filename_full
333
+ % lock_filename
463
334
  )
464
335
 
465
336
  need_compile = False
@@ -469,7 +340,7 @@ def _updateCase(
469
340
  % (
470
341
  old_nuitka_version,
471
342
  nuitka_version,
472
- pipenv_filename_full,
343
+ lock_filename,
473
344
  )
474
345
  )
475
346
 
@@ -496,9 +367,7 @@ def _updateCase(
496
367
  )
497
368
 
498
369
 
499
- def updateCase(
500
- case_dir, case_data, dry_run, no_pipenv_update, nuitka_update_mode, jobs
501
- ):
370
+ def updateCase(case_dir, case_data, no_pipenv_update, nuitka_update_mode, jobs):
502
371
  case_name = case_data["case"]
503
372
 
504
373
  watch_logger.info("Consider '%s' ... " % case_name)
@@ -520,7 +389,6 @@ def updateCase(
520
389
 
521
390
  selected_pythons = tuple(
522
391
  selectPythons(
523
- # TODO: Enable Anaconda support through options/detection.
524
392
  anaconda="Anaconda" in os_name,
525
393
  msys2_mingw64="MSYS2" in os_name,
526
394
  python_version_req=case_data.get("python_version_req"),
@@ -533,23 +401,24 @@ def updateCase(
533
401
 
534
402
  # For all relevant Pythons applicable to this case.
535
403
  for installed_python in selectPythons(
536
- # TODO: Enable Anaconda support through options/detection.
537
404
  anaconda="Anaconda" in os_name,
538
405
  msys2_mingw64="MSYS2" in os_name,
539
406
  python_version_req=case_data.get("python_version_req"),
540
407
  ):
541
408
  watch_logger.info("Consider with Python %s." % installed_python)
542
409
 
543
- result_path = "result/%(case_name)s/%(python_version)s-%(os_name)s" % {
544
- "case_name": case_name,
545
- "os_name": os_name,
546
- "python_version": installed_python.getPythonVersion(),
547
- }
410
+ result_path = getNormalizedPath(
411
+ "result/%(case_name)s/%(python_version)s-%(os_name)s"
412
+ % {
413
+ "case_name": case_name,
414
+ "os_name": os_name,
415
+ "python_version": installed_python.getPythonVersion(),
416
+ }
417
+ )
548
418
 
549
419
  _updateCase(
550
420
  case_dir=case_dir,
551
421
  case_data=case_data,
552
- dry_run=dry_run,
553
422
  no_pipenv_update=no_pipenv_update,
554
423
  nuitka_update_mode=nuitka_update_mode,
555
424
  installed_python=installed_python,
@@ -558,12 +427,11 @@ def updateCase(
558
427
  )
559
428
 
560
429
 
561
- def updateCases(case_dir, dry_run, no_pipenv_update, nuitka_update_mode, jobs):
430
+ def updateCases(case_dir, no_pipenv_update, nuitka_update_mode, jobs):
562
431
  for case_data in parseYaml(getFileContents("case.yml", mode="rb")):
563
432
  updateCase(
564
433
  case_dir=case_dir,
565
434
  case_data=case_data,
566
- dry_run=dry_run,
567
435
  no_pipenv_update=no_pipenv_update,
568
436
  nuitka_update_mode=nuitka_update_mode,
569
437
  jobs=jobs,
@@ -611,15 +479,6 @@ Nuitka binary to compile with. Defaults to one near the nuitka-watch usage.""",
611
479
  Do not update the pipenv environment. Best to see only effect of Nuitka update. Default %default.""",
612
480
  )
613
481
 
614
- parser.add_option(
615
- "--dry-run",
616
- action="store_false",
617
- dest="dry_run",
618
- default=False,
619
- help="""\
620
- Do not change anything, just report what would be done. Not yet perfectly true. Default %default.""",
621
- )
622
-
623
482
  parser.add_option(
624
483
  "--nuitka-update-mode",
625
484
  action="store",
@@ -666,7 +525,7 @@ to reserve cores.""",
666
525
  getTestExecutionPythonVersions()
667
526
  ):
668
527
  installed_pythons[python_version] = findPythons(
669
- python_version, module_name="pipenv"
528
+ python_version, module_name=None if isAnacondaPython() else "pipenv"
670
529
  )
671
530
 
672
531
  nuitka_binary = os.path.abspath(os.path.expanduser(options.nuitka_binary))
@@ -697,7 +556,6 @@ to reserve cores.""",
697
556
  with withDirectoryChange(os.path.dirname(case_filename)):
698
557
  updateCases(
699
558
  case_dir=os.path.dirname(case_filename),
700
- dry_run=options.dry_run,
701
559
  no_pipenv_update=options.no_pipenv_update,
702
560
  nuitka_update_mode=options.nuitka_update_mode,
703
561
  jobs=options.jobs,
nuitka/tree/Building.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Build the internal node tree from source code.
@@ -138,6 +138,7 @@ from nuitka.utils.ModuleNames import ModuleName
138
138
  from nuitka.utils.Utils import withNoSyntaxWarning
139
139
 
140
140
  from . import SyntaxErrors
141
+ from .FutureSpecState import getFutureSpec, popFutureSpec, pushFutureSpec
141
142
  from .ReformulationAssertStatements import buildAssertNode
142
143
  from .ReformulationAssignmentStatements import (
143
144
  buildAnnAssignNode,
@@ -172,9 +173,6 @@ from .ReformulationImportStatements import (
172
173
  buildImportFromNode,
173
174
  buildImportModulesNode,
174
175
  checkFutureImportsOnlyAtStart,
175
- getFutureSpec,
176
- popFutureSpec,
177
- pushFutureSpec,
178
176
  )
179
177
  from .ReformulationLambdaExpressions import buildLambdaNode
180
178
  from .ReformulationMatchStatements import buildMatchNode
@@ -1018,14 +1016,14 @@ def _loadUncompiledModuleFromCache(
1018
1016
 
1019
1017
  used_modules = OrderedSet()
1020
1018
 
1021
- used_modules = getCachedImportedModuleUsageAttempts(
1019
+ used_modules, timing_info = getCachedImportedModuleUsageAttempts(
1022
1020
  module_name=module_name, source_code=source_code, source_ref=source_ref
1023
1021
  )
1024
1022
 
1025
- # assert not is_package, (module_name, used_modules, result, result.getCompileTimeFilename())
1026
-
1027
1023
  result.setUsedModules(used_modules)
1028
1024
 
1025
+ ModuleRegistry.setModuleOptimizationTimingInfos(module_name, timing_info)
1026
+
1029
1027
  return result
1030
1028
 
1031
1029
 
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ This module is providing helper functions for complex call re-formulations.
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Extracting visitors.
@@ -0,0 +1,71 @@
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """ State of a stack of future specs during parsing. """
5
+
6
+ from nuitka.nodes.FutureSpecs import FutureSpec
7
+ from nuitka.plugins.Plugins import Plugins
8
+ from nuitka.PythonVersions import python_version
9
+
10
+ from .SyntaxErrors import raiseSyntaxError
11
+
12
+ _future_specs = []
13
+
14
+
15
+ def pushFutureSpec(module_name):
16
+ _future_specs.append(
17
+ FutureSpec(use_annotations=Plugins.decideAnnotations(module_name))
18
+ )
19
+
20
+
21
+ def getFutureSpec():
22
+ return _future_specs[-1]
23
+
24
+
25
+ def popFutureSpec():
26
+ del _future_specs[-1]
27
+
28
+
29
+ def enableFutureFeature(node, object_name, source_ref):
30
+ future_spec = _future_specs[-1]
31
+
32
+ if object_name == "unicode_literals":
33
+ future_spec.enableUnicodeLiterals()
34
+ elif object_name == "absolute_import":
35
+ future_spec.enableAbsoluteImport()
36
+ elif object_name == "division":
37
+ future_spec.enableFutureDivision()
38
+ elif object_name == "print_function":
39
+ future_spec.enableFuturePrint()
40
+ elif object_name == "barry_as_FLUFL" and python_version >= 0x300:
41
+ future_spec.enableBarry()
42
+ elif object_name == "generator_stop":
43
+ future_spec.enableGeneratorStop()
44
+ elif object_name == "braces":
45
+ raiseSyntaxError("not a chance", source_ref.atColumnNumber(node.col_offset))
46
+ elif object_name in ("nested_scopes", "generators", "with_statement"):
47
+ # These are enabled in all cases already.
48
+ pass
49
+ elif object_name == "annotations" and python_version >= 0x370:
50
+ future_spec.enableFutureAnnotations()
51
+ else:
52
+ raiseSyntaxError(
53
+ "future feature %s is not defined" % object_name,
54
+ source_ref.atColumnNumber(node.col_offset),
55
+ )
56
+
57
+
58
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
59
+ # integrates with CPython, but also works on its own.
60
+ #
61
+ # Licensed under the Apache License, Version 2.0 (the "License");
62
+ # you may not use this file except in compliance with the License.
63
+ # You may obtain a copy of the License at
64
+ #
65
+ # http://www.apache.org/licenses/LICENSE-2.0
66
+ #
67
+ # Unless required by applicable law or agreed to in writing, software
68
+ # distributed under the License is distributed on an "AS IS" BASIS,
69
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
70
+ # See the License for the specific language governing permissions and
71
+ # limitations under the License.