Nuitka-winsvc 2.5.1__cp311-cp311-win_amd64.whl → 2.6__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka-run.cmd +1 -1
- {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka.cmd +1 -1
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/METADATA +80 -122
- Nuitka_winsvc-2.6.dist-info/RECORD +988 -0
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +1 -1
- nuitka/BytecodeCaching.py +1 -1
- nuitka/Bytecodes.py +1 -1
- nuitka/CacheCleanup.py +1 -1
- nuitka/Constants.py +1 -1
- nuitka/Errors.py +1 -1
- nuitka/HardImportRegistry.py +1 -1
- nuitka/MainControl.py +93 -94
- nuitka/ModuleRegistry.py +1 -1
- nuitka/OptionParsing.py +90 -20
- nuitka/Options.py +160 -53
- nuitka/OutputDirectories.py +5 -3
- nuitka/PostProcessing.py +76 -27
- nuitka/Progress.py +1 -1
- nuitka/PythonFlavors.py +9 -3
- nuitka/PythonOperators.py +1 -1
- nuitka/PythonVersions.py +8 -4
- nuitka/Serialization.py +1 -1
- nuitka/SourceCodeReferences.py +1 -1
- nuitka/Tracing.py +2 -1
- nuitka/TreeXML.py +1 -1
- nuitka/Variables.py +1 -1
- nuitka/Version.py +2 -2
- nuitka/__init__.py +1 -1
- nuitka/__main__.py +4 -1
- nuitka/__past__.py +1 -1
- nuitka/build/Backend.scons +44 -66
- nuitka/build/CCompilerVersion.scons +2 -1
- nuitka/build/DataComposerInterface.py +2 -1
- nuitka/build/Offsets.scons +644 -0
- nuitka/build/Onefile.scons +5 -13
- nuitka/build/SconsCaching.py +9 -7
- nuitka/build/SconsCompilerSettings.py +54 -31
- nuitka/build/SconsHacks.py +3 -3
- nuitka/build/SconsInterface.py +86 -56
- nuitka/build/SconsProgress.py +12 -5
- nuitka/build/SconsSpawn.py +3 -3
- nuitka/build/SconsUtils.py +20 -1
- nuitka/build/__init__.py +1 -1
- nuitka/build/include/nuitka/allocator.h +3 -1
- nuitka/build/include/nuitka/builtins.h +1 -1
- nuitka/build/include/nuitka/calling.h +1 -1
- nuitka/build/include/nuitka/checkers.h +1 -1
- nuitka/build/include/nuitka/checksum_tools.h +1 -1
- nuitka/build/include/nuitka/compiled_asyncgen.h +4 -2
- nuitka/build/include/nuitka/compiled_cell.h +1 -1
- nuitka/build/include/nuitka/compiled_coroutine.h +3 -2
- nuitka/build/include/nuitka/compiled_frame.h +5 -12
- nuitka/build/include/nuitka/compiled_function.h +2 -3
- nuitka/build/include/nuitka/compiled_generator.h +3 -2
- nuitka/build/include/nuitka/compiled_method.h +1 -1
- nuitka/build/include/nuitka/constants.h +7 -1
- nuitka/build/include/nuitka/constants_blob.h +1 -1
- nuitka/build/include/nuitka/debug_settings.h +1 -1
- nuitka/build/include/nuitka/environment_variables.h +1 -1
- nuitka/build/include/nuitka/environment_variables_system.h +1 -1
- nuitka/build/include/nuitka/exception_groups.h +1 -1
- nuitka/build/include/nuitka/exceptions.h +1 -1
- nuitka/build/include/nuitka/filesystem_paths.h +4 -1
- nuitka/build/include/nuitka/freelists.h +2 -2
- nuitka/build/include/nuitka/helper/attributes.h +1 -1
- nuitka/build/include/nuitka/helper/boolean.h +1 -1
- nuitka/build/include/nuitka/helper/bytearrays.h +1 -1
- nuitka/build/include/nuitka/helper/bytes.h +1 -1
- nuitka/build/include/nuitka/helper/calling_generated.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_eq.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_ge.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_gt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_le.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_lt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_ne.h +1 -1
- nuitka/build/include/nuitka/helper/complex.h +1 -1
- nuitka/build/include/nuitka/helper/dictionaries.h +11 -3
- nuitka/build/include/nuitka/helper/floats.h +1 -1
- nuitka/build/include/nuitka/helper/import_hard.h +1 -1
- nuitka/build/include/nuitka/helper/indexes.h +1 -1
- nuitka/build/include/nuitka/helper/ints.h +1 -1
- nuitka/build/include/nuitka/helper/iterators.h +1 -1
- nuitka/build/include/nuitka/helper/lists.h +1 -1
- nuitka/build/include/nuitka/helper/lists_generated.h +1 -1
- nuitka/build/include/nuitka/helper/mappings.h +1 -1
- nuitka/build/include/nuitka/helper/operations.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +1 -1
- nuitka/build/include/nuitka/helper/raising.h +1 -1
- nuitka/build/include/nuitka/helper/rangeobjects.h +1 -1
- nuitka/build/include/nuitka/helper/richcomparisons.h +1 -1
- nuitka/build/include/nuitka/helper/sequences.h +1 -1
- nuitka/build/include/nuitka/helper/sets.h +1 -1
- nuitka/build/include/nuitka/helper/slices.h +1 -1
- nuitka/build/include/nuitka/helper/strings.h +1 -1
- nuitka/build/include/nuitka/helper/subscripts.h +1 -1
- nuitka/build/include/nuitka/helper/tuples.h +13 -1
- nuitka/build/include/nuitka/helpers.h +1 -43
- nuitka/build/include/nuitka/importing.h +1 -1
- nuitka/build/include/nuitka/jit_sources.h +1 -1
- nuitka/build/include/nuitka/prelude.h +11 -10
- nuitka/build/include/nuitka/printing.h +1 -1
- nuitka/build/include/nuitka/python_pgo.h +1 -1
- nuitka/build/include/nuitka/safe_string_ops.h +1 -1
- nuitka/build/include/nuitka/threading.h +1 -1
- nuitka/build/include/nuitka/tracing.h +1 -1
- nuitka/build/include/nuitka/type_aliases.h +1 -1
- nuitka/build/include/nuitka/unfreezing.h +1 -1
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +85 -71
- nuitka/build/static_src/CompiledCellType.c +2 -1
- nuitka/build/static_src/CompiledCodeHelpers.c +8 -26
- nuitka/build/static_src/CompiledCoroutineType.c +33 -35
- nuitka/build/static_src/CompiledFrameType.c +63 -5
- nuitka/build/static_src/CompiledFunctionType.c +11 -13
- nuitka/build/static_src/CompiledGeneratorType.c +64 -11
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +33 -24
- nuitka/build/static_src/CompiledMethodType.c +2 -1
- nuitka/build/static_src/GenerateHeadersMain.c +30 -0
- nuitka/build/static_src/HelpersAllocator.c +1 -1
- nuitka/build/static_src/HelpersAttributes.c +5 -2
- nuitka/build/static_src/HelpersBuiltin.c +2 -2
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +1 -1
- nuitka/build/static_src/HelpersBytes.c +1 -1
- nuitka/build/static_src/HelpersCalling.c +1 -1
- nuitka/build/static_src/HelpersCallingGenerated.c +6 -16
- nuitka/build/static_src/HelpersChecksumTools.c +1 -1
- nuitka/build/static_src/HelpersClasses.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualEq.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualGe.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualGt.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualLe.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualLt.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualNe.c +1 -1
- nuitka/build/static_src/HelpersComparisonEq.c +1 -1
- nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -1
- nuitka/build/static_src/HelpersComparisonGe.c +1 -1
- nuitka/build/static_src/HelpersComparisonGt.c +1 -1
- nuitka/build/static_src/HelpersComparisonLe.c +1 -1
- nuitka/build/static_src/HelpersComparisonLt.c +1 -1
- nuitka/build/static_src/HelpersComparisonNe.c +1 -1
- nuitka/build/static_src/HelpersConsole.c +1 -1
- nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
- nuitka/build/static_src/HelpersDeepcopy.c +4 -1
- nuitka/build/static_src/HelpersDictionaries.c +15 -3
- nuitka/build/static_src/HelpersDictionariesGenerated.c +13 -2
- nuitka/build/static_src/HelpersDumpBacktraces.c +1 -1
- nuitka/build/static_src/HelpersEnvironmentVariables.c +1 -1
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +1 -1
- nuitka/build/static_src/HelpersExceptions.c +1 -1
- nuitka/build/static_src/HelpersFiles.c +18 -10
- nuitka/build/static_src/HelpersFilesystemPaths.c +36 -16
- nuitka/build/static_src/HelpersFloats.c +1 -1
- nuitka/build/static_src/HelpersHeapStorage.c +1 -1
- nuitka/build/static_src/HelpersImport.c +1 -1
- nuitka/build/static_src/HelpersImportHard.c +1 -1
- nuitka/build/static_src/HelpersJitSources.c +1 -1
- nuitka/build/static_src/HelpersLists.c +2 -1
- nuitka/build/static_src/HelpersListsGenerated.c +1 -1
- nuitka/build/static_src/HelpersMappings.c +1 -1
- nuitka/build/static_src/HelpersMatching.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMod.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMult.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryPow.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +1 -1
- nuitka/build/static_src/HelpersOperationBinarySub.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMod.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMult.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplacePow.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceSub.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +1 -1
- nuitka/build/static_src/HelpersProfiling.c +1 -1
- nuitka/build/static_src/HelpersPythonPgo.c +5 -2
- nuitka/build/static_src/HelpersRaising.c +1 -1
- nuitka/build/static_src/HelpersSafeStrings.c +1 -1
- nuitka/build/static_src/HelpersSequences.c +1 -1
- nuitka/build/static_src/HelpersSlices.c +1 -1
- nuitka/build/static_src/HelpersStrings.c +1 -1
- nuitka/build/static_src/HelpersTuples.c +2 -2
- nuitka/build/static_src/HelpersTypes.c +1 -1
- nuitka/build/static_src/InspectPatcher.c +2 -1
- nuitka/build/static_src/MainProgram.c +30 -9
- nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +1 -1
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +1 -1
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +17 -4
- nuitka/build/static_src/OnefileBootstrap.c +3 -3
- nuitka/build/static_src/OnefileSplashScreen.cpp +1 -1
- nuitka/code_generation/AsyncgenCodes.py +5 -6
- nuitka/code_generation/AttributeCodes.py +1 -1
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +1 -1
- nuitka/code_generation/BranchCodes.py +1 -1
- nuitka/code_generation/BuiltinCodes.py +15 -5
- nuitka/code_generation/CallCodes.py +1 -1
- nuitka/code_generation/ClassCodes.py +1 -1
- nuitka/code_generation/CodeGeneration.py +23 -17
- nuitka/code_generation/CodeHelperSelection.py +1 -1
- nuitka/code_generation/CodeHelpers.py +1 -1
- nuitka/code_generation/CodeObjectCodes.py +19 -2
- nuitka/code_generation/ComparisonCodes.py +1 -1
- nuitka/code_generation/ComparisonHelperDefinitions.py +1 -1
- nuitka/code_generation/ConditionalCodes.py +1 -1
- nuitka/code_generation/ConstantCodes.py +1 -1
- nuitka/code_generation/Contexts.py +52 -39
- nuitka/code_generation/CoroutineCodes.py +4 -5
- nuitka/code_generation/CtypesCodes.py +1 -1
- nuitka/code_generation/DictCodes.py +1 -1
- nuitka/code_generation/Emission.py +1 -1
- nuitka/code_generation/ErrorCodes.py +1 -1
- nuitka/code_generation/EvalCodes.py +1 -1
- nuitka/code_generation/ExceptionCodes.py +1 -1
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -1
- nuitka/code_generation/ExpressionCodes.py +1 -1
- nuitka/code_generation/FrameCodes.py +26 -17
- nuitka/code_generation/FunctionCodes.py +9 -15
- nuitka/code_generation/GeneratorCodes.py +9 -10
- nuitka/code_generation/GlobalConstants.py +6 -4
- nuitka/code_generation/GlobalsLocalsCodes.py +1 -1
- nuitka/code_generation/IdCodes.py +1 -1
- nuitka/code_generation/ImportCodes.py +1 -1
- nuitka/code_generation/Indentation.py +1 -1
- nuitka/code_generation/IndexCodes.py +1 -1
- nuitka/code_generation/InjectCCodes.py +1 -1
- nuitka/code_generation/IntegerCodes.py +1 -1
- nuitka/code_generation/IteratorCodes.py +1 -1
- nuitka/code_generation/JitCodes.py +1 -1
- nuitka/code_generation/LabelCodes.py +1 -1
- nuitka/code_generation/LineNumberCodes.py +1 -1
- nuitka/code_generation/ListCodes.py +1 -1
- nuitka/code_generation/LoaderCodes.py +1 -1
- nuitka/code_generation/LocalsDictCodes.py +1 -1
- nuitka/code_generation/LoopCodes.py +1 -1
- nuitka/code_generation/MatchCodes.py +1 -1
- nuitka/code_generation/ModuleCodes.py +31 -4
- nuitka/code_generation/Namify.py +4 -1
- nuitka/code_generation/NetworkxCodes.py +1 -1
- nuitka/code_generation/OperationCodes.py +1 -1
- nuitka/code_generation/PackageResourceCodes.py +4 -10
- nuitka/code_generation/PrintCodes.py +1 -1
- nuitka/code_generation/PythonAPICodes.py +1 -1
- nuitka/code_generation/RaisingCodes.py +1 -1
- nuitka/code_generation/Reports.py +1 -1
- nuitka/code_generation/ReturnCodes.py +1 -1
- nuitka/code_generation/SetCodes.py +1 -1
- nuitka/code_generation/SliceCodes.py +1 -1
- nuitka/code_generation/StringCodes.py +1 -1
- nuitka/code_generation/SubscriptCodes.py +1 -1
- nuitka/code_generation/TensorflowCodes.py +1 -1
- nuitka/code_generation/TryCodes.py +1 -1
- nuitka/code_generation/TupleCodes.py +1 -1
- nuitka/code_generation/TypeAliasCodes.py +1 -1
- nuitka/code_generation/VariableCodes.py +1 -1
- nuitka/code_generation/VariableDeclarations.py +1 -1
- nuitka/code_generation/YieldCodes.py +1 -1
- nuitka/code_generation/__init__.py +1 -1
- nuitka/code_generation/c_types/CTypeBases.py +1 -1
- nuitka/code_generation/c_types/CTypeBooleans.py +1 -1
- nuitka/code_generation/c_types/CTypeCFloats.py +1 -1
- nuitka/code_generation/c_types/CTypeCLongs.py +1 -1
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +1 -1
- nuitka/code_generation/c_types/CTypeVoids.py +1 -1
- nuitka/code_generation/c_types/__init__.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesConstants.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesFrames.py +21 -25
- nuitka/code_generation/templates/CodeTemplatesFunction.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +3 -3
- nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesLoader.py +26 -3
- nuitka/code_generation/templates/CodeTemplatesModules.py +21 -8
- nuitka/code_generation/templates/CodeTemplatesVariables.py +24 -21
- nuitka/code_generation/templates/TemplateDebugWrapper.py +1 -1
- nuitka/code_generation/templates/__init__.py +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +21 -1
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +5 -2
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +1 -1
- nuitka/containers/Namedtuples.py +1 -1
- nuitka/containers/OrderedSetsFallback.py +1 -1
- nuitka/containers/__init__.py +1 -1
- nuitka/distutils/Build.py +1 -1
- nuitka/distutils/DistutilCommands.py +2 -2
- nuitka/distutils/__init__.py +1 -1
- nuitka/finalizations/Finalization.py +1 -1
- nuitka/finalizations/FinalizeMarkups.py +1 -1
- nuitka/finalizations/__init__.py +1 -1
- nuitka/freezer/DependsExe.py +2 -1
- nuitka/freezer/DllDependenciesCommon.py +1 -1
- nuitka/freezer/DllDependenciesMacOS.py +1 -1
- nuitka/freezer/DllDependenciesPosix.py +1 -1
- nuitka/freezer/DllDependenciesWin32.py +111 -25
- nuitka/freezer/ImportDetection.py +5 -2
- nuitka/freezer/IncludedDataFiles.py +11 -2
- nuitka/freezer/IncludedEntryPoints.py +1 -1
- nuitka/freezer/Onefile.py +14 -15
- nuitka/freezer/Standalone.py +6 -3
- nuitka/freezer/__init__.py +1 -1
- nuitka/importing/IgnoreListing.py +1 -1
- nuitka/importing/ImportCache.py +1 -1
- nuitka/importing/ImportResolving.py +1 -1
- nuitka/importing/Importing.py +4 -3
- nuitka/importing/PreloadedPackages.py +1 -1
- nuitka/importing/Recursion.py +37 -12
- nuitka/importing/StandardLibrary.py +1 -1
- nuitka/importing/__init__.py +1 -1
- nuitka/nodes/AsyncgenNodes.py +1 -1
- nuitka/nodes/AttributeLookupNodes.py +1 -1
- nuitka/nodes/AttributeNodes.py +1 -1
- nuitka/nodes/AttributeNodesGenerated.py +1 -1
- nuitka/nodes/BuiltinAllNodes.py +1 -1
- nuitka/nodes/BuiltinAnyNodes.py +1 -1
- nuitka/nodes/BuiltinComplexNodes.py +1 -1
- nuitka/nodes/BuiltinDecodingNodes.py +1 -1
- nuitka/nodes/BuiltinDecoratorNodes.py +1 -1
- nuitka/nodes/BuiltinDictNodes.py +1 -1
- nuitka/nodes/BuiltinFormatNodes.py +1 -1
- nuitka/nodes/BuiltinHashNodes.py +1 -1
- nuitka/nodes/BuiltinInputNodes.py +1 -1
- nuitka/nodes/BuiltinIntegerNodes.py +1 -1
- nuitka/nodes/BuiltinIteratorNodes.py +2 -2
- nuitka/nodes/BuiltinLenNodes.py +1 -1
- nuitka/nodes/BuiltinNextNodes.py +1 -1
- nuitka/nodes/BuiltinOpenNodes.py +1 -1
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +1 -1
- nuitka/nodes/BuiltinRangeNodes.py +1 -1
- nuitka/nodes/BuiltinRefNodes.py +1 -1
- nuitka/nodes/BuiltinSumNodes.py +1 -1
- nuitka/nodes/BuiltinTypeNodes.py +1 -1
- nuitka/nodes/BuiltinVarsNodes.py +1 -1
- nuitka/nodes/BytesNodes.py +1 -1
- nuitka/nodes/CallNodes.py +1 -1
- nuitka/nodes/Checkers.py +1 -1
- nuitka/nodes/ChildrenHavingMixins.py +227 -3
- nuitka/nodes/ClassNodes.py +1 -1
- nuitka/nodes/CodeObjectSpecs.py +4 -4
- nuitka/nodes/ComparisonNodes.py +1 -1
- nuitka/nodes/ConditionalNodes.py +1 -1
- nuitka/nodes/ConstantRefNodes.py +1 -1
- nuitka/nodes/ContainerMakingNodes.py +1 -1
- nuitka/nodes/ContainerOperationNodes.py +1 -1
- nuitka/nodes/CoroutineNodes.py +1 -1
- nuitka/nodes/CtypesNodes.py +1 -1
- nuitka/nodes/DictionaryNodes.py +2 -2
- nuitka/nodes/ExceptionNodes.py +1 -1
- nuitka/nodes/ExecEvalNodes.py +1 -1
- nuitka/nodes/ExpressionBases.py +1 -1
- nuitka/nodes/ExpressionBasesGenerated.py +1 -1
- nuitka/nodes/ExpressionShapeMixins.py +1 -1
- nuitka/nodes/FrameNodes.py +19 -7
- nuitka/nodes/FunctionAttributeNodes.py +1 -1
- nuitka/nodes/FunctionNodes.py +1 -1
- nuitka/nodes/FutureSpecs.py +34 -2
- nuitka/nodes/GeneratorNodes.py +1 -1
- nuitka/nodes/GlobalsLocalsNodes.py +1 -1
- nuitka/nodes/HardImportNodesGenerated.py +140 -56
- nuitka/nodes/ImportHardNodes.py +1 -1
- nuitka/nodes/ImportNodes.py +1 -1
- nuitka/nodes/IndicatorMixins.py +1 -1
- nuitka/nodes/InjectCNodes.py +1 -1
- nuitka/nodes/IterationHandles.py +1 -1
- nuitka/nodes/KeyValuePairNodes.py +1 -1
- nuitka/nodes/ListOperationNodes.py +1 -1
- nuitka/nodes/LocalsDictNodes.py +1 -1
- nuitka/nodes/LocalsScopes.py +1 -1
- nuitka/nodes/LoopNodes.py +1 -1
- nuitka/nodes/MatchNodes.py +1 -1
- nuitka/nodes/ModuleAttributeNodes.py +1 -1
- nuitka/nodes/ModuleNodes.py +2 -2
- nuitka/nodes/NetworkxNodes.py +1 -1
- nuitka/nodes/NodeBases.py +1 -1
- nuitka/nodes/NodeMakingHelpers.py +1 -1
- nuitka/nodes/NodeMetaClasses.py +1 -1
- nuitka/nodes/OperatorNodes.py +1 -1
- nuitka/nodes/OperatorNodesUnary.py +1 -1
- nuitka/nodes/OsSysNodes.py +1 -1
- nuitka/nodes/OutlineNodes.py +1 -1
- nuitka/nodes/PackageMetadataNodes.py +1 -1
- nuitka/nodes/PackageResourceNodes.py +42 -7
- nuitka/nodes/PrintNodes.py +1 -1
- nuitka/nodes/ReturnNodes.py +1 -1
- nuitka/nodes/SideEffectNodes.py +1 -1
- nuitka/nodes/SliceNodes.py +1 -1
- nuitka/nodes/StatementBasesGenerated.py +1 -1
- nuitka/nodes/StatementNodes.py +1 -1
- nuitka/nodes/StrNodes.py +1 -1
- nuitka/nodes/StringConcatenationNodes.py +1 -1
- nuitka/nodes/SubscriptNodes.py +1 -1
- nuitka/nodes/TensorflowNodes.py +1 -1
- nuitka/nodes/TryNodes.py +1 -1
- nuitka/nodes/TypeMatchNodes.py +1 -1
- nuitka/nodes/TypeNodes.py +1 -1
- nuitka/nodes/VariableAssignNodes.py +3 -2
- nuitka/nodes/VariableDelNodes.py +1 -1
- nuitka/nodes/VariableNameNodes.py +1 -1
- nuitka/nodes/VariableRefNodes.py +1 -1
- nuitka/nodes/VariableReleaseNodes.py +1 -1
- nuitka/nodes/YieldNodes.py +1 -1
- nuitka/nodes/__init__.py +1 -1
- nuitka/nodes/shapes/BuiltinTypeShapes.py +1 -1
- nuitka/nodes/shapes/ControlFlowDescriptions.py +1 -1
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +4 -3
- nuitka/nodes/shapes/StandardShapes.py +2 -51
- nuitka/nodes/shapes/__init__.py +1 -1
- nuitka/optimizations/BytecodeDemotion.py +1 -1
- nuitka/optimizations/FunctionInlining.py +1 -1
- nuitka/optimizations/Graphs.py +1 -1
- nuitka/optimizations/Optimization.py +1 -1
- nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
- nuitka/optimizations/Tags.py +1 -1
- nuitka/optimizations/TraceCollections.py +1 -1
- nuitka/optimizations/ValueTraces.py +1 -1
- nuitka/optimizations/__init__.py +1 -1
- nuitka/pgo/PGO.py +1 -1
- nuitka/pgo/__init__.py +1 -1
- nuitka/plugins/PluginBase.py +24 -3
- nuitka/plugins/Plugins.py +67 -14
- nuitka/plugins/YamlPluginBase.py +1 -1
- nuitka/plugins/__init__.py +1 -1
- nuitka/plugins/standard/AntiBloatPlugin.py +2 -1
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +2 -1
- nuitka/plugins/standard/DataFilesPlugin.py +2 -2
- nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +1 -1
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +1 -1
- nuitka/plugins/standard/DillPlugin.py +2 -2
- nuitka/plugins/standard/DllFilesPlugin.py +80 -14
- nuitka/plugins/standard/EnumPlugin.py +2 -2
- nuitka/plugins/standard/EventletPlugin.py +2 -1
- nuitka/plugins/standard/GeventPlugin.py +2 -1
- nuitka/plugins/standard/GiPlugin.py +2 -1
- nuitka/plugins/standard/GlfwPlugin.py +2 -1
- nuitka/plugins/standard/ImplicitImports.py +8 -6
- nuitka/plugins/standard/KivyPlugin.py +2 -1
- nuitka/plugins/standard/MatplotlibPlugin.py +3 -2
- nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
- nuitka/plugins/standard/NumpyPlugin.py +2 -1
- nuitka/plugins/standard/OptionsNannyPlugin.py +7 -6
- nuitka/plugins/standard/PbrPlugin.py +2 -2
- nuitka/plugins/standard/PkgResourcesPlugin.py +2 -1
- nuitka/plugins/standard/PlaywrightPlugin.py +10 -15
- nuitka/plugins/standard/PmwPlugin.py +2 -1
- nuitka/plugins/standard/PySidePyQtPlugin.py +12 -15
- nuitka/plugins/standard/PywebViewPlugin.py +2 -1
- nuitka/plugins/standard/SpacyPlugin.py +2 -1
- nuitka/plugins/standard/TensorflowPlugin.py +2 -1
- nuitka/plugins/standard/TkinterPlugin.py +38 -5
- nuitka/plugins/standard/TorchPlugin.py +2 -1
- nuitka/plugins/standard/TransformersPlugin.py +2 -2
- nuitka/plugins/standard/TrioPlugin.py +2 -1
- nuitka/plugins/standard/UpxPlugin.py +2 -1
- nuitka/plugins/standard/__init__.py +1 -1
- nuitka/plugins/standard/standard.nuitka-package.config.yml +173 -49
- nuitka/reports/CompilationReportReader.py +5 -1
- nuitka/reports/LicenseReport.rst.j2 +1 -1
- nuitka/reports/Reports.py +5 -1
- nuitka/reports/__init__.py +1 -1
- nuitka/specs/BuiltinBytesOperationSpecs.py +1 -1
- nuitka/specs/BuiltinDictOperationSpecs.py +1 -1
- nuitka/specs/BuiltinListOperationSpecs.py +1 -1
- nuitka/specs/BuiltinParameterSpecs.py +1 -1
- nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
- nuitka/specs/BuiltinTypeOperationSpecs.py +1 -1
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +1 -1
- nuitka/specs/HardImportSpecs.py +10 -2
- nuitka/specs/ParameterSpecs.py +17 -2
- nuitka/specs/__init__.py +1 -1
- nuitka/tools/Basics.py +1 -1
- nuitka/tools/__init__.py +1 -1
- nuitka/tools/commercial/__init__.py +1 -1
- nuitka/tools/data_composer/DataComposer.py +125 -1
- nuitka/tools/data_composer/__init__.py +1 -1
- nuitka/tools/data_composer/__main__.py +1 -1
- nuitka/tools/environments/CreateEnvironment.py +1 -1
- nuitka/tools/environments/Virtualenv.py +14 -6
- nuitka/tools/environments/__init__.py +1 -1
- nuitka/tools/general/__init__.py +1 -1
- nuitka/tools/general/dll_report/__init__.py +1 -1
- nuitka/tools/general/dll_report/__main__.py +1 -1
- nuitka/tools/general/find_module/FindModuleCode.py +2 -2
- nuitka/tools/general/find_module/__init__.py +1 -1
- nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
- nuitka/tools/general/generate_header/__init__.py +19 -0
- nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
- nuitka/tools/onefile_compressor/__init__.py +1 -1
- nuitka/tools/onefile_compressor/__main__.py +1 -1
- nuitka/tools/podman/Podman.py +1 -1
- nuitka/tools/podman/__init__.py +1 -1
- nuitka/tools/podman/__main__.py +8 -4
- nuitka/tools/profiler/__init__.py +1 -1
- nuitka/tools/profiler/__main__.py +1 -1
- nuitka/tools/scanning/DisplayPackageDLLs.py +43 -20
- nuitka/tools/scanning/DisplayPackageData.py +1 -1
- nuitka/tools/scanning/__init__.py +1 -1
- nuitka/tools/specialize/CTypeDescriptions.py +1 -1
- nuitka/tools/specialize/Common.py +1 -1
- nuitka/tools/specialize/SpecializeC.py +1 -1
- nuitka/tools/specialize/SpecializePython.py +7 -3
- nuitka/tools/specialize/__init__.py +1 -1
- nuitka/tools/testing/Common.py +140 -19
- nuitka/tools/testing/Constructs.py +1 -1
- nuitka/tools/testing/OutputComparison.py +5 -4
- nuitka/tools/testing/Pythons.py +1 -1
- nuitka/tools/testing/RuntimeTracing.py +1 -1
- nuitka/tools/testing/SearchModes.py +1 -1
- nuitka/tools/testing/Valgrind.py +1 -1
- nuitka/tools/testing/__init__.py +1 -1
- nuitka/tools/testing/check_reference_counts/__init__.py +1 -1
- nuitka/tools/testing/check_reference_counts/__main__.py +6 -2
- nuitka/tools/testing/compare_with_cpython/__init__.py +1 -1
- nuitka/tools/testing/compare_with_cpython/__main__.py +51 -14
- nuitka/tools/testing/find_sxs_modules/__init__.py +1 -1
- nuitka/tools/testing/find_sxs_modules/__main__.py +1 -1
- nuitka/tools/testing/measure_construct_performance/__init__.py +1 -1
- nuitka/tools/testing/measure_construct_performance/__main__.py +1 -1
- nuitka/tools/testing/run_nuitka_tests/__init__.py +1 -1
- nuitka/tools/testing/run_nuitka_tests/__main__.py +1 -1
- nuitka/tools/watch/AutoStage.py +1 -1
- nuitka/tools/watch/Common.py +55 -0
- nuitka/tools/watch/Conda.py +125 -0
- nuitka/tools/watch/GitHub.py +1 -1
- nuitka/tools/watch/Pacman.py +73 -0
- nuitka/tools/watch/Pipenv.py +143 -0
- nuitka/tools/watch/__init__.py +1 -1
- nuitka/tools/watch/__main__.py +117 -264
- nuitka/tree/Building.py +1 -1
- nuitka/tree/ComplexCallHelperFunctions.py +1 -1
- nuitka/tree/Extractions.py +1 -1
- nuitka/tree/InternalModule.py +1 -1
- nuitka/tree/Operations.py +1 -1
- nuitka/tree/ReformulationAssertStatements.py +1 -1
- nuitka/tree/ReformulationAssignmentStatements.py +1 -1
- nuitka/tree/ReformulationBooleanExpressions.py +1 -1
- nuitka/tree/ReformulationCallExpressions.py +1 -1
- nuitka/tree/ReformulationClasses.py +1 -1
- nuitka/tree/ReformulationClasses3.py +1 -1
- nuitka/tree/ReformulationComparisonExpressions.py +1 -1
- nuitka/tree/ReformulationContractionExpressions.py +3 -1
- nuitka/tree/ReformulationDictionaryCreation.py +1 -1
- nuitka/tree/ReformulationExecStatements.py +1 -1
- nuitka/tree/ReformulationForLoopStatements.py +1 -1
- nuitka/tree/ReformulationFunctionStatements.py +1 -1
- nuitka/tree/ReformulationImportStatements.py +1 -1
- nuitka/tree/ReformulationLambdaExpressions.py +2 -1
- nuitka/tree/ReformulationMatchStatements.py +1 -1
- nuitka/tree/ReformulationMultidist.py +1 -1
- nuitka/tree/ReformulationNamespacePackages.py +1 -1
- nuitka/tree/ReformulationPrintStatements.py +1 -1
- nuitka/tree/ReformulationSequenceCreation.py +1 -1
- nuitka/tree/ReformulationSubscriptExpressions.py +1 -1
- nuitka/tree/ReformulationTryExceptStatements.py +1 -1
- nuitka/tree/ReformulationTryFinallyStatements.py +1 -1
- nuitka/tree/ReformulationWhileLoopStatements.py +1 -1
- nuitka/tree/ReformulationWithStatements.py +1 -1
- nuitka/tree/ReformulationYieldExpressions.py +1 -1
- nuitka/tree/SourceHandling.py +1 -1
- nuitka/tree/SyntaxErrors.py +1 -1
- nuitka/tree/TreeHelpers.py +24 -10
- nuitka/tree/VariableClosure.py +1 -1
- nuitka/tree/__init__.py +1 -1
- nuitka/utils/AppDirs.py +5 -2
- nuitka/utils/CStrings.py +1 -1
- nuitka/utils/CommandLineOptions.py +2 -2
- nuitka/utils/Distributions.py +177 -15
- nuitka/utils/Download.py +14 -6
- nuitka/utils/Execution.py +43 -14
- nuitka/utils/FileOperations.py +29 -5
- nuitka/utils/Hashing.py +6 -2
- nuitka/utils/Images.py +8 -2
- nuitka/utils/Importing.py +1 -1
- nuitka/utils/InlineCopies.py +1 -1
- nuitka/utils/InstalledPythons.py +1 -1
- nuitka/utils/InstanceCounters.py +1 -1
- nuitka/utils/Jinja2.py +1 -1
- nuitka/utils/Json.py +2 -2
- nuitka/utils/MacOSApp.py +4 -3
- nuitka/utils/MemoryUsage.py +1 -1
- nuitka/utils/ModuleNames.py +1 -1
- nuitka/utils/PackageResources.py +1 -1
- nuitka/utils/ReExecute.py +1 -1
- nuitka/utils/Rest.py +1 -1
- nuitka/utils/SharedLibraries.py +76 -7
- nuitka/utils/Shebang.py +1 -1
- nuitka/utils/Signing.py +11 -5
- nuitka/utils/SlotMetaClasses.py +1 -1
- nuitka/utils/StaticLibraries.py +25 -1
- nuitka/utils/ThreadedExecutor.py +1 -1
- nuitka/utils/Timing.py +1 -1
- nuitka/utils/Utils.py +1 -1
- nuitka/utils/WindowsFileUsage.py +1 -1
- nuitka/utils/WindowsResources.py +3 -1
- nuitka/utils/Yaml.py +1 -1
- nuitka/utils/__init__.py +1 -1
- Nuitka_winsvc-2.5.1.dist-info/RECORD +0 -977
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/top_level.txt +0 -0
nuitka/utils/Execution.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Program execution related stuff.
|
|
@@ -255,11 +255,11 @@ def withEnvironmentVarsOverridden(mapping):
|
|
|
255
255
|
os.environ[env_var_name] = old_values[env_var_name]
|
|
256
256
|
|
|
257
257
|
|
|
258
|
-
def wrapCommandForDebuggerForExec(
|
|
258
|
+
def wrapCommandForDebuggerForExec(command, debugger=None):
|
|
259
259
|
"""Wrap a command for system debugger to call exec
|
|
260
260
|
|
|
261
261
|
Args:
|
|
262
|
-
|
|
262
|
+
command: (iterable of str) args for call to be debugged
|
|
263
263
|
Returns:
|
|
264
264
|
args tuple with debugger command inserted
|
|
265
265
|
|
|
@@ -268,28 +268,48 @@ def wrapCommandForDebuggerForExec(*args):
|
|
|
268
268
|
debuggers would be very welcome.
|
|
269
269
|
"""
|
|
270
270
|
|
|
271
|
+
command = tuple(command)
|
|
272
|
+
|
|
271
273
|
gdb_path = getExecutablePath("gdb")
|
|
272
|
-
lldb_path =
|
|
274
|
+
lldb_path = getExecutablePath("lldb")
|
|
275
|
+
|
|
276
|
+
# Default from environment variable.
|
|
277
|
+
if debugger is None:
|
|
278
|
+
debugger = os.getenv("NUITKA_DEBUGGER_CHOICE")
|
|
279
|
+
|
|
280
|
+
if debugger not in ("gdb", "lldb", None):
|
|
281
|
+
general.sysexit("Error, the selected debugger name '%s' is not supported.")
|
|
273
282
|
|
|
274
283
|
# Windows extra ball, attempt the downloaded one.
|
|
275
|
-
if isWin32Windows() and gdb_path is None:
|
|
284
|
+
if isWin32Windows() and gdb_path is None and lldb_path is None:
|
|
276
285
|
from nuitka.Options import assumeYesForDownloads
|
|
277
286
|
|
|
278
287
|
mingw64_gcc_path = getCachedDownloadedMinGW64(
|
|
279
288
|
target_arch=getArchitecture(),
|
|
280
289
|
assume_yes_for_downloads=assumeYesForDownloads(),
|
|
290
|
+
download_ok=True,
|
|
281
291
|
)
|
|
282
292
|
|
|
283
293
|
with withEnvironmentPathAdded("PATH", os.path.dirname(mingw64_gcc_path)):
|
|
284
294
|
lldb_path = getExecutablePath("lldb")
|
|
285
295
|
|
|
286
296
|
if gdb_path is None and lldb_path is None:
|
|
287
|
-
lldb_path = getExecutablePath("lldb")
|
|
288
|
-
|
|
289
297
|
if lldb_path is None:
|
|
290
298
|
general.sysexit("Error, no 'gdb' or 'lldb' binary found in path.")
|
|
291
299
|
|
|
292
|
-
if
|
|
300
|
+
if lldb_path is not None and debugger != "gdb":
|
|
301
|
+
args = (
|
|
302
|
+
lldb_path,
|
|
303
|
+
"lldb",
|
|
304
|
+
"-o",
|
|
305
|
+
"run",
|
|
306
|
+
"-o",
|
|
307
|
+
"bt",
|
|
308
|
+
"-o",
|
|
309
|
+
"quit",
|
|
310
|
+
"--",
|
|
311
|
+
) + command
|
|
312
|
+
elif gdb_path is not None and debugger != "lldb":
|
|
293
313
|
args = (
|
|
294
314
|
gdb_path,
|
|
295
315
|
"gdb",
|
|
@@ -300,14 +320,14 @@ def wrapCommandForDebuggerForExec(*args):
|
|
|
300
320
|
"-ex=where",
|
|
301
321
|
"-ex=quit",
|
|
302
322
|
"--args",
|
|
303
|
-
) +
|
|
323
|
+
) + command
|
|
304
324
|
else:
|
|
305
|
-
|
|
325
|
+
general.sysexit("Error, the selected debugger '%s' was not found in path.")
|
|
306
326
|
|
|
307
327
|
return args
|
|
308
328
|
|
|
309
329
|
|
|
310
|
-
def wrapCommandForDebuggerForSubprocess(
|
|
330
|
+
def wrapCommandForDebuggerForSubprocess(command, debugger=None):
|
|
311
331
|
"""Wrap a command for system debugger with subprocess module.
|
|
312
332
|
|
|
313
333
|
Args:
|
|
@@ -320,7 +340,7 @@ def wrapCommandForDebuggerForSubprocess(*args):
|
|
|
320
340
|
debuggers would be very welcome.
|
|
321
341
|
"""
|
|
322
342
|
|
|
323
|
-
args = wrapCommandForDebuggerForExec(
|
|
343
|
+
args = wrapCommandForDebuggerForExec(command=command, debugger=debugger)
|
|
324
344
|
|
|
325
345
|
# Discard exec only argument.
|
|
326
346
|
args = args[0:1] + args[2:]
|
|
@@ -349,7 +369,7 @@ def getNullInput():
|
|
|
349
369
|
|
|
350
370
|
|
|
351
371
|
def executeToolChecked(
|
|
352
|
-
logger, command, absence_message, stderr_filter=None, optional=False
|
|
372
|
+
logger, command, absence_message, stderr_filter=None, optional=False, decoding=False
|
|
353
373
|
):
|
|
354
374
|
"""Execute external tool, checking for success and no error outputs, returning result."""
|
|
355
375
|
|
|
@@ -359,13 +379,19 @@ def executeToolChecked(
|
|
|
359
379
|
if not isExecutableCommand(tool):
|
|
360
380
|
if optional:
|
|
361
381
|
logger.warning(absence_message)
|
|
362
|
-
return ""
|
|
382
|
+
return b"" if decoding else ""
|
|
363
383
|
else:
|
|
364
384
|
logger.sysexit(absence_message)
|
|
365
385
|
|
|
366
386
|
# Allow to avoid repeated scans in PATH for the tool.
|
|
367
387
|
command[0] = getExecutablePath(tool)
|
|
368
388
|
|
|
389
|
+
if None in command:
|
|
390
|
+
logger.sysexit(
|
|
391
|
+
"Error, call to '%s' failed due to 'None' value: %s index %d."
|
|
392
|
+
% (tool, command, command.index(None))
|
|
393
|
+
)
|
|
394
|
+
|
|
369
395
|
with withEnvironmentVarOverridden("LC_ALL", "C"):
|
|
370
396
|
with getNullInput() as null_input:
|
|
371
397
|
process = subprocess.Popen(
|
|
@@ -394,6 +420,9 @@ def executeToolChecked(
|
|
|
394
420
|
"Error, call to '%s' gave warnings: %s -> %s." % (tool, command, stderr)
|
|
395
421
|
)
|
|
396
422
|
|
|
423
|
+
if decoding:
|
|
424
|
+
stdout = stdout.decode("utf8")
|
|
425
|
+
|
|
397
426
|
return stdout
|
|
398
427
|
|
|
399
428
|
|
nuitka/utils/FileOperations.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Utils for file and directory operations.
|
|
@@ -555,7 +555,7 @@ def listExeFilesFromDirectory(path, prefix=None, suffixes=None):
|
|
|
555
555
|
# On Windows, we check exe suffixes, on other platforms we shell all filenames,
|
|
556
556
|
# matching the prefix, but they have to the executable bit set.
|
|
557
557
|
if not suffixes and isWin32OrPosixWindows():
|
|
558
|
-
suffixes = "exe", "bin"
|
|
558
|
+
suffixes = ("exe", "bin")
|
|
559
559
|
|
|
560
560
|
if suffixes:
|
|
561
561
|
pattern_list = [prefix + "*." + suffix for suffix in suffixes]
|
|
@@ -774,13 +774,31 @@ def resetDirectory(path, logger, ignore_errors, extra_recommendation):
|
|
|
774
774
|
|
|
775
775
|
|
|
776
776
|
@contextmanager
|
|
777
|
-
def withTemporaryFile(suffix="", mode="w", delete=True, temp_path=None):
|
|
777
|
+
def withTemporaryFile(prefix="", suffix="", mode="w", delete=True, temp_path=None):
|
|
778
|
+
"""Provide a temporary file opened and potentially deleted."""
|
|
778
779
|
with tempfile.NamedTemporaryFile(
|
|
779
|
-
suffix=suffix, mode=mode, delete=delete, dir=temp_path
|
|
780
|
+
prefix=prefix, suffix=suffix, mode=mode, delete=delete, dir=temp_path
|
|
780
781
|
) as temp_file:
|
|
781
782
|
yield temp_file
|
|
782
783
|
|
|
783
784
|
|
|
785
|
+
@contextmanager
|
|
786
|
+
def withTemporaryFilename(prefix="", suffix="", temp_path=None):
|
|
787
|
+
"""Provide a temporary filename."""
|
|
788
|
+
with tempfile.NamedTemporaryFile(
|
|
789
|
+
prefix=prefix,
|
|
790
|
+
suffix=suffix,
|
|
791
|
+
mode="wb",
|
|
792
|
+
delete=False,
|
|
793
|
+
dir=temp_path,
|
|
794
|
+
) as temp_file:
|
|
795
|
+
filename = temp_file.name
|
|
796
|
+
temp_file.close()
|
|
797
|
+
deleteFile(filename, must_exist=True)
|
|
798
|
+
|
|
799
|
+
yield filename
|
|
800
|
+
|
|
801
|
+
|
|
784
802
|
def getFileContentByLine(filename, mode="r", encoding=None, errors=None):
|
|
785
803
|
# We read the whole, to keep lock times minimal. We only deal with small
|
|
786
804
|
# files like this normally.
|
|
@@ -890,7 +908,7 @@ def changeTextFileContents(filename, contents, encoding=None, compare_only=False
|
|
|
890
908
|
or getFileContents(filename, encoding=encoding) != contents
|
|
891
909
|
):
|
|
892
910
|
if not compare_only:
|
|
893
|
-
putTextFileContents(filename, contents)
|
|
911
|
+
putTextFileContents(filename, contents, encoding=encoding)
|
|
894
912
|
|
|
895
913
|
return True
|
|
896
914
|
else:
|
|
@@ -1097,6 +1115,9 @@ def isFilenameBelowPath(path, filename, consider_short=True):
|
|
|
1097
1115
|
|
|
1098
1116
|
def isFilenameSameAsOrBelowPath(path, filename):
|
|
1099
1117
|
"""Is a filename inside of a given directory path or the same path as that directory."""
|
|
1118
|
+
if type(path) in (tuple, list):
|
|
1119
|
+
return any(isFilenameSameAsOrBelowPath(path=p, filename=filename) for p in path)
|
|
1120
|
+
|
|
1100
1121
|
return isFilenameBelowPath(path, filename) or areSamePaths(path, filename)
|
|
1101
1122
|
|
|
1102
1123
|
|
|
@@ -1515,6 +1536,9 @@ def getNormalizedPath(path):
|
|
|
1515
1536
|
if isWin32Windows():
|
|
1516
1537
|
path = path.replace("/", "\\")
|
|
1517
1538
|
|
|
1539
|
+
if isMacOS():
|
|
1540
|
+
path = os.path.expanduser(path)
|
|
1541
|
+
|
|
1518
1542
|
return path
|
|
1519
1543
|
|
|
1520
1544
|
|
nuitka/utils/Hashing.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Module for working with hashes in Nuitka.
|
|
@@ -7,6 +7,7 @@ Offers support for hashing incrementally and files esp. without having
|
|
|
7
7
|
to read their contents.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
+
import struct
|
|
10
11
|
from binascii import crc32
|
|
11
12
|
|
|
12
13
|
from nuitka.__past__ import md5, unicode
|
|
@@ -111,10 +112,13 @@ class HashCRC32(HashBase):
|
|
|
111
112
|
self.hash = crc32(value, self.hash)
|
|
112
113
|
|
|
113
114
|
def asDigest(self):
|
|
115
|
+
if self.hash < 0:
|
|
116
|
+
return struct.unpack("I", struct.pack("i", self.hash))[0]
|
|
117
|
+
|
|
114
118
|
return self.hash
|
|
115
119
|
|
|
116
120
|
def asHexDigest(self):
|
|
117
|
-
return hex(self.
|
|
121
|
+
return hex(self.asDigest())[2:]
|
|
118
122
|
|
|
119
123
|
|
|
120
124
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
nuitka/utils/Images.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Handling of images, esp. format conversions for icons.
|
|
@@ -12,7 +12,13 @@ from .Utils import isMacOS, isWin32Windows
|
|
|
12
12
|
def checkIconUsage(logger, icon_path):
|
|
13
13
|
icon_format = getFilenameExtension(icon_path)
|
|
14
14
|
|
|
15
|
-
if icon_format
|
|
15
|
+
if icon_format == "":
|
|
16
|
+
logger.sysexit(
|
|
17
|
+
"""\
|
|
18
|
+
Cannot detect the icon format from filename extension of '%s'."""
|
|
19
|
+
% (icon_path)
|
|
20
|
+
)
|
|
21
|
+
elif icon_format != ".icns" and isMacOS():
|
|
16
22
|
needs_conversion = True
|
|
17
23
|
elif icon_format != ".ico" and isWin32Windows():
|
|
18
24
|
needs_conversion = True
|
nuitka/utils/Importing.py
CHANGED
nuitka/utils/InlineCopies.py
CHANGED
nuitka/utils/InstalledPythons.py
CHANGED
nuitka/utils/InstanceCounters.py
CHANGED
nuitka/utils/Jinja2.py
CHANGED
nuitka/utils/Json.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Utils module to provide helper for our common json operations.
|
|
@@ -21,7 +21,7 @@ def loadJsonFromFilename(filename):
|
|
|
21
21
|
|
|
22
22
|
def writeJsonToFilename(filename, contents, indent=2):
|
|
23
23
|
with openTextFile(filename, "w") as output:
|
|
24
|
-
json.dump(contents, output, indent=indent)
|
|
24
|
+
json.dump(contents, output, indent=indent, sort_keys=True)
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
nuitka/utils/MacOSApp.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" For macOS application bundle creation
|
|
@@ -44,7 +44,7 @@ def createPlistInfoFile(logger, onefile):
|
|
|
44
44
|
("CFBundleIdentifier", signed_app_name),
|
|
45
45
|
("CFBundleExecutable", executable_name),
|
|
46
46
|
("CFBundleInfoDictionaryVersion", "6.0"),
|
|
47
|
-
("CFBundlePackageType", "APPL"),
|
|
47
|
+
("CFBundlePackageType", "APPL"), # spell-checker: ignore appl
|
|
48
48
|
("CFBundleShortVersionString", app_version),
|
|
49
49
|
]
|
|
50
50
|
)
|
|
@@ -56,6 +56,7 @@ def createPlistInfoFile(logger, onefile):
|
|
|
56
56
|
icon_path = icon_paths[0]
|
|
57
57
|
|
|
58
58
|
# Convert to single macOS .icns file if necessary
|
|
59
|
+
# spell-checker: ignore icns
|
|
59
60
|
if not icon_path.endswith(".icns"):
|
|
60
61
|
logger.info(
|
|
61
62
|
"File '%s' is not in macOS icon format, converting to it." % icon_path
|
|
@@ -90,7 +91,7 @@ def createPlistInfoFile(logger, onefile):
|
|
|
90
91
|
if Options.isMacOSBackgroundApp():
|
|
91
92
|
infos["LSBackgroundOnly"] = True
|
|
92
93
|
elif Options.isMacOSUiElementApp():
|
|
93
|
-
infos["LSUIElement"] = True
|
|
94
|
+
infos["LSUIElement"] = True # spell-checker: ignore LSUI
|
|
94
95
|
else:
|
|
95
96
|
infos["NSHighResolutionCapable"] = True
|
|
96
97
|
|
nuitka/utils/MemoryUsage.py
CHANGED
nuitka/utils/ModuleNames.py
CHANGED
nuitka/utils/PackageResources.py
CHANGED
nuitka/utils/ReExecute.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
"""Ability to restart Nuitka, needed for removing site module effects and using Python PGO after compile.
|
nuitka/utils/Rest.py
CHANGED
nuitka/utils/SharedLibraries.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" This module deals with finding and information about shared libraries.
|
|
@@ -26,6 +26,7 @@ from .FileOperations import (
|
|
|
26
26
|
makeContainingPath,
|
|
27
27
|
withMadeWritableFileMode,
|
|
28
28
|
)
|
|
29
|
+
from .Importing import importFromInlineCopy
|
|
29
30
|
from .Utils import (
|
|
30
31
|
isAlpineLinux,
|
|
31
32
|
isLinux,
|
|
@@ -258,6 +259,29 @@ def _getMacOSArchOption():
|
|
|
258
259
|
return ()
|
|
259
260
|
|
|
260
261
|
|
|
262
|
+
# TODO: Use this for more output filters.
|
|
263
|
+
def _filterOutputByLine(output, filter_func):
|
|
264
|
+
non_errors = []
|
|
265
|
+
|
|
266
|
+
for line in output.splitlines():
|
|
267
|
+
if line and not filter_func(line):
|
|
268
|
+
non_errors.append(line)
|
|
269
|
+
|
|
270
|
+
output = b"\n".join(non_errors)
|
|
271
|
+
|
|
272
|
+
return (0 if non_errors else None), output
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def _filterOtoolErrorOutput(stderr):
|
|
276
|
+
def isNonErrorExit(line):
|
|
277
|
+
if b"missing from root that overrides" in line:
|
|
278
|
+
return True
|
|
279
|
+
|
|
280
|
+
return False
|
|
281
|
+
|
|
282
|
+
return _filterOutputByLine(stderr, isNonErrorExit)
|
|
283
|
+
|
|
284
|
+
|
|
261
285
|
def _getOToolCommandOutput(otool_option, filename):
|
|
262
286
|
filename = os.path.abspath(filename)
|
|
263
287
|
|
|
@@ -272,6 +296,7 @@ def _getOToolCommandOutput(otool_option, filename):
|
|
|
272
296
|
_otool_output_cache[cache_key] = executeToolChecked(
|
|
273
297
|
logger=postprocessing_logger,
|
|
274
298
|
command=command,
|
|
299
|
+
stderr_filter=_filterOtoolErrorOutput,
|
|
275
300
|
absence_message="The 'otool' is used to analyze dependencies on macOS and required to be found.",
|
|
276
301
|
)
|
|
277
302
|
|
|
@@ -615,11 +640,9 @@ def _getFileCommandOutput(filename):
|
|
|
615
640
|
logger=postprocessing_logger,
|
|
616
641
|
command=("file", filename),
|
|
617
642
|
absence_message=_file_usage,
|
|
643
|
+
decoding=str is not bytes,
|
|
618
644
|
)
|
|
619
645
|
|
|
620
|
-
if str is not bytes:
|
|
621
|
-
file_output = file_output.decode("utf8")
|
|
622
|
-
|
|
623
646
|
assert file_output.startswith(filename + ":")
|
|
624
647
|
file_output = file_output[len(filename) + 1 :].splitlines()[0].strip()
|
|
625
648
|
|
|
@@ -836,8 +859,56 @@ _nm_usage = """\
|
|
|
836
859
|
Error, needs 'nm' on your system, to detect exported DLL symbols."""
|
|
837
860
|
|
|
838
861
|
|
|
862
|
+
def _decodeWin32EntryPoint(entry_point_name):
|
|
863
|
+
if str is bytes:
|
|
864
|
+
return entry_point_name
|
|
865
|
+
else:
|
|
866
|
+
# Not sure about the actual encoding used, this will cover most cases.
|
|
867
|
+
return entry_point_name.decode("utf8", "backslashreplace")
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
def getPEFileUsedDllNames(filename):
|
|
871
|
+
"""Return the used DLL PE file information of a Windows EXE or DLL
|
|
872
|
+
|
|
873
|
+
Args:
|
|
874
|
+
filename - The file to be investigated.
|
|
875
|
+
|
|
876
|
+
Notes:
|
|
877
|
+
Use of this is obviously only for Windows, although the module
|
|
878
|
+
will exist on other platforms too.
|
|
879
|
+
"""
|
|
880
|
+
|
|
881
|
+
pefile = importFromInlineCopy("pefile", must_exist=True)
|
|
882
|
+
|
|
883
|
+
try:
|
|
884
|
+
pe_info = pefile.PE(filename)
|
|
885
|
+
except pefile.PEFormatError:
|
|
886
|
+
return None
|
|
887
|
+
|
|
888
|
+
# TODO: Check arch with pefile as well and ignore wrong arches if asked to.
|
|
889
|
+
|
|
890
|
+
# TODO: The decoding cannot expect ASCII, but also surely is not UTF8.
|
|
891
|
+
return OrderedSet(
|
|
892
|
+
dll_entry.dll.decode("utf8")
|
|
893
|
+
for dll_entry in getattr(pe_info, "DIRECTORY_ENTRY_IMPORT", ())
|
|
894
|
+
)
|
|
895
|
+
|
|
896
|
+
|
|
839
897
|
def getDllExportedSymbols(logger, filename):
|
|
840
|
-
if
|
|
898
|
+
if isWin32Windows():
|
|
899
|
+
pefile = importFromInlineCopy("pefile", must_exist=True)
|
|
900
|
+
|
|
901
|
+
try:
|
|
902
|
+
pe_info = pefile.PE(filename)
|
|
903
|
+
except pefile.PEFormatError:
|
|
904
|
+
return None
|
|
905
|
+
|
|
906
|
+
return tuple(
|
|
907
|
+
_decodeWin32EntryPoint(entry_point.name)
|
|
908
|
+
for entry_point in pe_info.DIRECTORY_ENTRY_EXPORT.symbols
|
|
909
|
+
if entry_point.name is not None
|
|
910
|
+
)
|
|
911
|
+
else:
|
|
841
912
|
if isLinux():
|
|
842
913
|
command = ("nm", "-D", filename)
|
|
843
914
|
elif isMacOS():
|
|
@@ -863,8 +934,6 @@ def getDllExportedSymbols(logger, filename):
|
|
|
863
934
|
result.add(symbol_name.decode("utf8"))
|
|
864
935
|
|
|
865
936
|
return result
|
|
866
|
-
else:
|
|
867
|
-
return None
|
|
868
937
|
|
|
869
938
|
|
|
870
939
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
nuitka/utils/Shebang.py
CHANGED
nuitka/utils/Signing.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Signing of executables.
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from nuitka.Options import (
|
|
9
|
+
getMacOSSignedAppName,
|
|
9
10
|
getMacOSSigningIdentity,
|
|
10
11
|
shallUseSigningForNotarization,
|
|
11
12
|
)
|
|
@@ -43,11 +44,9 @@ def detectMacIdentity():
|
|
|
43
44
|
logger=postprocessing_logger,
|
|
44
45
|
command=["security", "find-identity"],
|
|
45
46
|
absence_message="The 'security' program is used to scan for signing identities",
|
|
47
|
+
decoding=str is not bytes,
|
|
46
48
|
)
|
|
47
49
|
|
|
48
|
-
if str is not bytes:
|
|
49
|
-
output = output.decode("utf8")
|
|
50
|
-
|
|
51
50
|
signing_name = None
|
|
52
51
|
result = None
|
|
53
52
|
|
|
@@ -104,9 +103,16 @@ def addMacOSCodeSignature(filenames):
|
|
|
104
103
|
"--force",
|
|
105
104
|
"--deep",
|
|
106
105
|
"--preserve-metadata=entitlements",
|
|
107
|
-
# ,
|
|
108
106
|
]
|
|
109
107
|
|
|
108
|
+
macos_signed_app_name = getMacOSSignedAppName()
|
|
109
|
+
|
|
110
|
+
if macos_signed_app_name is not None:
|
|
111
|
+
command += [
|
|
112
|
+
"-i",
|
|
113
|
+
macos_signed_app_name,
|
|
114
|
+
]
|
|
115
|
+
|
|
110
116
|
if shallUseSigningForNotarization():
|
|
111
117
|
command.append("--options=runtime")
|
|
112
118
|
|
nuitka/utils/SlotMetaClasses.py
CHANGED
nuitka/utils/StaticLibraries.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" This module deals with finding and information about static libraries.
|
|
@@ -13,6 +13,7 @@ from nuitka.PythonFlavors import (
|
|
|
13
13
|
isDebianPackagePython,
|
|
14
14
|
isNuitkaPython,
|
|
15
15
|
isRyePython,
|
|
16
|
+
isSelfCompiledPythonUninstalled,
|
|
16
17
|
)
|
|
17
18
|
from nuitka.PythonVersions import (
|
|
18
19
|
getPythonABI,
|
|
@@ -22,6 +23,7 @@ from nuitka.PythonVersions import (
|
|
|
22
23
|
)
|
|
23
24
|
from nuitka.Tracing import general
|
|
24
25
|
|
|
26
|
+
from .Execution import executeToolChecked
|
|
25
27
|
from .FileOperations import getFileContentByLine, getFileList
|
|
26
28
|
from .Utils import (
|
|
27
29
|
getLinuxDistribution,
|
|
@@ -155,6 +157,12 @@ def _getSystemStaticLibPythonPath():
|
|
|
155
157
|
if isMacOS() and isRyePython():
|
|
156
158
|
return None
|
|
157
159
|
|
|
160
|
+
if isSelfCompiledPythonUninstalled():
|
|
161
|
+
candidate = os.path.join(sys_prefix, "libpython" + python_abi_version + ".a")
|
|
162
|
+
|
|
163
|
+
if os.path.exists(candidate):
|
|
164
|
+
return candidate
|
|
165
|
+
|
|
158
166
|
candidate = os.path.join(sys_prefix, "lib", "libpython" + python_abi_version + ".a")
|
|
159
167
|
|
|
160
168
|
if os.path.exists(candidate):
|
|
@@ -212,6 +220,22 @@ def getSystemStaticLibPythonPath():
|
|
|
212
220
|
return _static_lib_python_path
|
|
213
221
|
|
|
214
222
|
|
|
223
|
+
_nm_usage = "nm is used to detect symbols of static link libraries"
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
def getStaticLinkLibrarySymbols(logger, static_library_path):
|
|
227
|
+
"""Get the list of symbols exported by a static link library."""
|
|
228
|
+
|
|
229
|
+
output = executeToolChecked(
|
|
230
|
+
logger=logger,
|
|
231
|
+
command=("nm", "-U", "-g", "-j", static_library_path),
|
|
232
|
+
absence_message=_nm_usage,
|
|
233
|
+
decoding=str is not bytes,
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
return output.splitlines()
|
|
237
|
+
|
|
238
|
+
|
|
215
239
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
216
240
|
# integrates with CPython, but also works on its own.
|
|
217
241
|
#
|
nuitka/utils/ThreadedExecutor.py
CHANGED
nuitka/utils/Timing.py
CHANGED
nuitka/utils/Utils.py
CHANGED
nuitka/utils/WindowsFileUsage.py
CHANGED