Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +91 -53
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +593 -190
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -18
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +24 -20
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +68 -19
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +19 -21
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +21 -19
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +115 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
nuitka/plugins/Plugins.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
"""
|
|
19
5
|
|
|
20
6
|
Plugins: Welcome to Nuitka! This is your shortest way to become part of it.
|
|
@@ -39,6 +25,7 @@ from nuitka.__past__ import basestring, iter_modules
|
|
|
39
25
|
from nuitka.build.DataComposerInterface import deriveModuleConstantsBlobName
|
|
40
26
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
41
27
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
28
|
+
from nuitka.Errors import NuitkaSyntaxError
|
|
42
29
|
from nuitka.freezer.IncludedDataFiles import IncludedDataFile
|
|
43
30
|
from nuitka.freezer.IncludedEntryPoints import IncludedEntryPoint
|
|
44
31
|
from nuitka.ModuleRegistry import addUsedModule
|
|
@@ -119,10 +106,8 @@ def _addActivePlugin(plugin_class, args, force=False):
|
|
|
119
106
|
else:
|
|
120
107
|
plugin_args = {}
|
|
121
108
|
|
|
122
|
-
|
|
109
|
+
with withPluginProblemReporting(plugin_class, "plugin initialization", ()):
|
|
123
110
|
plugin_instance = plugin_class(**plugin_args)
|
|
124
|
-
except TypeError as e:
|
|
125
|
-
plugin_class.sysexit("Problem initializing plugin: %s" % e)
|
|
126
111
|
|
|
127
112
|
assert isinstance(plugin_instance, NuitkaPluginBase), plugin_instance
|
|
128
113
|
|
|
@@ -440,7 +425,7 @@ class Plugins(object):
|
|
|
440
425
|
except Exception:
|
|
441
426
|
plugin.warning(
|
|
442
427
|
"Problem locating '%s' for implicit imports of '%s'."
|
|
443
|
-
% (module.getFullName()
|
|
428
|
+
% (full_name, module.getFullName())
|
|
444
429
|
)
|
|
445
430
|
raise
|
|
446
431
|
|
|
@@ -465,8 +450,8 @@ class Plugins(object):
|
|
|
465
450
|
|
|
466
451
|
@staticmethod
|
|
467
452
|
def _reportImplicitImports(plugin, module, implicit_imports):
|
|
468
|
-
from nuitka.importing import Recursion
|
|
469
453
|
from nuitka.importing.Importing import getModuleNameAndKindFromFilename
|
|
454
|
+
from nuitka.importing.Recursion import decideRecursion, recurseTo
|
|
470
455
|
|
|
471
456
|
for full_name, module_filename in implicit_imports:
|
|
472
457
|
# TODO: The module_kind should be forwarded from previous in the class using locateModule code.
|
|
@@ -475,7 +460,7 @@ class Plugins(object):
|
|
|
475
460
|
)
|
|
476
461
|
|
|
477
462
|
# This will get back to all other plugins allowing them to inhibit it though.
|
|
478
|
-
decision, decision_reason =
|
|
463
|
+
decision, decision_reason = decideRecursion(
|
|
479
464
|
using_module_name=module.getFullName(),
|
|
480
465
|
module_filename=module_filename,
|
|
481
466
|
module_name=full_name,
|
|
@@ -483,7 +468,7 @@ class Plugins(object):
|
|
|
483
468
|
)
|
|
484
469
|
|
|
485
470
|
if decision:
|
|
486
|
-
imported_module =
|
|
471
|
+
imported_module = recurseTo(
|
|
487
472
|
module_name=full_name,
|
|
488
473
|
module_filename=module_filename,
|
|
489
474
|
module_kind=module_kind,
|
|
@@ -827,7 +812,6 @@ class Plugins(object):
|
|
|
827
812
|
def onModuleDiscovered(cls, module):
|
|
828
813
|
# We offer plugins many ways to provide extra stuff
|
|
829
814
|
# pylint: disable=too-many-locals,too-many-statements
|
|
830
|
-
|
|
831
815
|
full_name = module.getFullName()
|
|
832
816
|
|
|
833
817
|
def _untangleLoadDescription(description):
|
|
@@ -840,8 +824,9 @@ class Plugins(object):
|
|
|
840
824
|
|
|
841
825
|
for desc in description:
|
|
842
826
|
if desc is None:
|
|
843
|
-
|
|
844
|
-
|
|
827
|
+
continue
|
|
828
|
+
|
|
829
|
+
if len(desc) == 2:
|
|
845
830
|
code, reason = desc
|
|
846
831
|
flags = ()
|
|
847
832
|
else:
|
|
@@ -870,6 +855,12 @@ class Plugins(object):
|
|
|
870
855
|
post_module_load_descriptions = []
|
|
871
856
|
fake_module_descriptions = []
|
|
872
857
|
|
|
858
|
+
if module.isMainModule():
|
|
859
|
+
plugin = None
|
|
860
|
+
pre_module_load_descriptions.extend(
|
|
861
|
+
_untangleLoadDescription(_getMainModulePreloadCodes())
|
|
862
|
+
)
|
|
863
|
+
|
|
873
864
|
for plugin in getActivePlugins():
|
|
874
865
|
plugin.onModuleDiscovered(module)
|
|
875
866
|
|
|
@@ -972,7 +963,7 @@ class Plugins(object):
|
|
|
972
963
|
fake_modules[full_name].append((fake_module, plugin, reason))
|
|
973
964
|
|
|
974
965
|
@staticmethod
|
|
975
|
-
def onModuleSourceCode(module_name, source_code):
|
|
966
|
+
def onModuleSourceCode(module_name, source_filename, source_code):
|
|
976
967
|
assert type(module_name) is ModuleName
|
|
977
968
|
assert type(source_code) is str
|
|
978
969
|
|
|
@@ -980,7 +971,11 @@ class Plugins(object):
|
|
|
980
971
|
|
|
981
972
|
for plugin in getActivePlugins():
|
|
982
973
|
with withPluginModuleNameProblemReporting(plugin, module_name):
|
|
983
|
-
new_source_code = plugin.onModuleSourceCode(
|
|
974
|
+
new_source_code = plugin.onModuleSourceCode(
|
|
975
|
+
module_name=module_name,
|
|
976
|
+
source_filename=source_filename,
|
|
977
|
+
source_code=source_code,
|
|
978
|
+
)
|
|
984
979
|
if new_source_code is not None and new_source_code != source_code:
|
|
985
980
|
source_code = new_source_code
|
|
986
981
|
contributing_plugins.add(plugin)
|
|
@@ -1039,6 +1034,52 @@ class Plugins(object):
|
|
|
1039
1034
|
|
|
1040
1035
|
return result, deciding_plugins
|
|
1041
1036
|
|
|
1037
|
+
module_usage_looked_ahead_cache = set()
|
|
1038
|
+
|
|
1039
|
+
@classmethod
|
|
1040
|
+
def onModuleUsageLookAhead(cls, module_name, module_filename, module_kind):
|
|
1041
|
+
if module_name in cls.module_usage_looked_ahead_cache:
|
|
1042
|
+
return
|
|
1043
|
+
|
|
1044
|
+
cls.module_usage_looked_ahead_cache.add(module_name)
|
|
1045
|
+
|
|
1046
|
+
# Lazy load the source code if a plugin wants it, the pre_load caches
|
|
1047
|
+
# the result for later usage.
|
|
1048
|
+
def getModuleSourceCode():
|
|
1049
|
+
if module_kind != "py":
|
|
1050
|
+
return None
|
|
1051
|
+
|
|
1052
|
+
from nuitka.tree.SourceHandling import readSourceCodeFromFilename
|
|
1053
|
+
|
|
1054
|
+
if os.path.isdir(module_filename):
|
|
1055
|
+
source_filename = os.path.join(module_filename, "__init__.py")
|
|
1056
|
+
else:
|
|
1057
|
+
source_filename = module_filename
|
|
1058
|
+
|
|
1059
|
+
if not os.path.isfile(source_filename):
|
|
1060
|
+
return None
|
|
1061
|
+
|
|
1062
|
+
try:
|
|
1063
|
+
return readSourceCodeFromFilename(
|
|
1064
|
+
module_name=module_name,
|
|
1065
|
+
source_filename=source_filename,
|
|
1066
|
+
pre_load=True,
|
|
1067
|
+
)
|
|
1068
|
+
except SyntaxError as e:
|
|
1069
|
+
# Look ahead just not possible.
|
|
1070
|
+
raise NuitkaSyntaxError(e)
|
|
1071
|
+
|
|
1072
|
+
try:
|
|
1073
|
+
for plugin in getActivePlugins():
|
|
1074
|
+
plugin.onModuleUsageLookAhead(
|
|
1075
|
+
module_name=module_name,
|
|
1076
|
+
module_filename=module_filename,
|
|
1077
|
+
module_kind=module_kind,
|
|
1078
|
+
get_module_source=getModuleSourceCode,
|
|
1079
|
+
)
|
|
1080
|
+
except NuitkaSyntaxError:
|
|
1081
|
+
pass
|
|
1082
|
+
|
|
1042
1083
|
@staticmethod
|
|
1043
1084
|
def onModuleRecursion(
|
|
1044
1085
|
module_name, module_filename, module_kind, using_module_name, source_ref, reason
|
|
@@ -1217,7 +1258,7 @@ class Plugins(object):
|
|
|
1217
1258
|
# We order per plugin, but from the plugins, lets just take a dict
|
|
1218
1259
|
# and achieve determinism by ordering the files by name.
|
|
1219
1260
|
for key, value in sorted(value.items()):
|
|
1220
|
-
if (for_onefile and
|
|
1261
|
+
if (for_onefile and "onefile_" not in key) or (
|
|
1221
1262
|
not for_onefile and "onefile_" in key
|
|
1222
1263
|
):
|
|
1223
1264
|
continue
|
|
@@ -1303,9 +1344,9 @@ class Plugins(object):
|
|
|
1303
1344
|
|
|
1304
1345
|
@classmethod
|
|
1305
1346
|
def encodeDataComposerName(cls, name):
|
|
1347
|
+
# Encoding needs to match generated source code output.
|
|
1306
1348
|
if str is not bytes:
|
|
1307
|
-
|
|
1308
|
-
name = name.encode("latin1")
|
|
1349
|
+
name = name.encode("utf8")
|
|
1309
1350
|
|
|
1310
1351
|
for plugin in getActivePlugins():
|
|
1311
1352
|
r = plugin.encodeDataComposerName(name)
|
|
@@ -1329,6 +1370,19 @@ class Plugins(object):
|
|
|
1329
1370
|
body=body,
|
|
1330
1371
|
)
|
|
1331
1372
|
|
|
1373
|
+
@classmethod
|
|
1374
|
+
def onClassBodyParsing(cls, provider, class_name, node):
|
|
1375
|
+
module_name = provider.getParentModule().getFullName()
|
|
1376
|
+
|
|
1377
|
+
for plugin in getActivePlugins():
|
|
1378
|
+
# TODO: Could record what classes got modified by what plugin
|
|
1379
|
+
# and in what way checking the return value
|
|
1380
|
+
plugin.onClassBodyParsing(
|
|
1381
|
+
module_name=module_name,
|
|
1382
|
+
class_name=class_name,
|
|
1383
|
+
node=node,
|
|
1384
|
+
)
|
|
1385
|
+
|
|
1332
1386
|
@classmethod
|
|
1333
1387
|
def getCacheContributionValues(cls, module_name):
|
|
1334
1388
|
for plugin in getActivePlugins():
|
|
@@ -1336,42 +1390,133 @@ class Plugins(object):
|
|
|
1336
1390
|
yield value
|
|
1337
1391
|
|
|
1338
1392
|
@classmethod
|
|
1339
|
-
def
|
|
1340
|
-
|
|
1341
|
-
|
|
1393
|
+
def getExtraConstantDefaultPopulation(cls):
|
|
1394
|
+
for plugin in getActivePlugins():
|
|
1395
|
+
for value in plugin.getExtraConstantDefaultPopulation():
|
|
1396
|
+
yield value
|
|
1342
1397
|
|
|
1343
|
-
|
|
1398
|
+
@classmethod
|
|
1399
|
+
def _decideWithoutDisagreement(
|
|
1400
|
+
cls,
|
|
1401
|
+
method_name,
|
|
1402
|
+
call_per_plugin,
|
|
1403
|
+
legal_values,
|
|
1404
|
+
abstain_values,
|
|
1405
|
+
get_default_value,
|
|
1406
|
+
):
|
|
1407
|
+
result = abstain_values[0]
|
|
1344
1408
|
plugin_name = None
|
|
1345
1409
|
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
value = plugin.decideAllowOutsideDependencies(module_name)
|
|
1410
|
+
for plugin in getActivePlugins():
|
|
1411
|
+
value = call_per_plugin(plugin)
|
|
1349
1412
|
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
)
|
|
1413
|
+
if value not in legal_values:
|
|
1414
|
+
plugin.sysexit(
|
|
1415
|
+
"Error, can only return '%s' from '%s' not %r"
|
|
1416
|
+
% (legal_values, method_name, value)
|
|
1417
|
+
)
|
|
1356
1418
|
|
|
1357
|
-
|
|
1419
|
+
if value in abstain_values:
|
|
1420
|
+
continue
|
|
1421
|
+
|
|
1422
|
+
if value != result:
|
|
1423
|
+
if result in abstain_values:
|
|
1424
|
+
result = value
|
|
1358
1425
|
plugin_name = plugin.plugin_name
|
|
1426
|
+
else:
|
|
1427
|
+
plugin.sysexit(
|
|
1428
|
+
"Error, conflicting value '%s' with plug-in '%s' value '%s'."
|
|
1429
|
+
% (value, plugin_name, result)
|
|
1430
|
+
)
|
|
1431
|
+
if result in abstain_values:
|
|
1432
|
+
result = get_default_value()
|
|
1359
1433
|
|
|
1360
|
-
|
|
1361
|
-
if result is False:
|
|
1362
|
-
plugin.sysexit(
|
|
1363
|
-
"Error, conflicting allow/disallow outside dependencies of plug-in '%s'."
|
|
1364
|
-
% plugin_name
|
|
1365
|
-
)
|
|
1434
|
+
return result
|
|
1366
1435
|
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1436
|
+
decide_annotations_cache = {}
|
|
1437
|
+
|
|
1438
|
+
@classmethod
|
|
1439
|
+
def decideAnnotations(cls, module_name):
|
|
1440
|
+
# For Python2 it's not a thing.
|
|
1441
|
+
if str is bytes:
|
|
1442
|
+
return False
|
|
1443
|
+
|
|
1444
|
+
if module_name not in cls.decide_annotations_cache:
|
|
1445
|
+
cls.decide_annotations_cache[module_name] = cls._decideWithoutDisagreement(
|
|
1446
|
+
call_per_plugin=lambda plugin: plugin.decideAnnotations(module_name),
|
|
1447
|
+
legal_values=(None, True, False),
|
|
1448
|
+
abstain_values=(None,),
|
|
1449
|
+
method_name="decideAnnotations",
|
|
1450
|
+
get_default_value=lambda: not Options.hasPythonFlagNoAnnotations(),
|
|
1451
|
+
)
|
|
1452
|
+
|
|
1453
|
+
return cls.decide_annotations_cache[module_name]
|
|
1454
|
+
|
|
1455
|
+
decide_doc_strings_cache = {}
|
|
1456
|
+
|
|
1457
|
+
@classmethod
|
|
1458
|
+
def decideDocStrings(cls, module_name):
|
|
1459
|
+
if module_name not in cls.decide_doc_strings_cache:
|
|
1460
|
+
cls.decide_doc_strings_cache[module_name] = cls._decideWithoutDisagreement(
|
|
1461
|
+
call_per_plugin=lambda plugin: plugin.decideDocStrings(module_name),
|
|
1462
|
+
legal_values=(None, True, False),
|
|
1463
|
+
abstain_values=(None,),
|
|
1464
|
+
method_name="decideDocStrings",
|
|
1465
|
+
get_default_value=lambda: not Options.hasPythonFlagNoDocStrings(),
|
|
1466
|
+
)
|
|
1467
|
+
|
|
1468
|
+
return cls.decide_doc_strings_cache[module_name]
|
|
1469
|
+
|
|
1470
|
+
decide_assertions_cache = {}
|
|
1471
|
+
|
|
1472
|
+
@classmethod
|
|
1473
|
+
def decideAssertions(cls, module_name):
|
|
1474
|
+
if module_name not in cls.decide_assertions_cache:
|
|
1475
|
+
cls.decide_assertions_cache[module_name] = cls._decideWithoutDisagreement(
|
|
1476
|
+
call_per_plugin=lambda plugin: plugin.decideAssertions(module_name),
|
|
1477
|
+
legal_values=(None, True, False),
|
|
1478
|
+
abstain_values=(None,),
|
|
1479
|
+
method_name="decideAssertions",
|
|
1480
|
+
get_default_value=lambda: not Options.hasPythonFlagNoAsserts(),
|
|
1481
|
+
)
|
|
1482
|
+
|
|
1483
|
+
return cls.decide_assertions_cache[module_name]
|
|
1484
|
+
|
|
1485
|
+
@classmethod
|
|
1486
|
+
def decideAllowOutsideDependencies(cls, module_name):
|
|
1487
|
+
result = None
|
|
1488
|
+
plugin_name = None
|
|
1489
|
+
|
|
1490
|
+
assert module_name is not None
|
|
1491
|
+
|
|
1492
|
+
for plugin in getActivePlugins():
|
|
1493
|
+
value = plugin.decideAllowOutsideDependencies(module_name)
|
|
1494
|
+
|
|
1495
|
+
if value is True:
|
|
1496
|
+
if result is False:
|
|
1370
1497
|
plugin.sysexit(
|
|
1371
|
-
"Error,
|
|
1372
|
-
%
|
|
1498
|
+
"Error, conflicting allow/disallow outside dependencies of plug-in '%s'."
|
|
1499
|
+
% plugin_name
|
|
1373
1500
|
)
|
|
1374
1501
|
|
|
1502
|
+
result = True
|
|
1503
|
+
plugin_name = plugin.plugin_name
|
|
1504
|
+
|
|
1505
|
+
elif value is False:
|
|
1506
|
+
if result is False:
|
|
1507
|
+
plugin.sysexit(
|
|
1508
|
+
"Error, conflicting allow/disallow outside dependencies of plug-in '%s'."
|
|
1509
|
+
% plugin_name
|
|
1510
|
+
)
|
|
1511
|
+
|
|
1512
|
+
result = False
|
|
1513
|
+
plugin_name = plugin.plugin_name
|
|
1514
|
+
elif value is not None:
|
|
1515
|
+
plugin.sysexit(
|
|
1516
|
+
"Error, can only return True, False, None from 'decideAllowOutsideDependencies' not %r"
|
|
1517
|
+
% value
|
|
1518
|
+
)
|
|
1519
|
+
|
|
1375
1520
|
return result
|
|
1376
1521
|
|
|
1377
1522
|
@classmethod
|
|
@@ -1381,7 +1526,7 @@ class Plugins(object):
|
|
|
1381
1526
|
# Not a DLL filename, then it cannot be true, but it's kind of strange
|
|
1382
1527
|
# to get asked.
|
|
1383
1528
|
if dll_basename is None:
|
|
1384
|
-
return
|
|
1529
|
+
return None, None
|
|
1385
1530
|
|
|
1386
1531
|
result = None
|
|
1387
1532
|
plugin_name = None
|
|
@@ -1735,3 +1880,41 @@ def replaceTriggerModule(old, new):
|
|
|
1735
1880
|
def isTriggerModule(module):
|
|
1736
1881
|
"""Decide of a module is a trigger module."""
|
|
1737
1882
|
return module in pre_modules.values() or module in post_modules.values()
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
# TODO: Make this a dedicated thing generally.
|
|
1886
|
+
def _getMainModulePreloadCodes():
|
|
1887
|
+
forced_runtime_env_variable_values = tuple(
|
|
1888
|
+
Options.getForcedRuntimeEnvironmentVariableValues()
|
|
1889
|
+
)
|
|
1890
|
+
if not forced_runtime_env_variable_values:
|
|
1891
|
+
return
|
|
1892
|
+
|
|
1893
|
+
result = ["import os"]
|
|
1894
|
+
|
|
1895
|
+
for (
|
|
1896
|
+
forced_runtime_env_variable_name,
|
|
1897
|
+
forced_runtime_env_variable_value,
|
|
1898
|
+
) in forced_runtime_env_variable_values:
|
|
1899
|
+
result.append(
|
|
1900
|
+
"os.environ['%s'] = '%s'"
|
|
1901
|
+
% (forced_runtime_env_variable_name, forced_runtime_env_variable_value)
|
|
1902
|
+
)
|
|
1903
|
+
|
|
1904
|
+
yield ("\n".join(result), "forcing environment variable(s)")
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1908
|
+
# integrates with CPython, but also works on its own.
|
|
1909
|
+
#
|
|
1910
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1911
|
+
# you may not use this file except in compliance with the License.
|
|
1912
|
+
# You may obtain a copy of the License at
|
|
1913
|
+
#
|
|
1914
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1915
|
+
#
|
|
1916
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1917
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1918
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1919
|
+
# See the License for the specific language governing permissions and
|
|
1920
|
+
# limitations under the License.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Plugins: Welcome to Nuitka! This is your shortest way to become part of it.
|
|
6
|
+
|
|
7
|
+
This is to provide the base class for all Yaml plugins. These deal with the
|
|
8
|
+
configuration files of Nuitka.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from nuitka.utils.Yaml import getYamlPackageConfiguration
|
|
12
|
+
|
|
13
|
+
from .PluginBase import NuitkaPluginBase
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class NuitkaYamlPluginBase(NuitkaPluginBase):
|
|
17
|
+
"""Nuitka base class for all plugins that use yaml config"""
|
|
18
|
+
|
|
19
|
+
def __init__(self):
|
|
20
|
+
self.config = getYamlPackageConfiguration()
|
|
21
|
+
|
|
22
|
+
def getYamlConfigItem(
|
|
23
|
+
self, module_name, section, item_name, decide_relevant, default, recursive
|
|
24
|
+
):
|
|
25
|
+
while True:
|
|
26
|
+
module_configs = self.config.get(module_name, section=section)
|
|
27
|
+
|
|
28
|
+
if module_configs is not None:
|
|
29
|
+
for module_config in module_configs:
|
|
30
|
+
config_item = module_config.get(item_name, default)
|
|
31
|
+
|
|
32
|
+
# Avoid condition, if the item is not relevant
|
|
33
|
+
if decide_relevant is not None and not decide_relevant(config_item):
|
|
34
|
+
continue
|
|
35
|
+
|
|
36
|
+
if not self.evaluateCondition(
|
|
37
|
+
full_name=module_name,
|
|
38
|
+
condition=module_config.get("when", "True"),
|
|
39
|
+
):
|
|
40
|
+
continue
|
|
41
|
+
|
|
42
|
+
if recursive:
|
|
43
|
+
yield module_name, config_item
|
|
44
|
+
else:
|
|
45
|
+
yield config_item
|
|
46
|
+
|
|
47
|
+
if not recursive:
|
|
48
|
+
break
|
|
49
|
+
|
|
50
|
+
module_name = module_name.getPackageName()
|
|
51
|
+
if not module_name:
|
|
52
|
+
break
|
|
53
|
+
|
|
54
|
+
def getYamlConfigItemItems(
|
|
55
|
+
self, module_name, section, item_name, decide_relevant, recursive
|
|
56
|
+
):
|
|
57
|
+
def dict_decide_relevant(item_dict):
|
|
58
|
+
if not item_dict:
|
|
59
|
+
return False
|
|
60
|
+
|
|
61
|
+
if decide_relevant is None:
|
|
62
|
+
return True
|
|
63
|
+
|
|
64
|
+
for key, value in item_dict.items():
|
|
65
|
+
if decide_relevant(key, value):
|
|
66
|
+
return True
|
|
67
|
+
|
|
68
|
+
return False
|
|
69
|
+
|
|
70
|
+
for item_config in self.getYamlConfigItem(
|
|
71
|
+
module_name=module_name,
|
|
72
|
+
section=section,
|
|
73
|
+
item_name=item_name,
|
|
74
|
+
decide_relevant=dict_decide_relevant,
|
|
75
|
+
default={},
|
|
76
|
+
recursive=recursive,
|
|
77
|
+
):
|
|
78
|
+
if recursive:
|
|
79
|
+
for key, value in item_config[1].items():
|
|
80
|
+
if decide_relevant(key, value):
|
|
81
|
+
yield item_config[0], key, value
|
|
82
|
+
else:
|
|
83
|
+
for key, value in item_config.items():
|
|
84
|
+
if decide_relevant(key, value):
|
|
85
|
+
yield key, value
|
|
86
|
+
|
|
87
|
+
def getYamlConfigItemSet(
|
|
88
|
+
self, module_name, section, item_name, decide_relevant, recursive
|
|
89
|
+
):
|
|
90
|
+
for item_config in self.getYamlConfigItem(
|
|
91
|
+
module_name=module_name,
|
|
92
|
+
section=section,
|
|
93
|
+
item_name=item_name,
|
|
94
|
+
decide_relevant=None,
|
|
95
|
+
default=(),
|
|
96
|
+
recursive=recursive,
|
|
97
|
+
):
|
|
98
|
+
if recursive:
|
|
99
|
+
for value in item_config[1]:
|
|
100
|
+
if decide_relevant is None or decide_relevant(value):
|
|
101
|
+
yield item_config[0], value
|
|
102
|
+
else:
|
|
103
|
+
for value in item_config:
|
|
104
|
+
if decide_relevant is None or decide_relevant(value):
|
|
105
|
+
yield value
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
109
|
+
# integrates with CPython, but also works on its own.
|
|
110
|
+
#
|
|
111
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
112
|
+
# you may not use this file except in compliance with the License.
|
|
113
|
+
# You may obtain a copy of the License at
|
|
114
|
+
#
|
|
115
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
116
|
+
#
|
|
117
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
118
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
119
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
120
|
+
# See the License for the specific language governing permissions and
|
|
121
|
+
# limitations under the License.
|
nuitka/plugins/__init__.py
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Dummy file to make this directory a package. """
|
|
5
|
+
|
|
3
6
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
7
|
# integrates with CPython, but also works on its own.
|
|
5
8
|
#
|
|
@@ -14,5 +17,3 @@
|
|
|
14
17
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
18
|
# See the License for the specific language governing permissions and
|
|
16
19
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" Dummy file to make this directory a package. """
|