Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__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.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -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 +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- 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 +93 -54
- 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 +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- 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 +717 -171
- 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 -22
- 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 +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- 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 +89 -51
- 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 +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- 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 +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -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_dual_add.h +34 -0
- 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 +23 -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 +20 -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 +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -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 +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- 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 +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -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/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -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 +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- 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 +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- 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 +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- 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 +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- 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 +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- 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 +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- 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 +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- 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 +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- 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 +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -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 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- 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 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- 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/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- 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 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- 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 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- 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 +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- 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 +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- 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 +25 -21
- 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 +73 -40
- 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 +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- 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 +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- 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 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- 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 +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- 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 +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- 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 +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- 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/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -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 +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- 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 +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -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 +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- 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 +29 -22
- 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 +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- 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 +39 -30
- 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 +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -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 +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -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 +44 -24
- 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 +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- 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 +132 -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.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
nuitka/nodes/IndicatorMixins.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Module for node class mixins that indicate runtime determined node facts.
|
|
19
5
|
|
|
20
6
|
These come into play after finalization only. All of the these attributes (and
|
|
@@ -75,3 +61,19 @@ class EntryPointMixin(object):
|
|
|
75
61
|
|
|
76
62
|
def getTraceCollection(self):
|
|
77
63
|
return self.trace_collection
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
67
|
+
# integrates with CPython, but also works on its own.
|
|
68
|
+
#
|
|
69
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
70
|
+
# you may not use this file except in compliance with the License.
|
|
71
|
+
# You may obtain a copy of the License at
|
|
72
|
+
#
|
|
73
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
74
|
+
#
|
|
75
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
76
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
77
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
78
|
+
# See the License for the specific language governing permissions and
|
|
79
|
+
# limitations under the License.
|
nuitka/nodes/InjectCNodes.py
CHANGED
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
#
|
|
3
|
-
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
-
#
|
|
18
|
-
""" Nodes to inject C code into generated code. """
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
19
2
|
|
|
20
3
|
|
|
4
|
+
""" Nodes to inject C code into generated code. """
|
|
5
|
+
|
|
21
6
|
from .NodeBases import StatementBase
|
|
22
7
|
|
|
23
8
|
|
|
@@ -48,3 +33,19 @@ class StatementInjectCDecl(StatementInjectCBase):
|
|
|
48
33
|
kind = "STATEMENT_INJECT_C_DECL"
|
|
49
34
|
|
|
50
35
|
__slots__ = ("c_code",)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
39
|
+
# integrates with CPython, but also works on its own.
|
|
40
|
+
#
|
|
41
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
42
|
+
# you may not use this file except in compliance with the License.
|
|
43
|
+
# You may obtain a copy of the License at
|
|
44
|
+
#
|
|
45
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
46
|
+
#
|
|
47
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
48
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
49
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
50
|
+
# See the License for the specific language governing permissions and
|
|
51
|
+
# limitations under the License.
|
nuitka/nodes/IterationHandles.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Batakrishna Sahu, mailto:<Batakrishna.Sahu@suiit.ac.in> find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Node for Iteration Handles.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -22,12 +8,15 @@
|
|
|
22
8
|
import math
|
|
23
9
|
from abc import abstractmethod
|
|
24
10
|
|
|
25
|
-
from nuitka.__past__ import
|
|
11
|
+
from nuitka.__past__ import xrange
|
|
12
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
26
13
|
|
|
27
14
|
|
|
28
|
-
class IterationHandleBase(getMetaClassBase("IterationHandle")):
|
|
15
|
+
class IterationHandleBase(getMetaClassBase("IterationHandle", require_slots=True)):
|
|
29
16
|
"""Base class for Iteration Handles."""
|
|
30
17
|
|
|
18
|
+
__slots__ = ()
|
|
19
|
+
|
|
31
20
|
@abstractmethod
|
|
32
21
|
def getNextValueExpression(self):
|
|
33
22
|
"""Abstract method to get next iteration value."""
|
|
@@ -93,6 +82,11 @@ class ConstantIterationHandleBase(IterationHandleBase):
|
|
|
93
82
|
Returns the boolean value of the next handle
|
|
94
83
|
"""
|
|
95
84
|
|
|
85
|
+
__slots__ = (
|
|
86
|
+
"constant_node",
|
|
87
|
+
"iter",
|
|
88
|
+
)
|
|
89
|
+
|
|
96
90
|
def __init__(self, constant_node):
|
|
97
91
|
assert constant_node.isIterableConstant()
|
|
98
92
|
|
|
@@ -142,8 +136,7 @@ class ConstantIndexableIterationHandle(ConstantIterationHandleBase):
|
|
|
142
136
|
Sequential access of the constants
|
|
143
137
|
"""
|
|
144
138
|
|
|
145
|
-
|
|
146
|
-
ConstantIterationHandleBase.__init__(self, constant_node)
|
|
139
|
+
__slots__ = ()
|
|
147
140
|
|
|
148
141
|
def getIterationValueWithIndex(self, value_index):
|
|
149
142
|
"""Tries to return constant value at the given index.
|
|
@@ -165,50 +158,49 @@ class ConstantIndexableIterationHandle(ConstantIterationHandleBase):
|
|
|
165
158
|
|
|
166
159
|
|
|
167
160
|
class ConstantTupleIterationHandle(ConstantIndexableIterationHandle):
|
|
168
|
-
|
|
161
|
+
__slots__ = ()
|
|
169
162
|
|
|
170
163
|
|
|
171
164
|
class ConstantListIterationHandle(ConstantIndexableIterationHandle):
|
|
172
|
-
|
|
165
|
+
__slots__ = ()
|
|
173
166
|
|
|
174
167
|
|
|
175
168
|
class ConstantStrIterationHandle(ConstantIndexableIterationHandle):
|
|
176
|
-
|
|
169
|
+
__slots__ = ()
|
|
177
170
|
|
|
178
171
|
|
|
179
172
|
class ConstantUnicodeIterationHandle(ConstantIndexableIterationHandle):
|
|
180
|
-
|
|
173
|
+
__slots__ = ()
|
|
181
174
|
|
|
182
175
|
|
|
183
176
|
class ConstantBytesIterationHandle(ConstantIndexableIterationHandle):
|
|
184
|
-
|
|
177
|
+
__slots__ = ()
|
|
185
178
|
|
|
186
179
|
|
|
187
180
|
class ConstantBytearrayIterationHandle(ConstantIndexableIterationHandle):
|
|
188
|
-
|
|
181
|
+
__slots__ = ()
|
|
189
182
|
|
|
190
183
|
|
|
191
184
|
class ConstantRangeIterationHandle(ConstantIndexableIterationHandle):
|
|
192
|
-
|
|
185
|
+
__slots__ = ()
|
|
193
186
|
|
|
194
187
|
|
|
195
188
|
class ConstantSetAndDictIterationHandleBase(ConstantIterationHandleBase):
|
|
196
189
|
"""Class for the set and dictionary constants."""
|
|
197
190
|
|
|
198
|
-
|
|
199
|
-
ConstantIterationHandleBase.__init__(self, constant_node)
|
|
191
|
+
__slots__ = ()
|
|
200
192
|
|
|
201
193
|
|
|
202
194
|
class ConstantSetIterationHandle(ConstantSetAndDictIterationHandleBase):
|
|
203
|
-
|
|
195
|
+
__slots__ = ()
|
|
204
196
|
|
|
205
197
|
|
|
206
198
|
class ConstantFrozensetIterationHandle(ConstantSetAndDictIterationHandleBase):
|
|
207
|
-
|
|
199
|
+
__slots__ = ()
|
|
208
200
|
|
|
209
201
|
|
|
210
202
|
class ConstantDictIterationHandle(ConstantSetAndDictIterationHandleBase):
|
|
211
|
-
|
|
203
|
+
__slots__ = ()
|
|
212
204
|
|
|
213
205
|
|
|
214
206
|
class ListAndTupleContainerMakingIterationHandle(IterationHandleBase):
|
|
@@ -232,6 +224,8 @@ class ListAndTupleContainerMakingIterationHandle(IterationHandleBase):
|
|
|
232
224
|
Sequential access of the expression
|
|
233
225
|
"""
|
|
234
226
|
|
|
227
|
+
__slots__ = ("elements", "iter")
|
|
228
|
+
|
|
235
229
|
def __init__(self, elements):
|
|
236
230
|
self.elements = elements
|
|
237
231
|
self.iter = iter(self.elements)
|
|
@@ -272,11 +266,13 @@ class RangeIterationHandleBase(IterationHandleBase):
|
|
|
272
266
|
high : int
|
|
273
267
|
Optional. An integer number specifying at which position to end.
|
|
274
268
|
step : int
|
|
275
|
-
Optional. An integer number specifying the
|
|
269
|
+
Optional. An integer number specifying the increment. Default is 1
|
|
276
270
|
"""
|
|
277
271
|
|
|
278
272
|
step = 1
|
|
279
273
|
|
|
274
|
+
__slots__ = ("low", "iter", "source_ref")
|
|
275
|
+
|
|
280
276
|
def __init__(self, low_value, range_value, source_ref):
|
|
281
277
|
self.low = low_value
|
|
282
278
|
self.iter = iter(range_value)
|
|
@@ -332,6 +328,8 @@ class RangeIterationHandleBase(IterationHandleBase):
|
|
|
332
328
|
class IterationHandleRange1(RangeIterationHandleBase):
|
|
333
329
|
"""Iteration handle for range(low,)"""
|
|
334
330
|
|
|
331
|
+
__slots__ = ()
|
|
332
|
+
|
|
335
333
|
def __init__(self, low_value, source_ref):
|
|
336
334
|
RangeIterationHandleBase.__init__(
|
|
337
335
|
self, low_value, xrange(low_value), source_ref
|
|
@@ -348,6 +346,8 @@ class IterationHandleRange1(RangeIterationHandleBase):
|
|
|
348
346
|
class IterationHandleRange2(RangeIterationHandleBase):
|
|
349
347
|
"""Iteration handle for ranges(low, high)"""
|
|
350
348
|
|
|
349
|
+
__slots__ = ("high",)
|
|
350
|
+
|
|
351
351
|
def __init__(self, low_value, high_value, source_ref):
|
|
352
352
|
RangeIterationHandleBase.__init__(
|
|
353
353
|
self, low_value, xrange(low_value, high_value), source_ref
|
|
@@ -362,6 +362,11 @@ class IterationHandleRange2(RangeIterationHandleBase):
|
|
|
362
362
|
class IterationHandleRange3(RangeIterationHandleBase):
|
|
363
363
|
"""Iteration handle for ranges(low, high, step)"""
|
|
364
364
|
|
|
365
|
+
__slots__ = (
|
|
366
|
+
"high",
|
|
367
|
+
"step",
|
|
368
|
+
)
|
|
369
|
+
|
|
365
370
|
def __init__(self, low_value, high_value, step_value, source_ref):
|
|
366
371
|
RangeIterationHandleBase.__init__(
|
|
367
372
|
self, low_value, xrange(low_value, high_value, step_value), source_ref
|
|
@@ -384,3 +389,19 @@ class IterationHandleRange3(RangeIterationHandleBase):
|
|
|
384
389
|
assert estimate >= 0
|
|
385
390
|
|
|
386
391
|
return int(estimate)
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
395
|
+
# integrates with CPython, but also works on its own.
|
|
396
|
+
#
|
|
397
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
398
|
+
# you may not use this file except in compliance with the License.
|
|
399
|
+
# You may obtain a copy of the License at
|
|
400
|
+
#
|
|
401
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
402
|
+
#
|
|
403
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
404
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
405
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
406
|
+
# See the License for the specific language governing permissions and
|
|
407
|
+
# 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
|
""" Dictionary pairs, for use in dictionary building, calls, etc.
|
|
19
5
|
|
|
20
6
|
These represent the a=b part, as they occur in calls, and dictionary
|
|
@@ -374,3 +360,19 @@ def makeKeyValuePairExpressionsFromKwArgs(pairs):
|
|
|
374
360
|
)
|
|
375
361
|
for key, value in pairs
|
|
376
362
|
)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
366
|
+
# integrates with CPython, but also works on its own.
|
|
367
|
+
#
|
|
368
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
369
|
+
# you may not use this file except in compliance with the License.
|
|
370
|
+
# You may obtain a copy of the License at
|
|
371
|
+
#
|
|
372
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
373
|
+
#
|
|
374
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
375
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
376
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
377
|
+
# See the License for the specific language governing permissions and
|
|
378
|
+
# limitations under the License.
|
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
#
|
|
3
|
-
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
-
#
|
|
18
|
-
""" Nodes that build and operate on lists."""
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
19
2
|
|
|
20
3
|
|
|
4
|
+
""" Nodes that build and operate on lists."""
|
|
5
|
+
|
|
21
6
|
# from .ExpressionBasesGenerated import ChildrenExpressionListOperationExtendMixin
|
|
22
7
|
from .ChildrenHavingMixins import (
|
|
23
8
|
ChildHavingListArgMixin,
|
|
@@ -291,17 +276,28 @@ class ExpressionListOperationInsert(
|
|
|
291
276
|
# This lets the value added to the list escape.
|
|
292
277
|
self.subnode_item.onContentEscapes(trace_collection)
|
|
293
278
|
|
|
279
|
+
# Could raise TypeError from wrong index type.
|
|
280
|
+
if self.mayRaiseExceptionOperation():
|
|
281
|
+
trace_collection.onExceptionRaiseExit(TypeError)
|
|
282
|
+
|
|
294
283
|
# it raises no index error, just appends
|
|
295
284
|
return self, None, None
|
|
296
285
|
|
|
297
286
|
def mayRaiseException(self, exception_type):
|
|
298
|
-
return
|
|
287
|
+
return (
|
|
288
|
+
self.subnode_list_arg.mayRaiseException(exception_type)
|
|
289
|
+
or self.mayRaiseExceptionOperation()
|
|
290
|
+
or self.subnode_index.mayRaiseException(exception_type)
|
|
291
|
+
or self.subnode_item.mayRaiseException(exception_type)
|
|
292
|
+
)
|
|
299
293
|
|
|
300
294
|
def mayRaiseExceptionOperation(self):
|
|
301
295
|
# TODO: We do not yet have isIndexable from the type shape.
|
|
296
|
+
# Note that any index value will do for insert, it just has
|
|
297
|
+
# to be an integer.
|
|
302
298
|
return (
|
|
303
|
-
self.
|
|
304
|
-
and self.
|
|
299
|
+
self.subnode_index.isExpressionConstantRef()
|
|
300
|
+
and self.subnode_index.isIndexConstant()
|
|
305
301
|
)
|
|
306
302
|
|
|
307
303
|
|
|
@@ -511,3 +507,19 @@ class ExpressionListOperationSort3(
|
|
|
511
507
|
def mayRaiseExceptionOperation():
|
|
512
508
|
# Only with no knowledge of list values
|
|
513
509
|
return True
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
513
|
+
# integrates with CPython, but also works on its own.
|
|
514
|
+
#
|
|
515
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
516
|
+
# you may not use this file except in compliance with the License.
|
|
517
|
+
# You may obtain a copy of the License at
|
|
518
|
+
#
|
|
519
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
520
|
+
#
|
|
521
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
522
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
523
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
524
|
+
# See the License for the specific language governing permissions and
|
|
525
|
+
# limitations under the License.
|
nuitka/nodes/LocalsDictNodes.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Nodes that deal with locals, as dict or mapping.
|
|
19
5
|
|
|
20
6
|
The mapping types can be optimized into dict types, and the ones with
|
|
@@ -713,3 +699,19 @@ class StatementReleaseLocals(StatementBase):
|
|
|
713
699
|
@staticmethod
|
|
714
700
|
def getStatementNiceName():
|
|
715
701
|
return "locals dictionary release statement"
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
705
|
+
# integrates with CPython, but also works on its own.
|
|
706
|
+
#
|
|
707
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
708
|
+
# you may not use this file except in compliance with the License.
|
|
709
|
+
# You may obtain a copy of the License at
|
|
710
|
+
#
|
|
711
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
712
|
+
#
|
|
713
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
714
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
715
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
716
|
+
# See the License for the specific language governing permissions and
|
|
717
|
+
# limitations under the License.
|
nuitka/nodes/LocalsScopes.py
CHANGED
|
@@ -1,25 +1,10 @@
|
|
|
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
|
""" This module maintains the locals dict handles. """
|
|
19
5
|
|
|
20
6
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
21
7
|
from nuitka.Errors import NuitkaOptimizationError
|
|
22
|
-
from nuitka.PythonVersions import python_version
|
|
23
8
|
from nuitka.utils.InstanceCounters import (
|
|
24
9
|
counted_del,
|
|
25
10
|
counted_init,
|
|
@@ -38,9 +23,9 @@ def getLocalsDictType(kind):
|
|
|
38
23
|
locals_scope = LocalsDictExecHandle
|
|
39
24
|
elif kind == "python_function":
|
|
40
25
|
locals_scope = LocalsDictFunctionHandle
|
|
41
|
-
elif kind == "
|
|
26
|
+
elif kind == "python_mapping_class":
|
|
42
27
|
locals_scope = LocalsMappingHandle
|
|
43
|
-
elif kind == "
|
|
28
|
+
elif kind == "python_dict_class":
|
|
44
29
|
locals_scope = LocalsDictHandle
|
|
45
30
|
elif kind == "module_dict":
|
|
46
31
|
locals_scope = GlobalsDictHandle
|
|
@@ -256,7 +241,9 @@ class LocalsDictHandleBase(object):
|
|
|
256
241
|
provider = trace_collection.getOwner()
|
|
257
242
|
|
|
258
243
|
self.propagation[variable_name] = provider.allocateTempVariable(
|
|
259
|
-
temp_scope=None,
|
|
244
|
+
temp_scope=None,
|
|
245
|
+
name=self.getCodeName() + "_key_" + variable_name,
|
|
246
|
+
temp_type="object",
|
|
260
247
|
)
|
|
261
248
|
|
|
262
249
|
return self.propagation[variable_name]
|
|
@@ -359,23 +346,22 @@ class LocalsDictHandle(LocalsDictHandleBase):
|
|
|
359
346
|
|
|
360
347
|
self.markForLocalsDictPropagation()
|
|
361
348
|
|
|
349
|
+
@staticmethod
|
|
350
|
+
def setTypeShape(type_shape):
|
|
351
|
+
pass
|
|
352
|
+
|
|
362
353
|
|
|
363
354
|
class LocalsMappingHandle(LocalsDictHandle):
|
|
364
355
|
"""Locals dict of a Python3 class with a mapping."""
|
|
365
356
|
|
|
366
|
-
__slots__ = ("type_shape",)
|
|
367
|
-
|
|
368
|
-
# TODO: Removable condition once Python 3.3 support is dropped.
|
|
369
|
-
if python_version >= 0x340:
|
|
370
|
-
__slots__ += ("prevented_propagation",)
|
|
357
|
+
__slots__ = ("type_shape", "prevented_propagation")
|
|
371
358
|
|
|
372
359
|
def __init__(self, locals_name, owner):
|
|
373
360
|
LocalsDictHandle.__init__(self, locals_name=locals_name, owner=owner)
|
|
374
361
|
|
|
375
362
|
self.type_shape = tshape_unknown
|
|
376
363
|
|
|
377
|
-
|
|
378
|
-
self.prevented_propagation = False
|
|
364
|
+
self.prevented_propagation = False
|
|
379
365
|
|
|
380
366
|
def getTypeShape(self):
|
|
381
367
|
# TODO: Make mapping available for this.
|
|
@@ -387,22 +373,20 @@ class LocalsMappingHandle(LocalsDictHandle):
|
|
|
387
373
|
def hasShapeDictionaryExact(self):
|
|
388
374
|
return self.type_shape is tshape_dict
|
|
389
375
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
#
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
self.prevented_propagation = False
|
|
397
|
-
return
|
|
376
|
+
def markAsComplete(self, trace_collection):
|
|
377
|
+
# For this run, it cannot be done yet.
|
|
378
|
+
if self.prevented_propagation:
|
|
379
|
+
# False alarm, this is available.
|
|
380
|
+
self.prevented_propagation = False
|
|
381
|
+
return
|
|
398
382
|
|
|
399
|
-
|
|
383
|
+
self.complete = True
|
|
400
384
|
|
|
401
|
-
|
|
402
|
-
|
|
385
|
+
def preventLocalsDictPropagation(self):
|
|
386
|
+
self.prevented_propagation = True
|
|
403
387
|
|
|
404
|
-
|
|
405
|
-
|
|
388
|
+
def isPreventedPropagation(self):
|
|
389
|
+
return self.prevented_propagation
|
|
406
390
|
|
|
407
391
|
def _considerPropagation(self, trace_collection):
|
|
408
392
|
if not self.variables:
|
|
@@ -503,3 +487,19 @@ class GlobalsDictHandle(LocalsDictHandleBase):
|
|
|
503
487
|
|
|
504
488
|
def isEscaped(self):
|
|
505
489
|
return self.escaped
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
493
|
+
# integrates with CPython, but also works on its own.
|
|
494
|
+
#
|
|
495
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
496
|
+
# you may not use this file except in compliance with the License.
|
|
497
|
+
# You may obtain a copy of the License at
|
|
498
|
+
#
|
|
499
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
500
|
+
#
|
|
501
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
502
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
503
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
504
|
+
# See the License for the specific language governing permissions and
|
|
505
|
+
# limitations under the License.
|
nuitka/nodes/LoopNodes.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Loop nodes.
|
|
19
5
|
|
|
20
6
|
There are for and loop nodes, but both are reduced to loops with break/continue
|
|
@@ -145,6 +131,9 @@ class StatementLoop(StatementLoopBase):
|
|
|
145
131
|
current = trace_collection.getVariableCurrentTrace(loop_variable)
|
|
146
132
|
|
|
147
133
|
if all_first_pass:
|
|
134
|
+
if current.isAssignTraceVeryTrusted():
|
|
135
|
+
continue
|
|
136
|
+
|
|
148
137
|
first_pass = True
|
|
149
138
|
|
|
150
139
|
# Remember what we started with, so we can detect changes from outside the
|
|
@@ -153,6 +142,9 @@ class StatementLoop(StatementLoopBase):
|
|
|
153
142
|
self.loop_start[loop_variable] = current
|
|
154
143
|
else:
|
|
155
144
|
if not self.loop_start[loop_variable].compareValueTrace(current):
|
|
145
|
+
if current.isAssignTraceVeryTrusted():
|
|
146
|
+
continue
|
|
147
|
+
|
|
156
148
|
first_pass = True
|
|
157
149
|
self.loop_start[loop_variable] = current
|
|
158
150
|
else:
|
|
@@ -169,6 +161,8 @@ class StatementLoop(StatementLoopBase):
|
|
|
169
161
|
current.getTypeShape().emitAlternatives(
|
|
170
162
|
self.loop_resume[loop_variable].add
|
|
171
163
|
)
|
|
164
|
+
# print("first", self.source_ref, loop_variable, ":",
|
|
165
|
+
# self.loop_resume[loop_variable])
|
|
172
166
|
else:
|
|
173
167
|
if (
|
|
174
168
|
self.loop_resume[loop_variable]
|
|
@@ -189,6 +183,7 @@ class StatementLoop(StatementLoopBase):
|
|
|
189
183
|
incomplete = False
|
|
190
184
|
|
|
191
185
|
# Mark the variable as loop usage before executing it.
|
|
186
|
+
# print("loop merge from shapes", self.loop_resume[loop_variable])
|
|
192
187
|
loop_entry_traces.add(
|
|
193
188
|
(
|
|
194
189
|
loop_variable,
|
|
@@ -432,3 +427,19 @@ class StatementLoopBreak(StatementBase):
|
|
|
432
427
|
@staticmethod
|
|
433
428
|
def getStatementNiceName():
|
|
434
429
|
return "loop break statement"
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
433
|
+
# integrates with CPython, but also works on its own.
|
|
434
|
+
#
|
|
435
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
436
|
+
# you may not use this file except in compliance with the License.
|
|
437
|
+
# You may obtain a copy of the License at
|
|
438
|
+
#
|
|
439
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
440
|
+
#
|
|
441
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
442
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
443
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
444
|
+
# See the License for the specific language governing permissions and
|
|
445
|
+
# limitations under the License.
|