Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__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 (704) hide show
  1. Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
  2. Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
  3. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
  4. Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
  5. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +18 -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 +400 -0
  13. nuitka/MainControl.py +200 -112
  14. nuitka/ModuleRegistry.py +83 -20
  15. nuitka/OptionParsing.py +368 -175
  16. nuitka/Options.py +632 -213
  17. nuitka/OutputDirectories.py +40 -21
  18. nuitka/PostProcessing.py +73 -50
  19. nuitka/Progress.py +58 -24
  20. nuitka/PythonFlavors.py +141 -32
  21. nuitka/PythonOperators.py +18 -17
  22. nuitka/PythonVersions.py +106 -19
  23. nuitka/Serialization.py +68 -55
  24. nuitka/SourceCodeReferences.py +19 -17
  25. nuitka/Tracing.py +108 -70
  26. nuitka/TreeXML.py +31 -26
  27. nuitka/Variables.py +39 -41
  28. nuitka/Version.py +21 -7
  29. nuitka/__init__.py +5 -4
  30. nuitka/__main__.py +95 -29
  31. nuitka/__past__.py +44 -34
  32. nuitka/build/Backend.scons +202 -140
  33. nuitka/build/CCompilerVersion.scons +39 -31
  34. nuitka/build/DataComposerInterface.py +20 -17
  35. nuitka/build/Onefile.scons +50 -54
  36. nuitka/build/SconsCaching.py +93 -90
  37. nuitka/build/SconsCompilerSettings.py +157 -69
  38. nuitka/build/SconsHacks.py +25 -19
  39. nuitka/build/SconsInterface.py +154 -54
  40. nuitka/build/SconsProgress.py +19 -18
  41. nuitka/build/SconsSpawn.py +62 -33
  42. nuitka/build/SconsUtils.py +147 -55
  43. nuitka/build/__init__.py +5 -4
  44. nuitka/build/include/nuitka/allocator.h +105 -22
  45. nuitka/build/include/nuitka/builtins.h +17 -17
  46. nuitka/build/include/nuitka/calling.h +18 -18
  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 +18 -18
  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 +91 -53
  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 +29 -18
  57. nuitka/build/include/nuitka/constants_blob.h +17 -17
  58. nuitka/build/include/nuitka/environment_variables.h +30 -0
  59. nuitka/build/include/nuitka/environment_variables_system.h +45 -0
  60. nuitka/build/include/nuitka/exception_groups.h +23 -26
  61. nuitka/build/include/nuitka/exceptions.h +593 -190
  62. nuitka/build/include/nuitka/filesystem_paths.h +26 -20
  63. nuitka/build/include/nuitka/freelists.h +38 -18
  64. nuitka/build/include/nuitka/helper/attributes.h +24 -18
  65. nuitka/build/include/nuitka/helper/boolean.h +17 -17
  66. nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
  67. nuitka/build/include/nuitka/helper/bytes.h +14 -15
  68. nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
  69. nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
  70. nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
  71. nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
  72. nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
  73. nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
  74. nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
  75. nuitka/build/include/nuitka/helper/complex.h +17 -17
  76. nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
  77. nuitka/build/include/nuitka/helper/floats.h +17 -18
  78. nuitka/build/include/nuitka/helper/import_hard.h +25 -17
  79. nuitka/build/include/nuitka/helper/indexes.h +17 -18
  80. nuitka/build/include/nuitka/helper/ints.h +32 -20
  81. nuitka/build/include/nuitka/helper/iterators.h +17 -17
  82. nuitka/build/include/nuitka/helper/lists.h +26 -24
  83. nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
  84. nuitka/build/include/nuitka/helper/mappings.h +17 -18
  85. nuitka/build/include/nuitka/helper/operations.h +17 -17
  86. nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
  87. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
  88. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
  89. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
  90. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
  91. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
  92. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
  93. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
  94. nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
  95. nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
  96. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
  97. nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
  98. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
  99. nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
  100. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
  101. nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
  102. nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
  103. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
  104. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
  105. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
  106. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
  107. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
  108. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
  109. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
  110. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
  111. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
  112. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
  113. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
  114. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
  115. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
  116. nuitka/build/include/nuitka/helper/raising.h +29 -17
  117. nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
  118. nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
  119. nuitka/build/include/nuitka/helper/sequences.h +19 -13
  120. nuitka/build/include/nuitka/helper/sets.h +11 -12
  121. nuitka/build/include/nuitka/helper/slices.h +31 -25
  122. nuitka/build/include/nuitka/helper/strings.h +16 -17
  123. nuitka/build/include/nuitka/helper/subscripts.h +18 -201
  124. nuitka/build/include/nuitka/helper/tuples.h +64 -52
  125. nuitka/build/include/nuitka/helpers.h +38 -20
  126. nuitka/build/include/nuitka/importing.h +28 -21
  127. nuitka/build/include/nuitka/jit_sources.h +25 -0
  128. nuitka/build/include/nuitka/prelude.h +128 -46
  129. nuitka/build/include/nuitka/printing.h +22 -17
  130. nuitka/build/include/nuitka/python_pgo.h +19 -18
  131. nuitka/build/include/nuitka/safe_string_ops.h +20 -18
  132. nuitka/build/include/nuitka/threading.h +32 -33
  133. nuitka/build/include/nuitka/tracing.h +28 -18
  134. nuitka/build/include/nuitka/type_aliases.h +27 -0
  135. nuitka/build/include/nuitka/unfreezing.h +29 -23
  136. nuitka/build/inline_copy/bin/scons.py +14 -0
  137. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
  138. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
  139. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  140. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  141. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  142. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  143. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  144. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  145. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  146. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  147. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  148. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  149. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  150. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  151. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  152. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  153. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  154. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  155. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  156. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  157. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  158. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  159. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  160. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
  161. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
  162. nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
  163. nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
  164. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  165. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  166. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  167. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  168. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  169. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  170. nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
  171. nuitka/build/static_src/CompiledCellType.c +63 -40
  172. nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
  173. nuitka/build/static_src/CompiledCoroutineType.c +196 -203
  174. nuitka/build/static_src/CompiledFrameType.c +287 -133
  175. nuitka/build/static_src/CompiledFunctionType.c +389 -95
  176. nuitka/build/static_src/CompiledGeneratorType.c +376 -252
  177. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
  178. nuitka/build/static_src/CompiledMethodType.c +83 -71
  179. nuitka/build/static_src/HelpersAllocator.c +88 -19
  180. nuitka/build/static_src/HelpersAttributes.c +33 -54
  181. nuitka/build/static_src/HelpersBuiltin.c +43 -33
  182. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
  183. nuitka/build/static_src/HelpersBytes.c +19 -20
  184. nuitka/build/static_src/HelpersCalling.c +33 -30
  185. nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
  186. nuitka/build/static_src/HelpersChecksumTools.c +35 -21
  187. nuitka/build/static_src/HelpersClasses.c +17 -17
  188. nuitka/build/static_src/HelpersComparisonEq.c +518 -492
  189. nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
  190. nuitka/build/static_src/HelpersComparisonGe.c +513 -497
  191. nuitka/build/static_src/HelpersComparisonGt.c +512 -496
  192. nuitka/build/static_src/HelpersComparisonLe.c +513 -497
  193. nuitka/build/static_src/HelpersComparisonLt.c +512 -496
  194. nuitka/build/static_src/HelpersComparisonNe.c +520 -492
  195. nuitka/build/static_src/HelpersConsole.c +96 -0
  196. nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
  197. nuitka/build/static_src/HelpersDeepcopy.c +33 -33
  198. nuitka/build/static_src/HelpersDictionaries.c +51 -29
  199. nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
  200. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  201. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  202. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
  203. nuitka/build/static_src/HelpersExceptions.c +161 -50
  204. nuitka/build/static_src/HelpersFiles.c +37 -17
  205. nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
  206. nuitka/build/static_src/HelpersFloats.c +37 -31
  207. nuitka/build/static_src/HelpersHeapStorage.c +21 -17
  208. nuitka/build/static_src/HelpersImport.c +48 -20
  209. nuitka/build/static_src/HelpersImportHard.c +53 -17
  210. nuitka/build/static_src/HelpersJitSources.c +46 -0
  211. nuitka/build/static_src/HelpersLists.c +140 -50
  212. nuitka/build/static_src/HelpersListsGenerated.c +41 -41
  213. nuitka/build/static_src/HelpersMappings.c +17 -17
  214. nuitka/build/static_src/HelpersMatching.c +137 -51
  215. nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
  216. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
  217. nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
  218. nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
  219. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
  220. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
  221. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
  222. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
  223. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
  224. nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
  225. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
  226. nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
  227. nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
  228. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
  229. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
  230. nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
  231. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
  232. nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
  233. nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
  234. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
  235. nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
  236. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
  237. nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
  238. nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
  239. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
  240. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
  241. nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
  242. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
  243. nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
  244. nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
  245. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
  246. nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
  247. nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
  248. nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
  249. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
  250. nuitka/build/static_src/HelpersProfiling.c +24 -23
  251. nuitka/build/static_src/HelpersPythonPgo.c +22 -22
  252. nuitka/build/static_src/HelpersRaising.c +88 -20
  253. nuitka/build/static_src/HelpersSafeStrings.c +34 -22
  254. nuitka/build/static_src/HelpersSequences.c +18 -19
  255. nuitka/build/static_src/HelpersSlices.c +29 -23
  256. nuitka/build/static_src/HelpersStrings.c +234 -37
  257. nuitka/build/static_src/HelpersTuples.c +46 -34
  258. nuitka/build/static_src/HelpersTypes.c +68 -23
  259. nuitka/build/static_src/InspectPatcher.c +108 -27
  260. nuitka/build/static_src/MainProgram.c +359 -263
  261. nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
  262. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
  263. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
  264. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
  265. nuitka/build/static_src/OnefileBootstrap.c +276 -164
  266. nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
  267. nuitka/code_generation/AsyncgenCodes.py +19 -17
  268. nuitka/code_generation/AttributeCodes.py +31 -27
  269. nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
  270. nuitka/code_generation/BranchCodes.py +19 -17
  271. nuitka/code_generation/BuiltinCodes.py +20 -17
  272. nuitka/code_generation/CallCodes.py +19 -17
  273. nuitka/code_generation/ClassCodes.py +19 -17
  274. nuitka/code_generation/CodeGeneration.py +48 -27
  275. nuitka/code_generation/CodeHelperSelection.py +19 -17
  276. nuitka/code_generation/CodeHelpers.py +24 -20
  277. nuitka/code_generation/CodeObjectCodes.py +34 -24
  278. nuitka/code_generation/ComparisonCodes.py +38 -20
  279. nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
  280. nuitka/code_generation/ConditionalCodes.py +19 -17
  281. nuitka/code_generation/ConstantCodes.py +82 -28
  282. nuitka/code_generation/Contexts.py +152 -26
  283. nuitka/code_generation/CoroutineCodes.py +19 -17
  284. nuitka/code_generation/CtypesCodes.py +19 -17
  285. nuitka/code_generation/DictCodes.py +25 -23
  286. nuitka/code_generation/Emission.py +21 -18
  287. nuitka/code_generation/ErrorCodes.py +27 -33
  288. nuitka/code_generation/EvalCodes.py +24 -20
  289. nuitka/code_generation/ExceptionCodes.py +27 -18
  290. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
  291. nuitka/code_generation/ExpressionCodes.py +19 -17
  292. nuitka/code_generation/FrameCodes.py +24 -20
  293. nuitka/code_generation/FunctionCodes.py +24 -21
  294. nuitka/code_generation/GeneratorCodes.py +23 -20
  295. nuitka/code_generation/GlobalConstants.py +43 -23
  296. nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
  297. nuitka/code_generation/IdCodes.py +19 -17
  298. nuitka/code_generation/ImportCodes.py +90 -50
  299. nuitka/code_generation/Indentation.py +23 -22
  300. nuitka/code_generation/IndexCodes.py +19 -17
  301. nuitka/code_generation/InjectCCodes.py +14 -12
  302. nuitka/code_generation/IntegerCodes.py +19 -17
  303. nuitka/code_generation/IteratorCodes.py +19 -17
  304. nuitka/code_generation/JitCodes.py +44 -0
  305. nuitka/code_generation/LabelCodes.py +19 -17
  306. nuitka/code_generation/LineNumberCodes.py +19 -17
  307. nuitka/code_generation/ListCodes.py +32 -36
  308. nuitka/code_generation/LoaderCodes.py +22 -17
  309. nuitka/code_generation/LocalsDictCodes.py +56 -32
  310. nuitka/code_generation/LoopCodes.py +19 -17
  311. nuitka/code_generation/MatchCodes.py +42 -22
  312. nuitka/code_generation/ModuleCodes.py +43 -25
  313. nuitka/code_generation/Namify.py +27 -23
  314. nuitka/code_generation/NetworkxCodes.py +51 -0
  315. nuitka/code_generation/OperationCodes.py +29 -31
  316. nuitka/code_generation/PackageResourceCodes.py +59 -23
  317. nuitka/code_generation/PrintCodes.py +19 -17
  318. nuitka/code_generation/PythonAPICodes.py +19 -17
  319. nuitka/code_generation/RaisingCodes.py +19 -17
  320. nuitka/code_generation/Reports.py +19 -17
  321. nuitka/code_generation/ReturnCodes.py +19 -17
  322. nuitka/code_generation/SetCodes.py +19 -17
  323. nuitka/code_generation/SliceCodes.py +22 -20
  324. nuitka/code_generation/StringCodes.py +19 -17
  325. nuitka/code_generation/SubscriptCodes.py +24 -30
  326. nuitka/code_generation/TensorflowCodes.py +54 -0
  327. nuitka/code_generation/TryCodes.py +19 -17
  328. nuitka/code_generation/TupleCodes.py +20 -18
  329. nuitka/code_generation/TypeAliasCodes.py +71 -0
  330. nuitka/code_generation/VariableCodes.py +26 -22
  331. nuitka/code_generation/VariableDeclarations.py +20 -17
  332. nuitka/code_generation/YieldCodes.py +22 -20
  333. nuitka/code_generation/__init__.py +5 -4
  334. nuitka/code_generation/c_types/CTypeBases.py +19 -17
  335. nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
  336. nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
  337. nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
  338. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
  339. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
  340. nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
  341. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
  342. nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
  343. nuitka/code_generation/c_types/CTypeVoids.py +20 -17
  344. nuitka/code_generation/c_types/__init__.py +5 -4
  345. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
  346. nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
  347. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
  348. nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
  349. nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
  350. nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
  351. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
  352. nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
  353. nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
  354. nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
  355. nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
  356. nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
  357. nuitka/code_generation/templates/__init__.py +5 -4
  358. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
  359. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
  360. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
  361. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
  362. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
  363. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
  364. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
  365. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
  366. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
  367. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
  368. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
  369. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
  370. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
  371. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
  372. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
  373. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
  374. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
  375. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
  376. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
  377. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
  378. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
  379. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
  380. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
  381. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
  382. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
  383. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
  384. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
  385. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
  386. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
  387. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
  388. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
  389. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
  390. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
  391. nuitka/containers/Namedtuples.py +19 -18
  392. nuitka/containers/OrderedSetsFallback.py +19 -17
  393. nuitka/containers/__init__.py +5 -4
  394. nuitka/distutils/Build.py +19 -18
  395. nuitka/distutils/DistutilCommands.py +34 -23
  396. nuitka/distutils/__init__.py +5 -4
  397. nuitka/finalizations/Finalization.py +20 -17
  398. nuitka/finalizations/FinalizeMarkups.py +21 -41
  399. nuitka/finalizations/__init__.py +5 -4
  400. nuitka/freezer/DependsExe.py +48 -28
  401. nuitka/freezer/DllDependenciesCommon.py +47 -20
  402. nuitka/freezer/DllDependenciesMacOS.py +147 -57
  403. nuitka/freezer/DllDependenciesPosix.py +29 -19
  404. nuitka/freezer/DllDependenciesWin32.py +29 -21
  405. nuitka/freezer/ImportDetection.py +20 -17
  406. nuitka/freezer/IncludedDataFiles.py +118 -47
  407. nuitka/freezer/IncludedEntryPoints.py +102 -38
  408. nuitka/freezer/Onefile.py +32 -22
  409. nuitka/freezer/Standalone.py +105 -50
  410. nuitka/freezer/__init__.py +5 -4
  411. nuitka/importing/IgnoreListing.py +19 -17
  412. nuitka/importing/ImportCache.py +24 -21
  413. nuitka/importing/ImportResolving.py +103 -95
  414. nuitka/importing/Importing.py +286 -92
  415. nuitka/importing/PreloadedPackages.py +21 -18
  416. nuitka/importing/Recursion.py +131 -47
  417. nuitka/importing/StandardLibrary.py +46 -28
  418. nuitka/importing/__init__.py +5 -4
  419. nuitka/nodes/AsyncgenNodes.py +19 -17
  420. nuitka/nodes/AttributeLookupNodes.py +19 -17
  421. nuitka/nodes/AttributeNodes.py +19 -17
  422. nuitka/nodes/AttributeNodesGenerated.py +49 -24
  423. nuitka/nodes/BuiltinAllNodes.py +19 -17
  424. nuitka/nodes/BuiltinAnyNodes.py +19 -17
  425. nuitka/nodes/BuiltinComplexNodes.py +20 -17
  426. nuitka/nodes/BuiltinDecodingNodes.py +19 -17
  427. nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
  428. nuitka/nodes/BuiltinDictNodes.py +19 -17
  429. nuitka/nodes/BuiltinFormatNodes.py +20 -17
  430. nuitka/nodes/BuiltinHashNodes.py +19 -17
  431. nuitka/nodes/BuiltinInputNodes.py +19 -17
  432. nuitka/nodes/BuiltinIntegerNodes.py +19 -17
  433. nuitka/nodes/BuiltinIteratorNodes.py +24 -20
  434. nuitka/nodes/BuiltinLenNodes.py +19 -17
  435. nuitka/nodes/BuiltinNextNodes.py +19 -17
  436. nuitka/nodes/BuiltinOpenNodes.py +52 -18
  437. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
  438. nuitka/nodes/BuiltinRangeNodes.py +21 -19
  439. nuitka/nodes/BuiltinRefNodes.py +68 -19
  440. nuitka/nodes/BuiltinSumNodes.py +20 -18
  441. nuitka/nodes/BuiltinTypeNodes.py +19 -17
  442. nuitka/nodes/BuiltinVarsNodes.py +19 -18
  443. nuitka/nodes/BytesNodes.py +19 -17
  444. nuitka/nodes/CallNodes.py +19 -17
  445. nuitka/nodes/Checkers.py +19 -17
  446. nuitka/nodes/ChildrenHavingMixins.py +1250 -302
  447. nuitka/nodes/ClassNodes.py +49 -29
  448. nuitka/nodes/CodeObjectSpecs.py +29 -18
  449. nuitka/nodes/ComparisonNodes.py +19 -17
  450. nuitka/nodes/ConditionalNodes.py +21 -23
  451. nuitka/nodes/ConstantRefNodes.py +57 -17
  452. nuitka/nodes/ContainerMakingNodes.py +19 -17
  453. nuitka/nodes/ContainerOperationNodes.py +19 -17
  454. nuitka/nodes/CoroutineNodes.py +19 -17
  455. nuitka/nodes/CtypesNodes.py +19 -18
  456. nuitka/nodes/DictionaryNodes.py +19 -18
  457. nuitka/nodes/ExceptionNodes.py +29 -17
  458. nuitka/nodes/ExecEvalNodes.py +19 -17
  459. nuitka/nodes/ExpressionBases.py +34 -26
  460. nuitka/nodes/ExpressionBasesGenerated.py +54 -32
  461. nuitka/nodes/ExpressionShapeMixins.py +19 -17
  462. nuitka/nodes/FrameNodes.py +19 -17
  463. nuitka/nodes/FunctionAttributeNodes.py +19 -17
  464. nuitka/nodes/FunctionNodes.py +81 -35
  465. nuitka/nodes/FutureSpecs.py +35 -20
  466. nuitka/nodes/GeneratorNodes.py +21 -19
  467. nuitka/nodes/GlobalsLocalsNodes.py +22 -17
  468. nuitka/nodes/HardImportNodesGenerated.py +545 -129
  469. nuitka/nodes/ImportHardNodes.py +46 -38
  470. nuitka/nodes/ImportNodes.py +436 -446
  471. nuitka/nodes/IndicatorMixins.py +19 -17
  472. nuitka/nodes/InjectCNodes.py +19 -18
  473. nuitka/nodes/IterationHandles.py +55 -34
  474. nuitka/nodes/KeyValuePairNodes.py +19 -17
  475. nuitka/nodes/ListOperationNodes.py +33 -21
  476. nuitka/nodes/LocalsDictNodes.py +19 -17
  477. nuitka/nodes/LocalsScopes.py +41 -41
  478. nuitka/nodes/LoopNodes.py +28 -17
  479. nuitka/nodes/MatchNodes.py +37 -24
  480. nuitka/nodes/ModuleAttributeNodes.py +18 -35
  481. nuitka/nodes/ModuleNodes.py +90 -31
  482. nuitka/nodes/NetworkxNodes.py +45 -0
  483. nuitka/nodes/NodeBases.py +45 -43
  484. nuitka/nodes/NodeMakingHelpers.py +21 -19
  485. nuitka/nodes/NodeMetaClasses.py +45 -28
  486. nuitka/nodes/OperatorNodes.py +28 -26
  487. nuitka/nodes/OperatorNodesUnary.py +20 -17
  488. nuitka/nodes/OsSysNodes.py +66 -18
  489. nuitka/nodes/OutlineNodes.py +22 -20
  490. nuitka/nodes/PackageMetadataNodes.py +37 -27
  491. nuitka/nodes/PackageResourceNodes.py +29 -23
  492. nuitka/nodes/PrintNodes.py +19 -17
  493. nuitka/nodes/ReturnNodes.py +20 -18
  494. nuitka/nodes/SideEffectNodes.py +19 -17
  495. nuitka/nodes/SliceNodes.py +20 -18
  496. nuitka/nodes/StatementBasesGenerated.py +125 -77
  497. nuitka/nodes/StatementNodes.py +19 -17
  498. nuitka/nodes/StrNodes.py +19 -17
  499. nuitka/nodes/StringConcatenationNodes.py +20 -17
  500. nuitka/nodes/SubscriptNodes.py +26 -24
  501. nuitka/nodes/TensorflowNodes.py +38 -0
  502. nuitka/nodes/TryNodes.py +19 -17
  503. nuitka/nodes/TypeMatchNodes.py +19 -17
  504. nuitka/nodes/TypeNodes.py +40 -17
  505. nuitka/nodes/VariableAssignNodes.py +122 -64
  506. nuitka/nodes/VariableDelNodes.py +19 -17
  507. nuitka/nodes/VariableNameNodes.py +19 -17
  508. nuitka/nodes/VariableRefNodes.py +63 -26
  509. nuitka/nodes/VariableReleaseNodes.py +19 -17
  510. nuitka/nodes/YieldNodes.py +21 -19
  511. nuitka/nodes/__init__.py +5 -4
  512. nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
  513. nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
  514. nuitka/nodes/shapes/ShapeMixins.py +40 -17
  515. nuitka/nodes/shapes/StandardShapes.py +27 -20
  516. nuitka/nodes/shapes/__init__.py +5 -4
  517. nuitka/optimizations/BytecodeDemotion.py +19 -17
  518. nuitka/optimizations/FunctionInlining.py +22 -23
  519. nuitka/optimizations/Graphs.py +19 -17
  520. nuitka/optimizations/Optimization.py +39 -35
  521. nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
  522. nuitka/optimizations/Tags.py +19 -18
  523. nuitka/optimizations/TraceCollections.py +67 -24
  524. nuitka/optimizations/ValueTraces.py +92 -25
  525. nuitka/optimizations/__init__.py +5 -4
  526. nuitka/pgo/PGO.py +33 -23
  527. nuitka/pgo/__init__.py +5 -4
  528. nuitka/plugins/PluginBase.py +610 -109
  529. nuitka/plugins/Plugins.py +241 -58
  530. nuitka/plugins/YamlPluginBase.py +121 -0
  531. nuitka/plugins/__init__.py +5 -4
  532. nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
  533. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
  534. nuitka/plugins/standard/DataFilesPlugin.py +65 -29
  535. nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
  536. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  537. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
  538. nuitka/plugins/standard/DillPlugin.py +42 -134
  539. nuitka/plugins/standard/DllFilesPlugin.py +125 -42
  540. nuitka/plugins/standard/EnumPlugin.py +19 -17
  541. nuitka/plugins/standard/EventletPlugin.py +19 -17
  542. nuitka/plugins/standard/GeventPlugin.py +19 -17
  543. nuitka/plugins/standard/GiPlugin.py +44 -28
  544. nuitka/plugins/standard/GlfwPlugin.py +20 -17
  545. nuitka/plugins/standard/ImplicitImports.py +407 -46
  546. nuitka/plugins/standard/KivyPlugin.py +30 -17
  547. nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
  548. nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
  549. nuitka/plugins/standard/NumpyPlugin.py +19 -17
  550. nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
  551. nuitka/plugins/standard/PbrPlugin.py +21 -19
  552. nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
  553. nuitka/plugins/standard/PmwPlugin.py +30 -27
  554. nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
  555. nuitka/plugins/standard/PywebViewPlugin.py +19 -17
  556. nuitka/plugins/standard/SpacyPlugin.py +136 -0
  557. nuitka/plugins/standard/TensorflowPlugin.py +20 -17
  558. nuitka/plugins/standard/TkinterPlugin.py +103 -53
  559. nuitka/plugins/standard/TorchPlugin.py +20 -17
  560. nuitka/plugins/standard/TransformersPlugin.py +94 -30
  561. nuitka/plugins/standard/TrioPlugin.py +18 -15
  562. nuitka/plugins/standard/UpxPlugin.py +21 -19
  563. nuitka/plugins/standard/__init__.py +5 -4
  564. nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
  565. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
  566. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
  567. nuitka/reports/CompilationReportReader.py +67 -0
  568. nuitka/reports/LicenseReport.rst.j2 +21 -21
  569. nuitka/reports/Reports.py +352 -76
  570. nuitka/reports/__init__.py +5 -4
  571. nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
  572. nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
  573. nuitka/specs/BuiltinListOperationSpecs.py +18 -17
  574. nuitka/specs/BuiltinParameterSpecs.py +30 -20
  575. nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
  576. nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
  577. nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
  578. nuitka/specs/HardImportSpecs.py +67 -22
  579. nuitka/specs/ParameterSpecs.py +56 -41
  580. nuitka/specs/__init__.py +5 -4
  581. nuitka/tools/Basics.py +20 -18
  582. nuitka/tools/__init__.py +5 -4
  583. nuitka/tools/commercial/__init__.py +7 -6
  584. nuitka/tools/data_composer/DataComposer.py +78 -62
  585. nuitka/tools/data_composer/__init__.py +5 -4
  586. nuitka/tools/data_composer/__main__.py +18 -17
  587. nuitka/tools/environments/CreateEnvironment.py +20 -17
  588. nuitka/tools/environments/Virtualenv.py +60 -32
  589. nuitka/tools/environments/__init__.py +5 -4
  590. nuitka/tools/general/__init__.py +5 -4
  591. nuitka/tools/general/dll_report/__init__.py +5 -4
  592. nuitka/tools/general/dll_report/__main__.py +19 -21
  593. nuitka/tools/general/find_module/FindModuleCode.py +35 -22
  594. nuitka/tools/general/find_module/__init__.py +5 -4
  595. nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
  596. nuitka/tools/onefile_compressor/__init__.py +5 -4
  597. nuitka/tools/onefile_compressor/__main__.py +18 -17
  598. nuitka/tools/podman/Podman.py +19 -17
  599. nuitka/tools/podman/__init__.py +5 -4
  600. nuitka/tools/podman/__main__.py +35 -19
  601. nuitka/tools/profiler/__init__.py +5 -4
  602. nuitka/tools/profiler/__main__.py +18 -17
  603. nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
  604. nuitka/tools/scanning/DisplayPackageData.py +31 -19
  605. nuitka/tools/scanning/__init__.py +5 -4
  606. nuitka/tools/specialize/CTypeDescriptions.py +93 -71
  607. nuitka/tools/specialize/Common.py +18 -17
  608. nuitka/tools/specialize/SpecializeC.py +31 -27
  609. nuitka/tools/specialize/SpecializePython.py +108 -45
  610. nuitka/tools/specialize/__init__.py +5 -4
  611. nuitka/tools/testing/Common.py +106 -52
  612. nuitka/tools/testing/Constructs.py +19 -17
  613. nuitka/tools/testing/OutputComparison.py +54 -18
  614. nuitka/tools/testing/Pythons.py +19 -18
  615. nuitka/tools/testing/RuntimeTracing.py +20 -19
  616. nuitka/tools/testing/SearchModes.py +26 -20
  617. nuitka/tools/testing/Valgrind.py +19 -17
  618. nuitka/tools/testing/__init__.py +5 -4
  619. nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
  620. nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
  621. nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
  622. nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
  623. nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
  624. nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
  625. nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
  626. nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
  627. nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
  628. nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
  629. nuitka/tools/watch/AutoStage.py +144 -0
  630. nuitka/tools/watch/GitHub.py +113 -0
  631. nuitka/tools/watch/__init__.py +5 -4
  632. nuitka/tools/watch/__main__.py +322 -91
  633. nuitka/tree/Building.py +176 -147
  634. nuitka/tree/ComplexCallHelperFunctions.py +80 -58
  635. nuitka/tree/Extractions.py +19 -17
  636. nuitka/tree/InternalModule.py +29 -20
  637. nuitka/tree/Operations.py +19 -17
  638. nuitka/tree/ReformulationAssertStatements.py +20 -17
  639. nuitka/tree/ReformulationAssignmentStatements.py +92 -91
  640. nuitka/tree/ReformulationBooleanExpressions.py +19 -17
  641. nuitka/tree/ReformulationCallExpressions.py +20 -18
  642. nuitka/tree/ReformulationClasses.py +45 -39
  643. nuitka/tree/ReformulationClasses3.py +146 -98
  644. nuitka/tree/ReformulationComparisonExpressions.py +29 -35
  645. nuitka/tree/ReformulationContractionExpressions.py +58 -55
  646. nuitka/tree/ReformulationDictionaryCreation.py +40 -35
  647. nuitka/tree/ReformulationExecStatements.py +42 -39
  648. nuitka/tree/ReformulationForLoopStatements.py +30 -34
  649. nuitka/tree/ReformulationFunctionStatements.py +58 -54
  650. nuitka/tree/ReformulationImportStatements.py +34 -29
  651. nuitka/tree/ReformulationLambdaExpressions.py +23 -24
  652. nuitka/tree/ReformulationMatchStatements.py +244 -92
  653. nuitka/tree/ReformulationMultidist.py +22 -18
  654. nuitka/tree/ReformulationNamespacePackages.py +55 -46
  655. nuitka/tree/ReformulationPrintStatements.py +23 -24
  656. nuitka/tree/ReformulationSequenceCreation.py +50 -49
  657. nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
  658. nuitka/tree/ReformulationTryExceptStatements.py +19 -17
  659. nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
  660. nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
  661. nuitka/tree/ReformulationWithStatements.py +39 -41
  662. nuitka/tree/ReformulationYieldExpressions.py +21 -19
  663. nuitka/tree/SourceHandling.py +76 -31
  664. nuitka/tree/SyntaxErrors.py +19 -17
  665. nuitka/tree/TreeHelpers.py +33 -20
  666. nuitka/tree/VariableClosure.py +35 -39
  667. nuitka/tree/__init__.py +5 -4
  668. nuitka/utils/AppDirs.py +41 -20
  669. nuitka/utils/CStrings.py +66 -21
  670. nuitka/utils/CommandLineOptions.py +84 -19
  671. nuitka/utils/Distributions.py +445 -54
  672. nuitka/utils/Download.py +89 -57
  673. nuitka/utils/Execution.py +73 -34
  674. nuitka/utils/FileOperations.py +318 -74
  675. nuitka/utils/Hashing.py +55 -33
  676. nuitka/utils/Images.py +26 -19
  677. nuitka/utils/Importing.py +118 -24
  678. nuitka/utils/InstalledPythons.py +80 -75
  679. nuitka/utils/InstanceCounters.py +20 -17
  680. nuitka/utils/Jinja2.py +30 -22
  681. nuitka/utils/Json.py +19 -17
  682. nuitka/utils/MacOSApp.py +26 -18
  683. nuitka/utils/MemoryUsage.py +20 -18
  684. nuitka/utils/ModuleNames.py +42 -26
  685. nuitka/utils/ReExecute.py +50 -28
  686. nuitka/utils/Rest.py +20 -17
  687. nuitka/utils/SharedLibraries.py +161 -75
  688. nuitka/utils/Shebang.py +20 -17
  689. nuitka/utils/Signing.py +63 -18
  690. nuitka/utils/SlotMetaClasses.py +57 -0
  691. nuitka/utils/StaticLibraries.py +83 -56
  692. nuitka/utils/ThreadedExecutor.py +18 -17
  693. nuitka/utils/Timing.py +22 -20
  694. nuitka/utils/Utils.py +115 -25
  695. nuitka/utils/WindowsFileUsage.py +22 -20
  696. nuitka/utils/WindowsResources.py +25 -18
  697. nuitka/utils/Yaml.py +62 -24
  698. nuitka/utils/__init__.py +5 -4
  699. Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
  700. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
  701. nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
  702. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
  703. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
  704. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ Reformulation of contraction expressions.
19
5
 
20
6
  Consult the Developer Manual for information. TODO: Add ability to sync
@@ -67,20 +53,17 @@ from nuitka.nodes.StatementNodes import (
67
53
  )
68
54
  from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
69
55
  from nuitka.nodes.VariableRefNodes import ExpressionTempVariableRef
70
- from nuitka.nodes.VariableReleaseNodes import (
71
- makeStatementReleaseVariable,
72
- makeStatementsReleaseVariables,
73
- )
56
+ from nuitka.nodes.VariableReleaseNodes import makeStatementReleaseVariable
74
57
  from nuitka.nodes.YieldNodes import (
75
58
  ExpressionYield,
76
- ExpressionYieldFromWaitable,
59
+ ExpressionYieldFromAwaitable,
77
60
  )
78
61
  from nuitka.PythonVersions import python_version
79
62
 
80
63
  from .ReformulationAssignmentStatements import buildAssignmentStatements
81
64
  from .ReformulationBooleanExpressions import makeAndNode
82
65
  from .ReformulationTryExceptStatements import makeTryExceptSingleHandlerNode
83
- from .ReformulationTryFinallyStatements import makeTryFinallyStatement
66
+ from .ReformulationTryFinallyStatements import makeTryFinallyReleaseStatement
84
67
  from .TreeHelpers import (
85
68
  buildNode,
86
69
  buildNodeList,
@@ -100,7 +83,7 @@ def _makeIteratorCreation(provider, qual, for_asyncgen, source_ref):
100
83
  )
101
84
 
102
85
  if not for_asyncgen or python_version < 0x370:
103
- result = ExpressionYieldFromWaitable(
86
+ result = ExpressionYieldFromAwaitable(
104
87
  expression=result, source_ref=source_ref
105
88
  )
106
89
 
@@ -114,7 +97,7 @@ def _makeIteratorCreation(provider, qual, for_asyncgen, source_ref):
114
97
 
115
98
  def _makeIteratorNext(qual, iterator_ref, source_ref):
116
99
  if getattr(qual, "is_async", 0):
117
- return ExpressionYieldFromWaitable(
100
+ return ExpressionYieldFromAwaitable(
118
101
  expression=ExpressionAsyncNext(value=iterator_ref, source_ref=source_ref),
119
102
  source_ref=source_ref,
120
103
  )
@@ -140,13 +123,15 @@ def _buildPython2ListContraction(provider, node, source_ref):
140
123
  provider=provider, name="list_contraction", source_ref=source_ref
141
124
  )
142
125
 
143
- iter_tmp = function_body.allocateTempVariable(temp_scope=None, name=".0")
126
+ iter_tmp = function_body.allocateTempVariable(
127
+ temp_scope=None, name=".0", temp_type="object"
128
+ )
144
129
 
145
130
  container_tmp = function_body.allocateTempVariable(
146
- temp_scope=None, name="contraction_result"
131
+ temp_scope=None, name="contraction_result", temp_type="object"
147
132
  )
148
133
 
149
- statements, release_statements = _buildContractionBodyNode(
134
+ statements, release_variables = _buildContractionBodyNode(
150
135
  provider=provider,
151
136
  node=node,
152
137
  emit_class=StatementListOperationAppend,
@@ -167,10 +152,10 @@ def _buildPython2ListContraction(provider, node, source_ref):
167
152
  source_ref=source_ref,
168
153
  )
169
154
 
170
- statement = makeTryFinallyStatement(
155
+ statement = makeTryFinallyReleaseStatement(
171
156
  provider=function_body,
172
157
  tried=mergeStatements((statements, return_statement)),
173
- final=release_statements,
158
+ variables=release_variables,
174
159
  source_ref=source_ref.atInternal(),
175
160
  )
176
161
 
@@ -216,9 +201,11 @@ def buildDictContractionNode(provider, node, source_ref):
216
201
  provider=provider,
217
202
  node=node,
218
203
  name="<dictcontraction>",
219
- emit_class=StatementDictOperationSet
220
- if python_version < 0x380
221
- else StatementDictOperationSetKeyValue,
204
+ emit_class=(
205
+ StatementDictOperationSet
206
+ if python_version < 0x380
207
+ else StatementDictOperationSetKeyValue
208
+ ),
222
209
  start_value={},
223
210
  source_ref=source_ref,
224
211
  )
@@ -233,7 +220,9 @@ def buildGeneratorExpressionNode(provider, node, source_ref):
233
220
  provider=provider, name="genexpr", source_ref=source_ref
234
221
  )
235
222
 
236
- iter_tmp = function_body.allocateTempVariable(temp_scope=None, name=".0")
223
+ iter_tmp = function_body.allocateTempVariable(
224
+ temp_scope=None, name=".0", temp_type="object"
225
+ )
237
226
 
238
227
  parent_module = provider.getParentModule()
239
228
 
@@ -257,7 +246,7 @@ def buildGeneratorExpressionNode(provider, node, source_ref):
257
246
 
258
247
  # Some of the newly allowed stuff in 3.7 fails to set the async flag.
259
248
  if not is_async and python_version >= 0x370:
260
- is_async = detectFunctionBodyKind(nodes=node.generators)[0] in (
249
+ is_async = detectFunctionBodyKind(nodes=node.generators + [node.elt])[0] in (
261
250
  "Asyncgen",
262
251
  "Coroutine",
263
252
  )
@@ -297,7 +286,7 @@ def buildGeneratorExpressionNode(provider, node, source_ref):
297
286
  ),
298
287
  source_ref=source_ref,
299
288
  ),
300
- makeTryFinallyStatement(
289
+ makeTryFinallyReleaseStatement(
301
290
  provider=function_body,
302
291
  tried=StatementReturn(
303
292
  expression=maker_class(
@@ -308,15 +297,13 @@ def buildGeneratorExpressionNode(provider, node, source_ref):
308
297
  ),
309
298
  source_ref=source_ref,
310
299
  ),
311
- final=makeStatementReleaseVariable(
312
- variable=iter_tmp, source_ref=source_ref
313
- ),
300
+ variables=(iter_tmp,),
314
301
  source_ref=source_ref,
315
302
  ),
316
303
  )
317
304
  )
318
305
 
319
- statements, release_statements = _buildContractionBodyNode(
306
+ statements, release_variables = _buildContractionBodyNode(
320
307
  provider=provider,
321
308
  node=node,
322
309
  emit_class=ExpressionYield,
@@ -334,10 +321,10 @@ def buildGeneratorExpressionNode(provider, node, source_ref):
334
321
  statements += (StatementGeneratorReturnNone(source_ref=source_ref),)
335
322
 
336
323
  statements = (
337
- makeTryFinallyStatement(
324
+ makeTryFinallyReleaseStatement(
338
325
  provider=function_body,
339
326
  tried=statements,
340
- final=release_statements,
327
+ variables=release_variables,
341
328
  source_ref=source_ref.atInternal(),
342
329
  ),
343
330
  )
@@ -460,7 +447,7 @@ def _buildContractionBodyNode(
460
447
 
461
448
  for count, qual in enumerate(reversed(node.generators)):
462
449
  tmp_value_variable = function_body.allocateTempVariable(
463
- temp_scope=temp_scope, name="iter_value_%d" % count
450
+ temp_scope=temp_scope, name="iter_value_%d" % count, temp_type="object"
464
451
  )
465
452
 
466
453
  tmp_variables.append(tmp_value_variable)
@@ -473,7 +460,7 @@ def _buildContractionBodyNode(
473
460
  iterator_ref = makeVariableRefNode(variable=iter_tmp, source_ref=source_ref)
474
461
 
475
462
  if for_asyncgen and python_version >= 0x370:
476
- iterator_ref = ExpressionYieldFromWaitable(
463
+ iterator_ref = ExpressionYieldFromAwaitable(
477
464
  expression=iterator_ref, source_ref=source_ref
478
465
  )
479
466
 
@@ -490,7 +477,9 @@ def _buildContractionBodyNode(
490
477
  )
491
478
 
492
479
  tmp_iter_variable = function_body.allocateTempVariable(
493
- temp_scope=temp_scope, name="contraction_iter_%d" % count
480
+ temp_scope=temp_scope,
481
+ name="contraction_iter_%d" % count,
482
+ temp_type="object",
494
483
  )
495
484
 
496
485
  tmp_variables.append(tmp_iter_variable)
@@ -572,11 +561,7 @@ def _buildContractionBodyNode(
572
561
  statements.append(current_body)
573
562
  statements = mergeStatements(statements)
574
563
 
575
- release_statements = makeStatementsReleaseVariables(
576
- variables=tmp_variables, source_ref=source_ref
577
- )
578
-
579
- return statements, release_statements
564
+ return statements, tmp_variables
580
565
 
581
566
 
582
567
  def _buildContractionNode(provider, node, name, emit_class, start_value, source_ref):
@@ -589,13 +574,15 @@ def _buildContractionNode(provider, node, name, emit_class, start_value, source_
589
574
  provider=provider, name=intern(name[1:-1]), source_ref=source_ref
590
575
  )
591
576
 
592
- iter_tmp = function_body.allocateTempVariable(temp_scope=None, name=".0")
577
+ iter_tmp = function_body.allocateTempVariable(
578
+ temp_scope=None, name=".0", temp_type="object"
579
+ )
593
580
 
594
581
  container_tmp = function_body.allocateTempVariable(
595
- temp_scope=None, name="contraction"
582
+ temp_scope=None, name="contraction", temp_type="object"
596
583
  )
597
584
 
598
- statements, release_statements = _buildContractionBodyNode(
585
+ statements, release_variables = _buildContractionBodyNode(
599
586
  provider=provider,
600
587
  node=node,
601
588
  emit_class=emit_class,
@@ -628,10 +615,10 @@ def _buildContractionNode(provider, node, name, emit_class, start_value, source_
628
615
  )
629
616
 
630
617
  statements = (
631
- makeTryFinallyStatement(
618
+ makeTryFinallyReleaseStatement(
632
619
  provider=function_body,
633
620
  tried=mergeStatements((statements, return_statement)),
634
- final=release_statements,
621
+ variables=release_variables,
635
622
  source_ref=source_ref.atInternal(),
636
623
  ),
637
624
  )
@@ -669,3 +656,19 @@ def _buildContractionNode(provider, node, name, emit_class, start_value, source_
669
656
  function_body.setChildBody(body)
670
657
 
671
658
  return function_body
659
+
660
+
661
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
662
+ # integrates with CPython, but also works on its own.
663
+ #
664
+ # Licensed under the Apache License, Version 2.0 (the "License");
665
+ # you may not use this file except in compliance with the License.
666
+ # You may obtain a copy of the License at
667
+ #
668
+ # http://www.apache.org/licenses/LICENSE-2.0
669
+ #
670
+ # Unless required by applicable law or agreed to in writing, software
671
+ # distributed under the License is distributed on an "AS IS" BASIS,
672
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
673
+ # See the License for the specific language governing permissions and
674
+ # limitations under the License.
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ Reformulation of dictionary creations.
19
5
 
20
6
  Dictionary creations might be directly translated to constants, or they might
@@ -61,7 +47,6 @@ from nuitka.nodes.VariableRefNodes import (
61
47
  ExpressionTempVariableRef,
62
48
  ExpressionVariableRef,
63
49
  )
64
- from nuitka.nodes.VariableReleaseNodes import makeStatementsReleaseVariables
65
50
  from nuitka.PythonVersions import python_version
66
51
  from nuitka.specs.ParameterSpecs import ParameterSpec
67
52
 
@@ -71,7 +56,7 @@ from .InternalModule import (
71
56
  once_decorator,
72
57
  )
73
58
  from .ReformulationTryExceptStatements import makeTryExceptSingleHandlerNode
74
- from .ReformulationTryFinallyStatements import makeTryFinallyStatement
59
+ from .ReformulationTryFinallyStatements import makeTryFinallyReleaseStatement
75
60
  from .TreeHelpers import (
76
61
  buildNode,
77
62
  buildNodeTuple,
@@ -85,7 +70,10 @@ def buildDictionaryNode(provider, node, source_ref):
85
70
  for key in node.keys:
86
71
  if key is None:
87
72
  return buildDictionaryUnpacking(
88
- provider=provider, node=node, source_ref=source_ref
73
+ provider=provider,
74
+ keys=node.keys,
75
+ values=node.values,
76
+ source_ref=source_ref,
89
77
  )
90
78
 
91
79
  return makeExpressionMakeDictOrConstant(
@@ -117,9 +105,15 @@ def getDictUnpackingHelper():
117
105
 
118
106
  temp_scope = None
119
107
 
120
- tmp_result_variable = result.allocateTempVariable(temp_scope, "dict")
121
- tmp_iter_variable = result.allocateTempVariable(temp_scope, "iter")
122
- tmp_item_variable = result.allocateTempVariable(temp_scope, "keys")
108
+ tmp_result_variable = result.allocateTempVariable(
109
+ temp_scope, "dict", temp_type="object"
110
+ )
111
+ tmp_iter_variable = result.allocateTempVariable(
112
+ temp_scope, "iter", temp_type="object"
113
+ )
114
+ tmp_item_variable = result.allocateTempVariable(
115
+ temp_scope, "keys", temp_type="object"
116
+ )
123
117
 
124
118
  loop_body = makeStatementsSequenceFromStatements(
125
119
  makeTryExceptSingleHandlerNode(
@@ -219,16 +213,13 @@ def getDictUnpackingHelper():
219
213
 
220
214
  result.setChildBody(
221
215
  makeStatementsSequenceFromStatement(
222
- makeTryFinallyStatement(
216
+ makeTryFinallyReleaseStatement(
223
217
  provider=result,
224
218
  tried=tried,
225
- final=makeStatementsReleaseVariables(
226
- variables=(
227
- tmp_result_variable,
228
- tmp_iter_variable,
229
- tmp_item_variable,
230
- ),
231
- source_ref=internal_source_ref,
219
+ variables=(
220
+ tmp_result_variable,
221
+ tmp_iter_variable,
222
+ tmp_item_variable,
232
223
  ),
233
224
  source_ref=internal_source_ref,
234
225
  )
@@ -274,10 +265,8 @@ def buildDictionaryUnpackingArgs(provider, keys, values, source_ref):
274
265
  return tuple(result)
275
266
 
276
267
 
277
- def buildDictionaryUnpacking(provider, node, source_ref):
278
- helper_args = buildDictionaryUnpackingArgs(
279
- provider, node.keys, node.values, source_ref
280
- )
268
+ def buildDictionaryUnpacking(provider, keys, values, source_ref):
269
+ helper_args = buildDictionaryUnpackingArgs(provider, keys, values, source_ref)
281
270
 
282
271
  result = makeExpressionFunctionCall(
283
272
  function=makeExpressionFunctionCreation(
@@ -296,3 +285,19 @@ def buildDictionaryUnpacking(provider, node, source_ref):
296
285
  result.setCompatibleSourceReference(helper_args[-1].getCompatibleSourceReference())
297
286
 
298
287
  return result
288
+
289
+
290
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
291
+ # integrates with CPython, but also works on its own.
292
+ #
293
+ # Licensed under the Apache License, Version 2.0 (the "License");
294
+ # you may not use this file except in compliance with the License.
295
+ # You may obtain a copy of the License at
296
+ #
297
+ # http://www.apache.org/licenses/LICENSE-2.0
298
+ #
299
+ # Unless required by applicable law or agreed to in writing, software
300
+ # distributed under the License is distributed on an "AS IS" BASIS,
301
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
302
+ # See the License for the specific language governing permissions and
303
+ # limitations under the License.
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ Reformulation of "exec" statements
19
5
 
20
6
  Consult the Developer Manual for information. TODO: Add ability to sync
@@ -40,7 +26,10 @@ from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
40
26
  from nuitka.nodes.VariableRefNodes import ExpressionTempVariableRef
41
27
  from nuitka.nodes.VariableReleaseNodes import makeStatementsReleaseVariables
42
28
 
43
- from .ReformulationTryFinallyStatements import makeTryFinallyStatement
29
+ from .ReformulationTryFinallyStatements import (
30
+ makeTryFinallyReleaseStatement,
31
+ makeTryFinallyStatement,
32
+ )
44
33
  from .TreeHelpers import (
45
34
  buildNode,
46
35
  getKind,
@@ -62,11 +51,11 @@ def wrapEvalGlobalsAndLocals(
62
51
  locals_scope = provider.getLocalsScope()
63
52
 
64
53
  globals_keeper_variable = provider.allocateTempVariable(
65
- temp_scope=temp_scope, name="globals"
54
+ temp_scope=temp_scope, name="globals", temp_type="object"
66
55
  )
67
56
 
68
57
  locals_keeper_variable = provider.allocateTempVariable(
69
- temp_scope=temp_scope, name="locals"
58
+ temp_scope=temp_scope, name="locals", temp_type="object"
70
59
  )
71
60
 
72
61
  if locals_node is None:
@@ -156,15 +145,17 @@ def wrapEvalGlobalsAndLocals(
156
145
  return (
157
146
  ExpressionTempVariableRef(
158
147
  variable=globals_keeper_variable,
159
- source_ref=source_ref
160
- if globals_node is None
161
- else globals_node.getSourceReference(),
148
+ source_ref=(
149
+ source_ref
150
+ if globals_node is None
151
+ else globals_node.getSourceReference()
152
+ ),
162
153
  ),
163
154
  ExpressionTempVariableRef(
164
155
  variable=locals_keeper_variable,
165
- source_ref=source_ref
166
- if locals_node is None
167
- else locals_node.getSourceReference(),
156
+ source_ref=(
157
+ source_ref if locals_node is None else locals_node.getSourceReference()
158
+ ),
168
159
  ),
169
160
  makeStatementsSequence(pre_statements, False, source_ref),
170
161
  makeStatementsSequence(post_statements, False, source_ref),
@@ -223,19 +214,19 @@ exec: arg 1 must be a string, file, or code object""",
223
214
  source_code = buildNode(provider, body, source_ref)
224
215
 
225
216
  source_variable = provider.allocateTempVariable(
226
- temp_scope=temp_scope, name="exec_source"
217
+ temp_scope=temp_scope, name="exec_source", temp_type="object"
227
218
  )
228
219
 
229
220
  globals_keeper_variable = provider.allocateTempVariable(
230
- temp_scope=temp_scope, name="globals"
221
+ temp_scope=temp_scope, name="globals", temp_type="object"
231
222
  )
232
223
 
233
224
  locals_keeper_variable = provider.allocateTempVariable(
234
- temp_scope=temp_scope, name="locals"
225
+ temp_scope=temp_scope, name="locals", temp_type="object"
235
226
  )
236
227
 
237
228
  plain_indicator_variable = provider.allocateTempVariable(
238
- temp_scope=temp_scope, name="plain"
229
+ temp_scope=temp_scope, name="plain", temp_type="bool"
239
230
  )
240
231
 
241
232
  tried = (
@@ -363,17 +354,14 @@ exec: arg 1 must be a string, file, or code object""",
363
354
  ),
364
355
  )
365
356
 
366
- return makeTryFinallyStatement(
357
+ return makeTryFinallyReleaseStatement(
367
358
  provider=provider,
368
359
  tried=tried,
369
- final=makeStatementsReleaseVariables(
370
- variables=(
371
- source_variable,
372
- globals_keeper_variable,
373
- locals_keeper_variable,
374
- plain_indicator_variable,
375
- ),
376
- source_ref=source_ref,
360
+ variables=(
361
+ source_variable,
362
+ globals_keeper_variable,
363
+ locals_keeper_variable,
364
+ plain_indicator_variable,
377
365
  ),
378
366
  source_ref=source_ref,
379
367
  )
@@ -381,3 +369,18 @@ exec: arg 1 must be a string, file, or code object""",
381
369
 
382
370
  # This is here, to make sure it can register, pylint: disable=W0611
383
371
  import nuitka.optimizations.OptimizeBuiltinCalls # isort:skip
372
+
373
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
374
+ # integrates with CPython, but also works on its own.
375
+ #
376
+ # Licensed under the Apache License, Version 2.0 (the "License");
377
+ # you may not use this file except in compliance with the License.
378
+ # You may obtain a copy of the License at
379
+ #
380
+ # http://www.apache.org/licenses/LICENSE-2.0
381
+ #
382
+ # Unless required by applicable law or agreed to in writing, software
383
+ # distributed under the License is distributed on an "AS IS" BASIS,
384
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
385
+ # See the License for the specific language governing permissions and
386
+ # limitations under the License.
@@ -1,20 +1,6 @@
1
- # Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- #
3
- # Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- # integrates with CPython, but also works on its own.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
1
+ # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
18
4
  """ Reformulation of for loop statements.
19
5
 
20
6
  Consult the Developer Manual for information. TODO: Add ability to sync
@@ -32,15 +18,13 @@ from nuitka.nodes.ComparisonNodes import ExpressionComparisonIs
32
18
  from nuitka.nodes.ConditionalNodes import makeStatementConditional
33
19
  from nuitka.nodes.ConstantRefNodes import makeConstantRefNode
34
20
  from nuitka.nodes.LoopNodes import StatementLoop, StatementLoopBreak
35
- from nuitka.nodes.StatementNodes import StatementsSequence
36
21
  from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
37
22
  from nuitka.nodes.VariableRefNodes import ExpressionTempVariableRef
38
- from nuitka.nodes.VariableReleaseNodes import makeStatementReleaseVariable
39
- from nuitka.nodes.YieldNodes import ExpressionYieldFromWaitable
23
+ from nuitka.nodes.YieldNodes import ExpressionYieldFromAwaitable
40
24
 
41
25
  from .ReformulationAssignmentStatements import buildAssignmentStatements
42
26
  from .ReformulationTryExceptStatements import makeTryExceptSingleHandlerNode
43
- from .ReformulationTryFinallyStatements import makeTryFinallyStatement
27
+ from .ReformulationTryFinallyStatements import makeTryFinallyReleaseStatement
44
28
  from .TreeHelpers import (
45
29
  buildNode,
46
30
  buildStatementsNode,
@@ -66,10 +50,10 @@ def _buildForLoopNode(provider, node, sync, source_ref):
66
50
  temp_scope = provider.allocateTempScope("for_loop")
67
51
 
68
52
  tmp_iter_variable = provider.allocateTempVariable(
69
- temp_scope=temp_scope, name="for_iterator"
53
+ temp_scope=temp_scope, name="for_iterator", temp_type="object"
70
54
  )
71
55
  tmp_value_variable = provider.allocateTempVariable(
72
- temp_scope=temp_scope, name="iter_value"
56
+ temp_scope=temp_scope, name="iter_value", temp_type="object"
73
57
  )
74
58
 
75
59
  else_block = buildStatementsNode(
@@ -108,7 +92,7 @@ def _buildForLoopNode(provider, node, sync, source_ref):
108
92
  source_ref=source_ref,
109
93
  )
110
94
  else:
111
- next_node = ExpressionYieldFromWaitable(
95
+ next_node = ExpressionYieldFromAwaitable(
112
96
  expression=ExpressionAsyncNext(
113
97
  value=ExpressionTempVariableRef(
114
98
  variable=tmp_iter_variable, source_ref=source_ref
@@ -147,11 +131,9 @@ def _buildForLoopNode(provider, node, sync, source_ref):
147
131
  statements=statements, allow_none=True, source_ref=source_ref
148
132
  )
149
133
 
150
- cleanup_statements = (
151
- makeStatementReleaseVariable(
152
- variable=tmp_value_variable, source_ref=source_ref
153
- ),
154
- makeStatementReleaseVariable(variable=tmp_iter_variable, source_ref=source_ref),
134
+ cleanup_variables = (
135
+ tmp_value_variable,
136
+ tmp_iter_variable,
155
137
  )
156
138
 
157
139
  if else_block is not None:
@@ -170,7 +152,7 @@ def _buildForLoopNode(provider, node, sync, source_ref):
170
152
  value=source, source_ref=source.getSourceReference()
171
153
  )
172
154
  else:
173
- iter_source = ExpressionYieldFromWaitable(
155
+ iter_source = ExpressionYieldFromAwaitable(
174
156
  expression=ExpressionAsyncIter(
175
157
  value=source, source_ref=source.getSourceReference()
176
158
  ),
@@ -182,12 +164,10 @@ def _buildForLoopNode(provider, node, sync, source_ref):
182
164
  makeStatementAssignmentVariable(
183
165
  variable=tmp_iter_variable, source=iter_source, source_ref=source_ref
184
166
  ),
185
- makeTryFinallyStatement(
167
+ makeTryFinallyReleaseStatement(
186
168
  provider=provider,
187
169
  tried=StatementLoop(loop_body=loop_body, source_ref=source_ref),
188
- final=StatementsSequence(
189
- statements=cleanup_statements, source_ref=source_ref
190
- ),
170
+ variables=cleanup_variables,
191
171
  source_ref=source_ref,
192
172
  ),
193
173
  )
@@ -217,3 +197,19 @@ def buildForLoopNode(provider, node, source_ref):
217
197
 
218
198
  def buildAsyncForLoopNode(provider, node, source_ref):
219
199
  return _buildForLoopNode(provider, node, False, source_ref)
200
+
201
+
202
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
203
+ # integrates with CPython, but also works on its own.
204
+ #
205
+ # Licensed under the Apache License, Version 2.0 (the "License");
206
+ # you may not use this file except in compliance with the License.
207
+ # You may obtain a copy of the License at
208
+ #
209
+ # http://www.apache.org/licenses/LICENSE-2.0
210
+ #
211
+ # Unless required by applicable law or agreed to in writing, software
212
+ # distributed under the License is distributed on an "AS IS" BASIS,
213
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
214
+ # See the License for the specific language governing permissions and
215
+ # limitations under the License.