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/utils/StaticLibraries.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
|
""" This module deals with finding and information about static libraries.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -26,6 +12,7 @@ from nuitka.PythonFlavors import (
|
|
|
26
12
|
isAnacondaPython,
|
|
27
13
|
isDebianPackagePython,
|
|
28
14
|
isNuitkaPython,
|
|
15
|
+
isRyePython,
|
|
29
16
|
)
|
|
30
17
|
from nuitka.PythonVersions import (
|
|
31
18
|
getPythonABI,
|
|
@@ -36,7 +23,12 @@ from nuitka.PythonVersions import (
|
|
|
36
23
|
from nuitka.Tracing import general
|
|
37
24
|
|
|
38
25
|
from .FileOperations import getFileContentByLine, getFileList
|
|
39
|
-
from .Utils import
|
|
26
|
+
from .Utils import (
|
|
27
|
+
getLinuxDistribution,
|
|
28
|
+
isDebianBasedLinux,
|
|
29
|
+
isMacOS,
|
|
30
|
+
isWin32Windows,
|
|
31
|
+
)
|
|
40
32
|
|
|
41
33
|
_ldconf_paths = None
|
|
42
34
|
|
|
@@ -52,14 +44,15 @@ def locateStaticLinkLibrary(dll_name):
|
|
|
52
44
|
|
|
53
45
|
def _locateStaticLinkLibrary(dll_name):
|
|
54
46
|
# singleton, pylint: disable=global-statement
|
|
47
|
+
|
|
55
48
|
#
|
|
56
49
|
global _ldconf_paths
|
|
57
50
|
|
|
58
51
|
if _ldconf_paths is None:
|
|
59
52
|
_ldconf_paths = OrderedSet()
|
|
60
53
|
|
|
61
|
-
for
|
|
62
|
-
for conf_line in getFileContentByLine(
|
|
54
|
+
for conf_filename in getFileList("/etc/ld.so.conf.d", only_suffixes=".conf"):
|
|
55
|
+
for conf_line in getFileContentByLine(conf_filename):
|
|
63
56
|
conf_line = conf_line.split("#", 1)[0]
|
|
64
57
|
conf_line = conf_line.strip()
|
|
65
58
|
|
|
@@ -98,6 +91,19 @@ def isDebianSuitableForStaticLinking():
|
|
|
98
91
|
return True
|
|
99
92
|
|
|
100
93
|
|
|
94
|
+
def _getSysConfigVarLIBPL():
|
|
95
|
+
# Return the LIBPL config variable, or None if it's not set or retrievable
|
|
96
|
+
try:
|
|
97
|
+
import sysconfig
|
|
98
|
+
|
|
99
|
+
return sysconfig.get_config_var("LIBPL")
|
|
100
|
+
|
|
101
|
+
except ImportError:
|
|
102
|
+
# Cannot detect this properly for Python 2.6, but we don't care much
|
|
103
|
+
# about that anyway.
|
|
104
|
+
return None
|
|
105
|
+
|
|
106
|
+
|
|
101
107
|
def _getSystemStaticLibPythonPath():
|
|
102
108
|
# Return driven function with many cases, pylint: disable=too-many-branches,too-many-return-statements
|
|
103
109
|
|
|
@@ -143,52 +149,57 @@ def _getSystemStaticLibPythonPath():
|
|
|
143
149
|
for candidate in candidates:
|
|
144
150
|
if os.path.exists(candidate):
|
|
145
151
|
return candidate
|
|
152
|
+
|
|
153
|
+
return None
|
|
154
|
+
|
|
155
|
+
if isMacOS() and isRyePython():
|
|
156
|
+
return None
|
|
157
|
+
|
|
158
|
+
candidate = os.path.join(sys_prefix, "lib", "libpython" + python_abi_version + ".a")
|
|
159
|
+
|
|
160
|
+
if os.path.exists(candidate):
|
|
161
|
+
return candidate
|
|
162
|
+
|
|
163
|
+
# For Python2 this works. TODO: Figure out Debian and Python3.
|
|
164
|
+
if (
|
|
165
|
+
python_version < 0x300
|
|
166
|
+
and isDebianPackagePython()
|
|
167
|
+
and isDebianSuitableForStaticLinking()
|
|
168
|
+
):
|
|
169
|
+
candidate = locateStaticLinkLibrary("python" + python_abi_version)
|
|
146
170
|
else:
|
|
171
|
+
candidate = None
|
|
172
|
+
|
|
173
|
+
if candidate is not None and os.path.exists(candidate):
|
|
174
|
+
# Also check libz, can be missing
|
|
175
|
+
if not locateStaticLinkLibrary("z"):
|
|
176
|
+
general.warning(
|
|
177
|
+
"Error, missing 'libz-dev' installation needed for static lib-python."
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
return candidate
|
|
181
|
+
|
|
182
|
+
# This is not necessarily only for Python3 on Debian, but maybe others as well,
|
|
183
|
+
# but that's what's been tested. spell-checker: ignore libpl
|
|
184
|
+
if python_version >= 0x300 and isDebianPackagePython() and isDebianBasedLinux():
|
|
147
185
|
candidate = os.path.join(
|
|
148
|
-
|
|
186
|
+
_getSysConfigVarLIBPL(),
|
|
187
|
+
"libpython" + python_abi_version + "-pic.a",
|
|
149
188
|
)
|
|
150
189
|
|
|
151
190
|
if os.path.exists(candidate):
|
|
152
191
|
return candidate
|
|
153
192
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
)
|
|
160
|
-
candidate = locateStaticLinkLibrary("python" + python_abi_version)
|
|
161
|
-
else:
|
|
162
|
-
candidate = None
|
|
163
|
-
|
|
164
|
-
if candidate is not None and os.path.exists(candidate):
|
|
165
|
-
# Also check libz, can be missing
|
|
166
|
-
if not locateStaticLinkLibrary("z"):
|
|
167
|
-
general.warning(
|
|
168
|
-
"Error, missing 'libz-dev' installation needed for static lib-python."
|
|
169
|
-
)
|
|
193
|
+
libpl = _getSysConfigVarLIBPL()
|
|
194
|
+
if libpl is not None:
|
|
195
|
+
candidate = os.path.join(
|
|
196
|
+
libpl,
|
|
197
|
+
"libpython" + python_abi_version + ".a",
|
|
198
|
+
)
|
|
170
199
|
|
|
200
|
+
if os.path.exists(candidate):
|
|
171
201
|
return candidate
|
|
172
202
|
|
|
173
|
-
# This is not necessarily only for Python3 on Debian, but maybe others as well,
|
|
174
|
-
# but that's what's been tested.
|
|
175
|
-
if python_version >= 0x300 and isDebianPackagePython() and isDebianBasedLinux():
|
|
176
|
-
try:
|
|
177
|
-
import sysconfig
|
|
178
|
-
|
|
179
|
-
candidate = os.path.join(
|
|
180
|
-
sysconfig.get_config_var("LIBPL"),
|
|
181
|
-
"libpython" + python_abi_version + "-pic.a",
|
|
182
|
-
)
|
|
183
|
-
|
|
184
|
-
if os.path.exists(candidate):
|
|
185
|
-
return candidate
|
|
186
|
-
|
|
187
|
-
except ImportError:
|
|
188
|
-
# Cannot detect this properly for Python 2.6, but we don't care much
|
|
189
|
-
# about that anyway.
|
|
190
|
-
pass
|
|
191
|
-
|
|
192
203
|
return None
|
|
193
204
|
|
|
194
205
|
|
|
@@ -199,3 +210,19 @@ def getSystemStaticLibPythonPath():
|
|
|
199
210
|
_static_lib_python_path = _getSystemStaticLibPythonPath()
|
|
200
211
|
|
|
201
212
|
return _static_lib_python_path
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
216
|
+
# integrates with CPython, but also works on its own.
|
|
217
|
+
#
|
|
218
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
219
|
+
# you may not use this file except in compliance with the License.
|
|
220
|
+
# You may obtain a copy of the License at
|
|
221
|
+
#
|
|
222
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
223
|
+
#
|
|
224
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
225
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
226
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
227
|
+
# See the License for the specific language governing permissions and
|
|
228
|
+
# limitations under the License.
|
nuitka/utils/ThreadedExecutor.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
|
""" Threaded pool execution.
|
|
19
5
|
|
|
20
6
|
This can use Python3 native, or even Python2.7 backport, or has a Python2.6
|
|
@@ -84,3 +70,18 @@ def getThreadIdent():
|
|
|
84
70
|
|
|
85
71
|
assert RLock
|
|
86
72
|
assert ThreadPoolExecutor
|
|
73
|
+
|
|
74
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
75
|
+
# integrates with CPython, but also works on its own.
|
|
76
|
+
#
|
|
77
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
78
|
+
# you may not use this file except in compliance with the License.
|
|
79
|
+
# You may obtain a copy of the License at
|
|
80
|
+
#
|
|
81
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
82
|
+
#
|
|
83
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
84
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
85
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
86
|
+
# See the License for the specific language governing permissions and
|
|
87
|
+
# limitations under the License.
|
nuitka/utils/Timing.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
|
""" Time taking.
|
|
19
5
|
|
|
20
6
|
Mostly for measurements of Nuitka of itself, e.g. how long did it take to
|
|
@@ -64,9 +50,9 @@ class TimerReport(object):
|
|
|
64
50
|
|
|
65
51
|
# Shortcuts.
|
|
66
52
|
if decider is True:
|
|
67
|
-
decider = lambda:
|
|
53
|
+
decider = lambda: 1
|
|
68
54
|
elif decider is False:
|
|
69
|
-
decider = lambda:
|
|
55
|
+
decider = lambda: 0
|
|
70
56
|
|
|
71
57
|
if logger is None:
|
|
72
58
|
logger = general
|
|
@@ -97,4 +83,20 @@ class TimerReport(object):
|
|
|
97
83
|
)
|
|
98
84
|
|
|
99
85
|
if exception_type is None and above_threshold and self.decider():
|
|
100
|
-
self.logger.info(self.message % self.timer.getDelta())
|
|
86
|
+
self.logger.info(self.message % self.timer.getDelta(), keep_format=True)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
90
|
+
# integrates with CPython, but also works on its own.
|
|
91
|
+
#
|
|
92
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
93
|
+
# you may not use this file except in compliance with the License.
|
|
94
|
+
# You may obtain a copy of the License at
|
|
95
|
+
#
|
|
96
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
97
|
+
#
|
|
98
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
99
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
100
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
101
|
+
# See the License for the specific language governing permissions and
|
|
102
|
+
# limitations under the License.
|
nuitka/utils/Utils.py
CHANGED
|
@@ -1,32 +1,21 @@
|
|
|
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
|
""" Utility module.
|
|
19
5
|
|
|
20
6
|
Here the small things that fit nowhere else and don't deserve their own module.
|
|
21
7
|
|
|
22
8
|
"""
|
|
23
9
|
|
|
10
|
+
import ctypes
|
|
24
11
|
import functools
|
|
25
12
|
import os
|
|
26
13
|
import sys
|
|
27
14
|
import time
|
|
28
15
|
from contextlib import contextmanager
|
|
29
16
|
|
|
17
|
+
from nuitka.__past__ import WindowsError # pylint: disable=I0021,redefined-builtin
|
|
18
|
+
|
|
30
19
|
|
|
31
20
|
def getOS():
|
|
32
21
|
if os.name == "nt":
|
|
@@ -98,6 +87,8 @@ def getLinuxDistribution():
|
|
|
98
87
|
|
|
99
88
|
if os.path.exists("/etc/os-release"):
|
|
100
89
|
result, base, version = _parseOsReleaseFileContents("/etc/os-release")
|
|
90
|
+
elif os.path.exists("/usr/lib/os-release"):
|
|
91
|
+
result, base, version = _parseOsReleaseFileContents("/usr/lib/os-release")
|
|
101
92
|
elif os.path.exists("/etc/SuSE-release"):
|
|
102
93
|
result, base, version = _parseOsReleaseFileContents("/etc/SuSE-release")
|
|
103
94
|
elif os.path.exists("/etc/issue"):
|
|
@@ -137,9 +128,63 @@ def getWindowsRelease():
|
|
|
137
128
|
if not isWin32OrPosixWindows():
|
|
138
129
|
return None
|
|
139
130
|
|
|
131
|
+
if isPosixWindows():
|
|
132
|
+
from .FileOperations import getFileContents
|
|
133
|
+
|
|
134
|
+
build_number = int(
|
|
135
|
+
getFileContents("/proc/version").split(" ")[0].rsplit("-")[-1]
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
if build_number >= 21996:
|
|
139
|
+
return 11
|
|
140
|
+
elif build_number >= 10240:
|
|
141
|
+
return 10
|
|
142
|
+
elif build_number >= 9200:
|
|
143
|
+
return 8
|
|
144
|
+
else:
|
|
145
|
+
return 7
|
|
146
|
+
|
|
147
|
+
class OsVersionInfoEx(ctypes.Structure):
|
|
148
|
+
_fields_ = [
|
|
149
|
+
("dwOSVersionInfoSize", ctypes.c_ulong),
|
|
150
|
+
("dwMajorVersion", ctypes.c_ulong),
|
|
151
|
+
("dwMinorVersion", ctypes.c_ulong),
|
|
152
|
+
("dwBuildNumber", ctypes.c_ulong),
|
|
153
|
+
("dwPlatformId", ctypes.c_ulong),
|
|
154
|
+
("szCSDVersion", ctypes.c_wchar * 128),
|
|
155
|
+
("wServicePackMajor", ctypes.c_ushort),
|
|
156
|
+
("wServicePackMinor", ctypes.c_ushort),
|
|
157
|
+
("wSuiteMask", ctypes.c_ushort),
|
|
158
|
+
("wProductType", ctypes.c_byte),
|
|
159
|
+
("wReserved", ctypes.c_byte),
|
|
160
|
+
]
|
|
161
|
+
|
|
162
|
+
def __init__(self):
|
|
163
|
+
self.dwOSVersionInfoSize = ctypes.sizeof( # pylint: disable=invalid-name
|
|
164
|
+
self
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
os_version_value = OsVersionInfoEx()
|
|
168
|
+
|
|
169
|
+
result = ctypes.windll.ntdll.RtlGetVersion(ctypes.byref(os_version_value))
|
|
170
|
+
if result != 0:
|
|
171
|
+
raiseWindowsError("Failed to get OS version")
|
|
172
|
+
|
|
173
|
+
version = os_version_value.dwMajorVersion
|
|
174
|
+
|
|
175
|
+
if os_version_value.dwBuildNumber >= 21996 and version == 10:
|
|
176
|
+
version = 11
|
|
177
|
+
|
|
178
|
+
return version
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def getMacOSRelease():
|
|
182
|
+
if not isMacOS():
|
|
183
|
+
return None
|
|
184
|
+
|
|
140
185
|
import platform
|
|
141
186
|
|
|
142
|
-
return platform.
|
|
187
|
+
return platform.mac_ver()[0]
|
|
143
188
|
|
|
144
189
|
|
|
145
190
|
def isDebianBasedLinux():
|
|
@@ -154,6 +199,12 @@ def isFedoraBasedLinux():
|
|
|
154
199
|
return (base or dist_name) == "Fedora"
|
|
155
200
|
|
|
156
201
|
|
|
202
|
+
def isArchBasedLinux():
|
|
203
|
+
dist_name, base, _dist_version = getLinuxDistribution()
|
|
204
|
+
|
|
205
|
+
return (base or dist_name) == "Arch"
|
|
206
|
+
|
|
207
|
+
|
|
157
208
|
def isAndroidBasedLinux():
|
|
158
209
|
# spell-checker: ignore googlesource
|
|
159
210
|
if not isLinux():
|
|
@@ -209,6 +260,10 @@ def isOpenBSD():
|
|
|
209
260
|
return getOS() == "OpenBSD"
|
|
210
261
|
|
|
211
262
|
|
|
263
|
+
def isBSD():
|
|
264
|
+
return "BSD" in getOS()
|
|
265
|
+
|
|
266
|
+
|
|
212
267
|
_is_alpine = None
|
|
213
268
|
|
|
214
269
|
|
|
@@ -269,6 +324,7 @@ def encodeNonAscii(var_name):
|
|
|
269
324
|
else:
|
|
270
325
|
# Using a escaping here, because that makes it safe in terms of not
|
|
271
326
|
# to occur in the encoding escape sequence for unicode use.
|
|
327
|
+
# spell-checker: ignore xmlcharrefreplace
|
|
272
328
|
var_name = var_name.replace("$$", "$_$")
|
|
273
329
|
|
|
274
330
|
var_name = var_name.encode("ascii", "xmlcharrefreplace")
|
|
@@ -330,8 +386,20 @@ def withNoSyntaxWarning():
|
|
|
330
386
|
yield
|
|
331
387
|
|
|
332
388
|
|
|
389
|
+
@contextmanager
|
|
390
|
+
def withNoWarning():
|
|
391
|
+
with withWarningRemoved(Warning):
|
|
392
|
+
yield
|
|
393
|
+
|
|
394
|
+
|
|
333
395
|
def decoratorRetries(
|
|
334
|
-
logger,
|
|
396
|
+
logger,
|
|
397
|
+
purpose,
|
|
398
|
+
consequence,
|
|
399
|
+
extra_recommendation=None,
|
|
400
|
+
attempts=5,
|
|
401
|
+
sleep_time=1,
|
|
402
|
+
exception_type=OSError,
|
|
335
403
|
):
|
|
336
404
|
"""Make retries for errors on Windows.
|
|
337
405
|
|
|
@@ -339,6 +407,10 @@ def decoratorRetries(
|
|
|
339
407
|
a virus checker warning.
|
|
340
408
|
"""
|
|
341
409
|
|
|
410
|
+
recommendation = "Disable Anti-Virus, e.g. Windows Defender for build folders."
|
|
411
|
+
if extra_recommendation is not None:
|
|
412
|
+
recommendation = "%s. %s" % (extra_recommendation, recommendation)
|
|
413
|
+
|
|
342
414
|
def inner(func):
|
|
343
415
|
if os.name != "nt":
|
|
344
416
|
return func
|
|
@@ -353,8 +425,9 @@ def decoratorRetries(
|
|
|
353
425
|
logger.warning(
|
|
354
426
|
"""\
|
|
355
427
|
Failed to %s in attempt %d due to %s.
|
|
356
|
-
|
|
357
|
-
|
|
428
|
+
%s
|
|
429
|
+
Retrying after a second of delay."""
|
|
430
|
+
% (purpose, attempt, str(e), recommendation)
|
|
358
431
|
)
|
|
359
432
|
|
|
360
433
|
else:
|
|
@@ -362,15 +435,17 @@ Disable Anti-Virus, e.g. Windows Defender for build folders. Retrying after a se
|
|
|
362
435
|
logger.warning(
|
|
363
436
|
"""\
|
|
364
437
|
Failed to %s in attempt %d.
|
|
365
|
-
|
|
366
|
-
|
|
438
|
+
%s
|
|
439
|
+
Retrying after a second of delay."""
|
|
440
|
+
% (purpose, attempt, recommendation)
|
|
367
441
|
)
|
|
368
442
|
else:
|
|
369
443
|
logger.warning(
|
|
370
444
|
"""\
|
|
371
445
|
Failed to %s in attempt %d with error code %d.
|
|
372
|
-
|
|
373
|
-
|
|
446
|
+
%s
|
|
447
|
+
Retrying after a second of delay."""
|
|
448
|
+
% (purpose, attempt, e.errno, recommendation)
|
|
374
449
|
)
|
|
375
450
|
|
|
376
451
|
time.sleep(sleep_time)
|
|
@@ -389,3 +464,35 @@ Disable Anti-Virus, e.g. Windows Defender for build folders. Retrying after a se
|
|
|
389
464
|
return retryingFunction
|
|
390
465
|
|
|
391
466
|
return inner
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
def raiseWindowsError(message):
|
|
470
|
+
raise WindowsError(
|
|
471
|
+
ctypes.GetLastError(),
|
|
472
|
+
"%s (%s)" % (message, ctypes.FormatError(ctypes.GetLastError())),
|
|
473
|
+
)
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
def getLaunchingNuitkaProcessEnvironmentValue(environment_variable_name):
|
|
477
|
+
# Hack, we need this to bootstrap and it's actually living in __main__
|
|
478
|
+
# module of nuitka package and renamed to where we can get at easily for
|
|
479
|
+
# other uses. pylint: disable=no-name-in-module,redefined-outer-name
|
|
480
|
+
from nuitka import getLaunchingNuitkaProcessEnvironmentValue
|
|
481
|
+
|
|
482
|
+
return getLaunchingNuitkaProcessEnvironmentValue(environment_variable_name)
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
486
|
+
# integrates with CPython, but also works on its own.
|
|
487
|
+
#
|
|
488
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
489
|
+
# you may not use this file except in compliance with the License.
|
|
490
|
+
# You may obtain a copy of the License at
|
|
491
|
+
#
|
|
492
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
493
|
+
#
|
|
494
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
495
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
496
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
497
|
+
# See the License for the specific language governing permissions and
|
|
498
|
+
# limitations under the License.
|
nuitka/utils/WindowsFileUsage.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
|
""" This is work in progress and hangs unfortunately on some file handles.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -30,7 +16,7 @@ STATUS_INVALID_HANDLE = 0xC0000008
|
|
|
30
16
|
STATUS_BUFFER_TOO_SMALL = 0xC0000023
|
|
31
17
|
|
|
32
18
|
|
|
33
|
-
def
|
|
19
|
+
def getWindowsAllProcessHandles():
|
|
34
20
|
"""Return all process system handles."""
|
|
35
21
|
|
|
36
22
|
i = 2048
|
|
@@ -198,13 +184,14 @@ def getWindowsAllProcessFileHandles():
|
|
|
198
184
|
|
|
199
185
|
ObjectTypeInformation = 2
|
|
200
186
|
|
|
201
|
-
|
|
187
|
+
# spell-checker: ignore psapi
|
|
188
|
+
psapi = ctypes.WinDLL("psapi.dll")
|
|
202
189
|
psapi.GetProcessImageFileNameW.restype = ctypes.wintypes.DWORD
|
|
203
190
|
|
|
204
191
|
this_process = ctypes.windll.kernel32.GetCurrentProcess()
|
|
205
192
|
this_process_id = ctypes.windll.kernel32.GetCurrentProcessId()
|
|
206
193
|
|
|
207
|
-
for process, handles in
|
|
194
|
+
for process, handles in getWindowsAllProcessHandles().items():
|
|
208
195
|
# Ignore ourselves, we do not matter normally.
|
|
209
196
|
|
|
210
197
|
if this_process_id == process:
|
|
@@ -333,3 +320,18 @@ def getWindowsAllProcessFileHandles():
|
|
|
333
320
|
|
|
334
321
|
if __name__ == "__main__":
|
|
335
322
|
getWindowsAllProcessFileHandles()
|
|
323
|
+
|
|
324
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
325
|
+
# integrates with CPython, but also works on its own.
|
|
326
|
+
#
|
|
327
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
328
|
+
# you may not use this file except in compliance with the License.
|
|
329
|
+
# You may obtain a copy of the License at
|
|
330
|
+
#
|
|
331
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
332
|
+
#
|
|
333
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
334
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
335
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
336
|
+
# See the License for the specific language governing permissions and
|
|
337
|
+
# limitations under the License.
|
nuitka/utils/WindowsResources.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
|
""" Module for handling Windows resources.
|
|
19
5
|
|
|
20
6
|
Nuitka needs to do a couple of things with Windows resources, e.g. adding
|
|
@@ -351,7 +337,7 @@ def getDefaultWindowsExecutableManifest():
|
|
|
351
337
|
# Note: Supported OS are lied about by CPython.
|
|
352
338
|
template = (
|
|
353
339
|
"""\
|
|
354
|
-
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
|
340
|
+
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
|
355
341
|
<assemblyIdentity type="win32" name="Mini" version="1.0.0.0"/>
|
|
356
342
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
|
357
343
|
<application>
|
|
@@ -362,6 +348,11 @@ def getDefaultWindowsExecutableManifest():
|
|
|
362
348
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
|
363
349
|
</application>
|
|
364
350
|
</compatibility>
|
|
351
|
+
<asmv3:application>
|
|
352
|
+
<asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
|
|
353
|
+
<ws2:longPathAware>true</ws2:longPathAware>
|
|
354
|
+
</asmv3:windowsSettings>
|
|
355
|
+
</asmv3:application>
|
|
365
356
|
%s
|
|
366
357
|
</assembly>
|
|
367
358
|
"""
|
|
@@ -634,3 +625,19 @@ def addVersionInfoResource(
|
|
|
634
625
|
lang_id=0,
|
|
635
626
|
logger=logger,
|
|
636
627
|
)
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
631
|
+
# integrates with CPython, but also works on its own.
|
|
632
|
+
#
|
|
633
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
634
|
+
# you may not use this file except in compliance with the License.
|
|
635
|
+
# You may obtain a copy of the License at
|
|
636
|
+
#
|
|
637
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
638
|
+
#
|
|
639
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
640
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
641
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
642
|
+
# See the License for the specific language governing permissions and
|
|
643
|
+
# limitations under the License.
|