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
|
@@ -1,33 +1,34 @@
|
|
|
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
|
# We are not avoiding these in generated code at all
|
|
19
|
-
# pylint: disable=I0021,too-many-lines
|
|
20
|
-
# pylint: disable=I0021,
|
|
21
|
-
# pylint: disable=I0021,too-many-instance-attributes
|
|
22
|
-
# pylint: disable=I0021,too-many-return-statements
|
|
5
|
+
# pylint: disable=I0021,line-too-long,too-many-instance-attributes,too-many-lines
|
|
6
|
+
# pylint: disable=I0021,too-many-arguments,too-many-return-statements,too-many-statements
|
|
23
7
|
|
|
24
8
|
|
|
25
9
|
"""Children having expression bases
|
|
26
10
|
|
|
27
11
|
WARNING, this code is GENERATED. Modify the template ChildrenHavingMixin.py.j2 instead!
|
|
28
12
|
|
|
29
|
-
spell-checker: ignore append capitalize casefold center
|
|
30
|
-
spell-checker: ignore
|
|
13
|
+
spell-checker: ignore __prepare__ append args autograph capitalize casefold center chars
|
|
14
|
+
spell-checker: ignore clear copy count decode default delete dist distribution_name encode
|
|
15
|
+
spell-checker: ignore encoding end endswith errors exit_code expandtabs
|
|
16
|
+
spell-checker: ignore experimental_attributes experimental_autograph_options
|
|
17
|
+
spell-checker: ignore experimental_compile experimental_follow_type_hints
|
|
18
|
+
spell-checker: ignore experimental_implements experimental_relax_shapes extend fillchar
|
|
19
|
+
spell-checker: ignore find format format_map formatmap fromkeys func get group handle
|
|
20
|
+
spell-checker: ignore has_key haskey index input_signature insert isalnum isalpha isascii
|
|
21
|
+
spell-checker: ignore isdecimal isdigit isidentifier islower isnumeric isprintable isspace
|
|
22
|
+
spell-checker: ignore istitle isupper item items iterable iteritems iterkeys itervalues
|
|
23
|
+
spell-checker: ignore jit_compile join keepends key keys kwargs ljust lower lstrip
|
|
24
|
+
spell-checker: ignore maketrans maxsplit mode name new old p package
|
|
25
|
+
spell-checker: ignore package_or_requirement pairs partition path pop popitem prefix
|
|
26
|
+
spell-checker: ignore prepare reduce_retracing remove replace resource resource_name
|
|
27
|
+
spell-checker: ignore reverse rfind rindex rjust rpartition rsplit rstrip s sep setdefault
|
|
28
|
+
spell-checker: ignore sort split splitlines start startswith stop strip sub suffix
|
|
29
|
+
spell-checker: ignore swapcase table tabsize title translate update upper use_errno
|
|
30
|
+
spell-checker: ignore use_last_error value values viewitems viewkeys viewvalues width
|
|
31
|
+
spell-checker: ignore winmode zfill
|
|
31
32
|
"""
|
|
32
33
|
|
|
33
34
|
|
|
@@ -79,6 +80,80 @@ ExpressionImportlibMetadataBackportEntryPointValueRefBase = (
|
|
|
79
80
|
ExpressionImportlibMetadataEntryPointValueRefBase = NoChildHavingFinalNoRaiseMixin
|
|
80
81
|
|
|
81
82
|
|
|
83
|
+
class NoChildHavingFinalNoRaiseNameMixin(ExpressionBase):
|
|
84
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
85
|
+
__slots__ = ()
|
|
86
|
+
|
|
87
|
+
# This is generated for use in
|
|
88
|
+
# ExpressionTypeVariable
|
|
89
|
+
|
|
90
|
+
def __init__(self, name, source_ref):
|
|
91
|
+
self.name = name
|
|
92
|
+
|
|
93
|
+
ExpressionBase.__init__(self, source_ref)
|
|
94
|
+
|
|
95
|
+
def getDetails(self):
|
|
96
|
+
return {
|
|
97
|
+
"name": self.name,
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
def getVisitableNodes(self):
|
|
101
|
+
"""The visitable nodes, with tuple values flattened."""
|
|
102
|
+
|
|
103
|
+
return ()
|
|
104
|
+
|
|
105
|
+
def getVisitableNodesNamed(self):
|
|
106
|
+
"""Named children dictionary.
|
|
107
|
+
|
|
108
|
+
For use in cloning nodes, debugging and XML output.
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
return ()
|
|
112
|
+
|
|
113
|
+
def replaceChild(self, old_node, new_node):
|
|
114
|
+
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
115
|
+
|
|
116
|
+
def getCloneArgs(self):
|
|
117
|
+
"""Get clones of all children to pass for a new node.
|
|
118
|
+
|
|
119
|
+
Needs to make clones of child nodes too.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
values = {}
|
|
123
|
+
|
|
124
|
+
values.update(self.getDetails())
|
|
125
|
+
|
|
126
|
+
return values
|
|
127
|
+
|
|
128
|
+
def finalize(self):
|
|
129
|
+
del self.parent
|
|
130
|
+
|
|
131
|
+
def computeExpressionRaw(self, trace_collection):
|
|
132
|
+
"""Compute an expression.
|
|
133
|
+
|
|
134
|
+
Default behavior is to just visit the child expressions first, and
|
|
135
|
+
then the node "computeExpression". For a few cases this needs to
|
|
136
|
+
be overloaded, e.g. conditional expressions.
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
return self, None, None
|
|
140
|
+
|
|
141
|
+
@staticmethod
|
|
142
|
+
def mayRaiseExceptionOperation():
|
|
143
|
+
return False
|
|
144
|
+
|
|
145
|
+
@staticmethod
|
|
146
|
+
def mayRaiseException(exception_type):
|
|
147
|
+
return False
|
|
148
|
+
|
|
149
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
150
|
+
"""Collect variable reads and writes of child nodes."""
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
# Assign the names that are easier to import with a stable name.
|
|
154
|
+
ExpressionTypeVariableBase = NoChildHavingFinalNoRaiseNameMixin
|
|
155
|
+
|
|
156
|
+
|
|
82
157
|
class ChildHavingArgsTupleFinalNoRaiseMixin(ExpressionBase):
|
|
83
158
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
84
159
|
__slots__ = ()
|
|
@@ -199,14 +274,218 @@ class ChildHavingArgsTupleFinalNoRaiseMixin(ExpressionBase):
|
|
|
199
274
|
ExpressionBuiltinMakeExceptionBase = ChildHavingArgsTupleFinalNoRaiseMixin
|
|
200
275
|
|
|
201
276
|
|
|
202
|
-
class
|
|
277
|
+
class ChildrenHavingArgsTupleNameOptionalObjOptionalFinalNoRaiseForRaiseMixin(
|
|
278
|
+
ExpressionBase
|
|
279
|
+
):
|
|
280
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
281
|
+
__slots__ = ()
|
|
282
|
+
|
|
283
|
+
# This is generated for use in
|
|
284
|
+
# ExpressionBuiltinMakeExceptionAttributeError
|
|
285
|
+
|
|
286
|
+
def __init__(self, args, name, obj, for_raise, source_ref):
|
|
287
|
+
assert type(args) is tuple
|
|
288
|
+
|
|
289
|
+
for val in args:
|
|
290
|
+
val.parent = self
|
|
291
|
+
|
|
292
|
+
self.subnode_args = args
|
|
293
|
+
|
|
294
|
+
if name is not None:
|
|
295
|
+
name.parent = self
|
|
296
|
+
|
|
297
|
+
self.subnode_name = name
|
|
298
|
+
|
|
299
|
+
if obj is not None:
|
|
300
|
+
obj.parent = self
|
|
301
|
+
|
|
302
|
+
self.subnode_obj = obj
|
|
303
|
+
|
|
304
|
+
self.for_raise = for_raise
|
|
305
|
+
|
|
306
|
+
ExpressionBase.__init__(self, source_ref)
|
|
307
|
+
|
|
308
|
+
def getDetails(self):
|
|
309
|
+
return {
|
|
310
|
+
"for_raise": self.for_raise,
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
def getVisitableNodes(self):
|
|
314
|
+
"""The visitable nodes, with tuple values flattened."""
|
|
315
|
+
|
|
316
|
+
result = []
|
|
317
|
+
result.extend(self.subnode_args)
|
|
318
|
+
value = self.subnode_name
|
|
319
|
+
if value is None:
|
|
320
|
+
pass
|
|
321
|
+
else:
|
|
322
|
+
result.append(value)
|
|
323
|
+
value = self.subnode_obj
|
|
324
|
+
if value is None:
|
|
325
|
+
pass
|
|
326
|
+
else:
|
|
327
|
+
result.append(value)
|
|
328
|
+
return tuple(result)
|
|
329
|
+
|
|
330
|
+
def getVisitableNodesNamed(self):
|
|
331
|
+
"""Named children dictionary.
|
|
332
|
+
|
|
333
|
+
For use in cloning nodes, debugging and XML output.
|
|
334
|
+
"""
|
|
335
|
+
|
|
336
|
+
return (
|
|
337
|
+
("args", self.subnode_args),
|
|
338
|
+
("name", self.subnode_name),
|
|
339
|
+
("obj", self.subnode_obj),
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
def replaceChild(self, old_node, new_node):
|
|
343
|
+
value = self.subnode_args
|
|
344
|
+
if old_node in value:
|
|
345
|
+
if new_node is not None:
|
|
346
|
+
new_node.parent = self
|
|
347
|
+
|
|
348
|
+
self.subnode_args = tuple(
|
|
349
|
+
(val if val is not old_node else new_node) for val in value
|
|
350
|
+
)
|
|
351
|
+
else:
|
|
352
|
+
self.subnode_args = tuple(val for val in value if val is not old_node)
|
|
353
|
+
|
|
354
|
+
return
|
|
355
|
+
|
|
356
|
+
value = self.subnode_name
|
|
357
|
+
if old_node is value:
|
|
358
|
+
if new_node is not None:
|
|
359
|
+
new_node.parent = self
|
|
360
|
+
|
|
361
|
+
self.subnode_name = new_node
|
|
362
|
+
|
|
363
|
+
return
|
|
364
|
+
|
|
365
|
+
value = self.subnode_obj
|
|
366
|
+
if old_node is value:
|
|
367
|
+
if new_node is not None:
|
|
368
|
+
new_node.parent = self
|
|
369
|
+
|
|
370
|
+
self.subnode_obj = new_node
|
|
371
|
+
|
|
372
|
+
return
|
|
373
|
+
|
|
374
|
+
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
375
|
+
|
|
376
|
+
def getCloneArgs(self):
|
|
377
|
+
"""Get clones of all children to pass for a new node.
|
|
378
|
+
|
|
379
|
+
Needs to make clones of child nodes too.
|
|
380
|
+
"""
|
|
381
|
+
|
|
382
|
+
values = {
|
|
383
|
+
"args": tuple(v.makeClone() for v in self.subnode_args),
|
|
384
|
+
"name": (
|
|
385
|
+
self.subnode_name.makeClone() if self.subnode_name is not None else None
|
|
386
|
+
),
|
|
387
|
+
"obj": (
|
|
388
|
+
self.subnode_obj.makeClone() if self.subnode_obj is not None else None
|
|
389
|
+
),
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
values.update(self.getDetails())
|
|
393
|
+
|
|
394
|
+
return values
|
|
395
|
+
|
|
396
|
+
def finalize(self):
|
|
397
|
+
del self.parent
|
|
398
|
+
|
|
399
|
+
for c in self.subnode_args:
|
|
400
|
+
c.finalize()
|
|
401
|
+
del self.subnode_args
|
|
402
|
+
if self.subnode_name is not None:
|
|
403
|
+
self.subnode_name.finalize()
|
|
404
|
+
del self.subnode_name
|
|
405
|
+
if self.subnode_obj is not None:
|
|
406
|
+
self.subnode_obj.finalize()
|
|
407
|
+
del self.subnode_obj
|
|
408
|
+
|
|
409
|
+
def computeExpressionRaw(self, trace_collection):
|
|
410
|
+
"""Compute an expression.
|
|
411
|
+
|
|
412
|
+
Default behavior is to just visit the child expressions first, and
|
|
413
|
+
then the node "computeExpression". For a few cases this needs to
|
|
414
|
+
be overloaded, e.g. conditional expressions.
|
|
415
|
+
"""
|
|
416
|
+
|
|
417
|
+
# First apply the sub-expressions, as they are evaluated before
|
|
418
|
+
# the actual operation.
|
|
419
|
+
for count, sub_expression in enumerate(self.getVisitableNodes()):
|
|
420
|
+
expression = trace_collection.onExpression(sub_expression)
|
|
421
|
+
|
|
422
|
+
if expression.willRaiseAnyException():
|
|
423
|
+
sub_expressions = self.getVisitableNodes()
|
|
424
|
+
|
|
425
|
+
wrapped_expression = wrapExpressionWithSideEffects(
|
|
426
|
+
side_effects=sub_expressions[:count],
|
|
427
|
+
old_node=sub_expression,
|
|
428
|
+
new_node=expression,
|
|
429
|
+
)
|
|
430
|
+
|
|
431
|
+
return (
|
|
432
|
+
wrapped_expression,
|
|
433
|
+
"new_raise",
|
|
434
|
+
lambda: "For '%s' the child expression '%s' will raise."
|
|
435
|
+
% (self.getChildNameNice(), expression.getChildNameNice()),
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
return self, None, None
|
|
439
|
+
|
|
440
|
+
@staticmethod
|
|
441
|
+
def mayRaiseExceptionOperation():
|
|
442
|
+
return False
|
|
443
|
+
|
|
444
|
+
def mayRaiseException(self, exception_type):
|
|
445
|
+
return (
|
|
446
|
+
any(value.mayRaiseException(exception_type) for value in self.subnode_args)
|
|
447
|
+
or (
|
|
448
|
+
self.subnode_name is not None
|
|
449
|
+
and self.subnode_name.mayRaiseException(exception_type)
|
|
450
|
+
)
|
|
451
|
+
or (
|
|
452
|
+
self.subnode_obj is not None
|
|
453
|
+
and self.subnode_obj.mayRaiseException(exception_type)
|
|
454
|
+
)
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
458
|
+
"""Collect variable reads and writes of child nodes."""
|
|
459
|
+
|
|
460
|
+
for element in self.subnode_args:
|
|
461
|
+
element.collectVariableAccesses(emit_read, emit_write)
|
|
462
|
+
subnode_name = self.subnode_name
|
|
463
|
+
|
|
464
|
+
if subnode_name is not None:
|
|
465
|
+
self.subnode_name.collectVariableAccesses(emit_read, emit_write)
|
|
466
|
+
subnode_obj = self.subnode_obj
|
|
467
|
+
|
|
468
|
+
if subnode_obj is not None:
|
|
469
|
+
self.subnode_obj.collectVariableAccesses(emit_read, emit_write)
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
# Assign the names that are easier to import with a stable name.
|
|
473
|
+
ExpressionBuiltinMakeExceptionAttributeErrorBase = (
|
|
474
|
+
ChildrenHavingArgsTupleNameOptionalObjOptionalFinalNoRaiseForRaiseMixin
|
|
475
|
+
)
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
class ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseForRaiseMixin(
|
|
479
|
+
ExpressionBase
|
|
480
|
+
):
|
|
203
481
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
204
482
|
__slots__ = ()
|
|
205
483
|
|
|
206
484
|
# This is generated for use in
|
|
207
485
|
# ExpressionBuiltinMakeExceptionImportError
|
|
486
|
+
# ExpressionBuiltinMakeExceptionModuleNotFoundError
|
|
208
487
|
|
|
209
|
-
def __init__(self, args, name, path, source_ref):
|
|
488
|
+
def __init__(self, args, name, path, for_raise, source_ref):
|
|
210
489
|
assert type(args) is tuple
|
|
211
490
|
|
|
212
491
|
for val in args:
|
|
@@ -224,8 +503,15 @@ class ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseMixin(Expressio
|
|
|
224
503
|
|
|
225
504
|
self.subnode_path = path
|
|
226
505
|
|
|
506
|
+
self.for_raise = for_raise
|
|
507
|
+
|
|
227
508
|
ExpressionBase.__init__(self, source_ref)
|
|
228
509
|
|
|
510
|
+
def getDetails(self):
|
|
511
|
+
return {
|
|
512
|
+
"for_raise": self.for_raise,
|
|
513
|
+
}
|
|
514
|
+
|
|
229
515
|
def getVisitableNodes(self):
|
|
230
516
|
"""The visitable nodes, with tuple values flattened."""
|
|
231
517
|
|
|
@@ -297,12 +583,12 @@ class ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseMixin(Expressio
|
|
|
297
583
|
|
|
298
584
|
values = {
|
|
299
585
|
"args": tuple(v.makeClone() for v in self.subnode_args),
|
|
300
|
-
"name":
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
"path":
|
|
304
|
-
|
|
305
|
-
|
|
586
|
+
"name": (
|
|
587
|
+
self.subnode_name.makeClone() if self.subnode_name is not None else None
|
|
588
|
+
),
|
|
589
|
+
"path": (
|
|
590
|
+
self.subnode_path.makeClone() if self.subnode_path is not None else None
|
|
591
|
+
),
|
|
306
592
|
}
|
|
307
593
|
|
|
308
594
|
values.update(self.getDetails())
|
|
@@ -387,7 +673,10 @@ class ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseMixin(Expressio
|
|
|
387
673
|
|
|
388
674
|
# Assign the names that are easier to import with a stable name.
|
|
389
675
|
ExpressionBuiltinMakeExceptionImportErrorBase = (
|
|
390
|
-
|
|
676
|
+
ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseForRaiseMixin
|
|
677
|
+
)
|
|
678
|
+
ExpressionBuiltinMakeExceptionModuleNotFoundErrorBase = (
|
|
679
|
+
ChildrenHavingArgsTupleNameOptionalPathOptionalFinalNoRaiseForRaiseMixin
|
|
391
680
|
)
|
|
392
681
|
|
|
393
682
|
|
|
@@ -1645,9 +1934,11 @@ class ChildHavingPromptOptionalFinalMixin(ExpressionBase):
|
|
|
1645
1934
|
"""
|
|
1646
1935
|
|
|
1647
1936
|
values = {
|
|
1648
|
-
"prompt":
|
|
1649
|
-
|
|
1650
|
-
|
|
1937
|
+
"prompt": (
|
|
1938
|
+
self.subnode_prompt.makeClone()
|
|
1939
|
+
if self.subnode_prompt is not None
|
|
1940
|
+
else None
|
|
1941
|
+
),
|
|
1651
1942
|
}
|
|
1652
1943
|
|
|
1653
1944
|
values.update(self.getDetails())
|
|
@@ -1795,3 +2086,18 @@ class ChildHavingValueFinalNoRaiseMixin(ExpressionBase):
|
|
|
1795
2086
|
# Assign the names that are easier to import with a stable name.
|
|
1796
2087
|
ExpressionBuiltinClassmethodBase = ChildHavingValueFinalNoRaiseMixin
|
|
1797
2088
|
ExpressionBuiltinStaticmethodBase = ChildHavingValueFinalNoRaiseMixin
|
|
2089
|
+
|
|
2090
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
2091
|
+
# integrates with CPython, but also works on its own.
|
|
2092
|
+
#
|
|
2093
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
2094
|
+
# you may not use this file except in compliance with the License.
|
|
2095
|
+
# You may obtain a copy of the License at
|
|
2096
|
+
#
|
|
2097
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
2098
|
+
#
|
|
2099
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
2100
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
2101
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2102
|
+
# See the License for the specific language governing permissions and
|
|
2103
|
+
# 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
|
"""Mixins for expressions that have specific shapes.
|
|
19
5
|
|
|
20
6
|
Providing derived implementation, such that e.g. for a given shape, shortcuts
|
|
@@ -882,3 +868,19 @@ else:
|
|
|
882
868
|
@staticmethod
|
|
883
869
|
def getTypeShape():
|
|
884
870
|
return tshape_str_or_unicode_derived
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
874
|
+
# integrates with CPython, but also works on its own.
|
|
875
|
+
#
|
|
876
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
877
|
+
# you may not use this file except in compliance with the License.
|
|
878
|
+
# You may obtain a copy of the License at
|
|
879
|
+
#
|
|
880
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
881
|
+
#
|
|
882
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
883
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
884
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
885
|
+
# See the License for the specific language governing permissions and
|
|
886
|
+
# limitations under the License.
|
nuitka/nodes/FrameNodes.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
|
""" Frame nodes.
|
|
19
5
|
|
|
20
6
|
The frame attaches name and other frame properties to a scope, where it is
|
|
@@ -32,7 +18,8 @@ from nuitka.PythonVersions import python_version
|
|
|
32
18
|
|
|
33
19
|
from .CodeObjectSpecs import CodeObjectSpec
|
|
34
20
|
from .FutureSpecs import fromFlags
|
|
35
|
-
from .
|
|
21
|
+
from .StatementBasesGenerated import StatementsSequenceBase
|
|
22
|
+
from .StatementNodes import StatementsSequenceMixin
|
|
36
23
|
|
|
37
24
|
|
|
38
25
|
def checkFrameStatements(value):
|
|
@@ -47,30 +34,39 @@ def checkFrameStatements(value):
|
|
|
47
34
|
return tuple(value)
|
|
48
35
|
|
|
49
36
|
|
|
50
|
-
class StatementsFrameBase(
|
|
37
|
+
class StatementsFrameBase(StatementsSequenceMixin, StatementsSequenceBase):
|
|
51
38
|
checkers = {"statements": checkFrameStatements}
|
|
52
39
|
|
|
53
40
|
__slots__ = ("code_object", "needs_frame_exception_preserve")
|
|
54
41
|
|
|
42
|
+
named_children = ("statements|tuple+setter",)
|
|
43
|
+
|
|
55
44
|
def __init__(self, statements, code_object, source_ref):
|
|
56
|
-
|
|
45
|
+
StatementsSequenceBase.__init__(
|
|
46
|
+
self, statements=statements, source_ref=source_ref
|
|
47
|
+
)
|
|
57
48
|
|
|
58
49
|
self.code_object = code_object
|
|
59
50
|
|
|
60
51
|
self.needs_frame_exception_preserve = False
|
|
61
52
|
|
|
62
|
-
|
|
53
|
+
@staticmethod
|
|
54
|
+
def isStatementsFrame():
|
|
55
|
+
return True
|
|
56
|
+
|
|
57
|
+
@staticmethod
|
|
58
|
+
def isStatementsSequence():
|
|
63
59
|
return True
|
|
64
60
|
|
|
65
61
|
def getDetails(self):
|
|
66
62
|
result = {"code_object": self.code_object}
|
|
67
63
|
|
|
68
|
-
result.update(
|
|
64
|
+
result.update(StatementsSequenceBase.getDetails(self))
|
|
69
65
|
|
|
70
66
|
return result
|
|
71
67
|
|
|
72
68
|
def getDetailsForDisplay(self):
|
|
73
|
-
result =
|
|
69
|
+
result = StatementsSequenceBase.getDetails(self)
|
|
74
70
|
result.update()
|
|
75
71
|
|
|
76
72
|
result.update(self.code_object.getDetails())
|
|
@@ -153,7 +149,7 @@ class StatementsFrameBase(StatementsSequence):
|
|
|
153
149
|
self.code_object.setFlagIsOptimizedValue(is_optimized)
|
|
154
150
|
|
|
155
151
|
new_locals = not provider.isCompiledPythonModule() and (
|
|
156
|
-
python_version <
|
|
152
|
+
python_version < 0x300
|
|
157
153
|
or (
|
|
158
154
|
not provider.isExpressionClassBodyBase()
|
|
159
155
|
and not provider.isUnoptimized()
|
|
@@ -188,10 +184,7 @@ class StatementsFrameBase(StatementsSequence):
|
|
|
188
184
|
new_statement = trace_collection.onStatement(statement=statement)
|
|
189
185
|
|
|
190
186
|
if new_statement is not None:
|
|
191
|
-
if (
|
|
192
|
-
new_statement.isStatementsSequence()
|
|
193
|
-
and not new_statement.isStatementsFrame()
|
|
194
|
-
):
|
|
187
|
+
if new_statement.isStatementsSequenceButNotFrame():
|
|
195
188
|
new_statements.extend(new_statement.subnode_statements)
|
|
196
189
|
else:
|
|
197
190
|
new_statements.append(new_statement)
|
|
@@ -279,6 +272,10 @@ class StatementsFrameBase(StatementsSequence):
|
|
|
279
272
|
|
|
280
273
|
return None
|
|
281
274
|
|
|
275
|
+
@staticmethod
|
|
276
|
+
def getStatementNiceName():
|
|
277
|
+
return "frame statements sequence"
|
|
278
|
+
|
|
282
279
|
|
|
283
280
|
class StatementsFrameModule(StatementsFrameBase):
|
|
284
281
|
kind = "STATEMENTS_FRAME_MODULE"
|
|
@@ -386,3 +383,19 @@ class StatementsFrameAsyncgen(StatementsFrameGeneratorBase):
|
|
|
386
383
|
@staticmethod
|
|
387
384
|
def getStructureMember():
|
|
388
385
|
return "asyncgen"
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
389
|
+
# integrates with CPython, but also works on its own.
|
|
390
|
+
#
|
|
391
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
392
|
+
# you may not use this file except in compliance with the License.
|
|
393
|
+
# You may obtain a copy of the License at
|
|
394
|
+
#
|
|
395
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
396
|
+
#
|
|
397
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
398
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
399
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
400
|
+
# See the License for the specific language governing permissions and
|
|
401
|
+
# 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
|
""" Function attribute nodes
|
|
19
5
|
|
|
20
6
|
The represent special values of the modules. The "__qualname__" value node
|
|
@@ -98,3 +84,19 @@ class ExpressionFunctionErrorStr(
|
|
|
98
84
|
def computeExpression(self, trace_collection):
|
|
99
85
|
# TODO: Could compile time compute these for concrete functions.
|
|
100
86
|
return self, None, None
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
90
|
+
# integrates with CPython, but also works on its own.
|
|
91
|
+
#
|
|
92
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
93
|
+
# you may not use this file except in compliance with the License.
|
|
94
|
+
# You may obtain a copy of the License at
|
|
95
|
+
#
|
|
96
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
97
|
+
#
|
|
98
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
99
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
100
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
101
|
+
# See the License for the specific language governing permissions and
|
|
102
|
+
# limitations under the License.
|