Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
nuitka/OutputDirectories.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
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
|
""" Directories and paths to for output of Nuitka.
|
|
19
5
|
|
|
20
6
|
There are two major outputs, the build directory *.build and for
|
|
@@ -27,7 +13,12 @@ this.
|
|
|
27
13
|
import os
|
|
28
14
|
|
|
29
15
|
from nuitka import Options
|
|
30
|
-
from nuitka.utils.FileOperations import
|
|
16
|
+
from nuitka.utils.FileOperations import (
|
|
17
|
+
addFilenameExtension,
|
|
18
|
+
getNormalizedPath,
|
|
19
|
+
makePath,
|
|
20
|
+
putTextFileContents,
|
|
21
|
+
)
|
|
31
22
|
from nuitka.utils.Importing import getSharedLibrarySuffix
|
|
32
23
|
from nuitka.utils.Utils import isWin32OrPosixWindows, isWin32Windows
|
|
33
24
|
|
|
@@ -44,10 +35,19 @@ def setMainModule(main_module):
|
|
|
44
35
|
_main_module = main_module
|
|
45
36
|
|
|
46
37
|
|
|
38
|
+
def hasMainModule():
|
|
39
|
+
"""For reporting to check if there is anything to talk about."""
|
|
40
|
+
return _main_module is not None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def getMainModule():
|
|
44
|
+
return _main_module
|
|
45
|
+
|
|
46
|
+
|
|
47
47
|
def getSourceDirectoryPath(onefile=False):
|
|
48
48
|
"""Return path inside the build directory."""
|
|
49
49
|
|
|
50
|
-
# Distinct build folders for
|
|
50
|
+
# Distinct build folders for onefile mode.
|
|
51
51
|
if onefile:
|
|
52
52
|
suffix = ".onefile-build"
|
|
53
53
|
else:
|
|
@@ -59,6 +59,11 @@ def getSourceDirectoryPath(onefile=False):
|
|
|
59
59
|
|
|
60
60
|
makePath(result)
|
|
61
61
|
|
|
62
|
+
git_ignore_filename = os.path.join(result, ".gitignore")
|
|
63
|
+
|
|
64
|
+
if not os.path.exists(git_ignore_filename):
|
|
65
|
+
putTextFileContents(filename=git_ignore_filename, contents="*")
|
|
66
|
+
|
|
62
67
|
return result
|
|
63
68
|
|
|
64
69
|
|
|
@@ -131,12 +136,15 @@ def getResultFullpath(onefile):
|
|
|
131
136
|
elif output_filename is not None:
|
|
132
137
|
result = output_filename
|
|
133
138
|
elif not isWin32OrPosixWindows() and not Options.shallCreateAppBundle():
|
|
134
|
-
result
|
|
139
|
+
result = addFilenameExtension(result, ".bin")
|
|
135
140
|
|
|
136
|
-
if isWin32OrPosixWindows()
|
|
137
|
-
result
|
|
141
|
+
if isWin32OrPosixWindows():
|
|
142
|
+
result = addFilenameExtension(result, ".exe")
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
if not isWin32OrPosixWindows() and Options.isOnefileMode() and not onefile:
|
|
145
|
+
result = addFilenameExtension(result, ".bin")
|
|
146
|
+
|
|
147
|
+
return getNormalizedPath(result)
|
|
140
148
|
|
|
141
149
|
|
|
142
150
|
def getResultRunFilename(onefile):
|
|
@@ -158,3 +166,19 @@ def getPgoRunExecutable():
|
|
|
158
166
|
|
|
159
167
|
def getPgoRunInputFilename():
|
|
160
168
|
return getPgoRunExecutable() + ".nuitka-pgo"
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
172
|
+
# integrates with CPython, but also works on its own.
|
|
173
|
+
#
|
|
174
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
175
|
+
# you may not use this file except in compliance with the License.
|
|
176
|
+
# You may obtain a copy of the License at
|
|
177
|
+
#
|
|
178
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
179
|
+
#
|
|
180
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
181
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
182
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
183
|
+
# See the License for the specific language governing permissions and
|
|
184
|
+
# limitations under the License.
|
nuitka/PostProcessing.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
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
|
""" Postprocessing tasks for create binaries or modules.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -25,27 +11,27 @@ import sys
|
|
|
25
11
|
|
|
26
12
|
from nuitka import Options, OutputDirectories
|
|
27
13
|
from nuitka.build.DataComposerInterface import getConstantBlobFilename
|
|
28
|
-
from nuitka.
|
|
29
|
-
from nuitka.PythonVersions import
|
|
30
|
-
getPythonABI,
|
|
31
|
-
getTargetPythonDLLPath,
|
|
32
|
-
python_version,
|
|
33
|
-
python_version_str,
|
|
34
|
-
)
|
|
14
|
+
from nuitka.ModuleRegistry import getImportedModuleNames
|
|
15
|
+
from nuitka.PythonVersions import getTargetPythonDLLPath, python_version
|
|
35
16
|
from nuitka.Tracing import postprocessing_logger
|
|
36
17
|
from nuitka.utils.Execution import wrapCommandForDebuggerForExec
|
|
37
18
|
from nuitka.utils.FileOperations import (
|
|
38
|
-
getExternalUsePath,
|
|
39
19
|
getFileContents,
|
|
20
|
+
getFileSize,
|
|
21
|
+
hasFilenameExtension,
|
|
22
|
+
makeFilesystemEncodable,
|
|
40
23
|
makePath,
|
|
41
24
|
putTextFileContents,
|
|
42
25
|
removeFileExecutablePermission,
|
|
43
26
|
)
|
|
44
27
|
from nuitka.utils.Images import convertImageToIconFormat
|
|
28
|
+
from nuitka.utils.Importing import importFromInlineCopy
|
|
45
29
|
from nuitka.utils.MacOSApp import createPlistInfoFile
|
|
46
30
|
from nuitka.utils.SharedLibraries import (
|
|
47
31
|
callInstallNameTool,
|
|
48
32
|
cleanupHeaderForAndroid,
|
|
33
|
+
getOtoolDependencyOutput,
|
|
34
|
+
parseOtoolListingOutput,
|
|
49
35
|
)
|
|
50
36
|
from nuitka.utils.Utils import isAndroidBasedLinux, isMacOS, isWin32Windows
|
|
51
37
|
from nuitka.utils.WindowsResources import (
|
|
@@ -116,7 +102,7 @@ def _addWindowsIconFromIcons(onefile):
|
|
|
116
102
|
|
|
117
103
|
result_filename = OutputDirectories.getResultFullpath(onefile=onefile)
|
|
118
104
|
|
|
119
|
-
for icon_spec in Options.
|
|
105
|
+
for icon_spec in Options.getWindowsIconPaths():
|
|
120
106
|
if "#" in icon_spec:
|
|
121
107
|
icon_path, icon_index = icon_spec.rsplit("#", 1)
|
|
122
108
|
icon_index = int(icon_index)
|
|
@@ -124,9 +110,7 @@ def _addWindowsIconFromIcons(onefile):
|
|
|
124
110
|
icon_path = icon_spec
|
|
125
111
|
icon_index = None
|
|
126
112
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if not icon_path.endswith(".ico"):
|
|
113
|
+
if not hasFilenameExtension(icon_path, ".ico"):
|
|
130
114
|
postprocessing_logger.info(
|
|
131
115
|
"File '%s' is not in Windows icon format, converting to it." % icon_path
|
|
132
116
|
)
|
|
@@ -241,13 +225,13 @@ def executePostProcessingResources(manifest, onefile):
|
|
|
241
225
|
|
|
242
226
|
if (
|
|
243
227
|
Options.getWindowsVersionInfoStrings()
|
|
244
|
-
or Options.
|
|
245
|
-
or Options.
|
|
228
|
+
or Options.getProductVersionTuple()
|
|
229
|
+
or Options.getFileVersionTuple()
|
|
246
230
|
):
|
|
247
231
|
addVersionInfoResource(
|
|
248
232
|
string_values=Options.getWindowsVersionInfoStrings(),
|
|
249
|
-
product_version=Options.
|
|
250
|
-
file_version=Options.
|
|
233
|
+
product_version=Options.getProductVersionTuple(),
|
|
234
|
+
file_version=Options.getFileVersionTuple(),
|
|
251
235
|
file_date=(0, 0),
|
|
252
236
|
is_exe=not Options.shallMakeModule(),
|
|
253
237
|
result_filename=result_filename,
|
|
@@ -295,15 +279,11 @@ def executePostProcessing():
|
|
|
295
279
|
These are in part required steps, not usable after failure.
|
|
296
280
|
"""
|
|
297
281
|
|
|
298
|
-
# Lots of cases to deal with,
|
|
282
|
+
# Lots of cases to deal with,
|
|
283
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
299
284
|
|
|
300
285
|
result_filename = OutputDirectories.getResultFullpath(onefile=False)
|
|
301
286
|
|
|
302
|
-
if not os.path.exists(result_filename):
|
|
303
|
-
postprocessing_logger.sysexit(
|
|
304
|
-
"Error, scons failed to create the expected file %r. " % result_filename
|
|
305
|
-
)
|
|
306
|
-
|
|
307
287
|
if isWin32Windows():
|
|
308
288
|
if not Options.shallMakeModule():
|
|
309
289
|
if python_version < 0x300:
|
|
@@ -335,10 +315,26 @@ def executePostProcessing():
|
|
|
335
315
|
and not Options.shallMakeModule()
|
|
336
316
|
and not Options.shallUseStaticLibPython()
|
|
337
317
|
):
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
318
|
+
for dependency in parseOtoolListingOutput(
|
|
319
|
+
getOtoolDependencyOutput(result_filename, [])
|
|
320
|
+
):
|
|
321
|
+
if os.path.basename(dependency).lower().startswith(("python", "libpython")):
|
|
322
|
+
python_dll_filename = dependency
|
|
323
|
+
break
|
|
324
|
+
else:
|
|
325
|
+
postprocessing_logger.sysexit(
|
|
326
|
+
"""
|
|
327
|
+
Error, expected 'libpython dependency not found. Please report the bug."""
|
|
328
|
+
)
|
|
329
|
+
|
|
330
|
+
python_lib_path = os.path.dirname(python_dll_filename)
|
|
331
|
+
python_dll_path = python_dll_filename
|
|
332
|
+
|
|
333
|
+
if not os.path.exists(python_lib_path):
|
|
334
|
+
python_lib_path = os.path.join(sys.prefix, "lib")
|
|
335
|
+
python_dll_path = os.path.join(
|
|
336
|
+
python_lib_path, os.path.basename(python_dll_filename)
|
|
337
|
+
)
|
|
342
338
|
|
|
343
339
|
# Note: For CPython, and potentially others, the rpath for the Python
|
|
344
340
|
# library needs to be set, so it will be detected as a dependency
|
|
@@ -350,10 +346,6 @@ def executePostProcessing():
|
|
|
350
346
|
python_dll_filename,
|
|
351
347
|
python_dll_path,
|
|
352
348
|
),
|
|
353
|
-
(
|
|
354
|
-
"@rpath/Python3.framework/Versions/%s/Python3" % python_version_str,
|
|
355
|
-
python_dll_path,
|
|
356
|
-
),
|
|
357
349
|
),
|
|
358
350
|
id_path=None,
|
|
359
351
|
rpath=python_lib_path,
|
|
@@ -381,8 +373,6 @@ def executePostProcessing():
|
|
|
381
373
|
|
|
382
374
|
# Might have to create a CMD file, potentially with debugger run.
|
|
383
375
|
if Options.shallCreateCmdFileForExecution():
|
|
384
|
-
dll_directory = getExternalUsePath(os.path.dirname(getTargetPythonDLLPath()))
|
|
385
|
-
|
|
386
376
|
cmd_filename = OutputDirectories.getResultRunFilename(onefile=False)
|
|
387
377
|
|
|
388
378
|
cmd_contents = """
|
|
@@ -390,48 +380,112 @@ def executePostProcessing():
|
|
|
390
380
|
rem This script was created by Nuitka to execute '%(exe_filename)s' with Python DLL being found.
|
|
391
381
|
set PATH=%(dll_directory)s;%%PATH%%
|
|
392
382
|
set PYTHONHOME=%(python_home)s
|
|
383
|
+
set NUITKA_PYTHONPATH=%(python_path)s
|
|
393
384
|
%(debugger_call)s"%%~dp0%(exe_filename)s" %%*
|
|
394
385
|
""" % {
|
|
395
|
-
"debugger_call": (
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
"
|
|
386
|
+
"debugger_call": (
|
|
387
|
+
(" ".join(wrapCommandForDebuggerForExec()) + " ")
|
|
388
|
+
if Options.shallRunInDebugger()
|
|
389
|
+
else ""
|
|
390
|
+
),
|
|
391
|
+
"dll_directory": makeFilesystemEncodable(
|
|
392
|
+
os.path.dirname(getTargetPythonDLLPath())
|
|
393
|
+
),
|
|
394
|
+
"python_home": makeFilesystemEncodable(sys.prefix),
|
|
395
|
+
"python_path": ";".join(makeFilesystemEncodable(e) for e in sys.path),
|
|
396
|
+
"exe_filename": os.path.basename(makeFilesystemEncodable(result_filename)),
|
|
401
397
|
}
|
|
402
398
|
|
|
403
399
|
putTextFileContents(cmd_filename, cmd_contents)
|
|
404
400
|
|
|
405
401
|
# Create a ".pyi" file for created modules
|
|
406
402
|
if Options.shallMakeModule() and Options.shallCreatePyiFile():
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
403
|
+
if Options.shallCreatePyiFileContainStubs():
|
|
404
|
+
if python_version >= 0x300:
|
|
405
|
+
stubgen = importFromInlineCopy("stubgen", must_exist=False)
|
|
406
|
+
stubgen_reason = "Stubs included by default"
|
|
407
|
+
else:
|
|
408
|
+
stubgen = None
|
|
409
|
+
stubgen_reason = "Python2 is not supported for stubs"
|
|
410
|
+
else:
|
|
411
|
+
stubgen = None
|
|
412
|
+
stubgen_reason = "Stubs were disabled"
|
|
414
413
|
|
|
415
|
-
|
|
416
|
-
# tools that bundle libraries, including Nuitka itself. For instance
|
|
417
|
-
# standalone mode usage of the created library will need it.
|
|
414
|
+
imported_module_names = getImportedModuleNames()
|
|
418
415
|
|
|
419
|
-
|
|
420
|
-
#
|
|
421
|
-
|
|
422
|
-
# describes.
|
|
416
|
+
contents = """\
|
|
417
|
+
# This file was generated by Nuitka
|
|
418
|
+
"""
|
|
423
419
|
|
|
424
|
-
|
|
420
|
+
if stubgen is not None:
|
|
421
|
+
try:
|
|
422
|
+
stubs = stubgen.generate_stub_from_source(
|
|
423
|
+
source_code=OutputDirectories.getMainModule().getSourceCode(),
|
|
424
|
+
output_file_path=None,
|
|
425
|
+
text_only=True,
|
|
426
|
+
)
|
|
427
|
+
except Exception as e: # pylint: disable=broad-exception-caught
|
|
428
|
+
postprocessing_logger.warning(
|
|
429
|
+
"Stub generation with stubgen failed due to: '%s'. Please report the module code in an issue report."
|
|
430
|
+
% (str(e))
|
|
431
|
+
)
|
|
425
432
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
__name__ = ...
|
|
433
|
+
if Options.is_debug:
|
|
434
|
+
raise
|
|
429
435
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
"import %s" % module_name for module_name in getImportedNames()
|
|
436
|
+
stubs = None
|
|
437
|
+
stubgen_reason = (
|
|
438
|
+
"Stub generation failed due to error, please report the issue."
|
|
434
439
|
)
|
|
435
|
-
|
|
436
|
-
|
|
440
|
+
else:
|
|
441
|
+
stubs = None
|
|
442
|
+
|
|
443
|
+
stubs = "# %s\n%s" % (stubgen_reason, "" if stubs is None else stubs)
|
|
444
|
+
|
|
445
|
+
contents += "\n" + stubs + "\n"
|
|
446
|
+
|
|
447
|
+
contents += "__name__ = ..."
|
|
448
|
+
|
|
449
|
+
imported_module_names = getImportedModuleNames()
|
|
450
|
+
|
|
451
|
+
# Meaningless, TODO: Potentially others could be listed here too.
|
|
452
|
+
if "__future__" in imported_module_names:
|
|
453
|
+
imported_module_names.remove("__future__")
|
|
454
|
+
|
|
455
|
+
contents += "\n" * 4
|
|
456
|
+
|
|
457
|
+
if imported_module_names:
|
|
458
|
+
contents += "# Modules used internally, to allow implicit dependencies to be seen:\n"
|
|
459
|
+
contents += "\n".join(
|
|
460
|
+
"import %s" % module_name for module_name in getImportedModuleNames()
|
|
461
|
+
)
|
|
462
|
+
else:
|
|
463
|
+
contents += (
|
|
464
|
+
"# No other modules used internally, no implicit dependencies.\n"
|
|
465
|
+
)
|
|
466
|
+
|
|
467
|
+
pyi_filename = OutputDirectories.getResultBasePath() + ".pyi"
|
|
468
|
+
putTextFileContents(pyi_filename, contents, encoding="utf-8")
|
|
469
|
+
|
|
470
|
+
if isWin32Windows() and getFileSize(result_filename) > 2**30 * 1.8:
|
|
471
|
+
postprocessing_logger.warning(
|
|
472
|
+
"""\
|
|
473
|
+
The created compiled binary is larger than 1.8GB and therefore may not be
|
|
474
|
+
executable by Windows due to its limitations."""
|
|
437
475
|
)
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
479
|
+
# integrates with CPython, but also works on its own.
|
|
480
|
+
#
|
|
481
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
482
|
+
# you may not use this file except in compliance with the License.
|
|
483
|
+
# You may obtain a copy of the License at
|
|
484
|
+
#
|
|
485
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
486
|
+
#
|
|
487
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
488
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
489
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
490
|
+
# See the License for the specific language governing permissions and
|
|
491
|
+
# limitations under the License.
|
nuitka/Progress.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
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
|
""" Progress bars in Nuitka.
|
|
19
5
|
|
|
20
6
|
This is responsible for wrapping the rendering of progress bar and emitting tracing
|
|
@@ -25,16 +11,29 @@ to the user while it's being displayed.
|
|
|
25
11
|
from contextlib import contextmanager
|
|
26
12
|
|
|
27
13
|
from nuitka import Tracing
|
|
14
|
+
from nuitka.PythonVersions import isPythonWithGil
|
|
28
15
|
from nuitka.Tracing import general
|
|
29
16
|
from nuitka.utils.Importing import importFromInlineCopy
|
|
30
17
|
from nuitka.utils.ThreadedExecutor import RLock
|
|
31
18
|
from nuitka.utils.Utils import isWin32Windows
|
|
32
19
|
|
|
33
|
-
# spell-checker: ignore tqdm
|
|
20
|
+
# spell-checker: ignore tqdm,ncols
|
|
34
21
|
|
|
35
22
|
# Late import and optional to be there.
|
|
36
23
|
use_progress_bar = False
|
|
37
24
|
tqdm = None
|
|
25
|
+
colorama = None
|
|
26
|
+
|
|
27
|
+
_uses_threading = False
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def enableThreading():
|
|
31
|
+
"""Inform about threading being used."""
|
|
32
|
+
|
|
33
|
+
# Singleton, pylint: disable=global-statement
|
|
34
|
+
global _uses_threading
|
|
35
|
+
|
|
36
|
+
_uses_threading = True
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
class NuitkaProgressBar(object):
|
|
@@ -54,12 +53,13 @@ class NuitkaProgressBar(object):
|
|
|
54
53
|
self.tqdm = tqdm(
|
|
55
54
|
iterable=iterable,
|
|
56
55
|
initial=self.progress,
|
|
57
|
-
total=
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
total=(
|
|
57
|
+
max(self.total, self.min_total) if self.min_total is not None else None
|
|
58
|
+
),
|
|
60
59
|
unit=unit,
|
|
61
60
|
disable=None,
|
|
62
61
|
leave=False,
|
|
62
|
+
dynamic_ncols=True,
|
|
63
63
|
bar_format="{desc}{percentage:3.1f}%|{bar:25}| {n_fmt}/{total_fmt}{postfix}",
|
|
64
64
|
)
|
|
65
65
|
|
|
@@ -95,7 +95,10 @@ class NuitkaProgressBar(object):
|
|
|
95
95
|
|
|
96
96
|
@contextmanager
|
|
97
97
|
def withExternalWritingPause(self):
|
|
98
|
-
|
|
98
|
+
# spell-checker: ignore nolock
|
|
99
|
+
with self.tqdm.external_write_mode(
|
|
100
|
+
nolock=not _uses_threading or isPythonWithGil()
|
|
101
|
+
):
|
|
99
102
|
yield
|
|
100
103
|
|
|
101
104
|
|
|
@@ -107,7 +110,7 @@ def _getTqdmModule():
|
|
|
107
110
|
elif tqdm is False:
|
|
108
111
|
return None
|
|
109
112
|
else:
|
|
110
|
-
tqdm = importFromInlineCopy("tqdm", must_exist=False)
|
|
113
|
+
tqdm = importFromInlineCopy("tqdm", must_exist=False, delete_module=True)
|
|
111
114
|
|
|
112
115
|
if tqdm is None:
|
|
113
116
|
try:
|
|
@@ -134,12 +137,17 @@ def _getTqdmModule():
|
|
|
134
137
|
|
|
135
138
|
def enableProgressBar():
|
|
136
139
|
global use_progress_bar # singleton, pylint: disable=global-statement
|
|
140
|
+
global colorama # singleton, pylint: disable=global-statement
|
|
137
141
|
|
|
138
142
|
if _getTqdmModule() is not None:
|
|
139
143
|
use_progress_bar = True
|
|
140
144
|
|
|
141
145
|
if isWin32Windows():
|
|
142
|
-
colorama
|
|
146
|
+
if colorama is None:
|
|
147
|
+
colorama = importFromInlineCopy(
|
|
148
|
+
"colorama", must_exist=True, delete_module=True
|
|
149
|
+
)
|
|
150
|
+
|
|
143
151
|
colorama.init()
|
|
144
152
|
|
|
145
153
|
|
|
@@ -201,3 +209,44 @@ def wrapWithProgressBar(iterable, stage, unit):
|
|
|
201
209
|
Tracing.progress = result
|
|
202
210
|
|
|
203
211
|
return result
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
@contextmanager
|
|
215
|
+
def withNuitkaDownloadProgressBar(*args, **kwargs):
|
|
216
|
+
if not use_progress_bar or _getTqdmModule() is None:
|
|
217
|
+
yield
|
|
218
|
+
else:
|
|
219
|
+
|
|
220
|
+
class NuitkaDownloadProgressBar(tqdm):
|
|
221
|
+
# spell-checker: ignore bsize, tsize
|
|
222
|
+
def onProgress(self, b=1, bsize=1, tsize=None):
|
|
223
|
+
if tsize is not None:
|
|
224
|
+
# False alarm when tqdm is not installed, pylint: disable=I0021,attribute-defined-outside-init
|
|
225
|
+
self.total = tsize
|
|
226
|
+
self.update(b * bsize - self.n)
|
|
227
|
+
|
|
228
|
+
kwargs.update(
|
|
229
|
+
disable=None,
|
|
230
|
+
leave=False,
|
|
231
|
+
dynamic_ncols=True,
|
|
232
|
+
bar_format="{desc} {percentage:3.1f}%|{bar:25}| {n_fmt}/{total_fmt}{postfix}",
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
with NuitkaDownloadProgressBar(*args, **kwargs) as progress_bar:
|
|
236
|
+
yield progress_bar.onProgress
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
240
|
+
# integrates with CPython, but also works on its own.
|
|
241
|
+
#
|
|
242
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
243
|
+
# you may not use this file except in compliance with the License.
|
|
244
|
+
# You may obtain a copy of the License at
|
|
245
|
+
#
|
|
246
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
247
|
+
#
|
|
248
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
249
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
250
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
251
|
+
# See the License for the specific language governing permissions and
|
|
252
|
+
# limitations under the License.
|