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
|
@@ -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
|
""" Standard plug-in to avoid bloat at compile time.
|
|
19
5
|
|
|
20
6
|
Nuitka hard codes stupid monkey patching normally not needed here and avoids
|
|
@@ -23,23 +9,24 @@ that to be done and causing massive degradations.
|
|
|
23
9
|
"""
|
|
24
10
|
|
|
25
11
|
import ast
|
|
26
|
-
import os
|
|
27
12
|
import re
|
|
28
|
-
import sys
|
|
29
13
|
|
|
30
14
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
31
15
|
from nuitka.Errors import NuitkaForbiddenImportEncounter
|
|
32
16
|
from nuitka.ModuleRegistry import getModuleByName
|
|
33
|
-
from nuitka.
|
|
17
|
+
from nuitka.Options import isExperimental
|
|
18
|
+
from nuitka.plugins.YamlPluginBase import NuitkaYamlPluginBase
|
|
34
19
|
from nuitka.utils.ModuleNames import ModuleName
|
|
35
|
-
from nuitka.utils.Yaml import getYamlPackageConfiguration
|
|
36
20
|
|
|
37
21
|
# spell-checker: ignore dask,numba,statsmodels,matplotlib,sqlalchemy,ipykernel
|
|
38
22
|
|
|
39
23
|
_mode_choices = ("error", "warning", "nofollow", "allow")
|
|
40
24
|
|
|
41
25
|
|
|
42
|
-
class NuitkaPluginAntiBloat(
|
|
26
|
+
class NuitkaPluginAntiBloat(NuitkaYamlPluginBase):
|
|
27
|
+
# Lots of details, a bunch of state is cached and tracked across functions
|
|
28
|
+
# pylint: disable=too-many-instance-attributes
|
|
29
|
+
|
|
43
30
|
plugin_name = "anti-bloat"
|
|
44
31
|
plugin_desc = (
|
|
45
32
|
"Patch stupid imports out of widely used library modules source codes."
|
|
@@ -54,6 +41,7 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
54
41
|
noinclude_setuptools_mode,
|
|
55
42
|
noinclude_pytest_mode,
|
|
56
43
|
noinclude_unittest_mode,
|
|
44
|
+
noinclude_pydoc_mode,
|
|
57
45
|
noinclude_ipython_mode,
|
|
58
46
|
noinclude_dask_mode,
|
|
59
47
|
noinclude_numba_mode,
|
|
@@ -61,7 +49,10 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
61
49
|
custom_choices,
|
|
62
50
|
show_changes,
|
|
63
51
|
):
|
|
64
|
-
# Many details, due to many repetitive arguments,
|
|
52
|
+
# Many details, due to many repetitive arguments,
|
|
53
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
54
|
+
|
|
55
|
+
NuitkaYamlPluginBase.__init__(self)
|
|
65
56
|
|
|
66
57
|
self.show_changes = show_changes
|
|
67
58
|
|
|
@@ -72,6 +63,8 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
72
63
|
noinclude_pytest_mode = noinclude_default_mode
|
|
73
64
|
if noinclude_unittest_mode is None:
|
|
74
65
|
noinclude_unittest_mode = noinclude_default_mode
|
|
66
|
+
if noinclude_pydoc_mode is None:
|
|
67
|
+
noinclude_pydoc_mode = noinclude_default_mode
|
|
75
68
|
if noinclude_ipython_mode is None:
|
|
76
69
|
noinclude_ipython_mode = noinclude_default_mode
|
|
77
70
|
if noinclude_dask_mode is None:
|
|
@@ -79,8 +72,6 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
79
72
|
if noinclude_numba_mode is None:
|
|
80
73
|
noinclude_numba_mode = noinclude_default_mode
|
|
81
74
|
|
|
82
|
-
self.config = getYamlPackageConfiguration()
|
|
83
|
-
|
|
84
75
|
self.handled_modules = OrderedDict()
|
|
85
76
|
|
|
86
77
|
# These should be checked, to allow disabling anti-bloat contents.
|
|
@@ -92,6 +83,34 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
92
83
|
noinclude_setuptools_mode,
|
|
93
84
|
"setuptools",
|
|
94
85
|
)
|
|
86
|
+
self.handled_modules["triton"] = (
|
|
87
|
+
noinclude_setuptools_mode,
|
|
88
|
+
"setuptools",
|
|
89
|
+
)
|
|
90
|
+
self.handled_modules["Cython"] = (
|
|
91
|
+
noinclude_setuptools_mode,
|
|
92
|
+
"setuptools",
|
|
93
|
+
)
|
|
94
|
+
self.handled_modules["cython"] = (
|
|
95
|
+
noinclude_setuptools_mode,
|
|
96
|
+
"setuptools",
|
|
97
|
+
)
|
|
98
|
+
self.handled_modules["pyximport"] = (
|
|
99
|
+
noinclude_setuptools_mode,
|
|
100
|
+
"setuptools",
|
|
101
|
+
)
|
|
102
|
+
self.handled_modules["paddle.utils.cpp_extension"] = (
|
|
103
|
+
noinclude_setuptools_mode,
|
|
104
|
+
"setuptools",
|
|
105
|
+
)
|
|
106
|
+
self.handled_modules["torch.utils.cpp_extension"] = (
|
|
107
|
+
noinclude_setuptools_mode,
|
|
108
|
+
"setuptools",
|
|
109
|
+
)
|
|
110
|
+
self.handled_modules["numpy.distutils"] = (
|
|
111
|
+
noinclude_setuptools_mode,
|
|
112
|
+
"setuptools",
|
|
113
|
+
)
|
|
95
114
|
else:
|
|
96
115
|
self.control_tags["use_setuptools"] = True
|
|
97
116
|
|
|
@@ -109,6 +128,10 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
109
128
|
noinclude_pytest_mode,
|
|
110
129
|
"pytest",
|
|
111
130
|
)
|
|
131
|
+
self.handled_modules["distributed.utils_test"] = (
|
|
132
|
+
noinclude_pytest_mode,
|
|
133
|
+
"pytest",
|
|
134
|
+
)
|
|
112
135
|
else:
|
|
113
136
|
self.control_tags["use_pytest"] = True
|
|
114
137
|
|
|
@@ -124,6 +147,14 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
124
147
|
noinclude_unittest_mode,
|
|
125
148
|
"unittest",
|
|
126
149
|
)
|
|
150
|
+
self.handled_modules["keras.src.testing_infra"] = (
|
|
151
|
+
noinclude_unittest_mode,
|
|
152
|
+
"unittest",
|
|
153
|
+
)
|
|
154
|
+
self.handled_modules["tf_keras.src.testing_infra"] = (
|
|
155
|
+
noinclude_unittest_mode,
|
|
156
|
+
"unittest",
|
|
157
|
+
)
|
|
127
158
|
else:
|
|
128
159
|
self.control_tags["use_unittest"] = True
|
|
129
160
|
|
|
@@ -138,6 +169,10 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
138
169
|
noinclude_ipython_mode,
|
|
139
170
|
"IPython",
|
|
140
171
|
)
|
|
172
|
+
self.handled_modules["altair._magics"] = (
|
|
173
|
+
noinclude_ipython_mode,
|
|
174
|
+
"IPython",
|
|
175
|
+
)
|
|
141
176
|
else:
|
|
142
177
|
self.control_tags["use_ipython"] = True
|
|
143
178
|
|
|
@@ -147,6 +182,11 @@ class NuitkaPluginAntiBloat(NuitkaPluginBase):
|
|
|
147
182
|
else:
|
|
148
183
|
self.control_tags["use_dask"] = True
|
|
149
184
|
|
|
185
|
+
if noinclude_pydoc_mode != "allow":
|
|
186
|
+
self.handled_modules["pydoc"] = noinclude_pydoc_mode, "pydoc"
|
|
187
|
+
else:
|
|
188
|
+
self.control_tags["use_pydoc"] = True
|
|
189
|
+
|
|
150
190
|
if noinclude_numba_mode != "allow":
|
|
151
191
|
self.handled_modules["numba"] = noinclude_numba_mode, "numba"
|
|
152
192
|
self.handled_modules["sparse"] = noinclude_numba_mode, "numba"
|
|
@@ -199,6 +239,12 @@ form 'module_name:[%s]'."""
|
|
|
199
239
|
# information given for that.
|
|
200
240
|
self.no_auto_follows = {}
|
|
201
241
|
|
|
242
|
+
# Keep track of modules prevented from being followed at all.
|
|
243
|
+
self.no_follows = OrderedDict()
|
|
244
|
+
|
|
245
|
+
# Cache execution context for anti-bloat configs.
|
|
246
|
+
self.context_codes = {}
|
|
247
|
+
|
|
202
248
|
def getEvaluationConditionControlTags(self):
|
|
203
249
|
return self.control_tags
|
|
204
250
|
|
|
@@ -257,6 +303,17 @@ What to do if a unittest import is encountered. This package can be big with
|
|
|
257
303
|
dependencies, and should definitely be avoided.""",
|
|
258
304
|
)
|
|
259
305
|
|
|
306
|
+
group.add_option(
|
|
307
|
+
"--noinclude-pydoc-mode",
|
|
308
|
+
action="store",
|
|
309
|
+
dest="noinclude_pydoc_mode",
|
|
310
|
+
choices=_mode_choices,
|
|
311
|
+
default=None,
|
|
312
|
+
help="""\
|
|
313
|
+
What to do if a pydoc import is encountered. This package use is mark of useless
|
|
314
|
+
code for deployments and should be avoided.""",
|
|
315
|
+
)
|
|
316
|
+
|
|
260
317
|
group.add_option(
|
|
261
318
|
"--noinclude-IPython-mode",
|
|
262
319
|
action="store",
|
|
@@ -313,73 +370,64 @@ which can and should be a top level package and then one choice, "error",
|
|
|
313
370
|
"warning", "nofollow", e.g. PyQt5:error.""",
|
|
314
371
|
)
|
|
315
372
|
|
|
373
|
+
def _getContextCode(self, module_name, anti_bloat_config):
|
|
374
|
+
context_code = anti_bloat_config.get("context", "")
|
|
375
|
+
if type(context_code) in (tuple, list):
|
|
376
|
+
context_code = "\n".join(context_code)
|
|
377
|
+
|
|
378
|
+
if context_code not in self.context_codes:
|
|
379
|
+
context = {}
|
|
380
|
+
|
|
381
|
+
try:
|
|
382
|
+
# We trust the yaml files, pylint: disable=exec-used
|
|
383
|
+
exec(context_code, context)
|
|
384
|
+
except Exception as e: # pylint: disable=broad-except
|
|
385
|
+
self.sysexit(
|
|
386
|
+
"""\
|
|
387
|
+
Error, cannot exec module '%s', context code '%s' due to: %s"""
|
|
388
|
+
% (module_name, context_code, e)
|
|
389
|
+
)
|
|
390
|
+
|
|
391
|
+
self.context_codes[context_code] = context
|
|
392
|
+
|
|
393
|
+
return dict(self.context_codes[context_code])
|
|
394
|
+
|
|
316
395
|
def _onModuleSourceCode(self, module_name, anti_bloat_config, source_code):
|
|
317
|
-
# Complex dealing with many cases, pylint: disable=too-many-branches
|
|
396
|
+
# Complex dealing with many cases, pylint: disable=too-many-branches
|
|
318
397
|
|
|
319
398
|
description = anti_bloat_config.get("description", "description not given")
|
|
320
399
|
|
|
321
400
|
# To allow detection if it did anything.
|
|
322
401
|
change_count = 0
|
|
323
402
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
context_code = anti_bloat_config.get("context", "")
|
|
327
|
-
if type(context_code) in (tuple, list):
|
|
328
|
-
context_code = "\n".join(context_code)
|
|
329
|
-
context["version"] = self.getPackageVersion
|
|
330
|
-
|
|
331
|
-
# We trust the yaml files, pylint: disable=eval-used,exec-used
|
|
332
|
-
context_ready = not bool(context_code)
|
|
333
|
-
|
|
334
|
-
for replace_src, replace_code in anti_bloat_config.get(
|
|
335
|
-
"replacements", {}
|
|
403
|
+
for replace_src, replace_code in (
|
|
404
|
+
anti_bloat_config.get("replacements") or {}
|
|
336
405
|
).items():
|
|
337
406
|
# Avoid the eval, if the replace doesn't hit.
|
|
338
407
|
if replace_src not in source_code:
|
|
339
408
|
continue
|
|
340
409
|
|
|
341
410
|
if replace_code:
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
context_ready = True
|
|
353
|
-
|
|
354
|
-
if "__dirname__" in replace_code:
|
|
355
|
-
context["__dirname__"] = self.locateModule(module_name)
|
|
356
|
-
|
|
357
|
-
try:
|
|
358
|
-
replace_dst = eval(replace_code, context)
|
|
359
|
-
except Exception as e: # pylint: disable=broad-except
|
|
360
|
-
self.sysexit(
|
|
361
|
-
"""\
|
|
362
|
-
Error, cannot eval module '%s' replacement expression code '%s' in '%s' due to: %s"""
|
|
363
|
-
% (module_name, replace_code, context_code, e)
|
|
364
|
-
)
|
|
411
|
+
replace_dst = self.evaluateExpression(
|
|
412
|
+
full_name=module_name,
|
|
413
|
+
expression=replace_code,
|
|
414
|
+
config_name="module '%s' config 'replacements' " % module_name,
|
|
415
|
+
extra_context=self._getContextCode(
|
|
416
|
+
module_name=module_name, anti_bloat_config=anti_bloat_config
|
|
417
|
+
),
|
|
418
|
+
single_value=True,
|
|
419
|
+
)
|
|
365
420
|
else:
|
|
366
421
|
replace_dst = ""
|
|
367
422
|
|
|
368
|
-
if type(replace_dst) is not str:
|
|
369
|
-
self.sysexit(
|
|
370
|
-
"""\
|
|
371
|
-
Error, module '%s' replacement expression code for '%s' needs to generate string, not %s"""
|
|
372
|
-
% (module_name, replace_code, type(replace_dst))
|
|
373
|
-
)
|
|
374
|
-
|
|
375
423
|
old = source_code
|
|
376
424
|
source_code = source_code.replace(replace_src, replace_dst)
|
|
377
425
|
|
|
378
426
|
if old != source_code:
|
|
379
427
|
change_count += 1
|
|
380
428
|
|
|
381
|
-
for replace_src, replace_dst in
|
|
382
|
-
"replacements_plain"
|
|
429
|
+
for replace_src, replace_dst in (
|
|
430
|
+
anti_bloat_config.get("replacements_plain") or {}
|
|
383
431
|
).items():
|
|
384
432
|
old = source_code
|
|
385
433
|
source_code = source_code.replace(replace_src, replace_dst)
|
|
@@ -387,32 +435,31 @@ Error, module '%s' replacement expression code for '%s' needs to generate string
|
|
|
387
435
|
if old != source_code:
|
|
388
436
|
change_count += 1
|
|
389
437
|
|
|
390
|
-
for replace_src, replace_dst in
|
|
391
|
-
"replacements_re"
|
|
438
|
+
for replace_src, replace_dst in (
|
|
439
|
+
anti_bloat_config.get("replacements_re") or {}
|
|
392
440
|
).items():
|
|
393
441
|
old = source_code
|
|
394
|
-
source_code = re.sub(replace_src, replace_dst, source_code)
|
|
442
|
+
source_code = re.sub(replace_src, replace_dst, source_code, re.S)
|
|
395
443
|
|
|
396
444
|
if old != source_code:
|
|
397
445
|
change_count += 1
|
|
446
|
+
elif isExperimental("display-anti-bloat-mismatches"):
|
|
447
|
+
self.info("No match in %s no match %r" % (module_name, replace_src))
|
|
398
448
|
|
|
399
449
|
append_code = anti_bloat_config.get("append_result", "")
|
|
400
450
|
if type(append_code) in (tuple, list):
|
|
401
451
|
append_code = "\n".join(append_code)
|
|
402
452
|
|
|
403
453
|
if append_code:
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
Error, cannot evaluate module '%s' append code '%s' in '%s' due to: %s"""
|
|
414
|
-
% (module_name, append_code, context_code, e)
|
|
415
|
-
)
|
|
454
|
+
append_result = self.evaluateExpression(
|
|
455
|
+
full_name=module_name,
|
|
456
|
+
expression=append_code,
|
|
457
|
+
config_name="module '%s' config 'append_code'" % module_name,
|
|
458
|
+
extra_context=self._getContextCode(
|
|
459
|
+
module_name=module_name, anti_bloat_config=anti_bloat_config
|
|
460
|
+
),
|
|
461
|
+
single_value=True,
|
|
462
|
+
)
|
|
416
463
|
|
|
417
464
|
source_code += "\n" + append_result
|
|
418
465
|
change_count += 1
|
|
@@ -446,7 +493,7 @@ Error, cannot evaluate module '%s' append code '%s' in '%s' due to: %s"""
|
|
|
446
493
|
|
|
447
494
|
return source_code
|
|
448
495
|
|
|
449
|
-
def onModuleSourceCode(self, module_name, source_code):
|
|
496
|
+
def onModuleSourceCode(self, module_name, source_filename, source_code):
|
|
450
497
|
for anti_bloat_config in self.config.get(module_name, section="anti-bloat"):
|
|
451
498
|
if self.evaluateCondition(
|
|
452
499
|
full_name=module_name, condition=anti_bloat_config.get("when", "True")
|
|
@@ -462,14 +509,6 @@ Error, cannot evaluate module '%s' append code '%s' in '%s' due to: %s"""
|
|
|
462
509
|
def _onFunctionBodyParsing(
|
|
463
510
|
self, module_name, anti_bloat_config, function_name, body
|
|
464
511
|
):
|
|
465
|
-
context = {}
|
|
466
|
-
context_code = anti_bloat_config.get("context", "")
|
|
467
|
-
if type(context_code) in (tuple, list):
|
|
468
|
-
context_code = "\n".join(context_code)
|
|
469
|
-
|
|
470
|
-
# We trust the yaml files, pylint: disable=eval-used,exec-used
|
|
471
|
-
context_ready = not bool(context_code)
|
|
472
|
-
|
|
473
512
|
replace_code = anti_bloat_config.get("change_function", {}).get(function_name)
|
|
474
513
|
|
|
475
514
|
if replace_code == "un-callable":
|
|
@@ -481,18 +520,16 @@ Error, cannot evaluate module '%s' append code '%s' in '%s' due to: %s"""
|
|
|
481
520
|
if replace_code is None:
|
|
482
521
|
return False
|
|
483
522
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
% (module_name, function_name, replace_code, context_code, e)
|
|
495
|
-
)
|
|
523
|
+
replacement = self.evaluateExpression(
|
|
524
|
+
full_name=module_name,
|
|
525
|
+
expression=replace_code,
|
|
526
|
+
config_name="module '%s' config 'change_function' of '%s'"
|
|
527
|
+
% (module_name, function_name),
|
|
528
|
+
extra_context=self._getContextCode(
|
|
529
|
+
module_name=module_name, anti_bloat_config=anti_bloat_config
|
|
530
|
+
),
|
|
531
|
+
single_value=True,
|
|
532
|
+
)
|
|
496
533
|
|
|
497
534
|
# Single node is required, extract the generated module body with
|
|
498
535
|
# single expression only statement value or a function body.
|
|
@@ -533,6 +570,140 @@ Error, cannot eval module '%s' function '%s' replacement code '%s' in '%s' due t
|
|
|
533
570
|
|
|
534
571
|
return result
|
|
535
572
|
|
|
573
|
+
def _onClassBodyParsing(self, module_name, anti_bloat_config, class_name, node):
|
|
574
|
+
replace_code = anti_bloat_config.get("change_class", {}).get(class_name)
|
|
575
|
+
|
|
576
|
+
if replace_code == "un-usable":
|
|
577
|
+
replace_code = """
|
|
578
|
+
'''
|
|
579
|
+
class %(class_name)s:
|
|
580
|
+
def __init__(self, *args, **kwargs):
|
|
581
|
+
raise RuntimeError("Must not call %(module_name)s.%(class_name)s")
|
|
582
|
+
'''
|
|
583
|
+
""" % {
|
|
584
|
+
"module_name": module_name,
|
|
585
|
+
"class_name": class_name,
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
if replace_code is None:
|
|
589
|
+
return False
|
|
590
|
+
|
|
591
|
+
replacement = self.evaluateExpression(
|
|
592
|
+
full_name=module_name,
|
|
593
|
+
expression=replace_code,
|
|
594
|
+
config_name="module '%s' config 'change_class' of '%s'"
|
|
595
|
+
% (module_name, class_name),
|
|
596
|
+
extra_context=self._getContextCode(
|
|
597
|
+
module_name=module_name, anti_bloat_config=anti_bloat_config
|
|
598
|
+
),
|
|
599
|
+
single_value=True,
|
|
600
|
+
)
|
|
601
|
+
|
|
602
|
+
# Single node is required, extract the generated module body with
|
|
603
|
+
# single expression only statement value or a function body.
|
|
604
|
+
replacement = ast.parse(replacement).body[0]
|
|
605
|
+
|
|
606
|
+
node.body[:] = replacement.body
|
|
607
|
+
node.bases = replacement.bases
|
|
608
|
+
|
|
609
|
+
if self.show_changes:
|
|
610
|
+
self.info(
|
|
611
|
+
"Updated module '%s' class '%s'." % (module_name.asString(), class_name)
|
|
612
|
+
)
|
|
613
|
+
|
|
614
|
+
return True
|
|
615
|
+
|
|
616
|
+
def onClassBodyParsing(self, module_name, class_name, node):
|
|
617
|
+
result = False
|
|
618
|
+
|
|
619
|
+
config = self.config.get(module_name, section="anti-bloat")
|
|
620
|
+
|
|
621
|
+
if config:
|
|
622
|
+
for anti_bloat_config in config:
|
|
623
|
+
if self._onClassBodyParsing(
|
|
624
|
+
module_name=module_name,
|
|
625
|
+
anti_bloat_config=anti_bloat_config,
|
|
626
|
+
class_name=class_name,
|
|
627
|
+
node=node,
|
|
628
|
+
):
|
|
629
|
+
result = True
|
|
630
|
+
|
|
631
|
+
return result
|
|
632
|
+
|
|
633
|
+
def _getModuleBloatModeOverrides(self, using_module_name, intended_module_name):
|
|
634
|
+
# Finding a matching configuration aborts the search, not finding one
|
|
635
|
+
# means default behavior should apply.
|
|
636
|
+
for _config_module_name, bloat_mode_overrides in self.getYamlConfigItem(
|
|
637
|
+
module_name=using_module_name,
|
|
638
|
+
section="anti-bloat",
|
|
639
|
+
item_name="bloat-mode-overrides",
|
|
640
|
+
default={},
|
|
641
|
+
decide_relevant=(lambda config_item: intended_module_name in config_item),
|
|
642
|
+
recursive=True,
|
|
643
|
+
):
|
|
644
|
+
return bloat_mode_overrides[intended_module_name]
|
|
645
|
+
|
|
646
|
+
return None
|
|
647
|
+
|
|
648
|
+
def decideAnnotations(self, module_name):
|
|
649
|
+
# Finding a matching configuration aborts the search, not finding one
|
|
650
|
+
# means default behavior should apply.
|
|
651
|
+
for _config_module_name, annotations_config_value in self.getYamlConfigItem(
|
|
652
|
+
module_name=module_name,
|
|
653
|
+
section="anti-bloat",
|
|
654
|
+
item_name="annotations",
|
|
655
|
+
default=None,
|
|
656
|
+
decide_relevant=(lambda config_item: config_item in ("yes", "no")),
|
|
657
|
+
recursive=True,
|
|
658
|
+
):
|
|
659
|
+
return annotations_config_value == "yes"
|
|
660
|
+
|
|
661
|
+
return None
|
|
662
|
+
|
|
663
|
+
def decideDocStrings(self, module_name):
|
|
664
|
+
# Finding a matching configuration aborts the search, not finding one
|
|
665
|
+
# means default behavior should apply.
|
|
666
|
+
for _config_module_name, doc_strings_config_value in self.getYamlConfigItem(
|
|
667
|
+
module_name=module_name,
|
|
668
|
+
section="anti-bloat",
|
|
669
|
+
item_name="doc_strings",
|
|
670
|
+
default=None,
|
|
671
|
+
decide_relevant=(lambda config_item: config_item in ("yes", "no")),
|
|
672
|
+
recursive=True,
|
|
673
|
+
):
|
|
674
|
+
return doc_strings_config_value == "yes"
|
|
675
|
+
|
|
676
|
+
return None
|
|
677
|
+
|
|
678
|
+
def decideAsserts(self, module_name):
|
|
679
|
+
# Finding a matching configuration aborts the search, not finding one
|
|
680
|
+
# means default behavior should apply.
|
|
681
|
+
for _config_module_name, asserts_config_value in self.getYamlConfigItem(
|
|
682
|
+
module_name=module_name,
|
|
683
|
+
section="anti-bloat",
|
|
684
|
+
item_name="asserts",
|
|
685
|
+
default=None,
|
|
686
|
+
decide_relevant=(lambda config_item: config_item in ("yes", "no")),
|
|
687
|
+
recursive=True,
|
|
688
|
+
):
|
|
689
|
+
return asserts_config_value == "yes"
|
|
690
|
+
|
|
691
|
+
return None
|
|
692
|
+
|
|
693
|
+
def _applyNoFollowConfiguration(self, module_name):
|
|
694
|
+
for (
|
|
695
|
+
config_of_module_name,
|
|
696
|
+
no_follow_pattern,
|
|
697
|
+
description,
|
|
698
|
+
) in self.getYamlConfigItemItems(
|
|
699
|
+
module_name=module_name,
|
|
700
|
+
section="anti-bloat",
|
|
701
|
+
item_name="no-follow",
|
|
702
|
+
decide_relevant=lambda key, value: True,
|
|
703
|
+
recursive=True,
|
|
704
|
+
):
|
|
705
|
+
self.no_follows[no_follow_pattern] = (config_of_module_name, description)
|
|
706
|
+
|
|
536
707
|
def onModuleRecursion(
|
|
537
708
|
self,
|
|
538
709
|
module_name,
|
|
@@ -542,6 +713,11 @@ Error, cannot eval module '%s' function '%s' replacement code '%s' in '%s' due t
|
|
|
542
713
|
source_ref,
|
|
543
714
|
reason,
|
|
544
715
|
):
|
|
716
|
+
# pylint: disable=too-many-branches
|
|
717
|
+
|
|
718
|
+
# First off, activate "no-follow" configurations of this module.
|
|
719
|
+
self._applyNoFollowConfiguration(module_name=module_name)
|
|
720
|
+
|
|
545
721
|
# Do not even look at these. It's either included by a module that is in standard
|
|
546
722
|
# library, or included for a module in standard library.
|
|
547
723
|
if reason == "stdlib" or (
|
|
@@ -552,6 +728,8 @@ Error, cannot eval module '%s' function '%s' replacement code '%s' in '%s' due t
|
|
|
552
728
|
|
|
553
729
|
# This will allow "unittest.mock" to pass "unittest". It's kind of a hack and
|
|
554
730
|
# hopefully unusual.
|
|
731
|
+
if module_name == "unittest" and reason == "import path parent":
|
|
732
|
+
return
|
|
555
733
|
if module_name == "unittest.mock" and module_name not in self.handled_modules:
|
|
556
734
|
return
|
|
557
735
|
|
|
@@ -567,6 +745,15 @@ Error, cannot eval module '%s' function '%s' replacement code '%s' in '%s' due t
|
|
|
567
745
|
return
|
|
568
746
|
|
|
569
747
|
if module_name.hasNamespace(handled_module_name):
|
|
748
|
+
if using_module_name is not None:
|
|
749
|
+
override_mode = self._getModuleBloatModeOverrides(
|
|
750
|
+
using_module_name=using_module_name,
|
|
751
|
+
intended_module_name=intended_module_name,
|
|
752
|
+
)
|
|
753
|
+
|
|
754
|
+
if override_mode is not None:
|
|
755
|
+
mode = override_mode
|
|
756
|
+
|
|
570
757
|
# Make sure the compilation aborts or warns if asked to
|
|
571
758
|
if mode == "error":
|
|
572
759
|
raise NuitkaForbiddenImportEncounter(
|
|
@@ -585,13 +772,20 @@ Error, cannot eval module '%s' function '%s' replacement code '%s' in '%s' due t
|
|
|
585
772
|
)
|
|
586
773
|
|
|
587
774
|
if key not in self.warnings_given:
|
|
775
|
+
if handled_module_name == intended_module_name:
|
|
776
|
+
handled_module_name_desc = "'%s'" % handled_module_name
|
|
777
|
+
else:
|
|
778
|
+
handled_module_name_desc = (
|
|
779
|
+
"'%s' (intending to avoid '%s')"
|
|
780
|
+
% (handled_module_name, intended_module_name)
|
|
781
|
+
)
|
|
782
|
+
|
|
588
783
|
self.warning(
|
|
589
784
|
"""\
|
|
590
|
-
Undesirable import of '%s' (
|
|
591
|
-
|
|
785
|
+
Undesirable import of %s in '%s' (at '%s') encountered. It may \
|
|
786
|
+
slow down compilation."""
|
|
592
787
|
% (
|
|
593
|
-
|
|
594
|
-
intended_module_name,
|
|
788
|
+
handled_module_name_desc,
|
|
595
789
|
using_module_name,
|
|
596
790
|
source_ref.getAsString(),
|
|
597
791
|
),
|
|
@@ -623,25 +817,43 @@ Undesirable import of '%s' (intending to avoid '%s') in \
|
|
|
623
817
|
)
|
|
624
818
|
|
|
625
819
|
if using_module_name is not None:
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
820
|
+
|
|
821
|
+
def decideRelevant(key, value):
|
|
822
|
+
# Only checking keys of configs, pylint: disable=unused-argument
|
|
823
|
+
|
|
824
|
+
return module_name.hasNamespace(key)
|
|
825
|
+
|
|
826
|
+
for (
|
|
827
|
+
config_of_module_name,
|
|
828
|
+
no_auto_follow,
|
|
829
|
+
description,
|
|
830
|
+
) in self.getYamlConfigItemItems(
|
|
831
|
+
module_name=using_module_name,
|
|
832
|
+
section="anti-bloat",
|
|
833
|
+
item_name="no-auto-follow",
|
|
834
|
+
decide_relevant=decideRelevant,
|
|
835
|
+
recursive=True,
|
|
836
|
+
):
|
|
837
|
+
assert module_name.hasNamespace(no_auto_follow), no_auto_follow
|
|
838
|
+
|
|
839
|
+
self.no_auto_follows[no_auto_follow] = description
|
|
840
|
+
|
|
841
|
+
return (
|
|
842
|
+
False,
|
|
843
|
+
"according to yaml 'no-auto-follow' configuration of '%s' for '%s'"
|
|
844
|
+
% (config_of_module_name, no_auto_follow),
|
|
845
|
+
)
|
|
846
|
+
|
|
847
|
+
for no_follow_pattern, (
|
|
848
|
+
config_of_module_name,
|
|
849
|
+
description,
|
|
850
|
+
) in self.no_follows.items():
|
|
851
|
+
if module_name.matchesToShellPattern(no_follow_pattern)[0]:
|
|
852
|
+
return (
|
|
853
|
+
False,
|
|
854
|
+
"according to yaml 'no-follow' configuration of '%s' for '%s'"
|
|
855
|
+
% (config_of_module_name, no_follow_pattern),
|
|
856
|
+
)
|
|
645
857
|
|
|
646
858
|
# Do not provide an opinion about it.
|
|
647
859
|
return None
|
|
@@ -675,3 +887,19 @@ Undesirable import of '%s' (intending to avoid '%s') in \
|
|
|
675
887
|
Not including '%s' automatically in order to avoid bloat, but this may cause: %s."""
|
|
676
888
|
% (module_name, description)
|
|
677
889
|
)
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
893
|
+
# integrates with CPython, but also works on its own.
|
|
894
|
+
#
|
|
895
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
896
|
+
# you may not use this file except in compliance with the License.
|
|
897
|
+
# You may obtain a copy of the License at
|
|
898
|
+
#
|
|
899
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
900
|
+
#
|
|
901
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
902
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
903
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
904
|
+
# See the License for the specific language governing permissions and
|
|
905
|
+
# limitations under the License.
|