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 take advantage of pylint or PyDev annotations.
|
|
19
5
|
|
|
20
6
|
Nuitka can detect some things that PyLint and PyDev will complain about too,
|
|
@@ -31,7 +17,6 @@ to grow both.
|
|
|
31
17
|
|
|
32
18
|
"""
|
|
33
19
|
|
|
34
|
-
|
|
35
20
|
import re
|
|
36
21
|
|
|
37
22
|
from nuitka.__past__ import intern
|
|
@@ -83,7 +68,7 @@ if False:
|
|
|
83
68
|
class NuitkaPluginDetectorPylintEclipseAnnotations(NuitkaPluginBase):
|
|
84
69
|
detector_for = NuitkaPluginPylintEclipseAnnotations
|
|
85
70
|
|
|
86
|
-
def onModuleSourceCode(self, module_name, source_code):
|
|
71
|
+
def onModuleSourceCode(self, module_name, source_filename, source_code):
|
|
87
72
|
if re.search(r"#\s*pylint:\s*disable=\s*(\w+)", source_code):
|
|
88
73
|
self.warnUnusedPlugin(
|
|
89
74
|
"Understand PyLint/PyDev annotations for warnings."
|
|
@@ -91,3 +76,19 @@ if False:
|
|
|
91
76
|
|
|
92
77
|
# Do nothing to it.
|
|
93
78
|
return source_code
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
82
|
+
# integrates with CPython, but also works on its own.
|
|
83
|
+
#
|
|
84
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
85
|
+
# you may not use this file except in compliance with the License.
|
|
86
|
+
# You may obtain a copy of the License at
|
|
87
|
+
#
|
|
88
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
89
|
+
#
|
|
90
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
91
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
92
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
93
|
+
# See the License for the specific language governing permissions and
|
|
94
|
+
# limitations under the License.
|
|
@@ -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 find data files.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -25,7 +11,7 @@ import pkgutil
|
|
|
25
11
|
from nuitka import Options
|
|
26
12
|
from nuitka.code_generation.ConstantCodes import addDistributionMetadataValue
|
|
27
13
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
28
|
-
from nuitka.plugins.
|
|
14
|
+
from nuitka.plugins.YamlPluginBase import NuitkaYamlPluginBase
|
|
29
15
|
from nuitka.PythonFlavors import isDebianPackagePython
|
|
30
16
|
from nuitka.utils.Distributions import getDistribution
|
|
31
17
|
from nuitka.utils.FileOperations import (
|
|
@@ -33,17 +19,13 @@ from nuitka.utils.FileOperations import (
|
|
|
33
19
|
getFileList,
|
|
34
20
|
resolveShellPatternToFilenames,
|
|
35
21
|
)
|
|
36
|
-
from nuitka.utils.Yaml import getYamlPackageConfiguration
|
|
37
22
|
|
|
38
23
|
|
|
39
|
-
class NuitkaPluginDataFileCollector(
|
|
24
|
+
class NuitkaPluginDataFileCollector(NuitkaYamlPluginBase):
|
|
40
25
|
plugin_name = "data-files"
|
|
41
26
|
|
|
42
27
|
plugin_desc = "Include data files specified by package configuration files."
|
|
43
28
|
|
|
44
|
-
def __init__(self):
|
|
45
|
-
self.config = getYamlPackageConfiguration()
|
|
46
|
-
|
|
47
29
|
@classmethod
|
|
48
30
|
def isRelevant(cls):
|
|
49
31
|
return Options.isStandaloneMode()
|
|
@@ -54,7 +36,7 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
54
36
|
|
|
55
37
|
def _considerDataFiles(self, module, data_file_config):
|
|
56
38
|
# Many details and cases to deal with
|
|
57
|
-
# pylint: disable=too-many-branches,too-many-locals
|
|
39
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
58
40
|
|
|
59
41
|
module_name = module.getFullName()
|
|
60
42
|
module_folder = module.getCompileTimeDirectory()
|
|
@@ -63,7 +45,11 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
63
45
|
|
|
64
46
|
# Default to near module or inside package folder.
|
|
65
47
|
if target_dir is None:
|
|
66
|
-
if
|
|
48
|
+
if (
|
|
49
|
+
module.isCompiledPythonPackage()
|
|
50
|
+
or module.isUncompiledPythonPackage()
|
|
51
|
+
or module.isExtensionModulePackage()
|
|
52
|
+
):
|
|
67
53
|
target_dir = module_name.asPath()
|
|
68
54
|
else:
|
|
69
55
|
package_name = module_name.getPackageName()
|
|
@@ -83,6 +69,14 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
83
69
|
|
|
84
70
|
# TODO: Pattern should be data file kind potentially.
|
|
85
71
|
for pattern in patterns:
|
|
72
|
+
pattern = self.evaluateExpressionOrConstant(
|
|
73
|
+
full_name=module_name,
|
|
74
|
+
expression=pattern,
|
|
75
|
+
config_name="data file pattern for '%s'" % module_name,
|
|
76
|
+
extra_context=None,
|
|
77
|
+
single_value=True,
|
|
78
|
+
)
|
|
79
|
+
|
|
86
80
|
pattern = os.path.join(module_folder, pattern)
|
|
87
81
|
|
|
88
82
|
for filename in resolveShellPatternToFilenames(pattern):
|
|
@@ -107,7 +101,7 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
107
101
|
|
|
108
102
|
for empty_dir in empty_dirs:
|
|
109
103
|
yield self.makeIncludedEmptyDirectory(
|
|
110
|
-
dest_path=os.path.join(target_dir, empty_dir),
|
|
104
|
+
dest_path=os.path.normpath(os.path.join(target_dir, empty_dir)),
|
|
111
105
|
reason="empty dir needed for %r" % module_name.asString(),
|
|
112
106
|
tags="config",
|
|
113
107
|
)
|
|
@@ -130,7 +124,7 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
130
124
|
if dirs is not None:
|
|
131
125
|
if type(dirs) is not list or not dirs:
|
|
132
126
|
self.sysexit(
|
|
133
|
-
"Error, requiring list below '
|
|
127
|
+
"Error, requiring list below 'dirs' entry for '%s' entry."
|
|
134
128
|
% module_name
|
|
135
129
|
)
|
|
136
130
|
|
|
@@ -140,12 +134,33 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
140
134
|
if os.path.isdir(source_path):
|
|
141
135
|
yield self.makeIncludedDataDirectory(
|
|
142
136
|
source_path=source_path,
|
|
143
|
-
dest_path=os.path.join(target_dir, data_dir),
|
|
137
|
+
dest_path=os.path.normpath(os.path.join(target_dir, data_dir)),
|
|
144
138
|
reason="package data directory '%s' for %r"
|
|
145
139
|
% (data_dir, module_name.asString()),
|
|
146
140
|
tags="config",
|
|
147
141
|
)
|
|
148
142
|
|
|
143
|
+
raw_dirs = data_file_config.get("raw_dirs")
|
|
144
|
+
if raw_dirs is not None:
|
|
145
|
+
if type(raw_dirs) is not list or not raw_dirs:
|
|
146
|
+
self.sysexit(
|
|
147
|
+
"Error, requiring list below 'raw_dirs' entry for '%s' entry."
|
|
148
|
+
% module_name
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
for raw_dir in raw_dirs:
|
|
152
|
+
source_path = os.path.join(module_folder, raw_dir)
|
|
153
|
+
|
|
154
|
+
if os.path.isdir(source_path):
|
|
155
|
+
yield self.makeIncludedDataDirectory(
|
|
156
|
+
source_path=source_path,
|
|
157
|
+
dest_path=os.path.normpath(os.path.join(target_dir, raw_dir)),
|
|
158
|
+
reason="package raw directory '%s' for %r"
|
|
159
|
+
% (raw_dir, module_name.asString()),
|
|
160
|
+
tags="config",
|
|
161
|
+
raw=True,
|
|
162
|
+
)
|
|
163
|
+
|
|
149
164
|
include_pyi_file = data_file_config.get("include-pyi-file")
|
|
150
165
|
|
|
151
166
|
if include_pyi_file == "yes":
|
|
@@ -176,7 +191,12 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
176
191
|
distribution = getDistribution(distribution_name)
|
|
177
192
|
|
|
178
193
|
if distribution is not None:
|
|
179
|
-
addDistributionMetadataValue(
|
|
194
|
+
addDistributionMetadataValue(
|
|
195
|
+
distribution_name=distribution_name,
|
|
196
|
+
distribution=distribution,
|
|
197
|
+
reason="According to Yaml configuration 'include-metadata' for '%s'"
|
|
198
|
+
% module_name.asString(),
|
|
199
|
+
)
|
|
180
200
|
|
|
181
201
|
def considerDataFiles(self, module):
|
|
182
202
|
full_name = module.getFullName()
|
|
@@ -273,3 +293,19 @@ class NuitkaPluginDataFileCollector(NuitkaPluginBase):
|
|
|
273
293
|
reason="Subdirectories of module %s" % module.getFullName(),
|
|
274
294
|
tags="config",
|
|
275
295
|
)
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
299
|
+
# integrates with CPython, but also works on its own.
|
|
300
|
+
#
|
|
301
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
302
|
+
# you may not use this file except in compliance with the License.
|
|
303
|
+
# You may obtain a copy of the License at
|
|
304
|
+
#
|
|
305
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
306
|
+
#
|
|
307
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
308
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
309
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
310
|
+
# See the License for the specific language governing permissions and
|
|
311
|
+
# limitations under the License.
|
|
@@ -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
|
""" Support for delvewheel, details in below class definitions.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -22,7 +8,7 @@
|
|
|
22
8
|
import os
|
|
23
9
|
import re
|
|
24
10
|
|
|
25
|
-
from nuitka import
|
|
11
|
+
from nuitka.Options import isStandaloneMode
|
|
26
12
|
from nuitka.plugins.PluginBase import NuitkaPluginBase
|
|
27
13
|
from nuitka.PythonFlavors import isAnacondaPython
|
|
28
14
|
from nuitka.utils.FileOperations import listDllFilesFromDirectory
|
|
@@ -56,14 +42,14 @@ class NuitkaPluginDelvewheel(NuitkaPluginBase):
|
|
|
56
42
|
|
|
57
43
|
@staticmethod
|
|
58
44
|
def isRelevant():
|
|
59
|
-
return
|
|
45
|
+
return isStandaloneMode()
|
|
60
46
|
|
|
61
47
|
# This is used by our exec below, to capture the dll directory without using a free
|
|
62
48
|
# variable.
|
|
63
49
|
def _add_dll_directory(self, arg):
|
|
64
50
|
self.dll_directory = arg
|
|
65
51
|
|
|
66
|
-
def onModuleSourceCode(self, module_name, source_code):
|
|
52
|
+
def onModuleSourceCode(self, module_name, source_filename, source_code):
|
|
67
53
|
# Avoid regular expression match if possible.
|
|
68
54
|
if "_delvewheel_" not in source_code:
|
|
69
55
|
return None
|
|
@@ -89,7 +75,7 @@ class NuitkaPluginDelvewheel(NuitkaPluginBase):
|
|
|
89
75
|
|
|
90
76
|
# Fake the "__file__" to the proper value to the exec.
|
|
91
77
|
exec_globals = {
|
|
92
|
-
"__file__":
|
|
78
|
+
"__file__": source_filename,
|
|
93
79
|
"add_dll_directory": self._add_dll_directory,
|
|
94
80
|
}
|
|
95
81
|
|
|
@@ -119,11 +105,16 @@ class NuitkaPluginDelvewheel(NuitkaPluginBase):
|
|
|
119
105
|
self.dll_directories[module_name] = self.dll_directory
|
|
120
106
|
|
|
121
107
|
if self.dll_directories[module_name]:
|
|
122
|
-
self.
|
|
123
|
-
|
|
124
|
-
|
|
108
|
+
self.addModuleInfluencingDetection(
|
|
109
|
+
module_name=module_name,
|
|
110
|
+
detection_name="delvewheel_version",
|
|
111
|
+
detection_value=delvewheel_version,
|
|
125
112
|
)
|
|
126
113
|
|
|
114
|
+
def getModuleSpecificDllPaths(self, module_name):
|
|
115
|
+
if module_name in self.dll_directories:
|
|
116
|
+
yield self.dll_directories[module_name]
|
|
117
|
+
|
|
127
118
|
def getExtraDlls(self, module):
|
|
128
119
|
full_name = module.getFullName()
|
|
129
120
|
|
|
@@ -136,6 +127,23 @@ class NuitkaPluginDelvewheel(NuitkaPluginBase):
|
|
|
136
127
|
dest_path=os.path.join(
|
|
137
128
|
os.path.basename(dll_directory), dll_basename
|
|
138
129
|
),
|
|
130
|
+
module_name=full_name,
|
|
139
131
|
package_name=full_name,
|
|
140
132
|
reason="needed by '%s'" % full_name.asString(),
|
|
141
133
|
)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
137
|
+
# integrates with CPython, but also works on its own.
|
|
138
|
+
#
|
|
139
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
140
|
+
# you may not use this file except in compliance with the License.
|
|
141
|
+
# You may obtain a copy of the License at
|
|
142
|
+
#
|
|
143
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
144
|
+
#
|
|
145
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
146
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
147
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
148
|
+
# See the License for the specific language governing permissions and
|
|
149
|
+
# limitations under the License.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
// C code for use when the dill-plugin is active
|
|
4
|
+
|
|
5
|
+
#include "nuitka/prelude.h"
|
|
6
|
+
|
|
7
|
+
void registerDillPluginTables(PyThreadState *tstate, char const *module_name, PyMethodDef *reduce_compiled_function,
|
|
8
|
+
PyMethodDef *create_compiled_function) {
|
|
9
|
+
PyObject *function_tables = PyObject_GetAttrString((PyObject *)builtin_module, "compiled_function_tables");
|
|
10
|
+
|
|
11
|
+
if (function_tables == NULL) {
|
|
12
|
+
CLEAR_ERROR_OCCURRED(tstate);
|
|
13
|
+
|
|
14
|
+
function_tables = MAKE_DICT_EMPTY(tstate);
|
|
15
|
+
PyObject_SetAttrString((PyObject *)builtin_module, "compiled_function_tables", function_tables);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
PyObject *funcs = MAKE_TUPLE2_0(tstate, PyCFunction_New(reduce_compiled_function, NULL),
|
|
19
|
+
PyCFunction_New(create_compiled_function, NULL));
|
|
20
|
+
|
|
21
|
+
PyDict_SetItemString(function_tables, module_name, funcs);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
25
|
+
// integrates with CPython, but also works on its own.
|
|
26
|
+
//
|
|
27
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
28
|
+
// you may not use this file except in compliance with the License.
|
|
29
|
+
// You may obtain a copy of the License at
|
|
30
|
+
//
|
|
31
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
32
|
+
//
|
|
33
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
34
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
35
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
36
|
+
// See the License for the specific language governing permissions and
|
|
37
|
+
// limitations under the License.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# Plugin dill-compat has this as post load code for the "dill" package.
|
|
5
|
+
# Not supposed to be good code,
|
|
6
|
+
# pylint: disable=invalid-name,missing-module-docstring,protected-access
|
|
7
|
+
# pylint: disable=too-many-branches,too-many-statements,used-before-assignment
|
|
8
|
+
from types import CodeType
|
|
9
|
+
|
|
10
|
+
# spell-checker: ignore kwdefaults,globalvars
|
|
11
|
+
# Nuitka will optimize this away, but VS code will warn about them otherwise.
|
|
12
|
+
from typing import TYPE_CHECKING
|
|
13
|
+
|
|
14
|
+
import dill._dill
|
|
15
|
+
|
|
16
|
+
if str is bytes:
|
|
17
|
+
import __builtin__ as builtins # Python2 code, pylint: disable=import-error
|
|
18
|
+
else:
|
|
19
|
+
import builtins
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
compiled_function_tables = {}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ForCompiledTypeLookups:
|
|
26
|
+
def for_compiled_type(self):
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
compiled_function = type(ForCompiledTypeLookups.for_compiled_type)
|
|
31
|
+
compiled_method = type(ForCompiledTypeLookups().for_compiled_type)
|
|
32
|
+
assert "__compiled__" in globals()
|
|
33
|
+
|
|
34
|
+
dill_version = tuple(int(d) for d in dill.__version__.split("."))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Compiled methods need to be created.
|
|
38
|
+
@dill.register(compiled_method)
|
|
39
|
+
def save_compiled_method(pickler, obj):
|
|
40
|
+
if str is not bytes:
|
|
41
|
+
pickler.save_reduce(compiled_method, (obj.__func__, obj.__self__), obj=obj)
|
|
42
|
+
else:
|
|
43
|
+
pickler.save_reduce(
|
|
44
|
+
compiled_method, (obj.im_func, obj.im_self, obj.im_class), obj=obj
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if str is bytes:
|
|
49
|
+
|
|
50
|
+
def _create_compiled_function2(module_name, func_values, func_dict, func_defaults):
|
|
51
|
+
if module_name not in compiled_function_tables:
|
|
52
|
+
__import__(module_name)
|
|
53
|
+
|
|
54
|
+
# This gets the "_create_compiled_function" of the module and calls it.
|
|
55
|
+
func = compiled_function_tables[module_name][1](*func_values)
|
|
56
|
+
if func_dict:
|
|
57
|
+
for key, value in func_dict.items():
|
|
58
|
+
func[key] = value
|
|
59
|
+
|
|
60
|
+
func.__defaults__ = func_defaults
|
|
61
|
+
|
|
62
|
+
return func
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
if str is not bytes:
|
|
66
|
+
|
|
67
|
+
def _create_compiled_function3(
|
|
68
|
+
module_name, func_values, func_dict, func_defaults, func_kwdefaults
|
|
69
|
+
):
|
|
70
|
+
if module_name not in compiled_function_tables:
|
|
71
|
+
__import__(module_name)
|
|
72
|
+
|
|
73
|
+
func = compiled_function_tables[module_name][1](*func_values)
|
|
74
|
+
if func_dict:
|
|
75
|
+
for key, value in func_dict.items():
|
|
76
|
+
func[key] = value
|
|
77
|
+
|
|
78
|
+
func.__defaults__ = func_defaults
|
|
79
|
+
func.__kwdefaults__ = func_kwdefaults
|
|
80
|
+
|
|
81
|
+
return func
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# Compiled methods might have to be created as well. This is very closely following
|
|
85
|
+
# the code of "dill._dill.save_function" that is intended to do things for the
|
|
86
|
+
# uncompiled function.
|
|
87
|
+
@dill.register(compiled_function)
|
|
88
|
+
def save_compiled_function(pickler, obj):
|
|
89
|
+
# Complex beast, pylint: disable=too-many-locals
|
|
90
|
+
|
|
91
|
+
if dill_version >= (0, 3):
|
|
92
|
+
if not dill._dill._locate_function(obj, pickler):
|
|
93
|
+
if type(obj.__code__) is not CodeType:
|
|
94
|
+
# Some PyPy builtin functions have no module name, and thus are not
|
|
95
|
+
# able to be located
|
|
96
|
+
module_name = getattr(obj, "__module__", None)
|
|
97
|
+
if module_name is None:
|
|
98
|
+
module_name = builtins.__name__
|
|
99
|
+
|
|
100
|
+
_module = dill._dill._import_module(module_name, safe=True)
|
|
101
|
+
|
|
102
|
+
_recurse = getattr(pickler, "_recurse", None)
|
|
103
|
+
_postproc = getattr(pickler, "_postproc", None)
|
|
104
|
+
_main_modified = getattr(pickler, "_main_modified", None)
|
|
105
|
+
_original_main = getattr(pickler, "_original_main", builtins)
|
|
106
|
+
|
|
107
|
+
postproc_list = []
|
|
108
|
+
if _recurse:
|
|
109
|
+
# recurse to get all globals referred to by obj
|
|
110
|
+
from dill.detect import globalvars
|
|
111
|
+
|
|
112
|
+
globs_copy = globalvars(obj, recurse=True, builtin=True)
|
|
113
|
+
|
|
114
|
+
# Add the name of the module to the globs dictionary to prevent
|
|
115
|
+
# the duplication of the dictionary. Pickle the unpopulated
|
|
116
|
+
# globals dictionary and set the remaining items after the function
|
|
117
|
+
# is created to correctly handle recursion.
|
|
118
|
+
globs = {"__name__": obj.__module__}
|
|
119
|
+
else:
|
|
120
|
+
globs_copy = obj.__globals__
|
|
121
|
+
|
|
122
|
+
# If the globals is the __dict__ from the module being saved as a
|
|
123
|
+
# session, substitute it by the dictionary being actually saved.
|
|
124
|
+
if _main_modified and globs_copy is _original_main.__dict__:
|
|
125
|
+
globs_copy = getattr(pickler, "_main", _original_main).__dict__
|
|
126
|
+
globs = globs_copy
|
|
127
|
+
# If the globals is a module __dict__, do not save it in the pickle.
|
|
128
|
+
elif (
|
|
129
|
+
globs_copy is not None
|
|
130
|
+
and obj.__module__ is not None
|
|
131
|
+
and getattr(
|
|
132
|
+
dill._dill._import_module(obj.__module__, True),
|
|
133
|
+
"__dict__",
|
|
134
|
+
None,
|
|
135
|
+
)
|
|
136
|
+
is globs_copy
|
|
137
|
+
):
|
|
138
|
+
globs = globs_copy
|
|
139
|
+
else:
|
|
140
|
+
globs = {"__name__": obj.__module__}
|
|
141
|
+
|
|
142
|
+
if globs_copy is not None and globs is not globs_copy:
|
|
143
|
+
# In the case that the globals are copied, we need to ensure that
|
|
144
|
+
# the globals dictionary is updated when all objects in the
|
|
145
|
+
# dictionary are already created.
|
|
146
|
+
glob_ids = {id(g) for g in globs_copy.values()}
|
|
147
|
+
for stack_element in _postproc:
|
|
148
|
+
if stack_element in glob_ids:
|
|
149
|
+
_postproc[stack_element].append(
|
|
150
|
+
(dill._dill._setitems, (globs, globs_copy))
|
|
151
|
+
)
|
|
152
|
+
break
|
|
153
|
+
else:
|
|
154
|
+
postproc_list.append((dill._dill._setitems, (globs, globs_copy)))
|
|
155
|
+
|
|
156
|
+
state_dict = {}
|
|
157
|
+
for fattrname in ("__doc__", "__kwdefaults__", "__annotations__"):
|
|
158
|
+
fattr = getattr(obj, fattrname, None)
|
|
159
|
+
if fattr is not None:
|
|
160
|
+
state_dict[fattrname] = fattr
|
|
161
|
+
if obj.__qualname__ != obj.__name__:
|
|
162
|
+
state_dict["__qualname__"] = obj.__qualname__
|
|
163
|
+
if "__name__" not in globs or obj.__module__ != globs["__name__"]:
|
|
164
|
+
state_dict["__module__"] = obj.__module__
|
|
165
|
+
|
|
166
|
+
pickler.save_reduce(
|
|
167
|
+
_create_compiled_function3,
|
|
168
|
+
(
|
|
169
|
+
obj.__module__,
|
|
170
|
+
# This gets the "_reduce_compiled_function" of the module and calls it.
|
|
171
|
+
compiled_function_tables[obj.__module__][0](obj),
|
|
172
|
+
obj.__dict__,
|
|
173
|
+
obj.__defaults__,
|
|
174
|
+
obj.__kwdefaults__,
|
|
175
|
+
),
|
|
176
|
+
)
|
|
177
|
+
else:
|
|
178
|
+
name = getattr(obj, "__qualname__", getattr(obj, "__name__", None))
|
|
179
|
+
dill._dill.StockPickler.save_global(pickler, obj, name=name)
|
|
180
|
+
else:
|
|
181
|
+
if not dill._dill._locate_function(obj):
|
|
182
|
+
stack = dill._dill.stack
|
|
183
|
+
|
|
184
|
+
_byref = getattr(pickler, "_byref", None)
|
|
185
|
+
_recurse = getattr(pickler, "_recurse", None)
|
|
186
|
+
_memo = (id(obj) in stack) and (_recurse is not None)
|
|
187
|
+
stack[id(obj)] = len(stack), obj
|
|
188
|
+
|
|
189
|
+
if str is not bytes:
|
|
190
|
+
# Python3
|
|
191
|
+
_super = ("super" in getattr(obj.__code__, "co_names", ())) and (
|
|
192
|
+
_byref is not None
|
|
193
|
+
)
|
|
194
|
+
if _super:
|
|
195
|
+
pickler._byref = True
|
|
196
|
+
if _memo:
|
|
197
|
+
pickler._recurse = False
|
|
198
|
+
|
|
199
|
+
pickler.save_reduce(
|
|
200
|
+
_create_compiled_function3,
|
|
201
|
+
(
|
|
202
|
+
obj.__module__,
|
|
203
|
+
compiled_function_tables[obj.__module__][0](obj),
|
|
204
|
+
obj.__dict__,
|
|
205
|
+
obj.__defaults__,
|
|
206
|
+
obj.__kwdefaults__,
|
|
207
|
+
),
|
|
208
|
+
)
|
|
209
|
+
else:
|
|
210
|
+
# Python2
|
|
211
|
+
_super = (
|
|
212
|
+
("super" in getattr(obj.__code__, "co_names", ()))
|
|
213
|
+
and (_byref is not None)
|
|
214
|
+
and getattr(pickler, "_recurse", False)
|
|
215
|
+
)
|
|
216
|
+
if _super:
|
|
217
|
+
pickler._byref = True
|
|
218
|
+
if _memo:
|
|
219
|
+
pickler._recurse = False
|
|
220
|
+
|
|
221
|
+
pickler.save_reduce(
|
|
222
|
+
_create_compiled_function2,
|
|
223
|
+
(
|
|
224
|
+
obj.__module__,
|
|
225
|
+
compiled_function_tables[obj.__module__][0](obj),
|
|
226
|
+
obj.__dict__,
|
|
227
|
+
obj.__defaults__,
|
|
228
|
+
),
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
if _super:
|
|
232
|
+
pickler._byref = _byref
|
|
233
|
+
if _memo:
|
|
234
|
+
pickler._recurse = _recurse
|
|
235
|
+
else:
|
|
236
|
+
dill._dill.StockPickler.save_global(pickler, obj)
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
if __compiled__.standalone: # pylint: disable=undefined-variable
|
|
240
|
+
builtins.compiled_method = compiled_method
|
|
241
|
+
builtins.compiled_function = compiled_function
|
|
242
|
+
|
|
243
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
244
|
+
# integrates with CPython, but also works on its own.
|
|
245
|
+
#
|
|
246
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
247
|
+
# you may not use this file except in compliance with the License.
|
|
248
|
+
# You may obtain a copy of the License at
|
|
249
|
+
#
|
|
250
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
251
|
+
#
|
|
252
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
253
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
254
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
255
|
+
# See the License for the specific language governing permissions and
|
|
256
|
+
# limitations under the License.
|