Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -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 +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- 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 +91 -53
- 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 +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- 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 +593 -190
- 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 -18
- 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 +17 -17
- 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 +24 -22
- 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 +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- 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 +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -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_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 +17 -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 +17 -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 +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -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 +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- 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 +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -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/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 +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- 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 +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- 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 +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- 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 +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- 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 +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- 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 +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- 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 +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- 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 +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- 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 +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -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 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- 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 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- 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/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- 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 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- 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 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- 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 +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- 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 +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- 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 +24 -20
- 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 +68 -19
- 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 +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- 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 +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- 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 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- 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 +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- 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 +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- 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 +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- 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/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -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 +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- 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 +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -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 +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- 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 +19 -21
- 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 +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- 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 +36 -29
- 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 +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -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 +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -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 +21 -19
- 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 +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- 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 +115 -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.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
nuitka/utils/Hashing.py
CHANGED
|
@@ -1,30 +1,15 @@
|
|
|
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
|
""" Module for working with hashes in Nuitka.
|
|
19
5
|
|
|
20
6
|
Offers support for hashing incrementally and files esp. without having
|
|
21
7
|
to read their contents.
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
|
-
import hashlib
|
|
25
10
|
from binascii import crc32
|
|
26
11
|
|
|
27
|
-
from nuitka.__past__ import unicode
|
|
12
|
+
from nuitka.__past__ import md5, unicode
|
|
28
13
|
|
|
29
14
|
from .FileOperations import openTextFile
|
|
30
15
|
|
|
@@ -44,27 +29,42 @@ class HashBase(object):
|
|
|
44
29
|
self.updateFromBytes(value)
|
|
45
30
|
elif type(value) is bytes:
|
|
46
31
|
self.updateFromBytes(value)
|
|
32
|
+
elif type(value) is dict:
|
|
33
|
+
self.updateFromBytes(b"dict")
|
|
34
|
+
self.updateFromValues(*list(value.items()))
|
|
35
|
+
elif type(value) is tuple:
|
|
36
|
+
self.updateFromBytes(b"tuple")
|
|
37
|
+
self.updateFromValues(*value)
|
|
38
|
+
elif type(value) is list:
|
|
39
|
+
self.updateFromBytes(b"list")
|
|
40
|
+
self.updateFromValues(*value)
|
|
47
41
|
else:
|
|
48
42
|
assert False, type(value)
|
|
49
43
|
|
|
50
|
-
def updateFromFile(self, filename):
|
|
51
|
-
# TODO: Read in chunks
|
|
44
|
+
def updateFromFile(self, filename, line_filter=None):
|
|
52
45
|
with openTextFile(filename, "rb") as input_file:
|
|
53
|
-
self.updateFromFileHandle(input_file)
|
|
46
|
+
self.updateFromFileHandle(input_file, line_filter=line_filter)
|
|
47
|
+
|
|
48
|
+
def updateFromFileHandle(self, file_handle, line_filter=None):
|
|
49
|
+
if line_filter is None:
|
|
50
|
+
while 1:
|
|
51
|
+
chunk = file_handle.read(1024 * 1024)
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
chunk = file_handle.read(1024 * 64)
|
|
53
|
+
if not chunk:
|
|
54
|
+
break
|
|
58
55
|
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
self.updateFromBytes(chunk)
|
|
57
|
+
else:
|
|
58
|
+
for line in file_handle:
|
|
59
|
+
line = line_filter(line)
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
if line is not None:
|
|
62
|
+
self.updateFromBytes(line)
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
class Hash(HashBase):
|
|
66
66
|
def __init__(self):
|
|
67
|
-
self.hash =
|
|
67
|
+
self.hash = md5()
|
|
68
68
|
|
|
69
69
|
def updateFromBytes(self, value):
|
|
70
70
|
self.hash.update(value)
|
|
@@ -76,9 +76,9 @@ class Hash(HashBase):
|
|
|
76
76
|
return self.hash.hexdigest()
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
def getFileContentsHash(filename, as_string=True):
|
|
79
|
+
def getFileContentsHash(filename, as_string=True, line_filter=None):
|
|
80
80
|
result = Hash()
|
|
81
|
-
result.updateFromFile(filename=filename)
|
|
81
|
+
result.updateFromFile(filename=filename, line_filter=line_filter)
|
|
82
82
|
|
|
83
83
|
if as_string:
|
|
84
84
|
return result.asHexDigest()
|
|
@@ -86,11 +86,14 @@ def getFileContentsHash(filename, as_string=True):
|
|
|
86
86
|
return result.asDigest()
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
def getStringHash(value):
|
|
89
|
+
def getStringHash(value, as_string=True):
|
|
90
90
|
result = Hash()
|
|
91
91
|
result.updateFromValues(value)
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
if as_string:
|
|
94
|
+
return result.asHexDigest()
|
|
95
|
+
else:
|
|
96
|
+
return result.asDigest()
|
|
94
97
|
|
|
95
98
|
|
|
96
99
|
def getHashFromValues(*values):
|
|
@@ -109,3 +112,22 @@ class HashCRC32(HashBase):
|
|
|
109
112
|
|
|
110
113
|
def asDigest(self):
|
|
111
114
|
return self.hash
|
|
115
|
+
|
|
116
|
+
def asHexDigest(self):
|
|
117
|
+
return hex(self.hash)[2:]
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
121
|
+
# integrates with CPython, but also works on its own.
|
|
122
|
+
#
|
|
123
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
124
|
+
# you may not use this file except in compliance with the License.
|
|
125
|
+
# You may obtain a copy of the License at
|
|
126
|
+
#
|
|
127
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
128
|
+
#
|
|
129
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
130
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
131
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
132
|
+
# See the License for the specific language governing permissions and
|
|
133
|
+
# limitations under the License.
|
nuitka/utils/Images.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
|
""" Handling of images, esp. format conversions for icons.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -36,10 +22,15 @@ def checkIconUsage(logger, icon_path):
|
|
|
36
22
|
if needs_conversion:
|
|
37
23
|
try:
|
|
38
24
|
import imageio # pylint: disable=I0021,import-error,unused-import
|
|
39
|
-
except ImportError:
|
|
25
|
+
except ImportError as e:
|
|
26
|
+
from nuitka import Options
|
|
27
|
+
|
|
28
|
+
if Options.is_debug:
|
|
29
|
+
logger.info("Exception importing 'imageio' is %s" % repr(e))
|
|
30
|
+
|
|
40
31
|
logger.sysexit(
|
|
41
32
|
"""\
|
|
42
|
-
Need to install 'imageio' to
|
|
33
|
+
Need to install 'imageio' to automatically convert the non native \
|
|
43
34
|
icon image (%s) in file in '%s'."""
|
|
44
35
|
% (icon_format[1:].upper(), icon_path)
|
|
45
36
|
)
|
|
@@ -64,3 +55,19 @@ def convertImageToIconFormat(logger, image_filename, converted_icon_filename):
|
|
|
64
55
|
)
|
|
65
56
|
|
|
66
57
|
imageio.imwrite(converted_icon_filename, image)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
61
|
+
# integrates with CPython, but also works on its own.
|
|
62
|
+
#
|
|
63
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
64
|
+
# you may not use this file except in compliance with the License.
|
|
65
|
+
# You may obtain a copy of the License at
|
|
66
|
+
#
|
|
67
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
68
|
+
#
|
|
69
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
70
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
71
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
72
|
+
# See the License for the specific language governing permissions and
|
|
73
|
+
# limitations under the License.
|
nuitka/utils/Importing.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
|
""" Helper to import a file as a module.
|
|
19
5
|
|
|
20
6
|
Used for Nuitka plugins and for test code.
|
|
@@ -26,6 +12,7 @@ import sys
|
|
|
26
12
|
from nuitka.PythonVersions import python_version
|
|
27
13
|
from nuitka.Tracing import general
|
|
28
14
|
|
|
15
|
+
from .ModuleNames import ModuleName
|
|
29
16
|
from .Utils import withNoDeprecationWarning
|
|
30
17
|
|
|
31
18
|
|
|
@@ -53,7 +40,7 @@ def _importFilePy3OldWay(filename):
|
|
|
53
40
|
|
|
54
41
|
def importFilePy2(filename):
|
|
55
42
|
"""Import a file for Python version 2."""
|
|
56
|
-
import imp
|
|
43
|
+
import imp # Python2 only, pylint: disable=I0021,import-error
|
|
57
44
|
|
|
58
45
|
basename = os.path.splitext(os.path.basename(filename))[0]
|
|
59
46
|
return imp.load_source(basename, filename)
|
|
@@ -89,7 +76,7 @@ def getSharedLibrarySuffixes():
|
|
|
89
76
|
|
|
90
77
|
if _shared_library_suffixes is None:
|
|
91
78
|
if python_version < 0x300:
|
|
92
|
-
import imp
|
|
79
|
+
import imp # Python2 only, pylint: disable=I0021,import-error
|
|
93
80
|
|
|
94
81
|
_shared_library_suffixes = []
|
|
95
82
|
|
|
@@ -163,7 +150,10 @@ def _importFromFolder(logger, module_name, path, must_exist, message):
|
|
|
163
150
|
del sys.path[0]
|
|
164
151
|
|
|
165
152
|
|
|
166
|
-
|
|
153
|
+
_deleted_modules = {}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def importFromInlineCopy(module_name, must_exist, delete_module=False):
|
|
167
157
|
"""Import a module from the inline copy stage."""
|
|
168
158
|
|
|
169
159
|
folder_name = os.path.normpath(
|
|
@@ -181,7 +171,7 @@ def importFromInlineCopy(module_name, must_exist):
|
|
|
181
171
|
elif python_version < 0x360 and os.path.exists(candidate_35):
|
|
182
172
|
folder_name = candidate_35
|
|
183
173
|
|
|
184
|
-
|
|
174
|
+
module = _importFromFolder(
|
|
185
175
|
module_name=module_name,
|
|
186
176
|
path=folder_name,
|
|
187
177
|
must_exist=must_exist,
|
|
@@ -189,6 +179,19 @@ def importFromInlineCopy(module_name, must_exist):
|
|
|
189
179
|
logger=general,
|
|
190
180
|
)
|
|
191
181
|
|
|
182
|
+
if delete_module and module_name in sys.modules:
|
|
183
|
+
delete_module_names = set([module_name])
|
|
184
|
+
|
|
185
|
+
for m in sys.modules:
|
|
186
|
+
if m.startswith(module_name + "."):
|
|
187
|
+
delete_module_names.add(m)
|
|
188
|
+
|
|
189
|
+
for delete_module_name in delete_module_names:
|
|
190
|
+
_deleted_modules[delete_module_name] = sys.modules[delete_module_name]
|
|
191
|
+
del sys.modules[delete_module_name]
|
|
192
|
+
|
|
193
|
+
return module
|
|
194
|
+
|
|
192
195
|
|
|
193
196
|
_compile_time_modules = {}
|
|
194
197
|
|
|
@@ -220,16 +223,39 @@ def importFromCompileTime(module_name, must_exist):
|
|
|
220
223
|
|
|
221
224
|
def isBuiltinModuleName(module_name):
|
|
222
225
|
if python_version < 0x300:
|
|
223
|
-
import imp as _imp
|
|
226
|
+
import imp as _imp # Python2 only, pylint: disable=I0021,import-error
|
|
224
227
|
else:
|
|
225
228
|
import _imp
|
|
226
229
|
|
|
227
|
-
|
|
230
|
+
result = _imp.is_builtin(module_name) or _imp.is_frozen(module_name)
|
|
231
|
+
|
|
232
|
+
# Some frozen modules are not actually in that list, e.g.
|
|
233
|
+
# "importlib._bootstrap_external" on Python3.10 doesn't report to
|
|
234
|
+
# "_imp.is_frozen()" above, so we check if it's already loaded and from the
|
|
235
|
+
# "FrozenImporter" by name.
|
|
236
|
+
if result is False and module_name in sys.modules:
|
|
237
|
+
module = sys.modules[module_name]
|
|
238
|
+
|
|
239
|
+
if hasattr(module, "__loader__"):
|
|
240
|
+
loader = module.__loader__
|
|
241
|
+
|
|
242
|
+
try:
|
|
243
|
+
result = loader.__name__ == "FrozenImporter"
|
|
244
|
+
except AttributeError:
|
|
245
|
+
pass
|
|
246
|
+
|
|
247
|
+
return result
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
# Have a set for quicker lookups, and we cannot have "__main__" in there.
|
|
251
|
+
builtin_module_names = set(
|
|
252
|
+
module_name for module_name in sys.builtin_module_names if module_name != "__main__"
|
|
253
|
+
)
|
|
228
254
|
|
|
229
255
|
|
|
230
256
|
def getModuleFilenameSuffixes():
|
|
231
257
|
if python_version < 0x3C0:
|
|
232
|
-
import imp
|
|
258
|
+
import imp # Older Python only, pylint: disable=I0021,import-error
|
|
233
259
|
|
|
234
260
|
for suffix, _mode, module_type in imp.get_suffixes():
|
|
235
261
|
if module_type == imp.C_EXTENSION:
|
|
@@ -251,3 +277,71 @@ def getModuleFilenameSuffixes():
|
|
|
251
277
|
yield suffix, "PY_SOURCE"
|
|
252
278
|
for suffix in importlib.machinery.BYTECODE_SUFFIXES:
|
|
253
279
|
yield suffix, "PY_COMPILED"
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
def getModuleNameAndKindFromFilenameSuffix(module_filename):
|
|
283
|
+
"""Given a filename, decide the module name and kind.
|
|
284
|
+
|
|
285
|
+
Args:
|
|
286
|
+
module_name - file path of the module
|
|
287
|
+
Returns:
|
|
288
|
+
Tuple with the name of the module basename, and the kind of the
|
|
289
|
+
module derived from the file suffix. Can be None, None if is is not a
|
|
290
|
+
known file suffix.
|
|
291
|
+
Notes:
|
|
292
|
+
This doesn't handle packages at all.
|
|
293
|
+
"""
|
|
294
|
+
if module_filename.endswith(".py"):
|
|
295
|
+
return ModuleName(os.path.basename(module_filename)[:-3]), "py"
|
|
296
|
+
|
|
297
|
+
if module_filename.endswith(".pyc"):
|
|
298
|
+
return ModuleName(os.path.basename(module_filename)[:-4]), "pyc"
|
|
299
|
+
|
|
300
|
+
for suffix in getSharedLibrarySuffixes():
|
|
301
|
+
if module_filename.endswith(suffix):
|
|
302
|
+
return (
|
|
303
|
+
ModuleName(os.path.basename(module_filename)[: -len(suffix)]),
|
|
304
|
+
"extension",
|
|
305
|
+
)
|
|
306
|
+
|
|
307
|
+
return None, None
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def hasPackageDirFilename(path):
|
|
311
|
+
path = os.path.basename(path)
|
|
312
|
+
|
|
313
|
+
for suffix in (".py",) + getSharedLibrarySuffixes():
|
|
314
|
+
candidate = "__init__" + suffix
|
|
315
|
+
|
|
316
|
+
if candidate == path:
|
|
317
|
+
return True
|
|
318
|
+
|
|
319
|
+
return False
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def getPackageDirFilename(path):
|
|
323
|
+
assert os.path.isdir(path)
|
|
324
|
+
|
|
325
|
+
for suffix in getSharedLibrarySuffixes() + (".py",):
|
|
326
|
+
candidate = os.path.join(path, "__init__" + suffix)
|
|
327
|
+
|
|
328
|
+
if os.path.isfile(candidate):
|
|
329
|
+
return candidate
|
|
330
|
+
|
|
331
|
+
return None
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
335
|
+
# integrates with CPython, but also works on its own.
|
|
336
|
+
#
|
|
337
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
338
|
+
# you may not use this file except in compliance with the License.
|
|
339
|
+
# You may obtain a copy of the License at
|
|
340
|
+
#
|
|
341
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
342
|
+
#
|
|
343
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
344
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
345
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
346
|
+
# See the License for the specific language governing permissions and
|
|
347
|
+
# limitations under the License.
|
nuitka/utils/InstalledPythons.py
CHANGED
|
@@ -1,28 +1,17 @@
|
|
|
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
|
""" Provide installed Pythons with module availability checks. """
|
|
19
5
|
|
|
20
6
|
import os
|
|
21
7
|
import sys
|
|
22
8
|
|
|
23
|
-
from nuitka.__past__ import WindowsError # pylint: disable=I0021,redefined-builtin
|
|
24
9
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
25
|
-
from nuitka.
|
|
10
|
+
from nuitka.PythonFlavors import isAnacondaPython, isMSYS2MingwPython
|
|
11
|
+
from nuitka.PythonVersions import (
|
|
12
|
+
getInstalledPythonRegistryPaths,
|
|
13
|
+
python_version_str,
|
|
14
|
+
)
|
|
26
15
|
|
|
27
16
|
from .Execution import (
|
|
28
17
|
NuitkaCalledProcessError,
|
|
@@ -55,11 +44,34 @@ class InstalledPython(object):
|
|
|
55
44
|
return int(major) * 256 + int(minor) * 16
|
|
56
45
|
|
|
57
46
|
def isAnacondaPython(self):
|
|
58
|
-
|
|
47
|
+
if self.python_exe == sys.executable:
|
|
48
|
+
return isAnacondaPython()
|
|
49
|
+
|
|
50
|
+
# TODO: May not yet work really.
|
|
59
51
|
return os.path.exists(
|
|
60
52
|
os.path.join(os.path.dirname(self.python_exe), "..", "conda-meta")
|
|
61
53
|
)
|
|
62
54
|
|
|
55
|
+
def isMSYS2MingwPython(self):
|
|
56
|
+
if self.python_exe == sys.executable:
|
|
57
|
+
return isMSYS2MingwPython()
|
|
58
|
+
|
|
59
|
+
# TODO: May not yet work really.
|
|
60
|
+
return (
|
|
61
|
+
os.path.exists(
|
|
62
|
+
os.path.join(os.path.dirname(self.python_exe), "..", "..", "msys2.ini")
|
|
63
|
+
)
|
|
64
|
+
and os.path.basename(os.path.dirname(self.python_exe)) == "mingw64"
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
def getPreferredPackageType(self):
|
|
68
|
+
if self.isAnacondaPython():
|
|
69
|
+
return "conda"
|
|
70
|
+
elif self.isMSYS2MingwPython():
|
|
71
|
+
return "pacman"
|
|
72
|
+
else:
|
|
73
|
+
return "pip"
|
|
74
|
+
|
|
63
75
|
# Necessary for Python 2.7, otherwise SyntaxError is given on exec.
|
|
64
76
|
@staticmethod
|
|
65
77
|
def _exec(code, context):
|
|
@@ -124,38 +136,6 @@ class InstalledPython(object):
|
|
|
124
136
|
_installed_pythons = {}
|
|
125
137
|
|
|
126
138
|
|
|
127
|
-
def getInstalledPythonRegistryPaths(python_version):
|
|
128
|
-
"""Yield all Pythons as found in the Windows registry."""
|
|
129
|
-
# Windows only code, pylint: disable=I0021,import-error,undefined-variable
|
|
130
|
-
if str is bytes:
|
|
131
|
-
import _winreg as winreg # pylint: disable=I0021,import-error,no-name-in-module
|
|
132
|
-
else:
|
|
133
|
-
import winreg # pylint: disable=I0021,import-error,no-name-in-module
|
|
134
|
-
|
|
135
|
-
for hkey_branch in (winreg.HKEY_LOCAL_MACHINE, winreg.HKEY_CURRENT_USER):
|
|
136
|
-
for arch_key in (0, winreg.KEY_WOW64_32KEY, winreg.KEY_WOW64_64KEY):
|
|
137
|
-
for suffix in "", "-32", "-arm64":
|
|
138
|
-
try:
|
|
139
|
-
key = winreg.OpenKey(
|
|
140
|
-
hkey_branch,
|
|
141
|
-
r"SOFTWARE\Python\PythonCore\%s%s\InstallPath"
|
|
142
|
-
% (python_version, suffix),
|
|
143
|
-
0,
|
|
144
|
-
winreg.KEY_READ | arch_key,
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
install_dir = os.path.normpath(winreg.QueryValue(key, ""))
|
|
148
|
-
except WindowsError:
|
|
149
|
-
pass
|
|
150
|
-
else:
|
|
151
|
-
candidate = os.path.normpath(
|
|
152
|
-
os.path.join(install_dir, "python.exe")
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
if os.path.exists(candidate):
|
|
156
|
-
yield candidate
|
|
157
|
-
|
|
158
|
-
|
|
159
139
|
def _getPythonInstallPathsWindows(python_version):
|
|
160
140
|
"""Find Python installation on Windows.
|
|
161
141
|
|
|
@@ -181,37 +161,46 @@ def _getPythonInstallPathsWindows(python_version):
|
|
|
181
161
|
|
|
182
162
|
seen.add(candidate)
|
|
183
163
|
|
|
184
|
-
for candidate in getInstalledPythonRegistryPaths(python_version
|
|
164
|
+
for candidate in getInstalledPythonRegistryPaths(python_version):
|
|
185
165
|
if candidate not in seen:
|
|
186
166
|
seen.add(candidate)
|
|
187
167
|
yield candidate
|
|
188
168
|
|
|
189
169
|
|
|
190
|
-
def findPythons(python_version):
|
|
170
|
+
def findPythons(python_version, module_name=None, module_version=None):
|
|
191
171
|
"""Find all Python installations for a specific version."""
|
|
192
172
|
|
|
193
|
-
if python_version in _installed_pythons:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
173
|
+
if python_version not in _installed_pythons:
|
|
174
|
+
result = OrderedSet()
|
|
175
|
+
|
|
176
|
+
if python_version == python_version_str:
|
|
177
|
+
result.add(
|
|
178
|
+
InstalledPython(
|
|
179
|
+
python_exe=sys.executable, python_version=python_version
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
if isWin32Windows():
|
|
184
|
+
result.update(
|
|
185
|
+
InstalledPython(python_exe=python_exe, python_version=python_version)
|
|
186
|
+
for python_exe in _getPythonInstallPathsWindows(python_version)
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
candidate = getExecutablePath("python" + python_version)
|
|
190
|
+
if candidate is not None:
|
|
191
|
+
result.add(
|
|
192
|
+
InstalledPython(python_exe=candidate, python_version=python_version)
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
_installed_pythons[python_version] = result
|
|
196
|
+
|
|
197
|
+
return tuple(
|
|
198
|
+
candidate
|
|
199
|
+
for candidate in _installed_pythons[python_version]
|
|
200
|
+
if candidate.checkUsability(
|
|
201
|
+
module_name=module_name, module_version=module_version
|
|
201
202
|
)
|
|
202
|
-
|
|
203
|
-
if isWin32Windows():
|
|
204
|
-
result.update(
|
|
205
|
-
InstalledPython(python_exe=python_exe, python_version=python_version)
|
|
206
|
-
for python_exe in _getPythonInstallPathsWindows(python_version)
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
candidate = getExecutablePath("python" + python_version)
|
|
210
|
-
if candidate is not None:
|
|
211
|
-
result.add(InstalledPython(python_exe=candidate, python_version=python_version))
|
|
212
|
-
|
|
213
|
-
_installed_pythons[python_version] = result
|
|
214
|
-
return result
|
|
203
|
+
)
|
|
215
204
|
|
|
216
205
|
|
|
217
206
|
def findInstalledPython(python_versions, module_name, module_version):
|
|
@@ -242,3 +231,19 @@ def findInstalledPython(python_versions, module_name, module_version):
|
|
|
242
231
|
return candidate
|
|
243
232
|
|
|
244
233
|
return None
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
237
|
+
# integrates with CPython, but also works on its own.
|
|
238
|
+
#
|
|
239
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
240
|
+
# you may not use this file except in compliance with the License.
|
|
241
|
+
# You may obtain a copy of the License at
|
|
242
|
+
#
|
|
243
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
244
|
+
#
|
|
245
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
246
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
247
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
248
|
+
# See the License for the specific language governing permissions and
|
|
249
|
+
# limitations under the License.
|
nuitka/utils/InstanceCounters.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
|
""" Instance counter primitives
|
|
19
5
|
|
|
20
6
|
We don't use a meta class as it's unnecessary complex, and portable meta classes
|
|
@@ -24,6 +10,7 @@ class.
|
|
|
24
10
|
This is going to expanded with time.
|
|
25
11
|
|
|
26
12
|
"""
|
|
13
|
+
|
|
27
14
|
from nuitka.Options import isShowMemory
|
|
28
15
|
from nuitka.Tracing import printIndented, printLine
|
|
29
16
|
|
|
@@ -81,3 +68,19 @@ def printStats():
|
|
|
81
68
|
for name, count in sorted(counted_inits.items()):
|
|
82
69
|
dels = counted_dels.get(name, 0)
|
|
83
70
|
printIndented(1, name, count, dels, count - dels)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
74
|
+
# integrates with CPython, but also works on its own.
|
|
75
|
+
#
|
|
76
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
77
|
+
# you may not use this file except in compliance with the License.
|
|
78
|
+
# You may obtain a copy of the License at
|
|
79
|
+
#
|
|
80
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
81
|
+
#
|
|
82
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
83
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
84
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
85
|
+
# See the License for the specific language governing permissions and
|
|
86
|
+
# limitations under the License.
|