Nuitka-winsvc 2.5.1__cp311-cp311-win_amd64.whl → 2.6__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 (697) hide show
  1. {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka-run.cmd +1 -1
  2. {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka.cmd +1 -1
  3. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/METADATA +80 -122
  4. Nuitka_winsvc-2.6.dist-info/RECORD +988 -0
  5. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +1 -1
  7. nuitka/BytecodeCaching.py +1 -1
  8. nuitka/Bytecodes.py +1 -1
  9. nuitka/CacheCleanup.py +1 -1
  10. nuitka/Constants.py +1 -1
  11. nuitka/Errors.py +1 -1
  12. nuitka/HardImportRegistry.py +1 -1
  13. nuitka/MainControl.py +93 -94
  14. nuitka/ModuleRegistry.py +1 -1
  15. nuitka/OptionParsing.py +90 -20
  16. nuitka/Options.py +160 -53
  17. nuitka/OutputDirectories.py +5 -3
  18. nuitka/PostProcessing.py +76 -27
  19. nuitka/Progress.py +1 -1
  20. nuitka/PythonFlavors.py +9 -3
  21. nuitka/PythonOperators.py +1 -1
  22. nuitka/PythonVersions.py +8 -4
  23. nuitka/Serialization.py +1 -1
  24. nuitka/SourceCodeReferences.py +1 -1
  25. nuitka/Tracing.py +2 -1
  26. nuitka/TreeXML.py +1 -1
  27. nuitka/Variables.py +1 -1
  28. nuitka/Version.py +2 -2
  29. nuitka/__init__.py +1 -1
  30. nuitka/__main__.py +4 -1
  31. nuitka/__past__.py +1 -1
  32. nuitka/build/Backend.scons +44 -66
  33. nuitka/build/CCompilerVersion.scons +2 -1
  34. nuitka/build/DataComposerInterface.py +2 -1
  35. nuitka/build/Offsets.scons +644 -0
  36. nuitka/build/Onefile.scons +5 -13
  37. nuitka/build/SconsCaching.py +9 -7
  38. nuitka/build/SconsCompilerSettings.py +54 -31
  39. nuitka/build/SconsHacks.py +3 -3
  40. nuitka/build/SconsInterface.py +86 -56
  41. nuitka/build/SconsProgress.py +12 -5
  42. nuitka/build/SconsSpawn.py +3 -3
  43. nuitka/build/SconsUtils.py +20 -1
  44. nuitka/build/__init__.py +1 -1
  45. nuitka/build/include/nuitka/allocator.h +3 -1
  46. nuitka/build/include/nuitka/builtins.h +1 -1
  47. nuitka/build/include/nuitka/calling.h +1 -1
  48. nuitka/build/include/nuitka/checkers.h +1 -1
  49. nuitka/build/include/nuitka/checksum_tools.h +1 -1
  50. nuitka/build/include/nuitka/compiled_asyncgen.h +4 -2
  51. nuitka/build/include/nuitka/compiled_cell.h +1 -1
  52. nuitka/build/include/nuitka/compiled_coroutine.h +3 -2
  53. nuitka/build/include/nuitka/compiled_frame.h +5 -12
  54. nuitka/build/include/nuitka/compiled_function.h +2 -3
  55. nuitka/build/include/nuitka/compiled_generator.h +3 -2
  56. nuitka/build/include/nuitka/compiled_method.h +1 -1
  57. nuitka/build/include/nuitka/constants.h +7 -1
  58. nuitka/build/include/nuitka/constants_blob.h +1 -1
  59. nuitka/build/include/nuitka/debug_settings.h +1 -1
  60. nuitka/build/include/nuitka/environment_variables.h +1 -1
  61. nuitka/build/include/nuitka/environment_variables_system.h +1 -1
  62. nuitka/build/include/nuitka/exception_groups.h +1 -1
  63. nuitka/build/include/nuitka/exceptions.h +1 -1
  64. nuitka/build/include/nuitka/filesystem_paths.h +4 -1
  65. nuitka/build/include/nuitka/freelists.h +2 -2
  66. nuitka/build/include/nuitka/helper/attributes.h +1 -1
  67. nuitka/build/include/nuitka/helper/boolean.h +1 -1
  68. nuitka/build/include/nuitka/helper/bytearrays.h +1 -1
  69. nuitka/build/include/nuitka/helper/bytes.h +1 -1
  70. nuitka/build/include/nuitka/helper/calling_generated.h +1 -1
  71. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +1 -1
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +1 -1
  73. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +1 -1
  74. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +1 -1
  75. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +1 -1
  76. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +1 -1
  77. nuitka/build/include/nuitka/helper/comparisons_eq.h +1 -1
  78. nuitka/build/include/nuitka/helper/comparisons_ge.h +1 -1
  79. nuitka/build/include/nuitka/helper/comparisons_gt.h +1 -1
  80. nuitka/build/include/nuitka/helper/comparisons_le.h +1 -1
  81. nuitka/build/include/nuitka/helper/comparisons_lt.h +1 -1
  82. nuitka/build/include/nuitka/helper/comparisons_ne.h +1 -1
  83. nuitka/build/include/nuitka/helper/complex.h +1 -1
  84. nuitka/build/include/nuitka/helper/dictionaries.h +11 -3
  85. nuitka/build/include/nuitka/helper/floats.h +1 -1
  86. nuitka/build/include/nuitka/helper/import_hard.h +1 -1
  87. nuitka/build/include/nuitka/helper/indexes.h +1 -1
  88. nuitka/build/include/nuitka/helper/ints.h +1 -1
  89. nuitka/build/include/nuitka/helper/iterators.h +1 -1
  90. nuitka/build/include/nuitka/helper/lists.h +1 -1
  91. nuitka/build/include/nuitka/helper/lists_generated.h +1 -1
  92. nuitka/build/include/nuitka/helper/mappings.h +1 -1
  93. nuitka/build/include/nuitka/helper/operations.h +1 -1
  94. nuitka/build/include/nuitka/helper/operations_binary_add.h +1 -1
  95. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +1 -1
  96. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +1 -1
  97. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +1 -1
  98. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +1 -1
  99. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +1 -1
  100. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +1 -1
  101. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +1 -1
  102. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +1 -1
  103. nuitka/build/include/nuitka/helper/operations_binary_mod.h +1 -1
  104. nuitka/build/include/nuitka/helper/operations_binary_mult.h +1 -1
  105. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +1 -1
  106. nuitka/build/include/nuitka/helper/operations_binary_pow.h +1 -1
  107. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +1 -1
  108. nuitka/build/include/nuitka/helper/operations_binary_sub.h +1 -1
  109. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +1 -1
  110. nuitka/build/include/nuitka/helper/operations_builtin_types.h +1 -1
  111. nuitka/build/include/nuitka/helper/operations_inplace_add.h +1 -1
  112. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +1 -1
  113. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +1 -1
  114. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +1 -1
  115. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +1 -1
  116. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +1 -1
  117. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +1 -1
  118. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +1 -1
  119. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +1 -1
  120. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +1 -1
  121. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +1 -1
  122. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +1 -1
  123. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +1 -1
  124. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +1 -1
  125. nuitka/build/include/nuitka/helper/raising.h +1 -1
  126. nuitka/build/include/nuitka/helper/rangeobjects.h +1 -1
  127. nuitka/build/include/nuitka/helper/richcomparisons.h +1 -1
  128. nuitka/build/include/nuitka/helper/sequences.h +1 -1
  129. nuitka/build/include/nuitka/helper/sets.h +1 -1
  130. nuitka/build/include/nuitka/helper/slices.h +1 -1
  131. nuitka/build/include/nuitka/helper/strings.h +1 -1
  132. nuitka/build/include/nuitka/helper/subscripts.h +1 -1
  133. nuitka/build/include/nuitka/helper/tuples.h +13 -1
  134. nuitka/build/include/nuitka/helpers.h +1 -43
  135. nuitka/build/include/nuitka/importing.h +1 -1
  136. nuitka/build/include/nuitka/jit_sources.h +1 -1
  137. nuitka/build/include/nuitka/prelude.h +11 -10
  138. nuitka/build/include/nuitka/printing.h +1 -1
  139. nuitka/build/include/nuitka/python_pgo.h +1 -1
  140. nuitka/build/include/nuitka/safe_string_ops.h +1 -1
  141. nuitka/build/include/nuitka/threading.h +1 -1
  142. nuitka/build/include/nuitka/tracing.h +1 -1
  143. nuitka/build/include/nuitka/type_aliases.h +1 -1
  144. nuitka/build/include/nuitka/unfreezing.h +1 -1
  145. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  146. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  147. nuitka/build/static_src/CompiledAsyncgenType.c +85 -71
  148. nuitka/build/static_src/CompiledCellType.c +2 -1
  149. nuitka/build/static_src/CompiledCodeHelpers.c +8 -26
  150. nuitka/build/static_src/CompiledCoroutineType.c +33 -35
  151. nuitka/build/static_src/CompiledFrameType.c +63 -5
  152. nuitka/build/static_src/CompiledFunctionType.c +11 -13
  153. nuitka/build/static_src/CompiledGeneratorType.c +64 -11
  154. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +33 -24
  155. nuitka/build/static_src/CompiledMethodType.c +2 -1
  156. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  157. nuitka/build/static_src/HelpersAllocator.c +1 -1
  158. nuitka/build/static_src/HelpersAttributes.c +5 -2
  159. nuitka/build/static_src/HelpersBuiltin.c +2 -2
  160. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +1 -1
  161. nuitka/build/static_src/HelpersBytes.c +1 -1
  162. nuitka/build/static_src/HelpersCalling.c +1 -1
  163. nuitka/build/static_src/HelpersCallingGenerated.c +6 -16
  164. nuitka/build/static_src/HelpersChecksumTools.c +1 -1
  165. nuitka/build/static_src/HelpersClasses.c +1 -1
  166. nuitka/build/static_src/HelpersComparisonDualEq.c +1 -1
  167. nuitka/build/static_src/HelpersComparisonDualGe.c +1 -1
  168. nuitka/build/static_src/HelpersComparisonDualGt.c +1 -1
  169. nuitka/build/static_src/HelpersComparisonDualLe.c +1 -1
  170. nuitka/build/static_src/HelpersComparisonDualLt.c +1 -1
  171. nuitka/build/static_src/HelpersComparisonDualNe.c +1 -1
  172. nuitka/build/static_src/HelpersComparisonEq.c +1 -1
  173. nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -1
  174. nuitka/build/static_src/HelpersComparisonGe.c +1 -1
  175. nuitka/build/static_src/HelpersComparisonGt.c +1 -1
  176. nuitka/build/static_src/HelpersComparisonLe.c +1 -1
  177. nuitka/build/static_src/HelpersComparisonLt.c +1 -1
  178. nuitka/build/static_src/HelpersComparisonNe.c +1 -1
  179. nuitka/build/static_src/HelpersConsole.c +1 -1
  180. nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
  181. nuitka/build/static_src/HelpersDeepcopy.c +4 -1
  182. nuitka/build/static_src/HelpersDictionaries.c +15 -3
  183. nuitka/build/static_src/HelpersDictionariesGenerated.c +13 -2
  184. nuitka/build/static_src/HelpersDumpBacktraces.c +1 -1
  185. nuitka/build/static_src/HelpersEnvironmentVariables.c +1 -1
  186. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +1 -1
  187. nuitka/build/static_src/HelpersExceptions.c +1 -1
  188. nuitka/build/static_src/HelpersFiles.c +18 -10
  189. nuitka/build/static_src/HelpersFilesystemPaths.c +36 -16
  190. nuitka/build/static_src/HelpersFloats.c +1 -1
  191. nuitka/build/static_src/HelpersHeapStorage.c +1 -1
  192. nuitka/build/static_src/HelpersImport.c +1 -1
  193. nuitka/build/static_src/HelpersImportHard.c +1 -1
  194. nuitka/build/static_src/HelpersJitSources.c +1 -1
  195. nuitka/build/static_src/HelpersLists.c +2 -1
  196. nuitka/build/static_src/HelpersListsGenerated.c +1 -1
  197. nuitka/build/static_src/HelpersMappings.c +1 -1
  198. nuitka/build/static_src/HelpersMatching.c +1 -1
  199. nuitka/build/static_src/HelpersOperationBinaryAdd.c +1 -1
  200. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +1 -1
  201. nuitka/build/static_src/HelpersOperationBinaryBitand.c +1 -1
  202. nuitka/build/static_src/HelpersOperationBinaryBitor.c +1 -1
  203. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +1 -1
  204. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +1 -1
  205. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +1 -1
  206. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +1 -1
  207. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +1 -1
  208. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +1 -1
  209. nuitka/build/static_src/HelpersOperationBinaryLshift.c +1 -1
  210. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -1
  211. nuitka/build/static_src/HelpersOperationBinaryMod.c +1 -1
  212. nuitka/build/static_src/HelpersOperationBinaryMult.c +1 -1
  213. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +1 -1
  214. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +1 -1
  215. nuitka/build/static_src/HelpersOperationBinaryPow.c +1 -1
  216. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +1 -1
  217. nuitka/build/static_src/HelpersOperationBinaryRshift.c +1 -1
  218. nuitka/build/static_src/HelpersOperationBinarySub.c +1 -1
  219. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +1 -1
  220. nuitka/build/static_src/HelpersOperationInplaceAdd.c +1 -1
  221. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
  222. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1 -1
  223. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1 -1
  224. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1 -1
  225. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +1 -1
  226. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1 -1
  227. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -1
  228. nuitka/build/static_src/HelpersOperationInplaceMod.c +1 -1
  229. nuitka/build/static_src/HelpersOperationInplaceMult.c +1 -1
  230. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +1 -1
  231. nuitka/build/static_src/HelpersOperationInplacePow.c +1 -1
  232. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1 -1
  233. nuitka/build/static_src/HelpersOperationInplaceSub.c +1 -1
  234. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +1 -1
  235. nuitka/build/static_src/HelpersProfiling.c +1 -1
  236. nuitka/build/static_src/HelpersPythonPgo.c +5 -2
  237. nuitka/build/static_src/HelpersRaising.c +1 -1
  238. nuitka/build/static_src/HelpersSafeStrings.c +1 -1
  239. nuitka/build/static_src/HelpersSequences.c +1 -1
  240. nuitka/build/static_src/HelpersSlices.c +1 -1
  241. nuitka/build/static_src/HelpersStrings.c +1 -1
  242. nuitka/build/static_src/HelpersTuples.c +2 -2
  243. nuitka/build/static_src/HelpersTypes.c +1 -1
  244. nuitka/build/static_src/InspectPatcher.c +2 -1
  245. nuitka/build/static_src/MainProgram.c +30 -9
  246. nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
  247. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +1 -1
  248. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +1 -1
  249. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +17 -4
  250. nuitka/build/static_src/OnefileBootstrap.c +3 -3
  251. nuitka/build/static_src/OnefileSplashScreen.cpp +1 -1
  252. nuitka/code_generation/AsyncgenCodes.py +5 -6
  253. nuitka/code_generation/AttributeCodes.py +1 -1
  254. nuitka/code_generation/BinaryOperationHelperDefinitions.py +1 -1
  255. nuitka/code_generation/BranchCodes.py +1 -1
  256. nuitka/code_generation/BuiltinCodes.py +15 -5
  257. nuitka/code_generation/CallCodes.py +1 -1
  258. nuitka/code_generation/ClassCodes.py +1 -1
  259. nuitka/code_generation/CodeGeneration.py +23 -17
  260. nuitka/code_generation/CodeHelperSelection.py +1 -1
  261. nuitka/code_generation/CodeHelpers.py +1 -1
  262. nuitka/code_generation/CodeObjectCodes.py +19 -2
  263. nuitka/code_generation/ComparisonCodes.py +1 -1
  264. nuitka/code_generation/ComparisonHelperDefinitions.py +1 -1
  265. nuitka/code_generation/ConditionalCodes.py +1 -1
  266. nuitka/code_generation/ConstantCodes.py +1 -1
  267. nuitka/code_generation/Contexts.py +52 -39
  268. nuitka/code_generation/CoroutineCodes.py +4 -5
  269. nuitka/code_generation/CtypesCodes.py +1 -1
  270. nuitka/code_generation/DictCodes.py +1 -1
  271. nuitka/code_generation/Emission.py +1 -1
  272. nuitka/code_generation/ErrorCodes.py +1 -1
  273. nuitka/code_generation/EvalCodes.py +1 -1
  274. nuitka/code_generation/ExceptionCodes.py +1 -1
  275. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -1
  276. nuitka/code_generation/ExpressionCodes.py +1 -1
  277. nuitka/code_generation/FrameCodes.py +26 -17
  278. nuitka/code_generation/FunctionCodes.py +9 -15
  279. nuitka/code_generation/GeneratorCodes.py +9 -10
  280. nuitka/code_generation/GlobalConstants.py +6 -4
  281. nuitka/code_generation/GlobalsLocalsCodes.py +1 -1
  282. nuitka/code_generation/IdCodes.py +1 -1
  283. nuitka/code_generation/ImportCodes.py +1 -1
  284. nuitka/code_generation/Indentation.py +1 -1
  285. nuitka/code_generation/IndexCodes.py +1 -1
  286. nuitka/code_generation/InjectCCodes.py +1 -1
  287. nuitka/code_generation/IntegerCodes.py +1 -1
  288. nuitka/code_generation/IteratorCodes.py +1 -1
  289. nuitka/code_generation/JitCodes.py +1 -1
  290. nuitka/code_generation/LabelCodes.py +1 -1
  291. nuitka/code_generation/LineNumberCodes.py +1 -1
  292. nuitka/code_generation/ListCodes.py +1 -1
  293. nuitka/code_generation/LoaderCodes.py +1 -1
  294. nuitka/code_generation/LocalsDictCodes.py +1 -1
  295. nuitka/code_generation/LoopCodes.py +1 -1
  296. nuitka/code_generation/MatchCodes.py +1 -1
  297. nuitka/code_generation/ModuleCodes.py +31 -4
  298. nuitka/code_generation/Namify.py +4 -1
  299. nuitka/code_generation/NetworkxCodes.py +1 -1
  300. nuitka/code_generation/OperationCodes.py +1 -1
  301. nuitka/code_generation/PackageResourceCodes.py +4 -10
  302. nuitka/code_generation/PrintCodes.py +1 -1
  303. nuitka/code_generation/PythonAPICodes.py +1 -1
  304. nuitka/code_generation/RaisingCodes.py +1 -1
  305. nuitka/code_generation/Reports.py +1 -1
  306. nuitka/code_generation/ReturnCodes.py +1 -1
  307. nuitka/code_generation/SetCodes.py +1 -1
  308. nuitka/code_generation/SliceCodes.py +1 -1
  309. nuitka/code_generation/StringCodes.py +1 -1
  310. nuitka/code_generation/SubscriptCodes.py +1 -1
  311. nuitka/code_generation/TensorflowCodes.py +1 -1
  312. nuitka/code_generation/TryCodes.py +1 -1
  313. nuitka/code_generation/TupleCodes.py +1 -1
  314. nuitka/code_generation/TypeAliasCodes.py +1 -1
  315. nuitka/code_generation/VariableCodes.py +1 -1
  316. nuitka/code_generation/VariableDeclarations.py +1 -1
  317. nuitka/code_generation/YieldCodes.py +1 -1
  318. nuitka/code_generation/__init__.py +1 -1
  319. nuitka/code_generation/c_types/CTypeBases.py +1 -1
  320. nuitka/code_generation/c_types/CTypeBooleans.py +1 -1
  321. nuitka/code_generation/c_types/CTypeCFloats.py +1 -1
  322. nuitka/code_generation/c_types/CTypeCLongs.py +1 -1
  323. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +1 -1
  324. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +1 -1
  325. nuitka/code_generation/c_types/CTypeNuitkaInts.py +1 -1
  326. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
  327. nuitka/code_generation/c_types/CTypePyObjectPointers.py +1 -1
  328. nuitka/code_generation/c_types/CTypeVoids.py +1 -1
  329. nuitka/code_generation/c_types/__init__.py +1 -1
  330. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +1 -1
  331. nuitka/code_generation/templates/CodeTemplatesConstants.py +2 -2
  332. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +1 -1
  333. nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
  334. nuitka/code_generation/templates/CodeTemplatesFrames.py +21 -25
  335. nuitka/code_generation/templates/CodeTemplatesFunction.py +1 -1
  336. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +3 -3
  337. nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -1
  338. nuitka/code_generation/templates/CodeTemplatesLoader.py +26 -3
  339. nuitka/code_generation/templates/CodeTemplatesModules.py +21 -8
  340. nuitka/code_generation/templates/CodeTemplatesVariables.py +24 -21
  341. nuitka/code_generation/templates/TemplateDebugWrapper.py +1 -1
  342. nuitka/code_generation/templates/__init__.py +1 -1
  343. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +1 -1
  344. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
  345. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +1 -1
  346. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +21 -1
  347. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +1 -1
  348. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +1 -1
  349. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +1 -1
  350. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +5 -2
  351. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
  352. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
  353. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +1 -1
  354. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +1 -1
  355. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +1 -1
  356. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +1 -1
  357. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +1 -1
  358. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +1 -1
  359. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
  360. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
  361. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +1 -1
  362. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +1 -1
  363. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +1 -1
  364. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +1 -1
  365. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +1 -1
  366. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
  367. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
  368. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +1 -1
  369. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +1 -1
  370. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +1 -1
  371. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +1 -1
  372. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +1 -1
  373. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
  374. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +1 -1
  375. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +1 -1
  376. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +1 -1
  377. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +1 -1
  378. nuitka/containers/Namedtuples.py +1 -1
  379. nuitka/containers/OrderedSetsFallback.py +1 -1
  380. nuitka/containers/__init__.py +1 -1
  381. nuitka/distutils/Build.py +1 -1
  382. nuitka/distutils/DistutilCommands.py +2 -2
  383. nuitka/distutils/__init__.py +1 -1
  384. nuitka/finalizations/Finalization.py +1 -1
  385. nuitka/finalizations/FinalizeMarkups.py +1 -1
  386. nuitka/finalizations/__init__.py +1 -1
  387. nuitka/freezer/DependsExe.py +2 -1
  388. nuitka/freezer/DllDependenciesCommon.py +1 -1
  389. nuitka/freezer/DllDependenciesMacOS.py +1 -1
  390. nuitka/freezer/DllDependenciesPosix.py +1 -1
  391. nuitka/freezer/DllDependenciesWin32.py +111 -25
  392. nuitka/freezer/ImportDetection.py +5 -2
  393. nuitka/freezer/IncludedDataFiles.py +11 -2
  394. nuitka/freezer/IncludedEntryPoints.py +1 -1
  395. nuitka/freezer/Onefile.py +14 -15
  396. nuitka/freezer/Standalone.py +6 -3
  397. nuitka/freezer/__init__.py +1 -1
  398. nuitka/importing/IgnoreListing.py +1 -1
  399. nuitka/importing/ImportCache.py +1 -1
  400. nuitka/importing/ImportResolving.py +1 -1
  401. nuitka/importing/Importing.py +4 -3
  402. nuitka/importing/PreloadedPackages.py +1 -1
  403. nuitka/importing/Recursion.py +37 -12
  404. nuitka/importing/StandardLibrary.py +1 -1
  405. nuitka/importing/__init__.py +1 -1
  406. nuitka/nodes/AsyncgenNodes.py +1 -1
  407. nuitka/nodes/AttributeLookupNodes.py +1 -1
  408. nuitka/nodes/AttributeNodes.py +1 -1
  409. nuitka/nodes/AttributeNodesGenerated.py +1 -1
  410. nuitka/nodes/BuiltinAllNodes.py +1 -1
  411. nuitka/nodes/BuiltinAnyNodes.py +1 -1
  412. nuitka/nodes/BuiltinComplexNodes.py +1 -1
  413. nuitka/nodes/BuiltinDecodingNodes.py +1 -1
  414. nuitka/nodes/BuiltinDecoratorNodes.py +1 -1
  415. nuitka/nodes/BuiltinDictNodes.py +1 -1
  416. nuitka/nodes/BuiltinFormatNodes.py +1 -1
  417. nuitka/nodes/BuiltinHashNodes.py +1 -1
  418. nuitka/nodes/BuiltinInputNodes.py +1 -1
  419. nuitka/nodes/BuiltinIntegerNodes.py +1 -1
  420. nuitka/nodes/BuiltinIteratorNodes.py +2 -2
  421. nuitka/nodes/BuiltinLenNodes.py +1 -1
  422. nuitka/nodes/BuiltinNextNodes.py +1 -1
  423. nuitka/nodes/BuiltinOpenNodes.py +1 -1
  424. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +1 -1
  425. nuitka/nodes/BuiltinRangeNodes.py +1 -1
  426. nuitka/nodes/BuiltinRefNodes.py +1 -1
  427. nuitka/nodes/BuiltinSumNodes.py +1 -1
  428. nuitka/nodes/BuiltinTypeNodes.py +1 -1
  429. nuitka/nodes/BuiltinVarsNodes.py +1 -1
  430. nuitka/nodes/BytesNodes.py +1 -1
  431. nuitka/nodes/CallNodes.py +1 -1
  432. nuitka/nodes/Checkers.py +1 -1
  433. nuitka/nodes/ChildrenHavingMixins.py +227 -3
  434. nuitka/nodes/ClassNodes.py +1 -1
  435. nuitka/nodes/CodeObjectSpecs.py +4 -4
  436. nuitka/nodes/ComparisonNodes.py +1 -1
  437. nuitka/nodes/ConditionalNodes.py +1 -1
  438. nuitka/nodes/ConstantRefNodes.py +1 -1
  439. nuitka/nodes/ContainerMakingNodes.py +1 -1
  440. nuitka/nodes/ContainerOperationNodes.py +1 -1
  441. nuitka/nodes/CoroutineNodes.py +1 -1
  442. nuitka/nodes/CtypesNodes.py +1 -1
  443. nuitka/nodes/DictionaryNodes.py +2 -2
  444. nuitka/nodes/ExceptionNodes.py +1 -1
  445. nuitka/nodes/ExecEvalNodes.py +1 -1
  446. nuitka/nodes/ExpressionBases.py +1 -1
  447. nuitka/nodes/ExpressionBasesGenerated.py +1 -1
  448. nuitka/nodes/ExpressionShapeMixins.py +1 -1
  449. nuitka/nodes/FrameNodes.py +19 -7
  450. nuitka/nodes/FunctionAttributeNodes.py +1 -1
  451. nuitka/nodes/FunctionNodes.py +1 -1
  452. nuitka/nodes/FutureSpecs.py +34 -2
  453. nuitka/nodes/GeneratorNodes.py +1 -1
  454. nuitka/nodes/GlobalsLocalsNodes.py +1 -1
  455. nuitka/nodes/HardImportNodesGenerated.py +140 -56
  456. nuitka/nodes/ImportHardNodes.py +1 -1
  457. nuitka/nodes/ImportNodes.py +1 -1
  458. nuitka/nodes/IndicatorMixins.py +1 -1
  459. nuitka/nodes/InjectCNodes.py +1 -1
  460. nuitka/nodes/IterationHandles.py +1 -1
  461. nuitka/nodes/KeyValuePairNodes.py +1 -1
  462. nuitka/nodes/ListOperationNodes.py +1 -1
  463. nuitka/nodes/LocalsDictNodes.py +1 -1
  464. nuitka/nodes/LocalsScopes.py +1 -1
  465. nuitka/nodes/LoopNodes.py +1 -1
  466. nuitka/nodes/MatchNodes.py +1 -1
  467. nuitka/nodes/ModuleAttributeNodes.py +1 -1
  468. nuitka/nodes/ModuleNodes.py +2 -2
  469. nuitka/nodes/NetworkxNodes.py +1 -1
  470. nuitka/nodes/NodeBases.py +1 -1
  471. nuitka/nodes/NodeMakingHelpers.py +1 -1
  472. nuitka/nodes/NodeMetaClasses.py +1 -1
  473. nuitka/nodes/OperatorNodes.py +1 -1
  474. nuitka/nodes/OperatorNodesUnary.py +1 -1
  475. nuitka/nodes/OsSysNodes.py +1 -1
  476. nuitka/nodes/OutlineNodes.py +1 -1
  477. nuitka/nodes/PackageMetadataNodes.py +1 -1
  478. nuitka/nodes/PackageResourceNodes.py +42 -7
  479. nuitka/nodes/PrintNodes.py +1 -1
  480. nuitka/nodes/ReturnNodes.py +1 -1
  481. nuitka/nodes/SideEffectNodes.py +1 -1
  482. nuitka/nodes/SliceNodes.py +1 -1
  483. nuitka/nodes/StatementBasesGenerated.py +1 -1
  484. nuitka/nodes/StatementNodes.py +1 -1
  485. nuitka/nodes/StrNodes.py +1 -1
  486. nuitka/nodes/StringConcatenationNodes.py +1 -1
  487. nuitka/nodes/SubscriptNodes.py +1 -1
  488. nuitka/nodes/TensorflowNodes.py +1 -1
  489. nuitka/nodes/TryNodes.py +1 -1
  490. nuitka/nodes/TypeMatchNodes.py +1 -1
  491. nuitka/nodes/TypeNodes.py +1 -1
  492. nuitka/nodes/VariableAssignNodes.py +3 -2
  493. nuitka/nodes/VariableDelNodes.py +1 -1
  494. nuitka/nodes/VariableNameNodes.py +1 -1
  495. nuitka/nodes/VariableRefNodes.py +1 -1
  496. nuitka/nodes/VariableReleaseNodes.py +1 -1
  497. nuitka/nodes/YieldNodes.py +1 -1
  498. nuitka/nodes/__init__.py +1 -1
  499. nuitka/nodes/shapes/BuiltinTypeShapes.py +1 -1
  500. nuitka/nodes/shapes/ControlFlowDescriptions.py +1 -1
  501. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  502. nuitka/nodes/shapes/ShapeMixins.py +4 -3
  503. nuitka/nodes/shapes/StandardShapes.py +2 -51
  504. nuitka/nodes/shapes/__init__.py +1 -1
  505. nuitka/optimizations/BytecodeDemotion.py +1 -1
  506. nuitka/optimizations/FunctionInlining.py +1 -1
  507. nuitka/optimizations/Graphs.py +1 -1
  508. nuitka/optimizations/Optimization.py +1 -1
  509. nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
  510. nuitka/optimizations/Tags.py +1 -1
  511. nuitka/optimizations/TraceCollections.py +1 -1
  512. nuitka/optimizations/ValueTraces.py +1 -1
  513. nuitka/optimizations/__init__.py +1 -1
  514. nuitka/pgo/PGO.py +1 -1
  515. nuitka/pgo/__init__.py +1 -1
  516. nuitka/plugins/PluginBase.py +24 -3
  517. nuitka/plugins/Plugins.py +67 -14
  518. nuitka/plugins/YamlPluginBase.py +1 -1
  519. nuitka/plugins/__init__.py +1 -1
  520. nuitka/plugins/standard/AntiBloatPlugin.py +2 -1
  521. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +2 -1
  522. nuitka/plugins/standard/DataFilesPlugin.py +2 -2
  523. nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
  524. nuitka/plugins/standard/DillPlugin/DillPlugin.c +1 -1
  525. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +1 -1
  526. nuitka/plugins/standard/DillPlugin.py +2 -2
  527. nuitka/plugins/standard/DllFilesPlugin.py +80 -14
  528. nuitka/plugins/standard/EnumPlugin.py +2 -2
  529. nuitka/plugins/standard/EventletPlugin.py +2 -1
  530. nuitka/plugins/standard/GeventPlugin.py +2 -1
  531. nuitka/plugins/standard/GiPlugin.py +2 -1
  532. nuitka/plugins/standard/GlfwPlugin.py +2 -1
  533. nuitka/plugins/standard/ImplicitImports.py +8 -6
  534. nuitka/plugins/standard/KivyPlugin.py +2 -1
  535. nuitka/plugins/standard/MatplotlibPlugin.py +3 -2
  536. nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
  537. nuitka/plugins/standard/NumpyPlugin.py +2 -1
  538. nuitka/plugins/standard/OptionsNannyPlugin.py +7 -6
  539. nuitka/plugins/standard/PbrPlugin.py +2 -2
  540. nuitka/plugins/standard/PkgResourcesPlugin.py +2 -1
  541. nuitka/plugins/standard/PlaywrightPlugin.py +10 -15
  542. nuitka/plugins/standard/PmwPlugin.py +2 -1
  543. nuitka/plugins/standard/PySidePyQtPlugin.py +12 -15
  544. nuitka/plugins/standard/PywebViewPlugin.py +2 -1
  545. nuitka/plugins/standard/SpacyPlugin.py +2 -1
  546. nuitka/plugins/standard/TensorflowPlugin.py +2 -1
  547. nuitka/plugins/standard/TkinterPlugin.py +38 -5
  548. nuitka/plugins/standard/TorchPlugin.py +2 -1
  549. nuitka/plugins/standard/TransformersPlugin.py +2 -2
  550. nuitka/plugins/standard/TrioPlugin.py +2 -1
  551. nuitka/plugins/standard/UpxPlugin.py +2 -1
  552. nuitka/plugins/standard/__init__.py +1 -1
  553. nuitka/plugins/standard/standard.nuitka-package.config.yml +173 -49
  554. nuitka/reports/CompilationReportReader.py +5 -1
  555. nuitka/reports/LicenseReport.rst.j2 +1 -1
  556. nuitka/reports/Reports.py +5 -1
  557. nuitka/reports/__init__.py +1 -1
  558. nuitka/specs/BuiltinBytesOperationSpecs.py +1 -1
  559. nuitka/specs/BuiltinDictOperationSpecs.py +1 -1
  560. nuitka/specs/BuiltinListOperationSpecs.py +1 -1
  561. nuitka/specs/BuiltinParameterSpecs.py +1 -1
  562. nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
  563. nuitka/specs/BuiltinTypeOperationSpecs.py +1 -1
  564. nuitka/specs/BuiltinUnicodeOperationSpecs.py +1 -1
  565. nuitka/specs/HardImportSpecs.py +10 -2
  566. nuitka/specs/ParameterSpecs.py +17 -2
  567. nuitka/specs/__init__.py +1 -1
  568. nuitka/tools/Basics.py +1 -1
  569. nuitka/tools/__init__.py +1 -1
  570. nuitka/tools/commercial/__init__.py +1 -1
  571. nuitka/tools/data_composer/DataComposer.py +125 -1
  572. nuitka/tools/data_composer/__init__.py +1 -1
  573. nuitka/tools/data_composer/__main__.py +1 -1
  574. nuitka/tools/environments/CreateEnvironment.py +1 -1
  575. nuitka/tools/environments/Virtualenv.py +14 -6
  576. nuitka/tools/environments/__init__.py +1 -1
  577. nuitka/tools/general/__init__.py +1 -1
  578. nuitka/tools/general/dll_report/__init__.py +1 -1
  579. nuitka/tools/general/dll_report/__main__.py +1 -1
  580. nuitka/tools/general/find_module/FindModuleCode.py +2 -2
  581. nuitka/tools/general/find_module/__init__.py +1 -1
  582. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  583. nuitka/tools/general/generate_header/__init__.py +19 -0
  584. nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
  585. nuitka/tools/onefile_compressor/__init__.py +1 -1
  586. nuitka/tools/onefile_compressor/__main__.py +1 -1
  587. nuitka/tools/podman/Podman.py +1 -1
  588. nuitka/tools/podman/__init__.py +1 -1
  589. nuitka/tools/podman/__main__.py +8 -4
  590. nuitka/tools/profiler/__init__.py +1 -1
  591. nuitka/tools/profiler/__main__.py +1 -1
  592. nuitka/tools/scanning/DisplayPackageDLLs.py +43 -20
  593. nuitka/tools/scanning/DisplayPackageData.py +1 -1
  594. nuitka/tools/scanning/__init__.py +1 -1
  595. nuitka/tools/specialize/CTypeDescriptions.py +1 -1
  596. nuitka/tools/specialize/Common.py +1 -1
  597. nuitka/tools/specialize/SpecializeC.py +1 -1
  598. nuitka/tools/specialize/SpecializePython.py +7 -3
  599. nuitka/tools/specialize/__init__.py +1 -1
  600. nuitka/tools/testing/Common.py +140 -19
  601. nuitka/tools/testing/Constructs.py +1 -1
  602. nuitka/tools/testing/OutputComparison.py +5 -4
  603. nuitka/tools/testing/Pythons.py +1 -1
  604. nuitka/tools/testing/RuntimeTracing.py +1 -1
  605. nuitka/tools/testing/SearchModes.py +1 -1
  606. nuitka/tools/testing/Valgrind.py +1 -1
  607. nuitka/tools/testing/__init__.py +1 -1
  608. nuitka/tools/testing/check_reference_counts/__init__.py +1 -1
  609. nuitka/tools/testing/check_reference_counts/__main__.py +6 -2
  610. nuitka/tools/testing/compare_with_cpython/__init__.py +1 -1
  611. nuitka/tools/testing/compare_with_cpython/__main__.py +51 -14
  612. nuitka/tools/testing/find_sxs_modules/__init__.py +1 -1
  613. nuitka/tools/testing/find_sxs_modules/__main__.py +1 -1
  614. nuitka/tools/testing/measure_construct_performance/__init__.py +1 -1
  615. nuitka/tools/testing/measure_construct_performance/__main__.py +1 -1
  616. nuitka/tools/testing/run_nuitka_tests/__init__.py +1 -1
  617. nuitka/tools/testing/run_nuitka_tests/__main__.py +1 -1
  618. nuitka/tools/watch/AutoStage.py +1 -1
  619. nuitka/tools/watch/Common.py +55 -0
  620. nuitka/tools/watch/Conda.py +125 -0
  621. nuitka/tools/watch/GitHub.py +1 -1
  622. nuitka/tools/watch/Pacman.py +73 -0
  623. nuitka/tools/watch/Pipenv.py +143 -0
  624. nuitka/tools/watch/__init__.py +1 -1
  625. nuitka/tools/watch/__main__.py +117 -264
  626. nuitka/tree/Building.py +1 -1
  627. nuitka/tree/ComplexCallHelperFunctions.py +1 -1
  628. nuitka/tree/Extractions.py +1 -1
  629. nuitka/tree/InternalModule.py +1 -1
  630. nuitka/tree/Operations.py +1 -1
  631. nuitka/tree/ReformulationAssertStatements.py +1 -1
  632. nuitka/tree/ReformulationAssignmentStatements.py +1 -1
  633. nuitka/tree/ReformulationBooleanExpressions.py +1 -1
  634. nuitka/tree/ReformulationCallExpressions.py +1 -1
  635. nuitka/tree/ReformulationClasses.py +1 -1
  636. nuitka/tree/ReformulationClasses3.py +1 -1
  637. nuitka/tree/ReformulationComparisonExpressions.py +1 -1
  638. nuitka/tree/ReformulationContractionExpressions.py +3 -1
  639. nuitka/tree/ReformulationDictionaryCreation.py +1 -1
  640. nuitka/tree/ReformulationExecStatements.py +1 -1
  641. nuitka/tree/ReformulationForLoopStatements.py +1 -1
  642. nuitka/tree/ReformulationFunctionStatements.py +1 -1
  643. nuitka/tree/ReformulationImportStatements.py +1 -1
  644. nuitka/tree/ReformulationLambdaExpressions.py +2 -1
  645. nuitka/tree/ReformulationMatchStatements.py +1 -1
  646. nuitka/tree/ReformulationMultidist.py +1 -1
  647. nuitka/tree/ReformulationNamespacePackages.py +1 -1
  648. nuitka/tree/ReformulationPrintStatements.py +1 -1
  649. nuitka/tree/ReformulationSequenceCreation.py +1 -1
  650. nuitka/tree/ReformulationSubscriptExpressions.py +1 -1
  651. nuitka/tree/ReformulationTryExceptStatements.py +1 -1
  652. nuitka/tree/ReformulationTryFinallyStatements.py +1 -1
  653. nuitka/tree/ReformulationWhileLoopStatements.py +1 -1
  654. nuitka/tree/ReformulationWithStatements.py +1 -1
  655. nuitka/tree/ReformulationYieldExpressions.py +1 -1
  656. nuitka/tree/SourceHandling.py +1 -1
  657. nuitka/tree/SyntaxErrors.py +1 -1
  658. nuitka/tree/TreeHelpers.py +24 -10
  659. nuitka/tree/VariableClosure.py +1 -1
  660. nuitka/tree/__init__.py +1 -1
  661. nuitka/utils/AppDirs.py +5 -2
  662. nuitka/utils/CStrings.py +1 -1
  663. nuitka/utils/CommandLineOptions.py +2 -2
  664. nuitka/utils/Distributions.py +177 -15
  665. nuitka/utils/Download.py +14 -6
  666. nuitka/utils/Execution.py +43 -14
  667. nuitka/utils/FileOperations.py +29 -5
  668. nuitka/utils/Hashing.py +6 -2
  669. nuitka/utils/Images.py +8 -2
  670. nuitka/utils/Importing.py +1 -1
  671. nuitka/utils/InlineCopies.py +1 -1
  672. nuitka/utils/InstalledPythons.py +1 -1
  673. nuitka/utils/InstanceCounters.py +1 -1
  674. nuitka/utils/Jinja2.py +1 -1
  675. nuitka/utils/Json.py +2 -2
  676. nuitka/utils/MacOSApp.py +4 -3
  677. nuitka/utils/MemoryUsage.py +1 -1
  678. nuitka/utils/ModuleNames.py +1 -1
  679. nuitka/utils/PackageResources.py +1 -1
  680. nuitka/utils/ReExecute.py +1 -1
  681. nuitka/utils/Rest.py +1 -1
  682. nuitka/utils/SharedLibraries.py +76 -7
  683. nuitka/utils/Shebang.py +1 -1
  684. nuitka/utils/Signing.py +11 -5
  685. nuitka/utils/SlotMetaClasses.py +1 -1
  686. nuitka/utils/StaticLibraries.py +25 -1
  687. nuitka/utils/ThreadedExecutor.py +1 -1
  688. nuitka/utils/Timing.py +1 -1
  689. nuitka/utils/Utils.py +1 -1
  690. nuitka/utils/WindowsFileUsage.py +1 -1
  691. nuitka/utils/WindowsResources.py +3 -1
  692. nuitka/utils/Yaml.py +1 -1
  693. nuitka/utils/__init__.py +1 -1
  694. Nuitka_winsvc-2.5.1.dist-info/RECORD +0 -977
  695. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/LICENSE.txt +0 -0
  696. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/entry_points.txt +0 -0
  697. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/top_level.txt +0 -0
nuitka/OptionParsing.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Command line options of Nuitka.
@@ -43,10 +43,33 @@ if _nuitka_binary_name == "__main__.py":
43
43
  is_nuitka_run = _nuitka_binary_name.lower().endswith("-run")
44
44
 
45
45
  if not is_nuitka_run:
46
- usage_template = "usage: %s [--module] [--run] [options] main_module.py"
46
+ usage_template = (
47
+ "usage: %s [--mode=compilation_mode] [--run] [options] main_module.py"
48
+ )
47
49
  else:
48
- usage_template = "usage: %s [options] main_module.py"
50
+ usage_template = "usage: %s [--mode=compilation_mode] [options] main_module.py"
51
+
52
+
53
+ def _handleHelpModes():
54
+ result = False
55
+ for count, arg in enumerate(sys.argv[1:], start=1):
56
+ if arg == "--":
57
+ break
58
+ if arg in ("--help-all", "--help-plugin", "--help-plugins"):
59
+ result = True
60
+ sys.argv[count] = "--help"
61
+ break
62
+ return result
63
+
49
64
 
65
+ plugin_help_mode = _handleHelpModes()
66
+
67
+
68
+ if not plugin_help_mode:
69
+ usage_template += """\n
70
+ Note: For general plugin help (they often have their own
71
+ command line options too), consider the output of
72
+ '--help-plugins'."""
50
73
 
51
74
  parser = makeOptionsParser(usage=usage_template % _nuitka_binary_name)
52
75
 
@@ -65,6 +88,7 @@ parser.add_option(
65
88
  action="store_true",
66
89
  dest="module_mode",
67
90
  default=False,
91
+ github_action=False,
68
92
  help="""\
69
93
  Create an importable binary extension module executable instead of a program. Defaults to off.""",
70
94
  )
@@ -74,13 +98,17 @@ parser.add_option(
74
98
  action="store",
75
99
  dest="compilation_mode",
76
100
  metavar="COMPILATION_MODE",
77
- choices=("onefile", "standalone", "accelerated", "module"),
101
+ choices=("app", "onefile", "standalone", "accelerated", "module", "package"),
78
102
  default=None,
103
+ github_action_default="app",
79
104
  help="""\
80
105
  Mode in which to compile. Accelerated runs in your Python
81
106
  installation and depends on it. Standalone creates a folder
82
107
  with an executable contained to run it. Onefile creates a
83
- single executable to deploy. Default is 'accelerated'.""",
108
+ single executable to deploy. App is onefile except on macOS
109
+ where it's not to be used. Module makes a module, and
110
+ package includes also all sub-modules and sub-packages.
111
+ Default is 'accelerated'.""",
84
112
  )
85
113
 
86
114
  parser.add_option(
@@ -88,6 +116,7 @@ parser.add_option(
88
116
  action="store_true",
89
117
  dest="is_standalone",
90
118
  default=False,
119
+ github_action=False,
91
120
  help="""\
92
121
  Enable standalone mode for output. This allows you to transfer the created binary
93
122
  to other machines without it using an existing Python installation. This also
@@ -109,7 +138,7 @@ parser.add_option(
109
138
  action="store_true",
110
139
  dest="is_onefile",
111
140
  default=False,
112
- github_action_default=True,
141
+ github_action=False,
113
142
  help="""\
114
143
  On top of standalone mode, enable onefile mode. This means not a folder,
115
144
  but a compressed executable is created and used. Defaults to off.""",
@@ -399,13 +428,14 @@ This will only include non-DLL, non-extension modules, i.e. actual data
399
428
  files. After a ":" optionally a filename pattern can be given as
400
429
  well, selecting only matching files. Examples:
401
430
  "--include-package-data=package_name" (all files)
402
- "--include-package-data=package_name=*.txt" (only certain type)
403
- "--include-package-data=package_name=some_filename.dat (concrete file)
431
+ "--include-package-data=package_name:*.txt" (only certain type)
432
+ "--include-package-data=package_name:some_filename.dat (concrete file)
404
433
  Default empty.""",
405
434
  )
406
435
 
407
436
  data_group.add_option(
408
437
  "--include-data-files",
438
+ "--include-data-file",
409
439
  action="append",
410
440
  dest="data_files",
411
441
  metavar="DESC",
@@ -449,6 +479,7 @@ whole directory simply use 'package_name'. Default empty.""",
449
479
 
450
480
  data_group.add_option(
451
481
  "--include-onefile-external-data",
482
+ "--include-data-files-external",
452
483
  action="append",
453
484
  dest="data_files_external",
454
485
  metavar="PATTERN",
@@ -530,6 +561,17 @@ dll_group.add_option(
530
561
  Output the DLLs found for a given package name. Default not done.""",
531
562
  )
532
563
 
564
+ dll_group.add_option(
565
+ "--list-package-exe",
566
+ action="store",
567
+ dest="list_package_exe",
568
+ default="",
569
+ require_compiling=False,
570
+ help="""\
571
+ Output the EXEs found for a given package name. Default not done.""",
572
+ )
573
+
574
+
533
575
  del dll_group
534
576
 
535
577
  warnings_group = parser.add_option_group("Control the warnings to be given by Nuitka")
@@ -602,8 +644,9 @@ execute_group.add_option(
602
644
  dest="debugger",
603
645
  default=False,
604
646
  help="""\
605
- Execute inside a debugger, e.g. "gdb" or "lldb" to automatically get a stack trace.
606
- Defaults to off.""",
647
+ Execute inside a debugger, e.g. "gdb" or "lldb" to automatically get a stack trace. The
648
+ debugger is automatically chosen unless specified by name with the NUITKA_DEBUGGER_CHOICE
649
+ environment variable. Defaults to off.""",
607
650
  )
608
651
 
609
652
  del execute_group
@@ -641,7 +684,7 @@ compilation_group.add_option(
641
684
  "--file-reference-choice",
642
685
  action="store",
643
686
  dest="file_reference_mode",
644
- metavar="MODE",
687
+ metavar="FILE_MODE",
645
688
  choices=("original", "runtime", "frozen"),
646
689
  default=None,
647
690
  help="""\
@@ -660,7 +703,7 @@ compilation_group.add_option(
660
703
  "--module-name-choice",
661
704
  action="store",
662
705
  dest="module_name_mode",
663
- metavar="MODE",
706
+ metavar="MODULE_NAME_MODE",
664
707
  choices=("original", "runtime"),
665
708
  default=None,
666
709
  help="""\
@@ -961,6 +1004,15 @@ Create graph of optimization process internals, do not use for whole programs, b
961
1004
  for small test cases. Defaults to off.""",
962
1005
  )
963
1006
 
1007
+ development_group.add_option(
1008
+ "--devel-generate-ming64-header",
1009
+ action="store_true",
1010
+ dest="generate_mingw64_header",
1011
+ default=False,
1012
+ require_compiling=False,
1013
+ github_action=False,
1014
+ help=SUPPRESS_HELP,
1015
+ )
964
1016
 
965
1017
  del development_group
966
1018
 
@@ -1003,7 +1055,7 @@ c_compiler_group.add_option(
1003
1055
  "--mingw64",
1004
1056
  action="store_true",
1005
1057
  dest="mingw64",
1006
- default=False,
1058
+ default=None,
1007
1059
  help="""\
1008
1060
  Enforce the use of MinGW64 on Windows. Defaults to off unless MSYS2 with MinGW Python is used.""",
1009
1061
  )
@@ -1564,7 +1616,8 @@ macos_group.add_option(
1564
1616
  "--macos-create-app-bundle",
1565
1617
  action="store_true",
1566
1618
  dest="macos_create_bundle",
1567
- default=False,
1619
+ default=None,
1620
+ github_action=False,
1568
1621
  help="""\
1569
1622
  When compiling for macOS, create a bundle rather than a plain binary
1570
1623
  application. This is the only way to unlock the disabling of console,
@@ -1622,9 +1675,9 @@ macos_group.add_option(
1622
1675
  "--macos-app-mode",
1623
1676
  action="store",
1624
1677
  dest="macos_app_mode",
1625
- metavar="MODE",
1678
+ metavar="APP_MODE",
1626
1679
  choices=("gui", "background", "ui-element"),
1627
- default="gui",
1680
+ default=None,
1628
1681
  help="""\
1629
1682
  Mode of application for the application bundle. When launching a Window, and appearing
1630
1683
  in Docker is desired, default value "gui" is a good fit. Without a Window ever, the
@@ -1638,7 +1691,7 @@ macos_group.add_option(
1638
1691
  action="store",
1639
1692
  dest="macos_sign_identity",
1640
1693
  metavar="MACOS_APP_VERSION",
1641
- default="ad-hoc",
1694
+ default=None,
1642
1695
  help="""\
1643
1696
  When signing on macOS, by default an ad-hoc identify will be used, but with this
1644
1697
  option your get to specify another identity to use. The signing of code is now
@@ -1650,7 +1703,7 @@ macos_group.add_option(
1650
1703
  "--macos-sign-notarization",
1651
1704
  action="store_true",
1652
1705
  dest="macos_sign_notarization",
1653
- default=False,
1706
+ default=None,
1654
1707
  help="""\
1655
1708
  When signing for notarization, using a proper TeamID identity from Apple, use
1656
1709
  the required runtime signing option, such that it can be accepted.""",
@@ -1899,7 +1952,9 @@ def _considerPluginOptions(logger):
1899
1952
  addUserPluginCommandLineOptions,
1900
1953
  )
1901
1954
 
1902
- addStandardPluginCommandLineOptions(parser=parser)
1955
+ addStandardPluginCommandLineOptions(
1956
+ parser=parser, plugin_help_mode=plugin_help_mode
1957
+ )
1903
1958
 
1904
1959
  for arg in sys.argv[1:]:
1905
1960
  if arg.startswith(
@@ -1915,6 +1970,7 @@ def _considerPluginOptions(logger):
1915
1970
  addPluginCommandLineOptions(
1916
1971
  parser=parser,
1917
1972
  plugin_names=plugin_names.split(","),
1973
+ plugin_help_mode=plugin_help_mode,
1918
1974
  )
1919
1975
 
1920
1976
  if arg.startswith("--user-plugin="):
@@ -2221,7 +2277,7 @@ def parseOptions(logger):
2221
2277
  if arg.startswith(("--main=", "--script-name=")):
2222
2278
  filename_args.append(arg.split("=", 1)[1])
2223
2279
 
2224
- if arg == "--module":
2280
+ if arg in ("--mode=module", "--mode=module", "--module=package"):
2225
2281
  module_mode = True
2226
2282
 
2227
2283
  if arg[0] != "-":
@@ -2280,6 +2336,12 @@ def runSpecialCommandsFromOptions(options):
2280
2336
  displayDLLs(options.list_package_dlls)
2281
2337
  sys.exit(0)
2282
2338
 
2339
+ if options.list_package_exe:
2340
+ from nuitka.tools.scanning.DisplayPackageDLLs import displayEXEs
2341
+
2342
+ displayEXEs(options.list_package_exe)
2343
+ sys.exit(0)
2344
+
2283
2345
  if options.list_package_data:
2284
2346
  from nuitka.tools.scanning.DisplayPackageData import displayPackageData
2285
2347
 
@@ -2307,6 +2369,14 @@ def runSpecialCommandsFromOptions(options):
2307
2369
  )
2308
2370
  sys.exit(0)
2309
2371
 
2372
+ if options.generate_mingw64_header:
2373
+ from nuitka.tools.general.generate_header.GenerateHeader import (
2374
+ generateHeader,
2375
+ )
2376
+
2377
+ generateHeader()
2378
+ sys.exit(0)
2379
+
2310
2380
 
2311
2381
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
2312
2382
  # integrates with CPython, but also works on its own.
nuitka/Options.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Options module
@@ -51,12 +51,14 @@ from nuitka.PythonVersions import (
51
51
  getSupportedPythonVersions,
52
52
  isDebugPython,
53
53
  isPythonWithGil,
54
+ isStaticallyLinkedPython,
54
55
  python_version,
55
56
  python_version_str,
56
57
  )
57
58
  from nuitka.utils.Execution import getExecutablePath
58
59
  from nuitka.utils.FileOperations import (
59
60
  getNormalizedPath,
61
+ getReportPath,
60
62
  isLegalPath,
61
63
  isPathExecutable,
62
64
  openTextFile,
@@ -229,12 +231,12 @@ Absolute run time paths of '%s' can only be at the start of \
229
231
 
230
232
  if candidate == value:
231
233
  Tracing.options_logger.sysexit(
232
- """Cannot use general system folder %s, may only be the \
234
+ """Cannot use folder %s, may only be the \
233
235
  start of '%s=%s', using that alone is not allowed."""
234
236
  % (candidate, arg_name, value)
235
237
  )
236
238
 
237
- if value.startswith(candidate):
239
+ if value.startswith(candidate) and candidate != "{PROGRAM_BASE}":
238
240
  if value[len(candidate)] != os.path.sep:
239
241
  Tracing.options_logger.sysexit(
240
242
  """Cannot use general system folder %s, without a path \
@@ -296,15 +298,13 @@ it with e.g. '{TEMP}', '{CACHE_DIR}' is recommended: '%s'"""
296
298
 
297
299
 
298
300
  def _getVersionInformationValues():
299
- # TODO: Might be nice if we could delay version information computation
300
- # until it's actually used.
301
301
  yield getNuitkaVersion()
302
302
  yield "Commercial: %s" % getCommercialVersion()
303
303
  yield "Python: %s" % sys.version.split("\n", 1)[0]
304
304
  yield "Flavor: %s" % getPythonFlavorName()
305
305
  if python_version >= 0x3D0:
306
306
  yield "GIL: %s" % ("yes" if isPythonWithGil() else "no")
307
- yield "Executable: %s" % sys.executable
307
+ yield "Executable: %s" % getReportPath(sys.executable)
308
308
  yield "OS: %s" % getOS()
309
309
  yield "Arch: %s" % getArchitecture()
310
310
 
@@ -332,15 +332,15 @@ def printVersionInformation():
332
332
 
333
333
  from nuitka.build.SconsInterface import (
334
334
  asBoolStr,
335
+ getCommonSconsOptions,
335
336
  runScons,
336
- setCommonSconsOptions,
337
337
  )
338
338
 
339
- scons_options = {"compiler_version_mode": asBoolStr("true")}
340
- env_values = setCommonSconsOptions(options=scons_options)
339
+ scons_options, env_values = getCommonSconsOptions()
340
+ scons_options["compiler_version_mode"] = asBoolStr("true")
341
341
 
342
342
  runScons(
343
- options=scons_options,
343
+ scons_options=scons_options,
344
344
  env_values=env_values,
345
345
  scons_filename="CCompilerVersion.scons",
346
346
  )
@@ -348,12 +348,36 @@ def printVersionInformation():
348
348
 
349
349
  def _warnOnefileOnlyOption(option_name):
350
350
  if not options.is_onefile:
351
- Tracing.options_logger.warning(
352
- """\
353
- Using onefile specific option '%s' has no effect \
354
- when '--onefile' is not specified."""
355
- % option_name
356
- )
351
+ if options.github_workflow_options and isMacOS() and shallCreateAppBundle():
352
+ Tracing.options_logger.info(
353
+ """\
354
+ Note: Using onefile mode specific option '%s' has no effect \
355
+ with macOS app bundles."""
356
+ % option_name
357
+ )
358
+ else:
359
+ Tracing.options_logger.warning(
360
+ """\
361
+ Using onefile mode specific option '%s' has no effect \
362
+ when '--mode=onefile' is not specified."""
363
+ % option_name
364
+ )
365
+
366
+
367
+ def _warnOSSpecificOption(option_name, *supported_os):
368
+ if getOS() not in supported_os:
369
+ if options.github_workflow_options:
370
+ Tracing.options_logger.info(
371
+ """\
372
+ Note: Using OS specific option '%s' has no effect on %s."""
373
+ % (option_name, getOS())
374
+ )
375
+ else:
376
+ Tracing.options_logger.warning(
377
+ """\
378
+ Using OS specific option '%s' has no effect on %s."""
379
+ % (option_name, getOS())
380
+ )
357
381
 
358
382
 
359
383
  def _checkDataDirOptionValue(data_dir, option_name):
@@ -494,7 +518,12 @@ Error, the Python from Windows app store is not supported.""",
494
518
  Tracing.progress_logger.is_quiet = not options.show_progress
495
519
 
496
520
  if options.compilation_mode is not None:
497
- if options.is_onefile or options.is_standalone or options.module_mode:
521
+ if (
522
+ options.is_onefile
523
+ or options.is_standalone
524
+ or options.module_mode
525
+ or options.macos_create_bundle
526
+ ):
498
527
  Tracing.options_logger.sysexit(
499
528
  "Cannot use both '--mode=' and deprecated options that specify mode."
500
529
  )
@@ -505,6 +534,13 @@ Error, the Python from Windows app store is not supported.""",
505
534
  options.is_standalone = True
506
535
  elif options.compilation_mode == "module":
507
536
  options.module_mode = True
537
+ elif options.compilation_mode == "package":
538
+ options.module_mode = True
539
+ elif options.compilation_mode == "app":
540
+ if isMacOS():
541
+ options.macos_create_bundle = True
542
+ else:
543
+ options.is_onefile = True
508
544
 
509
545
  # Onefile implies standalone build.
510
546
  if options.is_onefile:
@@ -1019,24 +1055,40 @@ and recommended only for use in Nuitka development and testing."""
1019
1055
  % default_mode_name_mode
1020
1056
  )
1021
1057
 
1022
- # TODO: Not all of these are usable with MSYS2 really, split those off.
1023
- if not isWin32OrPosixWindows():
1024
- # Too many Windows specific options clearly
1025
- if (
1026
- getWindowsIconExecutablePath()
1027
- or shallAskForWindowsAdminRights()
1028
- or shallAskForWindowsUIAccessRights()
1029
- or getWindowsSplashScreen()
1030
- or isWindowsServiceMode()
1031
- ):
1032
- Tracing.options_logger.warning(
1033
- "Using Windows specific options has no effect on other platforms."
1034
- )
1035
-
1036
- if options.mingw64 or options.msvc_version:
1037
- Tracing.options_logger.warning(
1038
- "Requesting Windows specific compilers has no effect on other platforms."
1039
- )
1058
+ # TODO: This could be done via a generic option attribute and iterating over
1059
+ # them all, but maybe that's too inflexible long term.
1060
+ if getWindowsIconExecutablePath():
1061
+ _warnOSSpecificOption("--windows-icon-from-exe", "Windows")
1062
+ if shallAskForWindowsAdminRights():
1063
+ _warnOSSpecificOption("--windows-uac-admin", "Windows")
1064
+ if shallAskForWindowsUIAccessRights():
1065
+ _warnOSSpecificOption("--windows-uac-uiaccess", "Windows")
1066
+ if getWindowsSplashScreen():
1067
+ _warnOSSpecificOption("--onefile-windows-splash-screen-image", "Windows")
1068
+ if isWindowsServiceMode():
1069
+ _warnOSSpecificOption("--windows-service", "Windows")
1070
+ if options.mingw64 is not None:
1071
+ _warnOSSpecificOption("--mingw64", "Windows")
1072
+ if options.msvc_version is not None:
1073
+ _warnOSSpecificOption("--msvc", "Windows")
1074
+ if options.macos_target_arch is not None:
1075
+ _warnOSSpecificOption("--macos-target-arch", "Darwin")
1076
+ if options.macos_create_bundle is not None:
1077
+ _warnOSSpecificOption("--macos-create-app-bundle", "Darwin")
1078
+ if options.macos_sign_identity is not None:
1079
+ _warnOSSpecificOption("--macos-sign-identity", "Darwin")
1080
+ if options.macos_sign_notarization is not None:
1081
+ _warnOSSpecificOption("--macos-sign-notarization", "Darwin")
1082
+ if getMacOSAppName():
1083
+ _warnOSSpecificOption("--macos-app-name", "Darwin")
1084
+ if getMacOSSignedAppName():
1085
+ _warnOSSpecificOption("--macos-signed-app-name", "Darwin")
1086
+ if getMacOSAppVersion():
1087
+ _warnOSSpecificOption("--macos-app-version", "Darwin")
1088
+ if getMacOSAppProtectedResourcesAccesses():
1089
+ _warnOSSpecificOption("--macos-app-protected-resource", "Darwin")
1090
+ if options.macos_app_mode is not None:
1091
+ _warnOSSpecificOption("--macos-app-mode", "Darwin")
1040
1092
 
1041
1093
  if options.msvc_version:
1042
1094
  if isMSYS2MingwPython() or isPosixWindows():
@@ -1052,7 +1104,7 @@ and recommended only for use in Nuitka development and testing."""
1052
1104
  x.isdigit() for x in getMsvcVersion().split(".")
1053
1105
  ):
1054
1106
  Tracing.options_logger.sysexit(
1055
- "For --msvc only values 'latest', 'info', and 'X.Y' values are allowed, but not '%s'."
1107
+ "For '--msvc' only values 'latest', 'info', and 'X.Y' values are allowed, but not '%s'."
1056
1108
  % getMsvcVersion()
1057
1109
  )
1058
1110
 
@@ -1200,11 +1252,12 @@ and not with the non-debug version.
1200
1252
  """
1201
1253
  )
1202
1254
 
1203
- if isMacOS() and shallCreateAppBundle() and not getMacOSIconPaths():
1204
- Tracing.general.warning(
1255
+ if isMacOS() and shallCreateAppBundle() and not options.macos_icon_path:
1256
+ Tracing.options_logger.warning(
1205
1257
  """\
1206
1258
  For application bundles, you ought to specify an icon with '--macos-app-icon'.", \
1207
- otherwise a dock icon may not be present."""
1259
+ otherwise a dock icon may not be present. Specify 'none' value to disable \
1260
+ this warning."""
1208
1261
  )
1209
1262
 
1210
1263
  if (
@@ -1278,6 +1331,18 @@ have any effect anymore on non-Windows."""
1278
1331
  )
1279
1332
  )
1280
1333
 
1334
+ if (
1335
+ isWin32Windows()
1336
+ and getWindowsVersionInfoStrings()
1337
+ and getProductFileVersion() is None
1338
+ ):
1339
+ Tracing.options_logger.sysexit(
1340
+ """\
1341
+ Error, when providing version information on Windows, you must also
1342
+ provide either '--product-version' or '--file-version' as these can
1343
+ not have good defaults, but are forced to be present by the OS."""
1344
+ )
1345
+
1281
1346
 
1282
1347
  def isVerbose():
1283
1348
  """:returns: bool derived from ``--verbose``"""
@@ -1336,10 +1401,15 @@ def getModuleNameMode():
1336
1401
 
1337
1402
 
1338
1403
  def shallMakeModule():
1339
- """:returns: bool derived from ``--module``"""
1404
+ """:returns: bool derived from ``--mode=module|package``."""
1340
1405
  return options is not None and options.module_mode
1341
1406
 
1342
1407
 
1408
+ def shallMakePackage():
1409
+ """:returns: bool derived from ``--mode=package``."""
1410
+ return options is not None and options.compilation_mode == "package"
1411
+
1412
+
1343
1413
  def shallCreatePyiFile():
1344
1414
  """*bool* = **not** ``--no-pyi-file``"""
1345
1415
  return options.pyi_file
@@ -1407,12 +1477,14 @@ def getShallFollowExtraFilePatterns():
1407
1477
 
1408
1478
  def getMustIncludeModules():
1409
1479
  """*list*, items of ``--include-module=``"""
1410
- return sum([_splitShellPattern(x) for x in options.include_modules], [])
1480
+ return OrderedSet(sum([_splitShellPattern(x) for x in options.include_modules], []))
1411
1481
 
1412
1482
 
1413
1483
  def getMustIncludePackages():
1414
1484
  """*list*, items of ``--include-package=``"""
1415
- return sum([_splitShellPattern(x) for x in options.include_packages], [])
1485
+ return OrderedSet(
1486
+ sum([_splitShellPattern(x) for x in options.include_packages], [])
1487
+ )
1416
1488
 
1417
1489
 
1418
1490
  def getShallIncludeDistributionMetadata():
@@ -1483,7 +1555,7 @@ def getShallNotIncludeDataFilePatterns():
1483
1555
 
1484
1556
 
1485
1557
  def getShallIncludeExternallyDataFilePatterns():
1486
- """*list*, items of ``--include-onefile-external-data=``"""
1558
+ """*list*, items of ``--include-data-files-external=``"""
1487
1559
 
1488
1560
  return options.data_files_external
1489
1561
 
@@ -1557,7 +1629,7 @@ def getOutputFilename():
1557
1629
  def getOutputPath(path):
1558
1630
  """Return output pathname of a given path (filename)."""
1559
1631
  if options.output_dir:
1560
- return os.path.normpath(os.path.join(options.output_dir, path))
1632
+ return getNormalizedPath(os.path.join(options.output_dir, path))
1561
1633
  else:
1562
1634
  return path
1563
1635
 
@@ -1677,6 +1749,11 @@ added to provide the static link library.""",
1677
1749
  if isArchPackagePython():
1678
1750
  return True, None
1679
1751
 
1752
+ # If not dynamic link library is available, the static link library will
1753
+ # have to do it.
1754
+ if isStaticallyLinkedPython():
1755
+ return True, None
1756
+
1680
1757
  return options.static_libpython == "yes", None
1681
1758
 
1682
1759
 
@@ -1726,13 +1803,15 @@ def shallTreatUninstalledPython():
1726
1803
  return isUninstalledPython()
1727
1804
 
1728
1805
 
1729
- def shallCreateCmdFileForExecution():
1806
+ def shallCreateScriptFileForExecution():
1730
1807
  """*bool* = derived from Python installation and modes
1731
1808
 
1732
- Notes: Mostly for accelerated mode on Windows with uninstalled python, to
1733
- make sure they find their Python DLL.
1809
+ Notes: Mostly for accelerated mode with uninstalled python, to make sure
1810
+ they find their Python DLL and Python packages.
1734
1811
  """
1735
- return isWin32Windows() and shallTreatUninstalledPython()
1812
+
1813
+ # TODO: Are we having a need for both names really?
1814
+ return shallTreatUninstalledPython()
1736
1815
 
1737
1816
 
1738
1817
  def isShowScons():
@@ -1779,7 +1858,7 @@ def isClang():
1779
1858
  def isMingw64():
1780
1859
  """:returns: bool derived from ``--mingw64``, available only on Windows, otherwise false"""
1781
1860
  if isWin32Windows():
1782
- return options.mingw64 or isMSYS2MingwPython()
1861
+ return bool(options.mingw64 or isMSYS2MingwPython())
1783
1862
  else:
1784
1863
  return None
1785
1864
 
@@ -1938,7 +2017,7 @@ def isOnefileMode():
1938
2017
 
1939
2018
 
1940
2019
  def isAcceleratedMode():
1941
- """:returns: bool derived from ``--standalone`` and `--module`"""
2020
+ """:returns: bool derived from ``--mode=accelerated``"""
1942
2021
  return not isStandaloneMode() and not shallMakeModule()
1943
2022
 
1944
2023
 
@@ -2076,7 +2155,11 @@ def getLinuxIconPaths():
2076
2155
 
2077
2156
  def getMacOSIconPaths():
2078
2157
  """*list of str*, values of ``--macos-app-icon``"""
2079
- return _checkIconPaths(options.macos_icon_path)
2158
+ return tuple(
2159
+ _checkIconPaths(
2160
+ icon_path for icon_path in options.macos_icon_path if icon_path != "none"
2161
+ )
2162
+ )
2080
2163
 
2081
2164
 
2082
2165
  def getWindowsIconExecutablePath():
@@ -2250,6 +2333,9 @@ def getMacOSSigningIdentity():
2250
2333
  """*str* value to use as identity for codesign, derived from ``--macos-sign-identity`` value"""
2251
2334
  result = options.macos_sign_identity
2252
2335
 
2336
+ if result is None:
2337
+ result = "ad-hoc"
2338
+
2253
2339
  if result == "ad-hoc":
2254
2340
  result = "-"
2255
2341
 
@@ -2258,7 +2344,7 @@ def getMacOSSigningIdentity():
2258
2344
 
2259
2345
  def shallUseSigningForNotarization():
2260
2346
  """*bool* flag to use for codesign, derived from ``--macos-sign-notarization`` value"""
2261
- return options.macos_sign_notarization
2347
+ return bool(options.macos_sign_notarization)
2262
2348
 
2263
2349
 
2264
2350
  def getMacOSAppName():
@@ -2278,8 +2364,12 @@ def getMacOSAppVersion():
2278
2364
 
2279
2365
  def getMacOSAppProtectedResourcesAccesses():
2280
2366
  """*list* key, value for protected resources of the app to use for bundle"""
2367
+ result = []
2368
+
2281
2369
  for macos_protected_resource in options.macos_protected_resources:
2282
- yield macos_protected_resource.split(":", 1)
2370
+ result.append(macos_protected_resource.split(":", 1))
2371
+
2372
+ return result
2283
2373
 
2284
2374
 
2285
2375
  def isMacOSBackgroundApp():
@@ -2670,6 +2760,23 @@ def getForcedRuntimeEnvironmentVariableValues():
2670
2760
  yield (name, value)
2671
2761
 
2672
2762
 
2763
+ def getCompilationMode():
2764
+ """For reporting only, use shorter specific tests."""
2765
+
2766
+ if isAcceleratedMode():
2767
+ return "accelerated"
2768
+ elif shallMakeModule():
2769
+ return "module"
2770
+ elif shallMakePackage():
2771
+ return "package"
2772
+ elif shallCreateAppBundle():
2773
+ return "app"
2774
+ elif isOnefileMode():
2775
+ return "onefile"
2776
+ elif isStandaloneMode():
2777
+ return "standalone"
2778
+
2779
+
2673
2780
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
2674
2781
  # integrates with CPython, but also works on its own.
2675
2782
  #