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/SharedLibraries.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 shared libraries.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -31,11 +17,7 @@ from nuitka.Options import getMacOSTargetArch, isShowInclusion, isUnstripped
|
|
|
31
17
|
from nuitka.PythonVersions import python_version
|
|
32
18
|
from nuitka.Tracing import inclusion_logger, postprocessing_logger
|
|
33
19
|
|
|
34
|
-
from .Execution import
|
|
35
|
-
executeToolChecked,
|
|
36
|
-
withEnvironmentPathAdded,
|
|
37
|
-
withEnvironmentVarOverridden,
|
|
38
|
-
)
|
|
20
|
+
from .Execution import executeToolChecked, withEnvironmentPathAdded
|
|
39
21
|
from .FileOperations import (
|
|
40
22
|
addFileExecutablePermission,
|
|
41
23
|
changeFilenameExtension,
|
|
@@ -44,7 +26,13 @@ from .FileOperations import (
|
|
|
44
26
|
makeContainingPath,
|
|
45
27
|
withMadeWritableFileMode,
|
|
46
28
|
)
|
|
47
|
-
from .Utils import
|
|
29
|
+
from .Utils import (
|
|
30
|
+
isAlpineLinux,
|
|
31
|
+
isLinux,
|
|
32
|
+
isMacOS,
|
|
33
|
+
isWin32Windows,
|
|
34
|
+
raiseWindowsError,
|
|
35
|
+
)
|
|
48
36
|
from .WindowsResources import (
|
|
49
37
|
RT_MANIFEST,
|
|
50
38
|
VsFixedFileInfoStructure,
|
|
@@ -95,13 +83,12 @@ def locateDLL(dll_name):
|
|
|
95
83
|
name=dll_name, paths=["/lib", "/usr/lib", "/usr/local/lib"]
|
|
96
84
|
)
|
|
97
85
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
)
|
|
86
|
+
# TODO: Could and probably should cache "ldconfig -p" output to avoid forks
|
|
87
|
+
output = executeToolChecked(
|
|
88
|
+
logger=postprocessing_logger,
|
|
89
|
+
command=("/sbin/ldconfig", "-p"),
|
|
90
|
+
absence_message=_ldconfig_usage,
|
|
91
|
+
)
|
|
105
92
|
|
|
106
93
|
dll_map = {}
|
|
107
94
|
|
|
@@ -115,6 +102,8 @@ def locateDLL(dll_name):
|
|
|
115
102
|
left = left[: left.rfind(b" (")]
|
|
116
103
|
|
|
117
104
|
if python_version >= 0x300:
|
|
105
|
+
# spell-checker: ignore getfilesystemencoding
|
|
106
|
+
|
|
118
107
|
left = left.decode(sys.getfilesystemencoding())
|
|
119
108
|
right = right.decode(sys.getfilesystemencoding())
|
|
120
109
|
|
|
@@ -147,7 +136,7 @@ def _removeSxsFromDLL(filename):
|
|
|
147
136
|
filename: Filename to remove SxS manifests from
|
|
148
137
|
"""
|
|
149
138
|
# There may be more files that need this treatment, these are from scans
|
|
150
|
-
# with the "find_sxs_modules" tool.
|
|
139
|
+
# with the "find_sxs_modules" tool. spell-checker: ignore winxpgui
|
|
151
140
|
if os.path.normcase(os.path.basename(filename)) not in (
|
|
152
141
|
"sip.pyd",
|
|
153
142
|
"win32ui.pyd",
|
|
@@ -207,7 +196,7 @@ def _getDLLVersionWindows(filename):
|
|
|
207
196
|
# This cannot really fail anymore.
|
|
208
197
|
assert success
|
|
209
198
|
|
|
210
|
-
# Look for
|
|
199
|
+
# Look for code pages
|
|
211
200
|
VerQueryValueA = ctypes.windll.version.VerQueryValueA
|
|
212
201
|
VerQueryValueA.argtypes = (
|
|
213
202
|
ctypes.wintypes.LPCVOID,
|
|
@@ -233,6 +222,7 @@ def _getDLLVersionWindows(filename):
|
|
|
233
222
|
return (ms >> 16) & 0xFFFF, ms & 0xFFFF, (ls >> 16) & 0xFFFF, ls & 0xFFFF
|
|
234
223
|
|
|
235
224
|
|
|
225
|
+
# spell-checker: ignore readelf
|
|
236
226
|
_readelf_usage = "The 'readelf' is used to analyse dependencies on ELF using systems and required to be found."
|
|
237
227
|
|
|
238
228
|
|
|
@@ -244,6 +234,7 @@ def _getSharedLibraryRPATHElf(filename):
|
|
|
244
234
|
)
|
|
245
235
|
|
|
246
236
|
for line in output.split(b"\n"):
|
|
237
|
+
# spell-checker: ignore RUNPATH
|
|
247
238
|
if b"RPATH" in line or b"RUNPATH" in line:
|
|
248
239
|
result = line[line.find(b"[") + 1 : line.rfind(b"]")]
|
|
249
240
|
|
|
@@ -258,13 +249,22 @@ def _getSharedLibraryRPATHElf(filename):
|
|
|
258
249
|
_otool_output_cache = {}
|
|
259
250
|
|
|
260
251
|
|
|
252
|
+
def _getMacOSArchOption():
|
|
253
|
+
macos_target_arch = getMacOSTargetArch()
|
|
254
|
+
|
|
255
|
+
if macos_target_arch != "universal":
|
|
256
|
+
return ("-arch", macos_target_arch)
|
|
257
|
+
else:
|
|
258
|
+
return ()
|
|
259
|
+
|
|
260
|
+
|
|
261
261
|
def _getOToolCommandOutput(otool_option, filename):
|
|
262
262
|
filename = os.path.abspath(filename)
|
|
263
263
|
|
|
264
|
-
command = ("otool", otool_option, filename)
|
|
264
|
+
command = ("otool",) + _getMacOSArchOption() + (otool_option, filename)
|
|
265
265
|
|
|
266
266
|
if otool_option == "-L":
|
|
267
|
-
cache_key = command, os.
|
|
267
|
+
cache_key = command, os.getenv("DYLD_LIBRARY_PATH")
|
|
268
268
|
else:
|
|
269
269
|
cache_key = command
|
|
270
270
|
|
|
@@ -287,6 +287,23 @@ def getOtoolDependencyOutput(filename, package_specific_dirs):
|
|
|
287
287
|
return _getOToolCommandOutput("-L", filename)
|
|
288
288
|
|
|
289
289
|
|
|
290
|
+
def parseOtoolListingOutput(output):
|
|
291
|
+
paths = OrderedSet()
|
|
292
|
+
|
|
293
|
+
for line in output.split(b"\n")[1:]:
|
|
294
|
+
if str is not bytes:
|
|
295
|
+
line = line.decode("utf8")
|
|
296
|
+
|
|
297
|
+
if not line:
|
|
298
|
+
continue
|
|
299
|
+
|
|
300
|
+
filename = line.split(" (", 1)[0].strip()
|
|
301
|
+
|
|
302
|
+
paths.add(filename)
|
|
303
|
+
|
|
304
|
+
return paths
|
|
305
|
+
|
|
306
|
+
|
|
290
307
|
def _getDLLVersionMacOS(filename):
|
|
291
308
|
output = _getOToolCommandOutput("-D", filename).splitlines()
|
|
292
309
|
|
|
@@ -344,14 +361,25 @@ def getSharedLibraryRPATH(filename):
|
|
|
344
361
|
|
|
345
362
|
|
|
346
363
|
def _filterPatchelfErrorOutput(stderr):
|
|
364
|
+
non_errors = []
|
|
365
|
+
|
|
366
|
+
def isNonErrorExit(line):
|
|
367
|
+
if b"cannot find section '.dynamic'" in line:
|
|
368
|
+
non_errors.append(line)
|
|
369
|
+
|
|
370
|
+
return True
|
|
371
|
+
|
|
372
|
+
return False
|
|
373
|
+
|
|
347
374
|
stderr = b"\n".join(
|
|
348
375
|
line
|
|
349
376
|
for line in stderr.splitlines()
|
|
350
377
|
if line
|
|
351
378
|
if b"warning: working around" not in line
|
|
379
|
+
if not isNonErrorExit(line)
|
|
352
380
|
)
|
|
353
381
|
|
|
354
|
-
return None, stderr
|
|
382
|
+
return (0 if non_errors else None), stderr
|
|
355
383
|
|
|
356
384
|
|
|
357
385
|
_patchelf_usage = """\
|
|
@@ -359,15 +387,31 @@ Error, needs 'patchelf' on your system, to modify 'RPATH' settings that \
|
|
|
359
387
|
need to be updated."""
|
|
360
388
|
|
|
361
389
|
|
|
390
|
+
def checkPatchElfPresenceAndUsability(logger):
|
|
391
|
+
"""Checks if patchelf is present and usable."""
|
|
392
|
+
|
|
393
|
+
output = executeToolChecked(
|
|
394
|
+
logger=logger,
|
|
395
|
+
command=("patchelf", "--version"),
|
|
396
|
+
absence_message="""\
|
|
397
|
+
Error, standalone mode on Linux requires 'patchelf' to be \
|
|
398
|
+
installed. Use 'apt/dnf/yum install patchelf' first.""",
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
if output.split() == b"0.18.0":
|
|
402
|
+
logger.sysexit(
|
|
403
|
+
"Error, patchelf version 0.18.0 is a known buggy release and cannot be used. Please upgrade or downgrade it."
|
|
404
|
+
)
|
|
405
|
+
|
|
406
|
+
|
|
362
407
|
def _setSharedLibraryRPATHElf(filename, rpath):
|
|
363
408
|
# patchelf --set-rpath "$ORIGIN/path/to/library" <executable>
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
)
|
|
409
|
+
executeToolChecked(
|
|
410
|
+
logger=postprocessing_logger,
|
|
411
|
+
command=("patchelf", "--set-rpath", rpath, filename),
|
|
412
|
+
stderr_filter=_filterPatchelfErrorOutput,
|
|
413
|
+
absence_message=_patchelf_usage,
|
|
414
|
+
)
|
|
371
415
|
|
|
372
416
|
|
|
373
417
|
def _filterInstallNameToolErrorOutput(stderr):
|
|
@@ -442,24 +486,31 @@ def callInstallNameTool(filename, mapping, id_path, rpath):
|
|
|
442
486
|
This is obviously macOS specific.
|
|
443
487
|
"""
|
|
444
488
|
command = ["install_name_tool"]
|
|
489
|
+
|
|
490
|
+
needs_call = False
|
|
445
491
|
for old_path, new_path in mapping:
|
|
446
|
-
|
|
492
|
+
if old_path != new_path:
|
|
493
|
+
command += ("-change", old_path, new_path)
|
|
494
|
+
needs_call = True
|
|
447
495
|
|
|
448
496
|
if rpath is not None:
|
|
449
497
|
command += ("-add_rpath", os.path.join(rpath, "."))
|
|
498
|
+
needs_call = True
|
|
450
499
|
|
|
451
500
|
if id_path is not None:
|
|
452
501
|
command += ("-id", id_path)
|
|
502
|
+
needs_call = True
|
|
453
503
|
|
|
454
504
|
command.append(filename)
|
|
455
505
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
506
|
+
if needs_call:
|
|
507
|
+
with withMadeWritableFileMode(filename):
|
|
508
|
+
executeToolChecked(
|
|
509
|
+
logger=postprocessing_logger,
|
|
510
|
+
command=command,
|
|
511
|
+
absence_message=_install_name_tool_usage,
|
|
512
|
+
stderr_filter=_filterInstallNameToolErrorOutput,
|
|
513
|
+
)
|
|
463
514
|
|
|
464
515
|
|
|
465
516
|
def getPyWin32Dir():
|
|
@@ -474,6 +525,7 @@ def getPyWin32Dir():
|
|
|
474
525
|
Notes:
|
|
475
526
|
This is needed for standalone mode only.
|
|
476
527
|
"""
|
|
528
|
+
# spell-checker: ignore pywin32
|
|
477
529
|
|
|
478
530
|
for path_element in sys.path:
|
|
479
531
|
if not path_element:
|
|
@@ -577,7 +629,7 @@ def _getFileCommandOutput(filename):
|
|
|
577
629
|
|
|
578
630
|
|
|
579
631
|
def hasUniversalOrMatchingMacOSArchitecture(filename):
|
|
580
|
-
assert isMacOS()
|
|
632
|
+
assert isMacOS() and os.path.isfile(filename), filename
|
|
581
633
|
|
|
582
634
|
file_output = _getFileCommandOutput(filename)
|
|
583
635
|
|
|
@@ -638,7 +690,15 @@ def copyDllFile(source_path, dist_dir, dest_path, executable):
|
|
|
638
690
|
# Path must be normalized for this to be correct, but entry points enforced that.
|
|
639
691
|
count = dest_path.count(os.path.sep)
|
|
640
692
|
|
|
641
|
-
|
|
693
|
+
# TODO: This ought to depend on actual presence of used DLLs with middle
|
|
694
|
+
# paths and not just do it, but maybe there is not much harm in it.
|
|
695
|
+
if count > 0:
|
|
696
|
+
rpath = ":".join(
|
|
697
|
+
os.path.join("$ORIGIN", *([".."] * c)) for c in range(count, 0, -1)
|
|
698
|
+
)
|
|
699
|
+
else:
|
|
700
|
+
rpath = "$ORIGIN"
|
|
701
|
+
|
|
642
702
|
setSharedLibraryRPATH(target_filename, rpath)
|
|
643
703
|
|
|
644
704
|
if isWin32Windows() and isUnstripped():
|
|
@@ -652,6 +712,15 @@ def copyDllFile(source_path, dist_dir, dest_path, executable):
|
|
|
652
712
|
),
|
|
653
713
|
)
|
|
654
714
|
|
|
715
|
+
if isMacOS():
|
|
716
|
+
# spell-checker: ignore xattr
|
|
717
|
+
|
|
718
|
+
executeToolChecked(
|
|
719
|
+
logger=postprocessing_logger,
|
|
720
|
+
command=("xattr", "-c", target_filename),
|
|
721
|
+
absence_message="needs 'xattr' to remove extended attributes",
|
|
722
|
+
)
|
|
723
|
+
|
|
655
724
|
if executable:
|
|
656
725
|
addFileExecutablePermission(target_filename)
|
|
657
726
|
|
|
@@ -682,10 +751,7 @@ def getWindowsRunningProcessModuleFilename(handle):
|
|
|
682
751
|
|
|
683
752
|
res = GetModuleFileName(handle, buf, MAX_PATH)
|
|
684
753
|
if res == 0:
|
|
685
|
-
|
|
686
|
-
raise WindowsError(
|
|
687
|
-
ctypes.GetLastError(), ctypes.FormatError(ctypes.GetLastError())
|
|
688
|
-
)
|
|
754
|
+
raiseWindowsError("getWindowsRunningProcessModuleFilename")
|
|
689
755
|
|
|
690
756
|
return os.path.normcase(buf.value)
|
|
691
757
|
|
|
@@ -719,10 +785,7 @@ def _getWindowsRunningProcessModuleHandles():
|
|
|
719
785
|
)
|
|
720
786
|
|
|
721
787
|
if not res:
|
|
722
|
-
|
|
723
|
-
raise WindowsError(
|
|
724
|
-
ctypes.GetLastError(), ctypes.FormatError(ctypes.GetLastError())
|
|
725
|
-
)
|
|
788
|
+
raiseWindowsError("getWindowsRunningProcessModuleHandles")
|
|
726
789
|
|
|
727
790
|
return tuple(handle for handle in handles if handle is not None)
|
|
728
791
|
|
|
@@ -754,20 +817,19 @@ def cleanupHeaderForAndroid(filename):
|
|
|
754
817
|
created by default.
|
|
755
818
|
"""
|
|
756
819
|
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
)
|
|
820
|
+
executeToolChecked(
|
|
821
|
+
logger=postprocessing_logger,
|
|
822
|
+
command=("patchelf", "--shrink-rpath", filename),
|
|
823
|
+
stderr_filter=_filterPatchelfErrorOutput,
|
|
824
|
+
absence_message=_patchelf_usage,
|
|
825
|
+
)
|
|
764
826
|
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
827
|
+
executeToolChecked(
|
|
828
|
+
logger=postprocessing_logger,
|
|
829
|
+
command=("termux-elf-cleaner", "--quiet", filename),
|
|
830
|
+
absence_message=_termux_elf_cleaner_usage,
|
|
831
|
+
optional=True,
|
|
832
|
+
)
|
|
771
833
|
|
|
772
834
|
|
|
773
835
|
_nm_usage = """\
|
|
@@ -775,10 +837,18 @@ Error, needs 'nm' on your system, to detect exported DLL symbols."""
|
|
|
775
837
|
|
|
776
838
|
|
|
777
839
|
def getDllExportedSymbols(logger, filename):
|
|
778
|
-
if isLinux():
|
|
840
|
+
if isLinux or isMacOS():
|
|
841
|
+
if isLinux():
|
|
842
|
+
command = ("nm", "-D", filename)
|
|
843
|
+
elif isMacOS():
|
|
844
|
+
command = ("nm", "-gU", filename) + _getMacOSArchOption()
|
|
845
|
+
else:
|
|
846
|
+
# Need to add e.g. FreeBSD here.
|
|
847
|
+
assert False
|
|
848
|
+
|
|
779
849
|
output = executeToolChecked(
|
|
780
850
|
logger=logger,
|
|
781
|
-
command=
|
|
851
|
+
command=command,
|
|
782
852
|
absence_message=_nm_usage,
|
|
783
853
|
)
|
|
784
854
|
|
|
@@ -795,3 +865,19 @@ def getDllExportedSymbols(logger, filename):
|
|
|
795
865
|
return result
|
|
796
866
|
else:
|
|
797
867
|
return None
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
871
|
+
# integrates with CPython, but also works on its own.
|
|
872
|
+
#
|
|
873
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
874
|
+
# you may not use this file except in compliance with the License.
|
|
875
|
+
# You may obtain a copy of the License at
|
|
876
|
+
#
|
|
877
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
878
|
+
#
|
|
879
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
880
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
881
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
882
|
+
# See the License for the specific language governing permissions and
|
|
883
|
+
# limitations under the License.
|
nuitka/utils/Shebang.py
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
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
|
""" Utils to work with shebang lines.
|
|
19
5
|
|
|
20
6
|
"""
|
|
7
|
+
|
|
21
8
|
import os
|
|
22
9
|
import re
|
|
23
10
|
|
|
@@ -108,3 +95,19 @@ def parseShebang(shebang):
|
|
|
108
95
|
del parts[0]
|
|
109
96
|
|
|
110
97
|
return parts[0][2:].lstrip(), parts[1:]
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
101
|
+
# integrates with CPython, but also works on its own.
|
|
102
|
+
#
|
|
103
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
104
|
+
# you may not use this file except in compliance with the License.
|
|
105
|
+
# You may obtain a copy of the License at
|
|
106
|
+
#
|
|
107
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
108
|
+
#
|
|
109
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
110
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
111
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
112
|
+
# See the License for the specific language governing permissions and
|
|
113
|
+
# limitations under the License.
|
nuitka/utils/Signing.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
|
""" Signing of executables.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -52,6 +38,45 @@ for the certificate in KeyChain Access application for this certificate."""
|
|
|
52
38
|
return None, stderr
|
|
53
39
|
|
|
54
40
|
|
|
41
|
+
def detectMacIdentity():
|
|
42
|
+
output = executeToolChecked(
|
|
43
|
+
logger=postprocessing_logger,
|
|
44
|
+
command=["security", "find-identity"],
|
|
45
|
+
absence_message="The 'security' program is used to scan for signing identities",
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
if str is not bytes:
|
|
49
|
+
output = output.decode("utf8")
|
|
50
|
+
|
|
51
|
+
signing_name = None
|
|
52
|
+
result = None
|
|
53
|
+
|
|
54
|
+
for line in output.splitlines():
|
|
55
|
+
line = line.strip()
|
|
56
|
+
|
|
57
|
+
if line.startswith("2)"):
|
|
58
|
+
postprocessing_logger.sysexit(
|
|
59
|
+
"More than one signing identity, auto mode cannot be used."
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
if line.startswith("1)"):
|
|
63
|
+
parts = line.split(" ", 2)
|
|
64
|
+
|
|
65
|
+
result = parts[1]
|
|
66
|
+
signing_name = parts[2]
|
|
67
|
+
|
|
68
|
+
if result is None:
|
|
69
|
+
postprocessing_logger.sysexit(
|
|
70
|
+
"Failed to detect any signing identity, auto mode cannot be used."
|
|
71
|
+
)
|
|
72
|
+
else:
|
|
73
|
+
postprocessing_logger.info(
|
|
74
|
+
"Using signing identity %s automatically." % signing_name
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return result
|
|
78
|
+
|
|
79
|
+
|
|
55
80
|
def addMacOSCodeSignature(filenames):
|
|
56
81
|
"""Add the code signature to filenames.
|
|
57
82
|
|
|
@@ -68,8 +93,12 @@ def addMacOSCodeSignature(filenames):
|
|
|
68
93
|
# Weak signing.
|
|
69
94
|
identity = getMacOSSigningIdentity()
|
|
70
95
|
|
|
96
|
+
if identity == "auto":
|
|
97
|
+
identity = detectMacIdentity()
|
|
98
|
+
|
|
71
99
|
command = [
|
|
72
|
-
|
|
100
|
+
# Need to avoid Anaconda codesign.
|
|
101
|
+
"/usr/bin/codesign",
|
|
73
102
|
"-s",
|
|
74
103
|
identity,
|
|
75
104
|
"--force",
|
|
@@ -91,3 +120,19 @@ def addMacOSCodeSignature(filenames):
|
|
|
91
120
|
absence_message=_macos_codesign_usage,
|
|
92
121
|
stderr_filter=_filterCodesignErrorOutput,
|
|
93
122
|
)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
126
|
+
# integrates with CPython, but also works on its own.
|
|
127
|
+
#
|
|
128
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
129
|
+
# you may not use this file except in compliance with the License.
|
|
130
|
+
# You may obtain a copy of the License at
|
|
131
|
+
#
|
|
132
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
133
|
+
#
|
|
134
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
135
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
136
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
137
|
+
# See the License for the specific language governing permissions and
|
|
138
|
+
# limitations under the License.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Helper for portable metaclasses that do checks. """
|
|
5
|
+
|
|
6
|
+
from abc import ABCMeta
|
|
7
|
+
|
|
8
|
+
from nuitka.Errors import NuitkaNodeDesignError
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def getMetaClassBase(meta_class_prefix, require_slots):
|
|
12
|
+
"""For Python2/3 compatible source, we create a base class that has the metaclass
|
|
13
|
+
used and doesn't require making a syntax choice.
|
|
14
|
+
|
|
15
|
+
Also this allows to enforce the proper usage of "__slots__" for all classes using
|
|
16
|
+
it optionally.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
class MetaClass(ABCMeta):
|
|
20
|
+
def __new__(
|
|
21
|
+
mcs, name, bases, dictionary
|
|
22
|
+
): # pylint: disable=I0021,arguments-differ
|
|
23
|
+
if require_slots:
|
|
24
|
+
for base in bases:
|
|
25
|
+
if base is not object and "__slots__" not in base.__dict__:
|
|
26
|
+
raise NuitkaNodeDesignError(
|
|
27
|
+
name, "All bases must set __slots__.", base
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
if "__slots__" not in dictionary:
|
|
31
|
+
raise NuitkaNodeDesignError(name, "Class must set __slots__.", name)
|
|
32
|
+
|
|
33
|
+
return ABCMeta.__new__(mcs, name, bases, dictionary)
|
|
34
|
+
|
|
35
|
+
MetaClassBase = MetaClass(
|
|
36
|
+
"%sMetaClassBase" % meta_class_prefix,
|
|
37
|
+
(object,),
|
|
38
|
+
{"__slots__": ()} if require_slots else {},
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
return MetaClassBase
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
45
|
+
# integrates with CPython, but also works on its own.
|
|
46
|
+
#
|
|
47
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
48
|
+
# you may not use this file except in compliance with the License.
|
|
49
|
+
# You may obtain a copy of the License at
|
|
50
|
+
#
|
|
51
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
52
|
+
#
|
|
53
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
54
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
55
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
56
|
+
# See the License for the specific language governing permissions and
|
|
57
|
+
# limitations under the License.
|