Nuitka-winsvc 2.5.6__cp311-cp311-win_amd64.whl → 2.6.5__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.6.data → Nuitka_winsvc-2.6.5.data}/scripts/nuitka-run.cmd +1 -1
- {Nuitka_winsvc-2.5.6.data → Nuitka_winsvc-2.6.5.data}/scripts/nuitka.cmd +1 -1
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/METADATA +36 -24
- Nuitka_winsvc-2.6.5.dist-info/RECORD +992 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +1 -1
- nuitka/BytecodeCaching.py +15 -4
- 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 +19 -4
- nuitka/OptionParsing.py +86 -17
- nuitka/Options.py +230 -106
- nuitka/OutputDirectories.py +5 -3
- nuitka/PostProcessing.py +76 -27
- nuitka/Progress.py +1 -1
- nuitka/PythonFlavors.py +24 -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 +57 -35
- nuitka/build/SconsHacks.py +3 -3
- nuitka/build/SconsInterface.py +86 -58
- 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 +6 -13
- 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 +5 -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 +2 -2
- 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 +1 -1
- 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 +1 -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 +10 -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 +2 -2
- nuitka/build/include/nuitka/unfreezing.h +1 -1
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
- nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
- nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +80 -75
- nuitka/build/static_src/CompiledCellType.c +2 -1
- nuitka/build/static_src/CompiledCodeHelpers.c +10 -28
- nuitka/build/static_src/CompiledCoroutineType.c +30 -40
- nuitka/build/static_src/CompiledFrameType.c +63 -5
- nuitka/build/static_src/CompiledFunctionType.c +11 -13
- nuitka/build/static_src/CompiledGeneratorType.c +56 -13
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +1 -1
- 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 +1 -1
- 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 +2 -2
- nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
- nuitka/build/static_src/HelpersDeepcopy.c +3 -1
- nuitka/build/static_src/HelpersDictionaries.c +1 -1
- nuitka/build/static_src/HelpersDictionariesGenerated.c +1 -1
- 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 +1 -1
- nuitka/build/static_src/HelpersTypes.c +5 -5
- nuitka/build/static_src/InspectPatcher.c +2 -1
- nuitka/build/static_src/MainProgram.c +30 -6
- nuitka/build/static_src/MetaPathBasedLoader.c +19 -11
- 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 +6 -4
- 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 +4 -3
- 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 +1 -1
- 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 +1 -1
- 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 +8 -3
- nuitka/freezer/DllDependenciesPosix.py +23 -4
- nuitka/freezer/DllDependenciesWin32.py +112 -25
- nuitka/freezer/ImportDetection.py +1 -1
- nuitka/freezer/IncludedDataFiles.py +2 -2
- nuitka/freezer/IncludedEntryPoints.py +9 -1
- nuitka/freezer/Onefile.py +13 -15
- nuitka/freezer/Standalone.py +16 -4
- 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 +6 -4
- 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 +1 -1
- 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 +240 -16
- 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 +1 -1
- 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 +8 -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 +23 -9
- 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 +4 -2
- 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 +4 -4
- nuitka/nodes/VariableAssignNodes.py +1 -1
- 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 +1 -1
- nuitka/nodes/shapes/ShapeMixins.py +1 -1
- nuitka/nodes/shapes/StandardShapes.py +1 -1
- 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 +91 -16
- nuitka/plugins/Plugins.py +58 -15
- nuitka/plugins/YamlPluginBase.py +1 -1
- nuitka/plugins/__init__.py +1 -1
- nuitka/plugins/standard/AntiBloatPlugin.py +138 -66
- 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 +2 -12
- 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 +7 -6
- nuitka/plugins/standard/KivyPlugin.py +2 -1
- nuitka/plugins/standard/MatplotlibPlugin.py +2 -1
- nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
- nuitka/plugins/standard/NumpyPlugin.py +2 -1
- nuitka/plugins/standard/OptionsNannyPlugin.py +2 -2
- 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 +25 -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 +15 -2
- 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 +257 -89
- nuitka/reports/CompilationReportReader.py +5 -1
- nuitka/reports/LicenseReport.rst.j2 +1 -1
- nuitka/reports/Reports.py +30 -3
- 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 +1 -1
- 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 +6 -3
- 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 +4 -2
- nuitka/tools/profiler/__init__.py +1 -1
- nuitka/tools/profiler/__main__.py +1 -1
- nuitka/tools/scanning/DisplayPackageDLLs.py +42 -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 +124 -266
- nuitka/tree/Building.py +5 -7
- nuitka/tree/ComplexCallHelperFunctions.py +1 -1
- nuitka/tree/Extractions.py +1 -1
- nuitka/tree/FutureSpecState.py +71 -0
- nuitka/tree/InternalModule.py +1 -1
- nuitka/tree/Operations.py +1 -1
- nuitka/tree/ReformulationAssertStatements.py +1 -1
- nuitka/tree/ReformulationAssignmentStatements.py +3 -3
- 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 +3 -3
- nuitka/tree/ReformulationExecStatements.py +1 -1
- nuitka/tree/ReformulationForLoopStatements.py +1 -1
- nuitka/tree/ReformulationFunctionStatements.py +2 -2
- nuitka/tree/ReformulationImportStatements.py +5 -52
- nuitka/tree/ReformulationLambdaExpressions.py +2 -1
- nuitka/tree/ReformulationMatchStatements.py +1 -1
- nuitka/tree/ReformulationMultidist.py +2 -2
- nuitka/tree/ReformulationNamespacePackages.py +28 -6
- 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 +57 -18
- 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 +197 -15
- nuitka/utils/Download.py +14 -6
- nuitka/utils/Execution.py +43 -14
- nuitka/utils/FileOperations.py +43 -10
- nuitka/utils/Hashing.py +1 -1
- 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 +52 -7
- nuitka/utils/Shebang.py +1 -1
- nuitka/utils/Signing.py +2 -4
- nuitka/utils/SlotMetaClasses.py +1 -1
- nuitka/utils/StaticLibraries.py +29 -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.6.dist-info/RECORD +0 -978
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.5.dist-info}/top_level.txt +0 -0
nuitka/tools/watch/__main__.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
|
""" Nuitka watch main part.
|
|
@@ -8,7 +8,6 @@ of Nuitka changes on PyPI packages.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
import os
|
|
11
|
-
import subprocess
|
|
12
11
|
import sys
|
|
13
12
|
from optparse import OptionParser
|
|
14
13
|
|
|
@@ -21,14 +20,13 @@ from nuitka.TreeXML import fromFile
|
|
|
21
20
|
from nuitka.utils.Execution import (
|
|
22
21
|
check_call,
|
|
23
22
|
executeProcess,
|
|
24
|
-
|
|
25
|
-
withEnvironmentVarOverridden,
|
|
23
|
+
withEnvironmentVarsOverridden,
|
|
26
24
|
)
|
|
27
25
|
from nuitka.utils.FileOperations import (
|
|
28
|
-
changeTextFileContents,
|
|
29
26
|
deleteFile,
|
|
30
27
|
getFileContents,
|
|
31
28
|
getFileList,
|
|
29
|
+
getNormalizedPath,
|
|
32
30
|
listDir,
|
|
33
31
|
makePath,
|
|
34
32
|
putTextFileContents,
|
|
@@ -41,7 +39,14 @@ from nuitka.utils.Utils import isLinux, isMacOS, isWin32Windows
|
|
|
41
39
|
from nuitka.utils.Yaml import parseYaml
|
|
42
40
|
from nuitka.Version import parseNuitkaVersionToTuple
|
|
43
41
|
|
|
42
|
+
from .Conda import (
|
|
43
|
+
getCondaRunCommand,
|
|
44
|
+
updateCondaEnvironmentFile,
|
|
45
|
+
updateCondaEnvironmentLockFile,
|
|
46
|
+
)
|
|
44
47
|
from .GitHub import createNuitkaWatchPR
|
|
48
|
+
from .Pacman import updatePacmanFile, updatePacmanLockFile
|
|
49
|
+
from .Pipenv import updatePipenvFile, updatePipenvLockFile
|
|
45
50
|
|
|
46
51
|
watch_logger = OurLogger("", base_style="blue")
|
|
47
52
|
|
|
@@ -89,217 +94,52 @@ def selectPythons(python_version_req, anaconda, msys2_mingw64):
|
|
|
89
94
|
|
|
90
95
|
|
|
91
96
|
def selectOS(os_values):
|
|
92
|
-
#
|
|
97
|
+
# Need to move the Anaconda/MSYS2 handling into options of installed Pythons
|
|
98
|
+
# return driven, pylint: disable=too-many-branches,too-many-return-statements
|
|
93
99
|
|
|
94
100
|
for value in os_values:
|
|
95
|
-
if value not in (
|
|
101
|
+
if value not in (
|
|
102
|
+
"Linux",
|
|
103
|
+
"Win32",
|
|
104
|
+
"macOS",
|
|
105
|
+
"Win32-MSYS2",
|
|
106
|
+
"Win32-Anaconda",
|
|
107
|
+
"Linux-Anaconda",
|
|
108
|
+
"macOS-Anaconda",
|
|
109
|
+
):
|
|
96
110
|
watch_logger.sysexit("Illegal value for OS: %s" % value)
|
|
97
111
|
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
# TODO: Once installed python detects MSYS2 and Anaconda, we should remove
|
|
113
|
+
# this in favor of passed options that allow flavors or not.
|
|
114
|
+
if isLinux():
|
|
115
|
+
if isAnacondaPython():
|
|
116
|
+
if "Linux-Anaconda" in os_values:
|
|
117
|
+
return "Linux-Anaconda"
|
|
118
|
+
|
|
119
|
+
return None
|
|
120
|
+
elif "Linux" in os_values:
|
|
121
|
+
return "Linux"
|
|
100
122
|
if isWin32Windows():
|
|
101
123
|
if isMSYS2MingwPython():
|
|
102
124
|
if "Win32-MSYS2" in os_values:
|
|
103
125
|
return "Win32-MSYS2"
|
|
104
126
|
|
|
105
127
|
return None
|
|
106
|
-
|
|
128
|
+
elif isAnacondaPython():
|
|
107
129
|
if "Win32-Anaconda" in os_values:
|
|
108
130
|
return "Win32-Anaconda"
|
|
109
|
-
|
|
110
|
-
return None
|
|
111
|
-
if "Win32" in os_values:
|
|
131
|
+
elif "Win32" in os_values:
|
|
112
132
|
return "Win32"
|
|
113
|
-
if isMacOS()
|
|
114
|
-
|
|
133
|
+
if isMacOS():
|
|
134
|
+
if isAnacondaPython():
|
|
135
|
+
if "macOS-Anaconda" in os_values:
|
|
136
|
+
return "macOS-Anaconda"
|
|
137
|
+
elif "macOS" in os_values:
|
|
138
|
+
return "macOS"
|
|
115
139
|
|
|
116
140
|
return None
|
|
117
141
|
|
|
118
142
|
|
|
119
|
-
def getPlatformRequirements(installed_python, case_data):
|
|
120
|
-
requirements = list(case_data["requirements"])
|
|
121
|
-
|
|
122
|
-
# Nuitka house keeping, these are from setup.py but we ignore onefile needs
|
|
123
|
-
# as that is not currently covered in watches.
|
|
124
|
-
# spell-checker: ignore orderedset,imageio
|
|
125
|
-
needs_onefile = False
|
|
126
|
-
|
|
127
|
-
if installed_python.getHexVersion() >= 0x370:
|
|
128
|
-
requirements.append("ordered-set >= 4.1.0")
|
|
129
|
-
if installed_python.getHexVersion() < 0x300:
|
|
130
|
-
requirements.append("subprocess32")
|
|
131
|
-
if needs_onefile and installed_python.getHexVersion() >= 0x370:
|
|
132
|
-
requirements.append("zstandard >= 0.15")
|
|
133
|
-
if (
|
|
134
|
-
os.name != "nt"
|
|
135
|
-
and sys.platform != "darwin"
|
|
136
|
-
and installed_python.getHexVersion() < 0x370
|
|
137
|
-
):
|
|
138
|
-
requirements.append("orderedset >= 2.0.3")
|
|
139
|
-
if sys.platform == "darwin" and installed_python.getHexVersion() < 0x370:
|
|
140
|
-
requirements.append("orderedset >= 2.0.3")
|
|
141
|
-
|
|
142
|
-
# For icon conversion.
|
|
143
|
-
if case_data.get("icons", "no") == "yes":
|
|
144
|
-
requirements.append("imageio")
|
|
145
|
-
|
|
146
|
-
return requirements
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
def _updatePipenvFile(installed_python, case_data, dry_run, result_path):
|
|
150
|
-
pipenv_filename = os.path.join(result_path, "Pipfile")
|
|
151
|
-
pipenv_package_requirements = []
|
|
152
|
-
|
|
153
|
-
for requirement in getPlatformRequirements(
|
|
154
|
-
installed_python=installed_python, case_data=case_data
|
|
155
|
-
):
|
|
156
|
-
# Ignore spaces in requirements.
|
|
157
|
-
requirement = requirement.replace(" ", "")
|
|
158
|
-
|
|
159
|
-
if all(char not in requirement for char in "=><"):
|
|
160
|
-
pipenv_package_requirements.append('"%s" = "*"' % requirement)
|
|
161
|
-
else:
|
|
162
|
-
operator_index = min(
|
|
163
|
-
requirement.find(char) for char in "=><" if char in requirement
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
pipenv_package_requirements.append(
|
|
167
|
-
'"%s" = "%s"'
|
|
168
|
-
% (requirement[:operator_index], requirement[operator_index:])
|
|
169
|
-
)
|
|
170
|
-
|
|
171
|
-
# TODO: Other indexes, e.g. nvidia might be needed too
|
|
172
|
-
changed_pipenv_file = changeTextFileContents(
|
|
173
|
-
pipenv_filename,
|
|
174
|
-
"""\
|
|
175
|
-
[[source]]
|
|
176
|
-
name = "pypi"
|
|
177
|
-
url = "https://pypi.org/simple"
|
|
178
|
-
verify_ssl = true
|
|
179
|
-
|
|
180
|
-
[requires]
|
|
181
|
-
python_version = "%(python_version)s"
|
|
182
|
-
|
|
183
|
-
[packages]
|
|
184
|
-
%(pipenv_package_requirements)s
|
|
185
|
-
"""
|
|
186
|
-
% {
|
|
187
|
-
"pipenv_package_requirements": "\n".join(pipenv_package_requirements),
|
|
188
|
-
"python_version": installed_python.getPythonVersion(),
|
|
189
|
-
},
|
|
190
|
-
compare_only=dry_run,
|
|
191
|
-
)
|
|
192
|
-
|
|
193
|
-
return changed_pipenv_file, pipenv_filename
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def _updatePacmanFile(installed_python, case_data, dry_run, result_path):
|
|
197
|
-
pipenv_filename = os.path.join(result_path, "Pacman.txt")
|
|
198
|
-
pipenv_package_requirements = []
|
|
199
|
-
|
|
200
|
-
for requirement in getPlatformRequirements(
|
|
201
|
-
installed_python=installed_python, case_data=case_data
|
|
202
|
-
):
|
|
203
|
-
# Ignore spaces in requirements.
|
|
204
|
-
requirement = requirement.replace(" ", "")
|
|
205
|
-
|
|
206
|
-
# TODO: Other indexes, e.g. nvidia might be needed too
|
|
207
|
-
changed_pipenv_file = changeTextFileContents(
|
|
208
|
-
pipenv_filename,
|
|
209
|
-
"""\
|
|
210
|
-
[python]
|
|
211
|
-
%(python_version)s
|
|
212
|
-
[packages]
|
|
213
|
-
%(pipenv_package_requirements)s
|
|
214
|
-
"""
|
|
215
|
-
% {
|
|
216
|
-
"pipenv_package_requirements": "\n".join(pipenv_package_requirements),
|
|
217
|
-
"python_version": installed_python.getPythonVersion(),
|
|
218
|
-
},
|
|
219
|
-
compare_only=dry_run,
|
|
220
|
-
)
|
|
221
|
-
|
|
222
|
-
return changed_pipenv_file, pipenv_filename
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
def _execPipenvCommand(installed_python, command, retry=False):
|
|
226
|
-
try:
|
|
227
|
-
check_call(
|
|
228
|
-
[
|
|
229
|
-
installed_python.getPythonExe(),
|
|
230
|
-
"-m",
|
|
231
|
-
"pipenv",
|
|
232
|
-
command,
|
|
233
|
-
"--python",
|
|
234
|
-
installed_python.getPythonExe(),
|
|
235
|
-
],
|
|
236
|
-
logger=watch_logger,
|
|
237
|
-
)
|
|
238
|
-
except subprocess.CalledProcessError:
|
|
239
|
-
if command in ("install", "update") and not retry:
|
|
240
|
-
_execPipenvCommand(installed_python, "--rm")
|
|
241
|
-
_execPipenvCommand(installed_python, command)
|
|
242
|
-
|
|
243
|
-
else:
|
|
244
|
-
raise
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
def _updatePipenvLockFile(
|
|
248
|
-
installed_python, dry_run, pipenv_filename_full, no_pipenv_update
|
|
249
|
-
):
|
|
250
|
-
if os.path.exists("Pipfile.lock"):
|
|
251
|
-
if no_pipenv_update:
|
|
252
|
-
watch_logger.info(
|
|
253
|
-
"Keeping existing lock file with pipenv file '%s'."
|
|
254
|
-
% pipenv_filename_full
|
|
255
|
-
)
|
|
256
|
-
|
|
257
|
-
_execPipenvCommand(installed_python, "install")
|
|
258
|
-
|
|
259
|
-
elif not dry_run:
|
|
260
|
-
watch_logger.info(
|
|
261
|
-
"Working with pipenv file '%s' to update virtualenv, may take a while."
|
|
262
|
-
% pipenv_filename_full
|
|
263
|
-
)
|
|
264
|
-
|
|
265
|
-
_execPipenvCommand(installed_python, "update")
|
|
266
|
-
else:
|
|
267
|
-
watch_logger.info(
|
|
268
|
-
"Working with pipenv file '%s' to install virtualenv, may take a while."
|
|
269
|
-
% pipenv_filename_full
|
|
270
|
-
)
|
|
271
|
-
|
|
272
|
-
check_call(
|
|
273
|
-
[
|
|
274
|
-
installed_python.getPythonExe(),
|
|
275
|
-
"-m",
|
|
276
|
-
"pipenv",
|
|
277
|
-
"install",
|
|
278
|
-
"--python",
|
|
279
|
-
installed_python.getPythonExe(),
|
|
280
|
-
]
|
|
281
|
-
)
|
|
282
|
-
|
|
283
|
-
return "Pipfile.lock"
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
def _updatePacmanLockFile():
|
|
287
|
-
pacman_lock_filename = "Pacman.lock"
|
|
288
|
-
|
|
289
|
-
pacman_output = executeToolChecked(
|
|
290
|
-
logger=watch_logger,
|
|
291
|
-
command=["pacman", "-Q"],
|
|
292
|
-
absence_message="needs pacman to query package status on MSYS2",
|
|
293
|
-
)
|
|
294
|
-
|
|
295
|
-
if str is not bytes:
|
|
296
|
-
pacman_output = pacman_output.decode("utf8")
|
|
297
|
-
|
|
298
|
-
changeTextFileContents(filename=pacman_lock_filename, contents=pacman_output)
|
|
299
|
-
|
|
300
|
-
return pacman_lock_filename
|
|
301
|
-
|
|
302
|
-
|
|
303
143
|
def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
304
144
|
preferred_package_type = installed_python.getPreferredPackageType()
|
|
305
145
|
|
|
@@ -319,8 +159,12 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
|
319
159
|
run_command = ["python"]
|
|
320
160
|
|
|
321
161
|
extra_options.append("--disable-ccache")
|
|
162
|
+
elif preferred_package_type == "conda":
|
|
163
|
+
run_command = getCondaRunCommand(
|
|
164
|
+
installed_python=installed_python, case_data=case_data
|
|
165
|
+
)
|
|
322
166
|
else:
|
|
323
|
-
assert False
|
|
167
|
+
assert False, preferred_package_type
|
|
324
168
|
|
|
325
169
|
if jobs is not None:
|
|
326
170
|
extra_options.append("--jobs=%s" % jobs)
|
|
@@ -336,7 +180,8 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
|
336
180
|
"--report-user-provided=pipenv_hash=%s"
|
|
337
181
|
% getFileContentsHash(lock_filename),
|
|
338
182
|
]
|
|
339
|
-
+ extra_options
|
|
183
|
+
+ extra_options,
|
|
184
|
+
logger=watch_logger,
|
|
340
185
|
)
|
|
341
186
|
|
|
342
187
|
if case_data["interactive"] == "no":
|
|
@@ -349,7 +194,12 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
|
349
194
|
if len(binaries) != 1:
|
|
350
195
|
sys.exit("Error, failed to identify created binary.")
|
|
351
196
|
|
|
352
|
-
|
|
197
|
+
env = {
|
|
198
|
+
"NUITKA_LAUNCH_TOKEN": "1",
|
|
199
|
+
"NUITKA_TEST_INTERACTIVE": "0",
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
with withEnvironmentVarsOverridden(env):
|
|
353
203
|
stdout, stderr, exit_nuitka = executeProcess([binaries[0]], timeout=5 * 60)
|
|
354
204
|
|
|
355
205
|
with open("compiled-stdout.txt", "wb") as output:
|
|
@@ -371,60 +221,81 @@ def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
|
371
221
|
)
|
|
372
222
|
|
|
373
223
|
|
|
374
|
-
def
|
|
375
|
-
|
|
224
|
+
def _updateCaseLock(
|
|
225
|
+
installed_python,
|
|
376
226
|
case_data,
|
|
377
|
-
|
|
227
|
+
case_dir,
|
|
378
228
|
no_pipenv_update,
|
|
379
|
-
nuitka_update_mode,
|
|
380
|
-
installed_python,
|
|
381
229
|
result_path,
|
|
382
|
-
jobs,
|
|
383
230
|
):
|
|
384
|
-
# Many details and cases due to package method being handled here.
|
|
385
|
-
# pylint: disable=too-many-branches,too-many-locals
|
|
386
|
-
|
|
387
|
-
# Not good for dry run, but tough life.
|
|
388
|
-
makePath(result_path)
|
|
389
|
-
|
|
390
231
|
# Update the pipenv file in any case, ought to be stable but we follow
|
|
391
232
|
# global changes this way.
|
|
392
233
|
preferred_package_type = installed_python.getPreferredPackageType()
|
|
393
|
-
if preferred_package_type == "pip":
|
|
394
|
-
changed_pipenv_file, pipenv_filename = _updatePipenvFile(
|
|
395
|
-
installed_python=installed_python,
|
|
396
|
-
case_data=case_data,
|
|
397
|
-
dry_run=dry_run,
|
|
398
|
-
result_path=result_path,
|
|
399
|
-
)
|
|
400
234
|
|
|
401
|
-
|
|
235
|
+
# Not good for actual dry run, but tough life.
|
|
236
|
+
makePath(result_path)
|
|
237
|
+
|
|
238
|
+
with withDirectoryChange(result_path):
|
|
239
|
+
if preferred_package_type == "pip":
|
|
240
|
+
pipenv_filename = updatePipenvFile(
|
|
241
|
+
installed_python=installed_python,
|
|
242
|
+
case_data=case_data,
|
|
243
|
+
)
|
|
402
244
|
|
|
403
|
-
|
|
404
|
-
watch_logger.info("Would create pipenv file '%s'." % pipenv_filename_full)
|
|
405
|
-
return
|
|
245
|
+
pipenv_filename_full = os.path.join(case_dir, pipenv_filename)
|
|
406
246
|
|
|
407
|
-
with withDirectoryChange(result_path):
|
|
408
247
|
# Update or create lockfile of pipenv.
|
|
409
|
-
lock_filename =
|
|
248
|
+
lock_filename = updatePipenvLockFile(
|
|
249
|
+
logger=watch_logger,
|
|
410
250
|
installed_python=installed_python,
|
|
411
|
-
dry_run=dry_run,
|
|
412
251
|
pipenv_filename_full=pipenv_filename_full,
|
|
413
252
|
no_pipenv_update=no_pipenv_update,
|
|
414
253
|
)
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
result_path=result_path,
|
|
421
|
-
)
|
|
254
|
+
elif preferred_package_type == "pacman":
|
|
255
|
+
updatePacmanFile(
|
|
256
|
+
installed_python=installed_python,
|
|
257
|
+
case_data=case_data,
|
|
258
|
+
)
|
|
422
259
|
|
|
423
|
-
with withDirectoryChange(result_path):
|
|
424
260
|
# Update or create lockfile of pipenv.
|
|
425
|
-
lock_filename =
|
|
426
|
-
|
|
427
|
-
|
|
261
|
+
lock_filename = updatePacmanLockFile(logger=watch_logger)
|
|
262
|
+
elif preferred_package_type == "conda":
|
|
263
|
+
updateCondaEnvironmentFile(
|
|
264
|
+
installed_python=installed_python,
|
|
265
|
+
case_data=case_data,
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
# Update or create lockfile of pipenv.
|
|
269
|
+
lock_filename = updateCondaEnvironmentLockFile(
|
|
270
|
+
logger=watch_logger,
|
|
271
|
+
installed_python=installed_python,
|
|
272
|
+
case_data=case_data,
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
lock_filename = os.path.abspath(lock_filename)
|
|
276
|
+
|
|
277
|
+
return lock_filename
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def _updateCase(
|
|
281
|
+
case_dir,
|
|
282
|
+
case_data,
|
|
283
|
+
no_pipenv_update,
|
|
284
|
+
nuitka_update_mode,
|
|
285
|
+
installed_python,
|
|
286
|
+
result_path,
|
|
287
|
+
jobs,
|
|
288
|
+
):
|
|
289
|
+
# Many details and cases due to package method being handled here.
|
|
290
|
+
# pylint: disable=too-many-branches
|
|
291
|
+
|
|
292
|
+
lock_filename = _updateCaseLock(
|
|
293
|
+
installed_python=installed_python,
|
|
294
|
+
case_data=case_data,
|
|
295
|
+
case_dir=case_dir,
|
|
296
|
+
no_pipenv_update=no_pipenv_update,
|
|
297
|
+
result_path=result_path,
|
|
298
|
+
)
|
|
428
299
|
|
|
429
300
|
# Check if compilation is required.
|
|
430
301
|
with withDirectoryChange(result_path):
|
|
@@ -449,7 +320,7 @@ def _updateCase(
|
|
|
449
320
|
if existing_hash != old_report_root_hash:
|
|
450
321
|
watch_logger.info(
|
|
451
322
|
"Recompilation with identical Nuitka for '%s' due to changed pipfile."
|
|
452
|
-
%
|
|
323
|
+
% lock_filename
|
|
453
324
|
)
|
|
454
325
|
|
|
455
326
|
need_compile = True
|
|
@@ -459,7 +330,7 @@ def _updateCase(
|
|
|
459
330
|
else:
|
|
460
331
|
watch_logger.info(
|
|
461
332
|
"Skipping compilation with identical Nuitka for '%s'."
|
|
462
|
-
%
|
|
333
|
+
% lock_filename
|
|
463
334
|
)
|
|
464
335
|
|
|
465
336
|
need_compile = False
|
|
@@ -469,7 +340,7 @@ def _updateCase(
|
|
|
469
340
|
% (
|
|
470
341
|
old_nuitka_version,
|
|
471
342
|
nuitka_version,
|
|
472
|
-
|
|
343
|
+
lock_filename,
|
|
473
344
|
)
|
|
474
345
|
)
|
|
475
346
|
|
|
@@ -496,9 +367,7 @@ def _updateCase(
|
|
|
496
367
|
)
|
|
497
368
|
|
|
498
369
|
|
|
499
|
-
def updateCase(
|
|
500
|
-
case_dir, case_data, dry_run, no_pipenv_update, nuitka_update_mode, jobs
|
|
501
|
-
):
|
|
370
|
+
def updateCase(case_dir, case_data, no_pipenv_update, nuitka_update_mode, jobs):
|
|
502
371
|
case_name = case_data["case"]
|
|
503
372
|
|
|
504
373
|
watch_logger.info("Consider '%s' ... " % case_name)
|
|
@@ -520,7 +389,6 @@ def updateCase(
|
|
|
520
389
|
|
|
521
390
|
selected_pythons = tuple(
|
|
522
391
|
selectPythons(
|
|
523
|
-
# TODO: Enable Anaconda support through options/detection.
|
|
524
392
|
anaconda="Anaconda" in os_name,
|
|
525
393
|
msys2_mingw64="MSYS2" in os_name,
|
|
526
394
|
python_version_req=case_data.get("python_version_req"),
|
|
@@ -533,23 +401,24 @@ def updateCase(
|
|
|
533
401
|
|
|
534
402
|
# For all relevant Pythons applicable to this case.
|
|
535
403
|
for installed_python in selectPythons(
|
|
536
|
-
# TODO: Enable Anaconda support through options/detection.
|
|
537
404
|
anaconda="Anaconda" in os_name,
|
|
538
405
|
msys2_mingw64="MSYS2" in os_name,
|
|
539
406
|
python_version_req=case_data.get("python_version_req"),
|
|
540
407
|
):
|
|
541
408
|
watch_logger.info("Consider with Python %s." % installed_python)
|
|
542
409
|
|
|
543
|
-
result_path =
|
|
544
|
-
"case_name"
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
410
|
+
result_path = getNormalizedPath(
|
|
411
|
+
"result/%(case_name)s/%(python_version)s-%(os_name)s"
|
|
412
|
+
% {
|
|
413
|
+
"case_name": case_name,
|
|
414
|
+
"os_name": os_name,
|
|
415
|
+
"python_version": installed_python.getPythonVersion(),
|
|
416
|
+
}
|
|
417
|
+
)
|
|
548
418
|
|
|
549
419
|
_updateCase(
|
|
550
420
|
case_dir=case_dir,
|
|
551
421
|
case_data=case_data,
|
|
552
|
-
dry_run=dry_run,
|
|
553
422
|
no_pipenv_update=no_pipenv_update,
|
|
554
423
|
nuitka_update_mode=nuitka_update_mode,
|
|
555
424
|
installed_python=installed_python,
|
|
@@ -558,12 +427,11 @@ def updateCase(
|
|
|
558
427
|
)
|
|
559
428
|
|
|
560
429
|
|
|
561
|
-
def updateCases(case_dir,
|
|
430
|
+
def updateCases(case_dir, no_pipenv_update, nuitka_update_mode, jobs):
|
|
562
431
|
for case_data in parseYaml(getFileContents("case.yml", mode="rb")):
|
|
563
432
|
updateCase(
|
|
564
433
|
case_dir=case_dir,
|
|
565
434
|
case_data=case_data,
|
|
566
|
-
dry_run=dry_run,
|
|
567
435
|
no_pipenv_update=no_pipenv_update,
|
|
568
436
|
nuitka_update_mode=nuitka_update_mode,
|
|
569
437
|
jobs=jobs,
|
|
@@ -611,15 +479,6 @@ Nuitka binary to compile with. Defaults to one near the nuitka-watch usage.""",
|
|
|
611
479
|
Do not update the pipenv environment. Best to see only effect of Nuitka update. Default %default.""",
|
|
612
480
|
)
|
|
613
481
|
|
|
614
|
-
parser.add_option(
|
|
615
|
-
"--dry-run",
|
|
616
|
-
action="store_false",
|
|
617
|
-
dest="dry_run",
|
|
618
|
-
default=False,
|
|
619
|
-
help="""\
|
|
620
|
-
Do not change anything, just report what would be done. Not yet perfectly true. Default %default.""",
|
|
621
|
-
)
|
|
622
|
-
|
|
623
482
|
parser.add_option(
|
|
624
483
|
"--nuitka-update-mode",
|
|
625
484
|
action="store",
|
|
@@ -666,7 +525,7 @@ to reserve cores.""",
|
|
|
666
525
|
getTestExecutionPythonVersions()
|
|
667
526
|
):
|
|
668
527
|
installed_pythons[python_version] = findPythons(
|
|
669
|
-
python_version, module_name="pipenv"
|
|
528
|
+
python_version, module_name=None if isAnacondaPython() else "pipenv"
|
|
670
529
|
)
|
|
671
530
|
|
|
672
531
|
nuitka_binary = os.path.abspath(os.path.expanduser(options.nuitka_binary))
|
|
@@ -697,7 +556,6 @@ to reserve cores.""",
|
|
|
697
556
|
with withDirectoryChange(os.path.dirname(case_filename)):
|
|
698
557
|
updateCases(
|
|
699
558
|
case_dir=os.path.dirname(case_filename),
|
|
700
|
-
dry_run=options.dry_run,
|
|
701
559
|
no_pipenv_update=options.no_pipenv_update,
|
|
702
560
|
nuitka_update_mode=options.nuitka_update_mode,
|
|
703
561
|
jobs=options.jobs,
|
nuitka/tree/Building.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
|
""" Build the internal node tree from source code.
|
|
@@ -138,6 +138,7 @@ from nuitka.utils.ModuleNames import ModuleName
|
|
|
138
138
|
from nuitka.utils.Utils import withNoSyntaxWarning
|
|
139
139
|
|
|
140
140
|
from . import SyntaxErrors
|
|
141
|
+
from .FutureSpecState import getFutureSpec, popFutureSpec, pushFutureSpec
|
|
141
142
|
from .ReformulationAssertStatements import buildAssertNode
|
|
142
143
|
from .ReformulationAssignmentStatements import (
|
|
143
144
|
buildAnnAssignNode,
|
|
@@ -172,9 +173,6 @@ from .ReformulationImportStatements import (
|
|
|
172
173
|
buildImportFromNode,
|
|
173
174
|
buildImportModulesNode,
|
|
174
175
|
checkFutureImportsOnlyAtStart,
|
|
175
|
-
getFutureSpec,
|
|
176
|
-
popFutureSpec,
|
|
177
|
-
pushFutureSpec,
|
|
178
176
|
)
|
|
179
177
|
from .ReformulationLambdaExpressions import buildLambdaNode
|
|
180
178
|
from .ReformulationMatchStatements import buildMatchNode
|
|
@@ -1018,14 +1016,14 @@ def _loadUncompiledModuleFromCache(
|
|
|
1018
1016
|
|
|
1019
1017
|
used_modules = OrderedSet()
|
|
1020
1018
|
|
|
1021
|
-
used_modules = getCachedImportedModuleUsageAttempts(
|
|
1019
|
+
used_modules, timing_info = getCachedImportedModuleUsageAttempts(
|
|
1022
1020
|
module_name=module_name, source_code=source_code, source_ref=source_ref
|
|
1023
1021
|
)
|
|
1024
1022
|
|
|
1025
|
-
# assert not is_package, (module_name, used_modules, result, result.getCompileTimeFilename())
|
|
1026
|
-
|
|
1027
1023
|
result.setUsedModules(used_modules)
|
|
1028
1024
|
|
|
1025
|
+
ModuleRegistry.setModuleOptimizationTimingInfos(module_name, timing_info)
|
|
1026
|
+
|
|
1029
1027
|
return result
|
|
1030
1028
|
|
|
1031
1029
|
|
nuitka/tree/Extractions.py
CHANGED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" State of a stack of future specs during parsing. """
|
|
5
|
+
|
|
6
|
+
from nuitka.nodes.FutureSpecs import FutureSpec
|
|
7
|
+
from nuitka.plugins.Plugins import Plugins
|
|
8
|
+
from nuitka.PythonVersions import python_version
|
|
9
|
+
|
|
10
|
+
from .SyntaxErrors import raiseSyntaxError
|
|
11
|
+
|
|
12
|
+
_future_specs = []
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def pushFutureSpec(module_name):
|
|
16
|
+
_future_specs.append(
|
|
17
|
+
FutureSpec(use_annotations=Plugins.decideAnnotations(module_name))
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def getFutureSpec():
|
|
22
|
+
return _future_specs[-1]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def popFutureSpec():
|
|
26
|
+
del _future_specs[-1]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def enableFutureFeature(node, object_name, source_ref):
|
|
30
|
+
future_spec = _future_specs[-1]
|
|
31
|
+
|
|
32
|
+
if object_name == "unicode_literals":
|
|
33
|
+
future_spec.enableUnicodeLiterals()
|
|
34
|
+
elif object_name == "absolute_import":
|
|
35
|
+
future_spec.enableAbsoluteImport()
|
|
36
|
+
elif object_name == "division":
|
|
37
|
+
future_spec.enableFutureDivision()
|
|
38
|
+
elif object_name == "print_function":
|
|
39
|
+
future_spec.enableFuturePrint()
|
|
40
|
+
elif object_name == "barry_as_FLUFL" and python_version >= 0x300:
|
|
41
|
+
future_spec.enableBarry()
|
|
42
|
+
elif object_name == "generator_stop":
|
|
43
|
+
future_spec.enableGeneratorStop()
|
|
44
|
+
elif object_name == "braces":
|
|
45
|
+
raiseSyntaxError("not a chance", source_ref.atColumnNumber(node.col_offset))
|
|
46
|
+
elif object_name in ("nested_scopes", "generators", "with_statement"):
|
|
47
|
+
# These are enabled in all cases already.
|
|
48
|
+
pass
|
|
49
|
+
elif object_name == "annotations" and python_version >= 0x370:
|
|
50
|
+
future_spec.enableFutureAnnotations()
|
|
51
|
+
else:
|
|
52
|
+
raiseSyntaxError(
|
|
53
|
+
"future feature %s is not defined" % object_name,
|
|
54
|
+
source_ref.atColumnNumber(node.col_offset),
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
59
|
+
# integrates with CPython, but also works on its own.
|
|
60
|
+
#
|
|
61
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
62
|
+
# you may not use this file except in compliance with the License.
|
|
63
|
+
# You may obtain a copy of the License at
|
|
64
|
+
#
|
|
65
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
66
|
+
#
|
|
67
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
68
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
69
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
70
|
+
# See the License for the specific language governing permissions and
|
|
71
|
+
# limitations under the License.
|