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
|
""" Reformulation of Python3 class statements.
|
|
19
5
|
|
|
20
6
|
Consult the Developer Manual for information. TODO: Add ability to sync
|
|
@@ -33,7 +19,8 @@ from nuitka.nodes.BuiltinRefNodes import makeExpressionBuiltinTypeRef
|
|
|
33
19
|
from nuitka.nodes.BuiltinTypeNodes import ExpressionBuiltinTuple
|
|
34
20
|
from nuitka.nodes.CallNodes import makeExpressionCall
|
|
35
21
|
from nuitka.nodes.ClassNodes import (
|
|
36
|
-
|
|
22
|
+
ExpressionClassDictBody,
|
|
23
|
+
ExpressionClassMappingBody,
|
|
37
24
|
ExpressionSelectMetaclass,
|
|
38
25
|
)
|
|
39
26
|
from nuitka.nodes.CodeObjectSpecs import CodeObjectSpec
|
|
@@ -52,7 +39,6 @@ from nuitka.nodes.DictionaryNodes import (
|
|
|
52
39
|
ExpressionDictOperationGet2,
|
|
53
40
|
ExpressionDictOperationIn,
|
|
54
41
|
StatementDictOperationRemove,
|
|
55
|
-
StatementDictOperationUpdate,
|
|
56
42
|
)
|
|
57
43
|
from nuitka.nodes.ExceptionNodes import (
|
|
58
44
|
ExpressionBuiltinMakeException,
|
|
@@ -91,8 +77,8 @@ from nuitka.nodes.VariableRefNodes import (
|
|
|
91
77
|
ExpressionTempVariableRef,
|
|
92
78
|
ExpressionVariableRef,
|
|
93
79
|
)
|
|
94
|
-
from nuitka.nodes.VariableReleaseNodes import makeStatementsReleaseVariables
|
|
95
80
|
from nuitka.Options import isExperimental
|
|
81
|
+
from nuitka.plugins.Plugins import Plugins
|
|
96
82
|
from nuitka.PythonVersions import python_version
|
|
97
83
|
from nuitka.specs.ParameterSpecs import ParameterSpec
|
|
98
84
|
|
|
@@ -101,12 +87,15 @@ from .InternalModule import (
|
|
|
101
87
|
makeInternalHelperFunctionBody,
|
|
102
88
|
once_decorator,
|
|
103
89
|
)
|
|
90
|
+
from .ReformulationDictionaryCreation import buildDictionaryUnpacking
|
|
104
91
|
from .ReformulationSequenceCreation import buildTupleUnpacking
|
|
105
92
|
from .ReformulationTryExceptStatements import makeTryExceptSingleHandlerNode
|
|
106
|
-
from .ReformulationTryFinallyStatements import
|
|
93
|
+
from .ReformulationTryFinallyStatements import (
|
|
94
|
+
makeTryFinallyReleaseStatement,
|
|
95
|
+
makeTryFinallyStatement,
|
|
96
|
+
)
|
|
107
97
|
from .TreeHelpers import (
|
|
108
98
|
buildFrameNode,
|
|
109
|
-
buildNode,
|
|
110
99
|
buildNodeTuple,
|
|
111
100
|
extractDocFromBody,
|
|
112
101
|
getKind,
|
|
@@ -133,27 +122,54 @@ def _buildBasesTupleCreationNode(provider, elements, source_ref):
|
|
|
133
122
|
)
|
|
134
123
|
|
|
135
124
|
|
|
125
|
+
def _selectClassBody(_static_qualname):
|
|
126
|
+
if isExperimental("force-p2-class"):
|
|
127
|
+
return ExpressionClassDictBody
|
|
128
|
+
else:
|
|
129
|
+
return ExpressionClassMappingBody
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def _needsOrigBases(_static_qualname):
|
|
133
|
+
if isExperimental("force-p2-class"):
|
|
134
|
+
return False
|
|
135
|
+
elif python_version < 0x370:
|
|
136
|
+
return False
|
|
137
|
+
else:
|
|
138
|
+
return True
|
|
139
|
+
|
|
140
|
+
|
|
136
141
|
def buildClassNode3(provider, node, source_ref):
|
|
137
142
|
# Many variables, due to the huge re-formulation that is going on here,
|
|
138
143
|
# which just has the complexity and optimization checks:
|
|
139
|
-
# pylint: disable=
|
|
144
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
140
145
|
|
|
141
146
|
# This function is the Python3 special case with special re-formulation as
|
|
142
147
|
# according to Developer Manual.
|
|
148
|
+
|
|
149
|
+
# First, allow plugins to modify the code if they want to.
|
|
150
|
+
Plugins.onClassBodyParsing(provider=provider, class_name=node.name, node=node)
|
|
151
|
+
|
|
143
152
|
class_statement_nodes, class_doc = extractDocFromBody(node)
|
|
144
153
|
|
|
145
154
|
# We need a scope for the temporary variables, and they might be closured.
|
|
146
155
|
temp_scope = provider.allocateTempScope(name="class_creation")
|
|
147
156
|
|
|
148
157
|
tmp_class_decl_dict = provider.allocateTempVariable(
|
|
149
|
-
temp_scope=temp_scope, name="class_decl_dict"
|
|
158
|
+
temp_scope=temp_scope, name="class_decl_dict", temp_type="object"
|
|
150
159
|
)
|
|
151
160
|
tmp_metaclass = provider.allocateTempVariable(
|
|
152
|
-
temp_scope=temp_scope, name="metaclass"
|
|
161
|
+
temp_scope=temp_scope, name="metaclass", temp_type="object"
|
|
162
|
+
)
|
|
163
|
+
tmp_prepared = provider.allocateTempVariable(
|
|
164
|
+
temp_scope=temp_scope, name="prepared", temp_type="object"
|
|
153
165
|
)
|
|
154
|
-
tmp_prepared = provider.allocateTempVariable(temp_scope=temp_scope, name="prepared")
|
|
155
166
|
|
|
156
|
-
|
|
167
|
+
# Can be overridden, but for code object creation, we use that.
|
|
168
|
+
static_qualname = provider.getChildQualname(node.name)
|
|
169
|
+
|
|
170
|
+
class_body_class = _selectClassBody(static_qualname)
|
|
171
|
+
|
|
172
|
+
class_creation_function = class_body_class(
|
|
157
173
|
provider=provider, name=node.name, doc=class_doc, source_ref=source_ref
|
|
158
174
|
)
|
|
159
175
|
|
|
@@ -174,7 +190,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
174
190
|
|
|
175
191
|
code_object = CodeObjectSpec(
|
|
176
192
|
co_name=node.name,
|
|
177
|
-
co_qualname=
|
|
193
|
+
co_qualname=static_qualname,
|
|
178
194
|
co_kind="Class",
|
|
179
195
|
co_varnames=(),
|
|
180
196
|
co_freevars=(),
|
|
@@ -255,7 +271,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
255
271
|
)
|
|
256
272
|
)
|
|
257
273
|
|
|
258
|
-
if python_version >=
|
|
274
|
+
if python_version >= 0x300:
|
|
259
275
|
qualname_assign = statements[-1]
|
|
260
276
|
|
|
261
277
|
if python_version >= 0x360 and class_creation_function.needsAnnotationsDictionary():
|
|
@@ -272,12 +288,16 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
272
288
|
|
|
273
289
|
statements.append(body)
|
|
274
290
|
|
|
291
|
+
needs_orig_bases = _needsOrigBases(static_qualname)
|
|
292
|
+
|
|
275
293
|
if node.bases:
|
|
276
|
-
tmp_bases = provider.allocateTempVariable(
|
|
294
|
+
tmp_bases = provider.allocateTempVariable(
|
|
295
|
+
temp_scope=temp_scope, name="bases", temp_type="object"
|
|
296
|
+
)
|
|
277
297
|
|
|
278
|
-
if
|
|
298
|
+
if needs_orig_bases:
|
|
279
299
|
tmp_bases_orig = provider.allocateTempVariable(
|
|
280
|
-
temp_scope=temp_scope, name="bases_orig"
|
|
300
|
+
temp_scope=temp_scope, name="bases_orig", temp_type="object"
|
|
281
301
|
)
|
|
282
302
|
|
|
283
303
|
def makeBasesRef():
|
|
@@ -288,7 +308,9 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
288
308
|
def makeBasesRef():
|
|
289
309
|
return makeConstantRefNode(constant=(), source_ref=source_ref)
|
|
290
310
|
|
|
291
|
-
|
|
311
|
+
needs_orig_bases = False
|
|
312
|
+
|
|
313
|
+
if node.bases and needs_orig_bases:
|
|
292
314
|
statements.append(
|
|
293
315
|
makeStatementConditional(
|
|
294
316
|
condition=makeComparisonExpression(
|
|
@@ -345,6 +367,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
345
367
|
StatementReturn(expression=class_variable_ref, source_ref=source_ref),
|
|
346
368
|
)
|
|
347
369
|
|
|
370
|
+
# TODO: Is this something similar to makeTryFinallyReleaseStatement
|
|
348
371
|
body = makeStatementsSequenceFromStatement(
|
|
349
372
|
statement=makeTryFinallyStatement(
|
|
350
373
|
provider=class_creation_function,
|
|
@@ -378,17 +401,12 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
378
401
|
source_ref=decorator.getSourceReference(),
|
|
379
402
|
)
|
|
380
403
|
|
|
381
|
-
if node.keywords and node.keywords[-1].arg is None:
|
|
382
|
-
keywords = node.keywords[:-1]
|
|
383
|
-
else:
|
|
384
|
-
keywords = node.keywords
|
|
385
|
-
|
|
386
404
|
statements = []
|
|
387
405
|
|
|
388
406
|
if node.bases:
|
|
389
407
|
statements.append(
|
|
390
408
|
makeStatementAssignmentVariable(
|
|
391
|
-
variable=
|
|
409
|
+
variable=tmp_bases_orig if needs_orig_bases else tmp_bases,
|
|
392
410
|
source=_buildBasesTupleCreationNode(
|
|
393
411
|
provider=provider, elements=node.bases, source_ref=source_ref
|
|
394
412
|
),
|
|
@@ -396,7 +414,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
396
414
|
)
|
|
397
415
|
)
|
|
398
416
|
|
|
399
|
-
if
|
|
417
|
+
if needs_orig_bases:
|
|
400
418
|
bases_conversion = makeExpressionFunctionCall(
|
|
401
419
|
function=makeExpressionFunctionCreation(
|
|
402
420
|
function_ref=ExpressionFunctionRef(
|
|
@@ -422,32 +440,35 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
422
440
|
)
|
|
423
441
|
)
|
|
424
442
|
|
|
443
|
+
# TODO: It's not really clear, since when those in the middle keywords are accepted
|
|
444
|
+
# and not a SyntaxError, and if then we might have to raise it.
|
|
445
|
+
keyword_keys = tuple(keyword.arg for keyword in node.keywords)
|
|
446
|
+
keyword_values = tuple(keyword.value for keyword in node.keywords)
|
|
447
|
+
|
|
448
|
+
if None in keyword_keys:
|
|
449
|
+
assert python_version >= 0x350
|
|
450
|
+
|
|
451
|
+
make_keywords_dict = buildDictionaryUnpacking(
|
|
452
|
+
provider,
|
|
453
|
+
keys=keyword_keys,
|
|
454
|
+
values=keyword_values,
|
|
455
|
+
source_ref=source_ref,
|
|
456
|
+
)
|
|
457
|
+
else:
|
|
458
|
+
make_keywords_dict = makeDictCreationOrConstant2(
|
|
459
|
+
keys=keyword_keys,
|
|
460
|
+
values=buildNodeTuple(provider, keyword_values, source_ref),
|
|
461
|
+
source_ref=source_ref,
|
|
462
|
+
)
|
|
463
|
+
|
|
425
464
|
statements.append(
|
|
426
465
|
makeStatementAssignmentVariable(
|
|
427
466
|
variable=tmp_class_decl_dict,
|
|
428
|
-
source=
|
|
429
|
-
keys=[keyword.arg for keyword in keywords],
|
|
430
|
-
values=[
|
|
431
|
-
buildNode(provider, keyword.value, source_ref)
|
|
432
|
-
for keyword in keywords
|
|
433
|
-
],
|
|
434
|
-
source_ref=source_ref,
|
|
435
|
-
),
|
|
467
|
+
source=make_keywords_dict,
|
|
436
468
|
source_ref=source_ref,
|
|
437
469
|
)
|
|
438
470
|
)
|
|
439
471
|
|
|
440
|
-
if node.keywords and node.keywords[-1].arg is None:
|
|
441
|
-
statements.append(
|
|
442
|
-
StatementDictOperationUpdate(
|
|
443
|
-
dict_arg=ExpressionVariableRef(
|
|
444
|
-
variable=tmp_class_decl_dict, source_ref=source_ref
|
|
445
|
-
),
|
|
446
|
-
value=buildNode(provider, node.keywords[-1].value, source_ref),
|
|
447
|
-
source_ref=source_ref,
|
|
448
|
-
)
|
|
449
|
-
)
|
|
450
|
-
|
|
451
472
|
# Check if there are bases, and if there are, go with the type of the
|
|
452
473
|
# first base class as a metaclass unless it was specified in the class
|
|
453
474
|
# decl dict of course.
|
|
@@ -465,7 +486,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
465
486
|
|
|
466
487
|
# Might become empty behind our back during conversion, therefore make the
|
|
467
488
|
# check at run time for 3.7 or higher.
|
|
468
|
-
if
|
|
489
|
+
if needs_orig_bases:
|
|
469
490
|
unspecified_metaclass_expression = ExpressionConditional(
|
|
470
491
|
condition=ExpressionTempVariableRef(
|
|
471
492
|
variable=tmp_bases, source_ref=source_ref
|
|
@@ -553,6 +574,17 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
553
574
|
),
|
|
554
575
|
)
|
|
555
576
|
|
|
577
|
+
if class_body_class is ExpressionClassDictBody:
|
|
578
|
+
prepare_condition = makeConstantRefNode(constant=False, source_ref=source_ref)
|
|
579
|
+
else:
|
|
580
|
+
prepare_condition = ExpressionAttributeCheck(
|
|
581
|
+
expression=ExpressionTempVariableRef(
|
|
582
|
+
variable=tmp_metaclass, source_ref=source_ref
|
|
583
|
+
),
|
|
584
|
+
attribute_name="__prepare__",
|
|
585
|
+
source_ref=source_ref,
|
|
586
|
+
)
|
|
587
|
+
|
|
556
588
|
statements += (
|
|
557
589
|
makeStatementAssignmentVariable(
|
|
558
590
|
variable=tmp_metaclass,
|
|
@@ -611,13 +643,7 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
611
643
|
source_ref=source_ref,
|
|
612
644
|
),
|
|
613
645
|
makeStatementConditional(
|
|
614
|
-
condition=
|
|
615
|
-
expression=ExpressionTempVariableRef(
|
|
616
|
-
variable=tmp_metaclass, source_ref=source_ref
|
|
617
|
-
),
|
|
618
|
-
attribute_name="__prepare__",
|
|
619
|
-
source_ref=source_ref,
|
|
620
|
-
),
|
|
646
|
+
condition=prepare_condition,
|
|
621
647
|
yes_branch=call_prepare,
|
|
622
648
|
no_branch=makeStatementAssignmentVariable(
|
|
623
649
|
variable=tmp_prepared,
|
|
@@ -636,21 +662,19 @@ def buildClassNode3(provider, node, source_ref):
|
|
|
636
662
|
),
|
|
637
663
|
)
|
|
638
664
|
|
|
639
|
-
if python_version >=
|
|
665
|
+
if python_version >= 0x300:
|
|
640
666
|
class_creation_function.qualname_setup = node.name, qualname_assign
|
|
641
667
|
|
|
642
668
|
tmp_variables = [tmp_class_decl_dict, tmp_metaclass, tmp_prepared]
|
|
643
669
|
if node.bases:
|
|
644
670
|
tmp_variables.insert(0, tmp_bases)
|
|
645
|
-
if
|
|
671
|
+
if needs_orig_bases:
|
|
646
672
|
tmp_variables.insert(0, tmp_bases_orig)
|
|
647
673
|
|
|
648
|
-
return
|
|
674
|
+
return makeTryFinallyReleaseStatement(
|
|
649
675
|
provider=provider,
|
|
650
676
|
tried=statements,
|
|
651
|
-
|
|
652
|
-
variables=tmp_variables, source_ref=source_ref
|
|
653
|
-
),
|
|
677
|
+
variables=tmp_variables,
|
|
654
678
|
source_ref=source_ref,
|
|
655
679
|
)
|
|
656
680
|
|
|
@@ -677,9 +701,15 @@ def getClassBasesMroConversionHelper():
|
|
|
677
701
|
|
|
678
702
|
temp_scope = None
|
|
679
703
|
|
|
680
|
-
tmp_result_variable = result.allocateTempVariable(
|
|
681
|
-
|
|
682
|
-
|
|
704
|
+
tmp_result_variable = result.allocateTempVariable(
|
|
705
|
+
temp_scope, "list", temp_type="object"
|
|
706
|
+
)
|
|
707
|
+
tmp_iter_variable = result.allocateTempVariable(
|
|
708
|
+
temp_scope, "iter", temp_type="object"
|
|
709
|
+
)
|
|
710
|
+
tmp_item_variable = result.allocateTempVariable(
|
|
711
|
+
temp_scope, "base", temp_type="object"
|
|
712
|
+
)
|
|
683
713
|
|
|
684
714
|
args_variable = result.getVariableForAssignment(variable_name="bases")
|
|
685
715
|
|
|
@@ -800,17 +830,14 @@ def getClassBasesMroConversionHelper():
|
|
|
800
830
|
|
|
801
831
|
result.setChildBody(
|
|
802
832
|
makeStatementsSequenceFromStatement(
|
|
803
|
-
|
|
833
|
+
makeTryFinallyReleaseStatement(
|
|
804
834
|
provider=result,
|
|
805
835
|
tried=tried,
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
tmp_item_variable,
|
|
812
|
-
),
|
|
813
|
-
source_ref=internal_source_ref,
|
|
836
|
+
variables=(
|
|
837
|
+
args_variable,
|
|
838
|
+
tmp_result_variable,
|
|
839
|
+
tmp_iter_variable,
|
|
840
|
+
tmp_item_variable,
|
|
814
841
|
),
|
|
815
842
|
source_ref=internal_source_ref,
|
|
816
843
|
)
|
|
@@ -891,10 +918,18 @@ def getClassSelectMetaClassHelper():
|
|
|
891
918
|
|
|
892
919
|
temp_scope = None
|
|
893
920
|
|
|
894
|
-
tmp_winner_variable = result.allocateTempVariable(
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
921
|
+
tmp_winner_variable = result.allocateTempVariable(
|
|
922
|
+
temp_scope, "winner", temp_type="object"
|
|
923
|
+
)
|
|
924
|
+
tmp_iter_variable = result.allocateTempVariable(
|
|
925
|
+
temp_scope, "iter", temp_type="object"
|
|
926
|
+
)
|
|
927
|
+
tmp_item_variable = result.allocateTempVariable(
|
|
928
|
+
temp_scope, "base", temp_type="object"
|
|
929
|
+
)
|
|
930
|
+
tmp_item_type_variable = result.allocateTempVariable(
|
|
931
|
+
temp_scope, "base_type", temp_type="object"
|
|
932
|
+
)
|
|
898
933
|
|
|
899
934
|
# For non-types, the metaclass cannot be overruled by bases.
|
|
900
935
|
non_type_case = StatementReturn(
|
|
@@ -1006,17 +1041,14 @@ def getClassSelectMetaClassHelper():
|
|
|
1006
1041
|
|
|
1007
1042
|
result.setChildBody(
|
|
1008
1043
|
makeStatementsSequenceFromStatement(
|
|
1009
|
-
|
|
1044
|
+
makeTryFinallyReleaseStatement(
|
|
1010
1045
|
provider=result,
|
|
1011
1046
|
tried=tried,
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
tmp_item_type_variable,
|
|
1018
|
-
),
|
|
1019
|
-
source_ref=internal_source_ref,
|
|
1047
|
+
variables=(
|
|
1048
|
+
tmp_winner_variable,
|
|
1049
|
+
tmp_iter_variable,
|
|
1050
|
+
tmp_item_variable,
|
|
1051
|
+
tmp_item_type_variable,
|
|
1020
1052
|
),
|
|
1021
1053
|
source_ref=internal_source_ref,
|
|
1022
1054
|
)
|
|
@@ -1024,3 +1056,19 @@ def getClassSelectMetaClassHelper():
|
|
|
1024
1056
|
)
|
|
1025
1057
|
|
|
1026
1058
|
return result
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1062
|
+
# integrates with CPython, but also works on its own.
|
|
1063
|
+
#
|
|
1064
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1065
|
+
# you may not use this file except in compliance with the License.
|
|
1066
|
+
# You may obtain a copy of the License at
|
|
1067
|
+
#
|
|
1068
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1069
|
+
#
|
|
1070
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1071
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1072
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1073
|
+
# See the License for the specific language governing permissions and
|
|
1074
|
+
# 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
|
""" Reformulation of comparison chain expressions.
|
|
19
5
|
|
|
20
6
|
Consult the Developer Manual for information. TODO: Add ability to sync
|
|
@@ -29,9 +15,8 @@ from nuitka.nodes.OutlineNodes import ExpressionOutlineBody
|
|
|
29
15
|
from nuitka.nodes.ReturnNodes import StatementReturn
|
|
30
16
|
from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
|
|
31
17
|
from nuitka.nodes.VariableRefNodes import ExpressionTempVariableRef
|
|
32
|
-
from nuitka.nodes.VariableReleaseNodes import makeStatementReleaseVariable
|
|
33
18
|
|
|
34
|
-
from .ReformulationTryFinallyStatements import
|
|
19
|
+
from .ReformulationTryFinallyStatements import makeTryFinallyReleaseStatement
|
|
35
20
|
from .TreeHelpers import (
|
|
36
21
|
buildNode,
|
|
37
22
|
getKind,
|
|
@@ -82,12 +67,14 @@ def buildComplexComparisonNode(provider, left, rights, comparators, source_ref):
|
|
|
82
67
|
)
|
|
83
68
|
|
|
84
69
|
variables = [
|
|
85
|
-
outline_body.allocateTempVariable(
|
|
70
|
+
outline_body.allocateTempVariable(
|
|
71
|
+
temp_scope=None, name="operand_%d" % count, temp_type="object"
|
|
72
|
+
)
|
|
86
73
|
for count in range(2, len(rights) + 2)
|
|
87
74
|
]
|
|
88
75
|
|
|
89
76
|
tmp_variable = outline_body.allocateTempVariable(
|
|
90
|
-
temp_scope=None, name="comparison_result"
|
|
77
|
+
temp_scope=None, name="comparison_result", temp_type="object"
|
|
91
78
|
)
|
|
92
79
|
|
|
93
80
|
def makeTempAssignment(count, value):
|
|
@@ -95,11 +82,6 @@ def buildComplexComparisonNode(provider, left, rights, comparators, source_ref):
|
|
|
95
82
|
variable=variables[count], source=value, source_ref=source_ref
|
|
96
83
|
)
|
|
97
84
|
|
|
98
|
-
def makeReleaseStatement(count):
|
|
99
|
-
return makeStatementReleaseVariable(
|
|
100
|
-
variable=variables[count], source_ref=source_ref
|
|
101
|
-
)
|
|
102
|
-
|
|
103
85
|
def makeValueComparisonReturn(left, right, comparator):
|
|
104
86
|
yield makeStatementAssignmentVariable(
|
|
105
87
|
variable=tmp_variable,
|
|
@@ -127,12 +109,12 @@ def buildComplexComparisonNode(provider, left, rights, comparators, source_ref):
|
|
|
127
109
|
)
|
|
128
110
|
|
|
129
111
|
statements = []
|
|
130
|
-
|
|
112
|
+
release_variables = []
|
|
131
113
|
|
|
132
114
|
for count, value in enumerate(rights):
|
|
133
115
|
if value is not rights[-1]:
|
|
134
116
|
statements.append(makeTempAssignment(count, value))
|
|
135
|
-
|
|
117
|
+
release_variables.append(variables[count])
|
|
136
118
|
right = ExpressionTempVariableRef(
|
|
137
119
|
variable=variables[count], source_ref=source_ref
|
|
138
120
|
)
|
|
@@ -160,21 +142,33 @@ def buildComplexComparisonNode(provider, left, rights, comparators, source_ref):
|
|
|
160
142
|
source_ref=source_ref,
|
|
161
143
|
)
|
|
162
144
|
)
|
|
163
|
-
|
|
164
|
-
makeStatementReleaseVariable(
|
|
165
|
-
variable=tmp_variable, source_ref=source_ref
|
|
166
|
-
)
|
|
167
|
-
)
|
|
145
|
+
release_variables.append(tmp_variable)
|
|
168
146
|
|
|
169
147
|
outline_body.setChildBody(
|
|
170
148
|
makeStatementsSequenceFromStatement(
|
|
171
|
-
statement=
|
|
149
|
+
statement=makeTryFinallyReleaseStatement(
|
|
172
150
|
provider=outline_body,
|
|
173
151
|
tried=statements,
|
|
174
|
-
|
|
152
|
+
variables=release_variables,
|
|
175
153
|
source_ref=source_ref,
|
|
176
154
|
)
|
|
177
155
|
)
|
|
178
156
|
)
|
|
179
157
|
|
|
180
158
|
return outline_body
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
162
|
+
# integrates with CPython, but also works on its own.
|
|
163
|
+
#
|
|
164
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
165
|
+
# you may not use this file except in compliance with the License.
|
|
166
|
+
# You may obtain a copy of the License at
|
|
167
|
+
#
|
|
168
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
169
|
+
#
|
|
170
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
171
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
172
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
173
|
+
# See the License for the specific language governing permissions and
|
|
174
|
+
# limitations under the License.
|