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,33 +1,34 @@
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
  # We are not avoiding these in generated code at all
19
- # pylint: disable=I0021,too-many-lines
20
- # pylint: disable=I0021,line-too-long
21
- # pylint: disable=I0021,too-many-instance-attributes
22
- # pylint: disable=I0021,too-many-return-statements
5
+ # pylint: disable=I0021,line-too-long,too-many-instance-attributes,too-many-lines
6
+ # pylint: disable=I0021,too-many-arguments,too-many-return-statements,too-many-statements
23
7
 
24
8
 
25
9
  """Hard import nodes
26
10
 
27
11
  WARNING, this code is GENERATED. Modify the template HardImportReferenceNode.py.j2 instead!
28
12
 
29
- spell-checker: ignore append capitalize casefold center clear copy count decode encode endswith expandtabs extend find format formatmap fromkeys get haskey index insert isalnum isalpha isascii isdecimal isdigit isidentifier islower isnumeric isprintable isspace istitle isupper items iteritems iterkeys itervalues join keys ljust lower lstrip maketrans partition pop popitem prepare remove replace reverse rfind rindex rjust rpartition rsplit rstrip setdefault sort split splitlines startswith strip swapcase title translate update upper values viewitems viewkeys viewvalues zfill
30
- spell-checker: ignore args chars count default delete encoding end errors fillchar index item iterable keepends key kwargs maxsplit new old pairs prefix sep start stop sub suffix table tabsize value width
13
+ spell-checker: ignore __prepare__ append args autograph capitalize casefold center chars
14
+ spell-checker: ignore clear copy count decode default delete dist distribution_name encode
15
+ spell-checker: ignore encoding end endswith errors exit_code expandtabs
16
+ spell-checker: ignore experimental_attributes experimental_autograph_options
17
+ spell-checker: ignore experimental_compile experimental_follow_type_hints
18
+ spell-checker: ignore experimental_implements experimental_relax_shapes extend fillchar
19
+ spell-checker: ignore find format format_map formatmap fromkeys func get group handle
20
+ spell-checker: ignore has_key haskey index input_signature insert isalnum isalpha isascii
21
+ spell-checker: ignore isdecimal isdigit isidentifier islower isnumeric isprintable isspace
22
+ spell-checker: ignore istitle isupper item items iterable iteritems iterkeys itervalues
23
+ spell-checker: ignore jit_compile join keepends key keys kwargs ljust lower lstrip
24
+ spell-checker: ignore maketrans maxsplit mode name new old p package
25
+ spell-checker: ignore package_or_requirement pairs partition path pop popitem prefix
26
+ spell-checker: ignore prepare reduce_retracing remove replace resource resource_name
27
+ spell-checker: ignore reverse rfind rindex rjust rpartition rsplit rstrip s sep setdefault
28
+ spell-checker: ignore sort split splitlines start startswith stop strip sub suffix
29
+ spell-checker: ignore swapcase table tabsize title translate update upper use_errno
30
+ spell-checker: ignore use_last_error value values viewitems viewkeys viewvalues width
31
+ spell-checker: ignore winmode zfill
31
32
  """
32
33
  import os
33
34
  from abc import abstractmethod
@@ -56,10 +57,12 @@ from nuitka.specs.HardImportSpecs import (
56
57
  os_listdir_spec,
57
58
  os_path_abspath_spec,
58
59
  os_path_basename_spec,
60
+ os_path_dirname_spec,
59
61
  os_path_exists_spec,
60
62
  os_path_isabs_spec,
61
63
  os_path_isdir_spec,
62
64
  os_path_isfile_spec,
65
+ os_path_normpath_spec,
63
66
  os_uname_spec,
64
67
  pkg_resources_get_distribution_spec,
65
68
  pkg_resources_iter_entry_points_spec,
@@ -67,11 +70,14 @@ from nuitka.specs.HardImportSpecs import (
67
70
  pkg_resources_resource_stream_spec,
68
71
  pkg_resources_resource_string_spec,
69
72
  pkgutil_get_data_spec,
73
+ sys_exit_spec,
74
+ tensorflow_function_spec,
70
75
  )
71
76
 
72
77
  from .ChildrenHavingMixins import (
73
78
  ChildHavingDistMixin,
74
79
  ChildHavingDistributionNameMixin,
80
+ ChildHavingExitCodeOptionalMixin,
75
81
  ChildHavingPackageMixin,
76
82
  ChildHavingParamsTupleMixin,
77
83
  ChildHavingPathMixin,
@@ -79,9 +85,10 @@ from .ChildrenHavingMixins import (
79
85
  ChildHavingPMixin,
80
86
  ChildHavingRequirementsTupleMixin,
81
87
  ChildHavingSMixin,
88
+ ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin,
82
89
  ChildrenHavingGroupNameOptionalMixin,
83
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin,
84
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin,
90
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin,
91
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin,
85
92
  ChildrenHavingPackageOrRequirementResourceNameMixin,
86
93
  ChildrenHavingPackageResourceEncodingOptionalErrorsOptionalMixin,
87
94
  ChildrenHavingPackageResourceMixin,
@@ -152,7 +159,7 @@ hard_import_node_classes[ExpressionCtypesCdllRef] = ctypes_cdll_since_38_spec
152
159
 
153
160
 
154
161
  class ExpressionCtypesCdllSince38CallBase(
155
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin,
162
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin,
156
163
  ExpressionBase,
157
164
  ):
158
165
  """Base class for CtypesCdllCall
@@ -167,7 +174,7 @@ class ExpressionCtypesCdllSince38CallBase(
167
174
  "mode|optional",
168
175
  "handle|optional",
169
176
  "use_errno|optional",
170
- "use_lasterror|optional",
177
+ "use_last_error|optional",
171
178
  "winmode|optional",
172
179
  )
173
180
 
@@ -176,22 +183,22 @@ class ExpressionCtypesCdllSince38CallBase(
176
183
  spec = ctypes_cdll_since_38_spec
177
184
 
178
185
  def __init__(
179
- self, name, mode, handle, use_errno, use_lasterror, winmode, source_ref
186
+ self, name, mode, handle, use_errno, use_last_error, winmode, source_ref
180
187
  ):
181
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin.__init__(
188
+
189
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin.__init__(
182
190
  self,
183
191
  name=name,
184
192
  mode=mode,
185
193
  handle=handle,
186
194
  use_errno=use_errno,
187
- use_lasterror=use_lasterror,
195
+ use_last_error=use_last_error,
188
196
  winmode=winmode,
189
197
  )
190
198
 
191
199
  ExpressionBase.__init__(self, source_ref)
192
200
 
193
- # In module mode, we expect a changing environment, cannot optimize this
194
- self.attempted = shallMakeModule()
201
+ self.attempted = False
195
202
 
196
203
  def computeExpression(self, trace_collection):
197
204
  if self.attempted or not ctypes_cdll_since_38_spec.isCompileTimeComputable(
@@ -200,7 +207,7 @@ class ExpressionCtypesCdllSince38CallBase(
200
207
  self.subnode_mode,
201
208
  self.subnode_handle,
202
209
  self.subnode_use_errno,
203
- self.subnode_use_lasterror,
210
+ self.subnode_use_last_error,
204
211
  self.subnode_winmode,
205
212
  )
206
213
  ):
@@ -223,7 +230,7 @@ class ExpressionCtypesCdllSince38CallBase(
223
230
 
224
231
 
225
232
  class ExpressionCtypesCdllBefore38CallBase(
226
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin,
233
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin,
227
234
  ExpressionBase,
228
235
  ):
229
236
  """Base class for CtypesCdllCall
@@ -238,27 +245,27 @@ class ExpressionCtypesCdllBefore38CallBase(
238
245
  "mode|optional",
239
246
  "handle|optional",
240
247
  "use_errno|optional",
241
- "use_lasterror|optional",
248
+ "use_last_error|optional",
242
249
  )
243
250
 
244
251
  __slots__ = ("attempted",)
245
252
 
246
253
  spec = ctypes_cdll_before_38_spec
247
254
 
248
- def __init__(self, name, mode, handle, use_errno, use_lasterror, source_ref):
249
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin.__init__(
255
+ def __init__(self, name, mode, handle, use_errno, use_last_error, source_ref):
256
+
257
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin.__init__(
250
258
  self,
251
259
  name=name,
252
260
  mode=mode,
253
261
  handle=handle,
254
262
  use_errno=use_errno,
255
- use_lasterror=use_lasterror,
263
+ use_last_error=use_last_error,
256
264
  )
257
265
 
258
266
  ExpressionBase.__init__(self, source_ref)
259
267
 
260
- # In module mode, we expect a changing environment, cannot optimize this
261
- self.attempted = shallMakeModule()
268
+ self.attempted = False
262
269
 
263
270
  def computeExpression(self, trace_collection):
264
271
  if self.attempted or not ctypes_cdll_before_38_spec.isCompileTimeComputable(
@@ -267,7 +274,7 @@ class ExpressionCtypesCdllBefore38CallBase(
267
274
  self.subnode_mode,
268
275
  self.subnode_handle,
269
276
  self.subnode_use_errno,
270
- self.subnode_use_lasterror,
277
+ self.subnode_use_last_error,
271
278
  )
272
279
  ):
273
280
  trace_collection.onExceptionRaiseExit(BaseException)
@@ -326,9 +333,9 @@ class ExpressionImportlibMetadataBackportDistributionRef(
326
333
  )
327
334
 
328
335
 
329
- hard_import_node_classes[
330
- ExpressionImportlibMetadataBackportDistributionRef
331
- ] = importlib_metadata_backport_distribution_spec
336
+ hard_import_node_classes[ExpressionImportlibMetadataBackportDistributionRef] = (
337
+ importlib_metadata_backport_distribution_spec
338
+ )
332
339
 
333
340
 
334
341
  class ExpressionImportlibMetadataBackportDistributionCallBase(
@@ -346,6 +353,7 @@ class ExpressionImportlibMetadataBackportDistributionCallBase(
346
353
  spec = importlib_metadata_backport_distribution_spec
347
354
 
348
355
  def __init__(self, distribution_name, source_ref):
356
+
349
357
  ChildHavingDistributionNameMixin.__init__(
350
358
  self,
351
359
  distribution_name=distribution_name,
@@ -419,9 +427,9 @@ class ExpressionImportlibMetadataBackportEntryPointsRef(
419
427
  )
420
428
 
421
429
 
422
- hard_import_node_classes[
423
- ExpressionImportlibMetadataBackportEntryPointsRef
424
- ] = importlib_metadata_backport_entry_points_spec
430
+ hard_import_node_classes[ExpressionImportlibMetadataBackportEntryPointsRef] = (
431
+ importlib_metadata_backport_entry_points_spec
432
+ )
425
433
 
426
434
 
427
435
  class ExpressionImportlibMetadataBackportEntryPointsCallBase(
@@ -439,6 +447,7 @@ class ExpressionImportlibMetadataBackportEntryPointsCallBase(
439
447
  spec = importlib_metadata_backport_entry_points_spec
440
448
 
441
449
  def __init__(self, params, source_ref):
450
+
442
451
  ChildHavingParamsTupleMixin.__init__(
443
452
  self,
444
453
  params=params,
@@ -512,9 +521,9 @@ class ExpressionImportlibMetadataBackportMetadataRef(
512
521
  )
513
522
 
514
523
 
515
- hard_import_node_classes[
516
- ExpressionImportlibMetadataBackportMetadataRef
517
- ] = importlib_metadata_backport_metadata_spec
524
+ hard_import_node_classes[ExpressionImportlibMetadataBackportMetadataRef] = (
525
+ importlib_metadata_backport_metadata_spec
526
+ )
518
527
 
519
528
 
520
529
  class ExpressionImportlibMetadataBackportMetadataCallBase(
@@ -532,6 +541,7 @@ class ExpressionImportlibMetadataBackportMetadataCallBase(
532
541
  spec = importlib_metadata_backport_metadata_spec
533
542
 
534
543
  def __init__(self, distribution_name, source_ref):
544
+
535
545
  ChildHavingDistributionNameMixin.__init__(
536
546
  self,
537
547
  distribution_name=distribution_name,
@@ -605,9 +615,9 @@ class ExpressionImportlibMetadataBackportVersionRef(
605
615
  )
606
616
 
607
617
 
608
- hard_import_node_classes[
609
- ExpressionImportlibMetadataBackportVersionRef
610
- ] = importlib_metadata_backport_version_spec
618
+ hard_import_node_classes[ExpressionImportlibMetadataBackportVersionRef] = (
619
+ importlib_metadata_backport_version_spec
620
+ )
611
621
 
612
622
 
613
623
  class ExpressionImportlibMetadataBackportVersionCallBase(
@@ -625,6 +635,7 @@ class ExpressionImportlibMetadataBackportVersionCallBase(
625
635
  spec = importlib_metadata_backport_version_spec
626
636
 
627
637
  def __init__(self, distribution_name, source_ref):
638
+
628
639
  ChildHavingDistributionNameMixin.__init__(
629
640
  self,
630
641
  distribution_name=distribution_name,
@@ -698,9 +709,9 @@ class ExpressionImportlibMetadataDistributionRef(
698
709
  )
699
710
 
700
711
 
701
- hard_import_node_classes[
702
- ExpressionImportlibMetadataDistributionRef
703
- ] = importlib_metadata_distribution_spec
712
+ hard_import_node_classes[ExpressionImportlibMetadataDistributionRef] = (
713
+ importlib_metadata_distribution_spec
714
+ )
704
715
 
705
716
 
706
717
  class ExpressionImportlibMetadataDistributionCallBase(
@@ -718,6 +729,7 @@ class ExpressionImportlibMetadataDistributionCallBase(
718
729
  spec = importlib_metadata_distribution_spec
719
730
 
720
731
  def __init__(self, distribution_name, source_ref):
732
+
721
733
  ChildHavingDistributionNameMixin.__init__(
722
734
  self,
723
735
  distribution_name=distribution_name,
@@ -725,8 +737,7 @@ class ExpressionImportlibMetadataDistributionCallBase(
725
737
 
726
738
  ExpressionBase.__init__(self, source_ref)
727
739
 
728
- # In module mode, we expect a changing environment, cannot optimize this
729
- self.attempted = shallMakeModule()
740
+ self.attempted = False
730
741
 
731
742
  def computeExpression(self, trace_collection):
732
743
  if (
@@ -809,9 +820,9 @@ class ExpressionImportlibMetadataEntryPointsRef(
809
820
  )
810
821
 
811
822
 
812
- hard_import_node_classes[
813
- ExpressionImportlibMetadataEntryPointsRef
814
- ] = importlib_metadata_entry_points_since_310_spec
823
+ hard_import_node_classes[ExpressionImportlibMetadataEntryPointsRef] = (
824
+ importlib_metadata_entry_points_since_310_spec
825
+ )
815
826
 
816
827
 
817
828
  class ExpressionImportlibMetadataEntryPointsSince310CallBase(
@@ -831,6 +842,7 @@ class ExpressionImportlibMetadataEntryPointsSince310CallBase(
831
842
  spec = importlib_metadata_entry_points_since_310_spec
832
843
 
833
844
  def __init__(self, params, source_ref):
845
+
834
846
  ChildHavingParamsTupleMixin.__init__(
835
847
  self,
836
848
  params=params,
@@ -838,8 +850,7 @@ class ExpressionImportlibMetadataEntryPointsSince310CallBase(
838
850
 
839
851
  ExpressionBase.__init__(self, source_ref)
840
852
 
841
- # In module mode, we expect a changing environment, cannot optimize this
842
- self.attempted = shallMakeModule()
853
+ self.attempted = False
843
854
 
844
855
  def computeExpression(self, trace_collection):
845
856
  if (
@@ -881,10 +892,10 @@ class ExpressionImportlibMetadataEntryPointsBefore310CallBase(
881
892
  spec = importlib_metadata_entry_points_before_310_spec
882
893
 
883
894
  def __init__(self, source_ref):
895
+
884
896
  ExpressionBase.__init__(self, source_ref)
885
897
 
886
- # In module mode, we expect a changing environment, cannot optimize this
887
- self.attempted = shallMakeModule()
898
+ self.attempted = False
888
899
 
889
900
  def finalize(self):
890
901
  del self.parent
@@ -947,9 +958,9 @@ class ExpressionImportlibMetadataMetadataRef(
947
958
  )
948
959
 
949
960
 
950
- hard_import_node_classes[
951
- ExpressionImportlibMetadataMetadataRef
952
- ] = importlib_metadata_metadata_spec
961
+ hard_import_node_classes[ExpressionImportlibMetadataMetadataRef] = (
962
+ importlib_metadata_metadata_spec
963
+ )
953
964
 
954
965
 
955
966
  class ExpressionImportlibMetadataMetadataCallBase(
@@ -967,6 +978,7 @@ class ExpressionImportlibMetadataMetadataCallBase(
967
978
  spec = importlib_metadata_metadata_spec
968
979
 
969
980
  def __init__(self, distribution_name, source_ref):
981
+
970
982
  ChildHavingDistributionNameMixin.__init__(
971
983
  self,
972
984
  distribution_name=distribution_name,
@@ -974,8 +986,7 @@ class ExpressionImportlibMetadataMetadataCallBase(
974
986
 
975
987
  ExpressionBase.__init__(self, source_ref)
976
988
 
977
- # In module mode, we expect a changing environment, cannot optimize this
978
- self.attempted = shallMakeModule()
989
+ self.attempted = False
979
990
 
980
991
  def computeExpression(self, trace_collection):
981
992
  if (
@@ -1040,9 +1051,9 @@ class ExpressionImportlibMetadataVersionRef(
1040
1051
  )
1041
1052
 
1042
1053
 
1043
- hard_import_node_classes[
1044
- ExpressionImportlibMetadataVersionRef
1045
- ] = importlib_metadata_version_spec
1054
+ hard_import_node_classes[ExpressionImportlibMetadataVersionRef] = (
1055
+ importlib_metadata_version_spec
1056
+ )
1046
1057
 
1047
1058
 
1048
1059
  class ExpressionImportlibMetadataVersionCallBase(
@@ -1060,6 +1071,7 @@ class ExpressionImportlibMetadataVersionCallBase(
1060
1071
  spec = importlib_metadata_version_spec
1061
1072
 
1062
1073
  def __init__(self, distribution_name, source_ref):
1074
+
1063
1075
  ChildHavingDistributionNameMixin.__init__(
1064
1076
  self,
1065
1077
  distribution_name=distribution_name,
@@ -1067,8 +1079,7 @@ class ExpressionImportlibMetadataVersionCallBase(
1067
1079
 
1068
1080
  ExpressionBase.__init__(self, source_ref)
1069
1081
 
1070
- # In module mode, we expect a changing environment, cannot optimize this
1071
- self.attempted = shallMakeModule()
1082
+ self.attempted = False
1072
1083
 
1073
1084
  def computeExpression(self, trace_collection):
1074
1085
  if (
@@ -1133,9 +1144,9 @@ class ExpressionImportlibResourcesBackportFilesRef(
1133
1144
  )
1134
1145
 
1135
1146
 
1136
- hard_import_node_classes[
1137
- ExpressionImportlibResourcesBackportFilesRef
1138
- ] = importlib_resources_backport_files_spec
1147
+ hard_import_node_classes[ExpressionImportlibResourcesBackportFilesRef] = (
1148
+ importlib_resources_backport_files_spec
1149
+ )
1139
1150
 
1140
1151
 
1141
1152
  class ExpressionImportlibResourcesBackportFilesCallBase(
@@ -1153,6 +1164,7 @@ class ExpressionImportlibResourcesBackportFilesCallBase(
1153
1164
  spec = importlib_resources_backport_files_spec
1154
1165
 
1155
1166
  def __init__(self, package, source_ref):
1167
+
1156
1168
  ChildHavingPackageMixin.__init__(
1157
1169
  self,
1158
1170
  package=package,
@@ -1226,9 +1238,9 @@ class ExpressionImportlibResourcesBackportReadBinaryRef(
1226
1238
  )
1227
1239
 
1228
1240
 
1229
- hard_import_node_classes[
1230
- ExpressionImportlibResourcesBackportReadBinaryRef
1231
- ] = importlib_resources_backport_read_binary_spec
1241
+ hard_import_node_classes[ExpressionImportlibResourcesBackportReadBinaryRef] = (
1242
+ importlib_resources_backport_read_binary_spec
1243
+ )
1232
1244
 
1233
1245
 
1234
1246
  class ExpressionImportlibResourcesBackportReadBinaryCallBase(
@@ -1249,6 +1261,7 @@ class ExpressionImportlibResourcesBackportReadBinaryCallBase(
1249
1261
  spec = importlib_resources_backport_read_binary_spec
1250
1262
 
1251
1263
  def __init__(self, package, resource, source_ref):
1264
+
1252
1265
  ChildrenHavingPackageResourceMixin.__init__(
1253
1266
  self,
1254
1267
  package=package,
@@ -1326,9 +1339,9 @@ class ExpressionImportlibResourcesBackportReadTextRef(
1326
1339
  )
1327
1340
 
1328
1341
 
1329
- hard_import_node_classes[
1330
- ExpressionImportlibResourcesBackportReadTextRef
1331
- ] = importlib_resources_backport_read_text_spec
1342
+ hard_import_node_classes[ExpressionImportlibResourcesBackportReadTextRef] = (
1343
+ importlib_resources_backport_read_text_spec
1344
+ )
1332
1345
 
1333
1346
 
1334
1347
  class ExpressionImportlibResourcesBackportReadTextCallBase(
@@ -1353,6 +1366,7 @@ class ExpressionImportlibResourcesBackportReadTextCallBase(
1353
1366
  spec = importlib_resources_backport_read_text_spec
1354
1367
 
1355
1368
  def __init__(self, package, resource, encoding, errors, source_ref):
1369
+
1356
1370
  ChildrenHavingPackageResourceEncodingOptionalErrorsOptionalMixin.__init__(
1357
1371
  self,
1358
1372
  package=package,
@@ -1432,9 +1446,9 @@ class ExpressionImportlibResourcesFilesRef(
1432
1446
  )
1433
1447
 
1434
1448
 
1435
- hard_import_node_classes[
1436
- ExpressionImportlibResourcesFilesRef
1437
- ] = importlib_resources_files_spec
1449
+ hard_import_node_classes[ExpressionImportlibResourcesFilesRef] = (
1450
+ importlib_resources_files_spec
1451
+ )
1438
1452
 
1439
1453
 
1440
1454
  class ExpressionImportlibResourcesFilesCallBase(
@@ -1452,6 +1466,7 @@ class ExpressionImportlibResourcesFilesCallBase(
1452
1466
  spec = importlib_resources_files_spec
1453
1467
 
1454
1468
  def __init__(self, package, source_ref):
1469
+
1455
1470
  ChildHavingPackageMixin.__init__(
1456
1471
  self,
1457
1472
  package=package,
@@ -1459,8 +1474,7 @@ class ExpressionImportlibResourcesFilesCallBase(
1459
1474
 
1460
1475
  ExpressionBase.__init__(self, source_ref)
1461
1476
 
1462
- # In module mode, we expect a changing environment, cannot optimize this
1463
- self.attempted = shallMakeModule()
1477
+ self.attempted = False
1464
1478
 
1465
1479
  def computeExpression(self, trace_collection):
1466
1480
  if (
@@ -1525,9 +1539,9 @@ class ExpressionImportlibResourcesReadBinaryRef(
1525
1539
  )
1526
1540
 
1527
1541
 
1528
- hard_import_node_classes[
1529
- ExpressionImportlibResourcesReadBinaryRef
1530
- ] = importlib_resources_read_binary_spec
1542
+ hard_import_node_classes[ExpressionImportlibResourcesReadBinaryRef] = (
1543
+ importlib_resources_read_binary_spec
1544
+ )
1531
1545
 
1532
1546
 
1533
1547
  class ExpressionImportlibResourcesReadBinaryCallBase(
@@ -1548,6 +1562,7 @@ class ExpressionImportlibResourcesReadBinaryCallBase(
1548
1562
  spec = importlib_resources_read_binary_spec
1549
1563
 
1550
1564
  def __init__(self, package, resource, source_ref):
1565
+
1551
1566
  ChildrenHavingPackageResourceMixin.__init__(
1552
1567
  self,
1553
1568
  package=package,
@@ -1556,8 +1571,7 @@ class ExpressionImportlibResourcesReadBinaryCallBase(
1556
1571
 
1557
1572
  ExpressionBase.__init__(self, source_ref)
1558
1573
 
1559
- # In module mode, we expect a changing environment, cannot optimize this
1560
- self.attempted = shallMakeModule()
1574
+ self.attempted = False
1561
1575
 
1562
1576
  def computeExpression(self, trace_collection):
1563
1577
  if (
@@ -1625,9 +1639,9 @@ class ExpressionImportlibResourcesReadTextRef(
1625
1639
  )
1626
1640
 
1627
1641
 
1628
- hard_import_node_classes[
1629
- ExpressionImportlibResourcesReadTextRef
1630
- ] = importlib_resources_read_text_spec
1642
+ hard_import_node_classes[ExpressionImportlibResourcesReadTextRef] = (
1643
+ importlib_resources_read_text_spec
1644
+ )
1631
1645
 
1632
1646
 
1633
1647
  class ExpressionImportlibResourcesReadTextCallBase(
@@ -1652,6 +1666,7 @@ class ExpressionImportlibResourcesReadTextCallBase(
1652
1666
  spec = importlib_resources_read_text_spec
1653
1667
 
1654
1668
  def __init__(self, package, resource, encoding, errors, source_ref):
1669
+
1655
1670
  ChildrenHavingPackageResourceEncodingOptionalErrorsOptionalMixin.__init__(
1656
1671
  self,
1657
1672
  package=package,
@@ -1662,8 +1677,7 @@ class ExpressionImportlibResourcesReadTextCallBase(
1662
1677
 
1663
1678
  ExpressionBase.__init__(self, source_ref)
1664
1679
 
1665
- # In module mode, we expect a changing environment, cannot optimize this
1666
- self.attempted = shallMakeModule()
1680
+ self.attempted = False
1667
1681
 
1668
1682
  def computeExpression(self, trace_collection):
1669
1683
  if (
@@ -1745,6 +1759,7 @@ class ExpressionOsListdirCallBase(ChildHavingPathOptionalMixin, ExpressionBase):
1745
1759
  spec = os_listdir_spec
1746
1760
 
1747
1761
  def __init__(self, path, source_ref):
1762
+
1748
1763
  ChildHavingPathOptionalMixin.__init__(
1749
1764
  self,
1750
1765
  path=path,
@@ -1752,8 +1767,7 @@ class ExpressionOsListdirCallBase(ChildHavingPathOptionalMixin, ExpressionBase):
1752
1767
 
1753
1768
  ExpressionBase.__init__(self, source_ref)
1754
1769
 
1755
- # In module mode, we expect a changing environment, cannot optimize this
1756
- self.attempted = shallMakeModule()
1770
+ self.attempted = False
1757
1771
 
1758
1772
  def computeExpression(self, trace_collection):
1759
1773
  if self.attempted or not os_listdir_spec.isCompileTimeComputable(
@@ -1827,6 +1841,7 @@ class ExpressionOsPathAbspathCallBase(ChildHavingPathMixin, ExpressionBase):
1827
1841
  spec = os_path_abspath_spec
1828
1842
 
1829
1843
  def __init__(self, path, source_ref):
1844
+
1830
1845
  ChildHavingPathMixin.__init__(
1831
1846
  self,
1832
1847
  path=path,
@@ -1834,8 +1849,7 @@ class ExpressionOsPathAbspathCallBase(ChildHavingPathMixin, ExpressionBase):
1834
1849
 
1835
1850
  ExpressionBase.__init__(self, source_ref)
1836
1851
 
1837
- # In module mode, we expect a changing environment, cannot optimize this
1838
- self.attempted = shallMakeModule()
1852
+ self.attempted = False
1839
1853
 
1840
1854
  def computeExpression(self, trace_collection):
1841
1855
  if self.attempted or not os_path_abspath_spec.isCompileTimeComputable(
@@ -1909,6 +1923,7 @@ class ExpressionOsPathBasenameCallBase(ChildHavingPMixin, ExpressionBase):
1909
1923
  spec = os_path_basename_spec
1910
1924
 
1911
1925
  def __init__(self, p, source_ref):
1926
+
1912
1927
  ChildHavingPMixin.__init__(
1913
1928
  self,
1914
1929
  p=p,
@@ -1916,8 +1931,7 @@ class ExpressionOsPathBasenameCallBase(ChildHavingPMixin, ExpressionBase):
1916
1931
 
1917
1932
  ExpressionBase.__init__(self, source_ref)
1918
1933
 
1919
- # In module mode, we expect a changing environment, cannot optimize this
1920
- self.attempted = shallMakeModule()
1934
+ self.attempted = False
1921
1935
 
1922
1936
  def computeExpression(self, trace_collection):
1923
1937
  if self.attempted or not os_path_basename_spec.isCompileTimeComputable(
@@ -1941,6 +1955,88 @@ class ExpressionOsPathBasenameCallBase(ChildHavingPMixin, ExpressionBase):
1941
1955
  return True
1942
1956
 
1943
1957
 
1958
+ class ExpressionOsPathDirnameRef(ExpressionImportModuleNameHardExistsSpecificBase):
1959
+ """Function reference os.path.dirname"""
1960
+
1961
+ kind = "EXPRESSION_OS_PATH_DIRNAME_REF"
1962
+
1963
+ def __init__(self, source_ref):
1964
+ ExpressionImportModuleNameHardExistsSpecificBase.__init__(
1965
+ self,
1966
+ module_name=os.path.__name__,
1967
+ import_name="dirname",
1968
+ module_guaranteed=True,
1969
+ source_ref=source_ref,
1970
+ )
1971
+
1972
+ def computeExpressionCall(self, call_node, call_args, call_kw, trace_collection):
1973
+ # Anything may happen on call trace before this. On next pass, if
1974
+ # replaced, we might be better but not now.
1975
+ trace_collection.onExceptionRaiseExit(BaseException)
1976
+
1977
+ from .OsSysNodes import ExpressionOsPathDirnameCall
1978
+
1979
+ result = extractBuiltinArgs(
1980
+ node=call_node,
1981
+ builtin_class=ExpressionOsPathDirnameCall,
1982
+ builtin_spec=os_path_dirname_spec,
1983
+ )
1984
+
1985
+ return (
1986
+ result,
1987
+ "new_expression",
1988
+ "Call to 'os.path.dirname' recognized.",
1989
+ )
1990
+
1991
+
1992
+ hard_import_node_classes[ExpressionOsPathDirnameRef] = os_path_dirname_spec
1993
+
1994
+
1995
+ class ExpressionOsPathDirnameCallBase(ChildHavingPMixin, ExpressionBase):
1996
+ """Base class for OsPathDirnameCall
1997
+
1998
+ Generated boiler plate code.
1999
+ """
2000
+
2001
+ named_children = ("p",)
2002
+
2003
+ __slots__ = ("attempted",)
2004
+
2005
+ spec = os_path_dirname_spec
2006
+
2007
+ def __init__(self, p, source_ref):
2008
+
2009
+ ChildHavingPMixin.__init__(
2010
+ self,
2011
+ p=p,
2012
+ )
2013
+
2014
+ ExpressionBase.__init__(self, source_ref)
2015
+
2016
+ self.attempted = False
2017
+
2018
+ def computeExpression(self, trace_collection):
2019
+ if self.attempted or not os_path_dirname_spec.isCompileTimeComputable(
2020
+ (self.subnode_p,)
2021
+ ):
2022
+ trace_collection.onExceptionRaiseExit(BaseException)
2023
+
2024
+ return self, None, None
2025
+
2026
+ try:
2027
+ return self.replaceWithCompileTimeValue(trace_collection)
2028
+ finally:
2029
+ self.attempted = True
2030
+
2031
+ @abstractmethod
2032
+ def replaceWithCompileTimeValue(self, trace_collection):
2033
+ pass
2034
+
2035
+ @staticmethod
2036
+ def mayRaiseExceptionOperation():
2037
+ return True
2038
+
2039
+
1944
2040
  class ExpressionOsPathExistsRef(ExpressionImportModuleNameHardExistsSpecificBase):
1945
2041
  """Function reference os.path.exists"""
1946
2042
 
@@ -1991,6 +2087,7 @@ class ExpressionOsPathExistsCallBase(ChildHavingPathMixin, ExpressionBase):
1991
2087
  spec = os_path_exists_spec
1992
2088
 
1993
2089
  def __init__(self, path, source_ref):
2090
+
1994
2091
  ChildHavingPathMixin.__init__(
1995
2092
  self,
1996
2093
  path=path,
@@ -1998,8 +2095,7 @@ class ExpressionOsPathExistsCallBase(ChildHavingPathMixin, ExpressionBase):
1998
2095
 
1999
2096
  ExpressionBase.__init__(self, source_ref)
2000
2097
 
2001
- # In module mode, we expect a changing environment, cannot optimize this
2002
- self.attempted = shallMakeModule()
2098
+ self.attempted = False
2003
2099
 
2004
2100
  def computeExpression(self, trace_collection):
2005
2101
  if self.attempted or not os_path_exists_spec.isCompileTimeComputable(
@@ -2075,6 +2171,7 @@ class ExpressionOsPathIsabsCallBase(
2075
2171
  spec = os_path_isabs_spec
2076
2172
 
2077
2173
  def __init__(self, s, source_ref):
2174
+
2078
2175
  ChildHavingSMixin.__init__(
2079
2176
  self,
2080
2177
  s=s,
@@ -2082,8 +2179,7 @@ class ExpressionOsPathIsabsCallBase(
2082
2179
 
2083
2180
  ExpressionBase.__init__(self, source_ref)
2084
2181
 
2085
- # In module mode, we expect a changing environment, cannot optimize this
2086
- self.attempted = shallMakeModule()
2182
+ self.attempted = False
2087
2183
 
2088
2184
  def computeExpression(self, trace_collection):
2089
2185
  if self.attempted or not os_path_isabs_spec.isCompileTimeComputable(
@@ -2157,6 +2253,7 @@ class ExpressionOsPathIsdirCallBase(ChildHavingPathMixin, ExpressionBase):
2157
2253
  spec = os_path_isdir_spec
2158
2254
 
2159
2255
  def __init__(self, path, source_ref):
2256
+
2160
2257
  ChildHavingPathMixin.__init__(
2161
2258
  self,
2162
2259
  path=path,
@@ -2164,8 +2261,7 @@ class ExpressionOsPathIsdirCallBase(ChildHavingPathMixin, ExpressionBase):
2164
2261
 
2165
2262
  ExpressionBase.__init__(self, source_ref)
2166
2263
 
2167
- # In module mode, we expect a changing environment, cannot optimize this
2168
- self.attempted = shallMakeModule()
2264
+ self.attempted = False
2169
2265
 
2170
2266
  def computeExpression(self, trace_collection):
2171
2267
  if self.attempted or not os_path_isdir_spec.isCompileTimeComputable(
@@ -2239,6 +2335,7 @@ class ExpressionOsPathIsfileCallBase(ChildHavingPathMixin, ExpressionBase):
2239
2335
  spec = os_path_isfile_spec
2240
2336
 
2241
2337
  def __init__(self, path, source_ref):
2338
+
2242
2339
  ChildHavingPathMixin.__init__(
2243
2340
  self,
2244
2341
  path=path,
@@ -2246,8 +2343,7 @@ class ExpressionOsPathIsfileCallBase(ChildHavingPathMixin, ExpressionBase):
2246
2343
 
2247
2344
  ExpressionBase.__init__(self, source_ref)
2248
2345
 
2249
- # In module mode, we expect a changing environment, cannot optimize this
2250
- self.attempted = shallMakeModule()
2346
+ self.attempted = False
2251
2347
 
2252
2348
  def computeExpression(self, trace_collection):
2253
2349
  if self.attempted or not os_path_isfile_spec.isCompileTimeComputable(
@@ -2271,6 +2367,88 @@ class ExpressionOsPathIsfileCallBase(ChildHavingPathMixin, ExpressionBase):
2271
2367
  return True
2272
2368
 
2273
2369
 
2370
+ class ExpressionOsPathNormpathRef(ExpressionImportModuleNameHardExistsSpecificBase):
2371
+ """Function reference os.path.normpath"""
2372
+
2373
+ kind = "EXPRESSION_OS_PATH_NORMPATH_REF"
2374
+
2375
+ def __init__(self, source_ref):
2376
+ ExpressionImportModuleNameHardExistsSpecificBase.__init__(
2377
+ self,
2378
+ module_name=os.path.__name__,
2379
+ import_name="normpath",
2380
+ module_guaranteed=True,
2381
+ source_ref=source_ref,
2382
+ )
2383
+
2384
+ def computeExpressionCall(self, call_node, call_args, call_kw, trace_collection):
2385
+ # Anything may happen on call trace before this. On next pass, if
2386
+ # replaced, we might be better but not now.
2387
+ trace_collection.onExceptionRaiseExit(BaseException)
2388
+
2389
+ from .OsSysNodes import ExpressionOsPathNormpathCall
2390
+
2391
+ result = extractBuiltinArgs(
2392
+ node=call_node,
2393
+ builtin_class=ExpressionOsPathNormpathCall,
2394
+ builtin_spec=os_path_normpath_spec,
2395
+ )
2396
+
2397
+ return (
2398
+ result,
2399
+ "new_expression",
2400
+ "Call to 'os.path.normpath' recognized.",
2401
+ )
2402
+
2403
+
2404
+ hard_import_node_classes[ExpressionOsPathNormpathRef] = os_path_normpath_spec
2405
+
2406
+
2407
+ class ExpressionOsPathNormpathCallBase(ChildHavingPathMixin, ExpressionBase):
2408
+ """Base class for OsPathNormpathCall
2409
+
2410
+ Generated boiler plate code.
2411
+ """
2412
+
2413
+ named_children = ("path",)
2414
+
2415
+ __slots__ = ("attempted",)
2416
+
2417
+ spec = os_path_normpath_spec
2418
+
2419
+ def __init__(self, path, source_ref):
2420
+
2421
+ ChildHavingPathMixin.__init__(
2422
+ self,
2423
+ path=path,
2424
+ )
2425
+
2426
+ ExpressionBase.__init__(self, source_ref)
2427
+
2428
+ self.attempted = False
2429
+
2430
+ def computeExpression(self, trace_collection):
2431
+ if self.attempted or not os_path_normpath_spec.isCompileTimeComputable(
2432
+ (self.subnode_path,)
2433
+ ):
2434
+ trace_collection.onExceptionRaiseExit(BaseException)
2435
+
2436
+ return self, None, None
2437
+
2438
+ try:
2439
+ return self.replaceWithCompileTimeValue(trace_collection)
2440
+ finally:
2441
+ self.attempted = True
2442
+
2443
+ @abstractmethod
2444
+ def replaceWithCompileTimeValue(self, trace_collection):
2445
+ pass
2446
+
2447
+ @staticmethod
2448
+ def mayRaiseExceptionOperation():
2449
+ return True
2450
+
2451
+
2274
2452
  class ExpressionOsUnameRef(ExpressionImportModuleNameHardExistsSpecificBase):
2275
2453
  """Function reference os.uname"""
2276
2454
 
@@ -2319,10 +2497,10 @@ class ExpressionOsUnameCallBase(ExpressionBase):
2319
2497
  spec = os_uname_spec
2320
2498
 
2321
2499
  def __init__(self, source_ref):
2500
+
2322
2501
  ExpressionBase.__init__(self, source_ref)
2323
2502
 
2324
- # In module mode, we expect a changing environment, cannot optimize this
2325
- self.attempted = shallMakeModule()
2503
+ self.attempted = False
2326
2504
 
2327
2505
  def finalize(self):
2328
2506
  del self.parent
@@ -2385,9 +2563,9 @@ class ExpressionPkgResourcesGetDistributionRef(
2385
2563
  )
2386
2564
 
2387
2565
 
2388
- hard_import_node_classes[
2389
- ExpressionPkgResourcesGetDistributionRef
2390
- ] = pkg_resources_get_distribution_spec
2566
+ hard_import_node_classes[ExpressionPkgResourcesGetDistributionRef] = (
2567
+ pkg_resources_get_distribution_spec
2568
+ )
2391
2569
 
2392
2570
 
2393
2571
  class ExpressionPkgResourcesGetDistributionCallBase(
@@ -2405,6 +2583,7 @@ class ExpressionPkgResourcesGetDistributionCallBase(
2405
2583
  spec = pkg_resources_get_distribution_spec
2406
2584
 
2407
2585
  def __init__(self, dist, source_ref):
2586
+
2408
2587
  ChildHavingDistMixin.__init__(
2409
2588
  self,
2410
2589
  dist=dist,
@@ -2478,9 +2657,9 @@ class ExpressionPkgResourcesIterEntryPointsRef(
2478
2657
  )
2479
2658
 
2480
2659
 
2481
- hard_import_node_classes[
2482
- ExpressionPkgResourcesIterEntryPointsRef
2483
- ] = pkg_resources_iter_entry_points_spec
2660
+ hard_import_node_classes[ExpressionPkgResourcesIterEntryPointsRef] = (
2661
+ pkg_resources_iter_entry_points_spec
2662
+ )
2484
2663
 
2485
2664
 
2486
2665
  class ExpressionPkgResourcesIterEntryPointsCallBase(
@@ -2501,6 +2680,7 @@ class ExpressionPkgResourcesIterEntryPointsCallBase(
2501
2680
  spec = pkg_resources_iter_entry_points_spec
2502
2681
 
2503
2682
  def __init__(self, group, name, source_ref):
2683
+
2504
2684
  ChildrenHavingGroupNameOptionalMixin.__init__(
2505
2685
  self,
2506
2686
  group=group,
@@ -2594,6 +2774,7 @@ class ExpressionPkgResourcesRequireCallBase(
2594
2774
  spec = pkg_resources_require_spec
2595
2775
 
2596
2776
  def __init__(self, requirements, source_ref):
2777
+
2597
2778
  ChildHavingRequirementsTupleMixin.__init__(
2598
2779
  self,
2599
2780
  requirements=requirements,
@@ -2664,9 +2845,9 @@ class ExpressionPkgResourcesResourceStreamRef(
2664
2845
  )
2665
2846
 
2666
2847
 
2667
- hard_import_node_classes[
2668
- ExpressionPkgResourcesResourceStreamRef
2669
- ] = pkg_resources_resource_stream_spec
2848
+ hard_import_node_classes[ExpressionPkgResourcesResourceStreamRef] = (
2849
+ pkg_resources_resource_stream_spec
2850
+ )
2670
2851
 
2671
2852
 
2672
2853
  class ExpressionPkgResourcesResourceStreamCallBase(
@@ -2687,6 +2868,7 @@ class ExpressionPkgResourcesResourceStreamCallBase(
2687
2868
  spec = pkg_resources_resource_stream_spec
2688
2869
 
2689
2870
  def __init__(self, package_or_requirement, resource_name, source_ref):
2871
+
2690
2872
  ChildrenHavingPackageOrRequirementResourceNameMixin.__init__(
2691
2873
  self,
2692
2874
  package_or_requirement=package_or_requirement,
@@ -2764,9 +2946,9 @@ class ExpressionPkgResourcesResourceStringRef(
2764
2946
  )
2765
2947
 
2766
2948
 
2767
- hard_import_node_classes[
2768
- ExpressionPkgResourcesResourceStringRef
2769
- ] = pkg_resources_resource_string_spec
2949
+ hard_import_node_classes[ExpressionPkgResourcesResourceStringRef] = (
2950
+ pkg_resources_resource_string_spec
2951
+ )
2770
2952
 
2771
2953
 
2772
2954
  class ExpressionPkgResourcesResourceStringCallBase(
@@ -2787,6 +2969,7 @@ class ExpressionPkgResourcesResourceStringCallBase(
2787
2969
  spec = pkg_resources_resource_string_spec
2788
2970
 
2789
2971
  def __init__(self, package_or_requirement, resource_name, source_ref):
2972
+
2790
2973
  ChildrenHavingPackageOrRequirementResourceNameMixin.__init__(
2791
2974
  self,
2792
2975
  package_or_requirement=package_or_requirement,
@@ -2881,6 +3064,7 @@ class ExpressionPkgutilGetDataCallBase(
2881
3064
  spec = pkgutil_get_data_spec
2882
3065
 
2883
3066
  def __init__(self, package, resource, source_ref):
3067
+
2884
3068
  ChildrenHavingPackageResourceMixin.__init__(
2885
3069
  self,
2886
3070
  package=package,
@@ -2889,8 +3073,7 @@ class ExpressionPkgutilGetDataCallBase(
2889
3073
 
2890
3074
  ExpressionBase.__init__(self, source_ref)
2891
3075
 
2892
- # In module mode, we expect a changing environment, cannot optimize this
2893
- self.attempted = shallMakeModule()
3076
+ self.attempted = False
2894
3077
 
2895
3078
  def computeExpression(self, trace_collection):
2896
3079
  if self.attempted or not pkgutil_get_data_spec.isCompileTimeComputable(
@@ -2915,3 +3098,236 @@ class ExpressionPkgutilGetDataCallBase(
2915
3098
  @staticmethod
2916
3099
  def mayRaiseExceptionOperation():
2917
3100
  return True
3101
+
3102
+
3103
+ class ExpressionSysExitRef(ExpressionImportModuleNameHardExistsSpecificBase):
3104
+ """Function reference sys.exit"""
3105
+
3106
+ kind = "EXPRESSION_SYS_EXIT_REF"
3107
+
3108
+ def __init__(self, source_ref):
3109
+ ExpressionImportModuleNameHardExistsSpecificBase.__init__(
3110
+ self,
3111
+ module_name="sys",
3112
+ import_name="exit",
3113
+ module_guaranteed=True,
3114
+ source_ref=source_ref,
3115
+ )
3116
+
3117
+ def computeExpressionCall(self, call_node, call_args, call_kw, trace_collection):
3118
+ # Anything may happen on call trace before this. On next pass, if
3119
+ # replaced, we might be better but not now.
3120
+ trace_collection.onExceptionRaiseExit(BaseException)
3121
+
3122
+ from .OsSysNodes import makeExpressionSysExitCall
3123
+
3124
+ result = extractBuiltinArgs(
3125
+ node=call_node,
3126
+ builtin_class=makeExpressionSysExitCall,
3127
+ builtin_spec=sys_exit_spec,
3128
+ )
3129
+
3130
+ return (
3131
+ result,
3132
+ "new_expression",
3133
+ "Call to 'sys.exit' recognized.",
3134
+ )
3135
+
3136
+
3137
+ hard_import_node_classes[ExpressionSysExitRef] = sys_exit_spec
3138
+
3139
+
3140
+ class ExpressionSysExitCallBase(ChildHavingExitCodeOptionalMixin, ExpressionBase):
3141
+ """Base class for SysExitCall
3142
+
3143
+ Generated boiler plate code.
3144
+ """
3145
+
3146
+ named_children = ("exit_code|optional",)
3147
+
3148
+ __slots__ = ("attempted",)
3149
+
3150
+ spec = sys_exit_spec
3151
+
3152
+ def __init__(self, exit_code, source_ref):
3153
+
3154
+ ChildHavingExitCodeOptionalMixin.__init__(
3155
+ self,
3156
+ exit_code=exit_code,
3157
+ )
3158
+
3159
+ ExpressionBase.__init__(self, source_ref)
3160
+
3161
+ # In module mode, we expect a changing environment, cannot optimize this
3162
+ self.attempted = shallMakeModule()
3163
+
3164
+ def computeExpression(self, trace_collection):
3165
+ if self.attempted or not sys_exit_spec.isCompileTimeComputable(
3166
+ (self.subnode_exit_code,)
3167
+ ):
3168
+ trace_collection.onExceptionRaiseExit(BaseException)
3169
+
3170
+ return self, None, None
3171
+
3172
+ try:
3173
+ return self.replaceWithCompileTimeValue(trace_collection)
3174
+ finally:
3175
+ self.attempted = True
3176
+
3177
+ @abstractmethod
3178
+ def replaceWithCompileTimeValue(self, trace_collection):
3179
+ pass
3180
+
3181
+ @staticmethod
3182
+ def mayRaiseExceptionOperation():
3183
+ return True
3184
+
3185
+
3186
+ class ExpressionTensorflowFunctionRef(ExpressionImportModuleNameHardExistsSpecificBase):
3187
+ """Function reference tensorflow.function"""
3188
+
3189
+ kind = "EXPRESSION_TENSORFLOW_FUNCTION_REF"
3190
+
3191
+ def __init__(self, source_ref):
3192
+ ExpressionImportModuleNameHardExistsSpecificBase.__init__(
3193
+ self,
3194
+ module_name="tensorflow",
3195
+ import_name="function",
3196
+ module_guaranteed=not shallMakeModule(),
3197
+ source_ref=source_ref,
3198
+ )
3199
+
3200
+ def computeExpressionCall(self, call_node, call_args, call_kw, trace_collection):
3201
+ # Anything may happen on call trace before this. On next pass, if
3202
+ # replaced, we might be better but not now.
3203
+ trace_collection.onExceptionRaiseExit(BaseException)
3204
+
3205
+ from .TensorflowNodes import ExpressionTensorflowFunctionCall
3206
+
3207
+ result = extractBuiltinArgs(
3208
+ node=call_node,
3209
+ builtin_class=ExpressionTensorflowFunctionCall,
3210
+ builtin_spec=tensorflow_function_spec,
3211
+ )
3212
+
3213
+ return (
3214
+ result,
3215
+ "new_expression",
3216
+ "Call to 'tensorflow.function' recognized.",
3217
+ )
3218
+
3219
+
3220
+ hard_import_node_classes[ExpressionTensorflowFunctionRef] = tensorflow_function_spec
3221
+
3222
+
3223
+ class ExpressionTensorflowFunctionCallBase(
3224
+ ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin,
3225
+ ExpressionBase,
3226
+ ):
3227
+ """Base class for TensorflowFunctionCall
3228
+
3229
+ Generated boiler plate code.
3230
+ """
3231
+
3232
+ named_children = (
3233
+ "func|optional",
3234
+ "input_signature|optional",
3235
+ "autograph|optional",
3236
+ "jit_compile|optional",
3237
+ "reduce_retracing|optional",
3238
+ "experimental_implements|optional",
3239
+ "experimental_autograph_options|optional",
3240
+ "experimental_attributes|optional",
3241
+ "experimental_relax_shapes|optional",
3242
+ "experimental_compile|optional",
3243
+ "experimental_follow_type_hints|optional",
3244
+ )
3245
+
3246
+ __slots__ = ("attempted",)
3247
+
3248
+ spec = tensorflow_function_spec
3249
+
3250
+ def __init__(
3251
+ self,
3252
+ func,
3253
+ input_signature,
3254
+ autograph,
3255
+ jit_compile,
3256
+ reduce_retracing,
3257
+ experimental_implements,
3258
+ experimental_autograph_options,
3259
+ experimental_attributes,
3260
+ experimental_relax_shapes,
3261
+ experimental_compile,
3262
+ experimental_follow_type_hints,
3263
+ source_ref,
3264
+ ):
3265
+
3266
+ ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin.__init__(
3267
+ self,
3268
+ func=func,
3269
+ input_signature=input_signature,
3270
+ autograph=autograph,
3271
+ jit_compile=jit_compile,
3272
+ reduce_retracing=reduce_retracing,
3273
+ experimental_implements=experimental_implements,
3274
+ experimental_autograph_options=experimental_autograph_options,
3275
+ experimental_attributes=experimental_attributes,
3276
+ experimental_relax_shapes=experimental_relax_shapes,
3277
+ experimental_compile=experimental_compile,
3278
+ experimental_follow_type_hints=experimental_follow_type_hints,
3279
+ )
3280
+
3281
+ ExpressionBase.__init__(self, source_ref)
3282
+
3283
+ # In module mode, we expect a changing environment, cannot optimize this
3284
+ self.attempted = shallMakeModule()
3285
+
3286
+ def computeExpression(self, trace_collection):
3287
+ if self.attempted or not tensorflow_function_spec.isCompileTimeComputable(
3288
+ (
3289
+ self.subnode_func,
3290
+ self.subnode_input_signature,
3291
+ self.subnode_autograph,
3292
+ self.subnode_jit_compile,
3293
+ self.subnode_reduce_retracing,
3294
+ self.subnode_experimental_implements,
3295
+ self.subnode_experimental_autograph_options,
3296
+ self.subnode_experimental_attributes,
3297
+ self.subnode_experimental_relax_shapes,
3298
+ self.subnode_experimental_compile,
3299
+ self.subnode_experimental_follow_type_hints,
3300
+ )
3301
+ ):
3302
+ trace_collection.onExceptionRaiseExit(BaseException)
3303
+
3304
+ return self, None, None
3305
+
3306
+ try:
3307
+ return self.replaceWithCompileTimeValue(trace_collection)
3308
+ finally:
3309
+ self.attempted = True
3310
+
3311
+ @abstractmethod
3312
+ def replaceWithCompileTimeValue(self, trace_collection):
3313
+ pass
3314
+
3315
+ @staticmethod
3316
+ def mayRaiseExceptionOperation():
3317
+ return True
3318
+
3319
+
3320
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
3321
+ # integrates with CPython, but also works on its own.
3322
+ #
3323
+ # Licensed under the Apache License, Version 2.0 (the "License");
3324
+ # you may not use this file except in compliance with the License.
3325
+ # You may obtain a copy of the License at
3326
+ #
3327
+ # http://www.apache.org/licenses/LICENSE-2.0
3328
+ #
3329
+ # Unless required by applicable law or agreed to in writing, software
3330
+ # distributed under the License is distributed on an "AS IS" BASIS,
3331
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3332
+ # See the License for the specific language governing permissions and
3333
+ # limitations under the License.