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,22 +1,9 @@
|
|
|
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
|
""" Templates for the constants handling.
|
|
19
5
|
|
|
6
|
+
spell-checker: ignore structseq
|
|
20
7
|
"""
|
|
21
8
|
|
|
22
9
|
template_constants_reading = r"""
|
|
@@ -31,21 +18,55 @@ PyObject *global_constants[%(global_constants_count)d];
|
|
|
31
18
|
// Sentinel PyObject to be used for all our call iterator endings. It will
|
|
32
19
|
// become a PyCObject pointing to NULL. It's address is unique, and that's
|
|
33
20
|
// enough for us to use it as sentinel value.
|
|
34
|
-
PyObject *
|
|
21
|
+
PyObject *Nuitka_sentinel_value = NULL;
|
|
35
22
|
|
|
36
23
|
PyObject *Nuitka_dunder_compiled_value = NULL;
|
|
37
24
|
|
|
38
25
|
|
|
39
26
|
#ifdef _NUITKA_STANDALONE
|
|
40
27
|
extern PyObject *getStandaloneSysExecutablePath(PyObject *basename);
|
|
28
|
+
|
|
29
|
+
NUITKA_MAY_BE_UNUSED static PyObject *STRIP_DIRNAME(PyObject *path) {
|
|
30
|
+
#if PYTHON_VERSION < 0x300
|
|
31
|
+
char const *path_cstr = PyString_AS_STRING(path);
|
|
32
|
+
|
|
33
|
+
#ifdef _WIN32
|
|
34
|
+
char const *last_sep = strrchr(path_cstr, '\\');
|
|
35
|
+
#else
|
|
36
|
+
char const *last_sep = strrchr(path_cstr, '/');
|
|
41
37
|
#endif
|
|
38
|
+
if (unlikely(last_sep == NULL)) {
|
|
39
|
+
Py_INCREF(path);
|
|
40
|
+
return path;
|
|
41
|
+
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
return PyString_FromStringAndSize(path_cstr, last_sep - path_cstr);
|
|
44
|
+
#else
|
|
45
|
+
#ifdef _WIN32
|
|
46
|
+
Py_ssize_t dot_index = PyUnicode_Find(path, const_str_backslash, 0, PyUnicode_GetLength(path), -1);
|
|
47
|
+
#else
|
|
48
|
+
Py_ssize_t dot_index = PyUnicode_Find(path, const_str_slash, 0, PyUnicode_GetLength(path), -1);
|
|
49
|
+
#endif
|
|
50
|
+
if (likely(dot_index != -1)) {
|
|
51
|
+
return PyUnicode_Substring(path, 0, dot_index);
|
|
52
|
+
} else {
|
|
53
|
+
Py_INCREF(path);
|
|
54
|
+
return path;
|
|
55
|
+
}
|
|
56
|
+
#endif
|
|
57
|
+
}
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
extern void setDistributionsMetadata(PyThreadState *tstate, PyObject *metadata_items);
|
|
44
61
|
|
|
45
62
|
// We provide the sys.version info shortcut as a global value here for ease of use.
|
|
46
63
|
PyObject *Py_SysVersionInfo = NULL;
|
|
47
64
|
|
|
65
|
+
#if defined(_NUITKA_MODULE) && PYTHON_VERSION >= 0x3c0
|
|
66
|
+
static void _createGlobalConstants(PyThreadState *tstate, PyObject *real_module_name) {
|
|
67
|
+
#else
|
|
48
68
|
static void _createGlobalConstants(PyThreadState *tstate) {
|
|
69
|
+
#endif
|
|
49
70
|
// We provide the sys.version info shortcut as a global value here for ease of use.
|
|
50
71
|
Py_SysVersionInfo = Nuitka_SysGetObject("version_info");
|
|
51
72
|
|
|
@@ -97,25 +118,31 @@ static void _createGlobalConstants(PyThreadState *tstate) {
|
|
|
97
118
|
|
|
98
119
|
static PyTypeObject Nuitka_VersionInfoType;
|
|
99
120
|
|
|
100
|
-
// Same fields as "sys.version_info" except no serial number
|
|
121
|
+
// Same fields as "sys.version_info" except no serial number
|
|
122
|
+
// spell-checker: ignore releaselevel
|
|
101
123
|
static PyStructSequence_Field Nuitka_VersionInfoFields[] = {
|
|
102
124
|
{(char *)"major", (char *)"Major release number"},
|
|
103
125
|
{(char *)"minor", (char *)"Minor release number"},
|
|
104
126
|
{(char *)"micro", (char *)"Micro release number"},
|
|
105
127
|
{(char *)"releaselevel", (char *)"'alpha', 'beta', 'candidate', or 'release'"},
|
|
128
|
+
{(char *)"containing_dir", (char *)"directory of the containing binary"},
|
|
106
129
|
{(char *)"standalone", (char *)"boolean indicating standalone mode usage"},
|
|
107
|
-
{(char *)"onefile", (char *)"boolean indicating
|
|
130
|
+
{(char *)"onefile", (char *)"boolean indicating onefile mode usage"},
|
|
131
|
+
{(char *)"macos_bundle_mode", (char *)"boolean indicating macOS app bundle mode usage"},
|
|
108
132
|
{(char *)"no_asserts", (char *)"boolean indicating --python-flag=no_asserts usage"},
|
|
109
133
|
{(char *)"no_docstrings", (char *)"boolean indicating --python-flag=no_docstrings usage"},
|
|
110
134
|
{(char *)"no_annotations", (char *)"boolean indicating --python-flag=no_annotations usage"},
|
|
135
|
+
{(char *)"module", (char *)"boolean indicating --module usage"},
|
|
136
|
+
{(char *)"main", (char *)"name of main module at runtime"},
|
|
137
|
+
{(char *)"original_argv0", (char *)"original argv[0] as received by the onefile binary, None otherwise"},
|
|
111
138
|
{0}
|
|
112
139
|
};
|
|
113
140
|
|
|
114
141
|
static PyStructSequence_Desc Nuitka_VersionInfoDesc = {
|
|
115
|
-
(char *)"__nuitka_version__",
|
|
116
|
-
(char *)"__compiled__\\n\\nVersion information as a named tuple.",
|
|
117
|
-
Nuitka_VersionInfoFields,
|
|
118
|
-
|
|
142
|
+
(char *)"__nuitka_version__", /* name */
|
|
143
|
+
(char *)"__compiled__\\n\\nVersion information as a named tuple.", /* doc */
|
|
144
|
+
Nuitka_VersionInfoFields, /* fields */
|
|
145
|
+
sizeof(Nuitka_VersionInfoFields) / sizeof(PyStructSequence_Field)-1 /* count */
|
|
119
146
|
};
|
|
120
147
|
|
|
121
148
|
PyStructSequence_InitType(&Nuitka_VersionInfoType, &Nuitka_VersionInfoDesc);
|
|
@@ -123,52 +150,104 @@ static void _createGlobalConstants(PyThreadState *tstate) {
|
|
|
123
150
|
Nuitka_dunder_compiled_value = PyStructSequence_New(&Nuitka_VersionInfoType);
|
|
124
151
|
assert(Nuitka_dunder_compiled_value != NULL);
|
|
125
152
|
|
|
126
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 0,
|
|
127
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 1,
|
|
128
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 2,
|
|
153
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 0, Nuitka_PyInt_FromLong(%(nuitka_version_major)s));
|
|
154
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 1, Nuitka_PyInt_FromLong(%(nuitka_version_minor)s));
|
|
155
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 2, Nuitka_PyInt_FromLong(%(nuitka_version_micro)s));
|
|
129
156
|
|
|
130
157
|
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 3, Nuitka_String_FromString("%(nuitka_version_level)s"));
|
|
131
158
|
|
|
159
|
+
PyObject *binary_directory = getContainingDirectoryObject(false);
|
|
160
|
+
#ifdef _NUITKA_STANDALONE
|
|
161
|
+
#ifndef _NUITKA_ONEFILE_MODE
|
|
162
|
+
binary_directory = STRIP_DIRNAME(binary_directory);
|
|
163
|
+
#endif
|
|
164
|
+
|
|
165
|
+
#ifdef _NUITKA_MACOS_BUNDLE
|
|
166
|
+
binary_directory = STRIP_DIRNAME(binary_directory);
|
|
167
|
+
binary_directory = STRIP_DIRNAME(binary_directory);
|
|
168
|
+
#endif
|
|
169
|
+
#endif
|
|
170
|
+
|
|
171
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 4, binary_directory);
|
|
172
|
+
|
|
132
173
|
#ifdef _NUITKA_STANDALONE
|
|
133
174
|
PyObject *is_standalone_mode = Py_True;
|
|
134
175
|
#else
|
|
135
176
|
PyObject *is_standalone_mode = Py_False;
|
|
136
177
|
#endif
|
|
137
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value,
|
|
178
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 5, is_standalone_mode);
|
|
138
179
|
#ifdef _NUITKA_ONEFILE_MODE
|
|
139
180
|
PyObject *is_onefile_mode = Py_True;
|
|
140
181
|
#else
|
|
141
182
|
PyObject *is_onefile_mode = Py_False;
|
|
142
183
|
#endif
|
|
143
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value,
|
|
184
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 6, is_onefile_mode);
|
|
185
|
+
|
|
186
|
+
#ifdef _NUITKA_MACOS_BUNDLE
|
|
187
|
+
PyObject *is_macos_bundle_mode = Py_True;
|
|
188
|
+
#else
|
|
189
|
+
PyObject *is_macos_bundle_mode = Py_False;
|
|
190
|
+
#endif
|
|
191
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 7, is_macos_bundle_mode);
|
|
144
192
|
|
|
145
193
|
#if _NUITKA_NO_ASSERTS == 1
|
|
146
194
|
PyObject *is_no_asserts = Py_True;
|
|
147
195
|
#else
|
|
148
196
|
PyObject *is_no_asserts = Py_False;
|
|
149
197
|
#endif
|
|
150
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value,
|
|
198
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 8, is_no_asserts);
|
|
151
199
|
|
|
152
200
|
#if _NUITKA_NO_DOCSTRINGS == 1
|
|
153
201
|
PyObject *is_no_docstrings = Py_True;
|
|
154
202
|
#else
|
|
155
203
|
PyObject *is_no_docstrings = Py_False;
|
|
156
204
|
#endif
|
|
157
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value,
|
|
158
|
-
|
|
205
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 9, is_no_docstrings);
|
|
159
206
|
|
|
160
207
|
#if _NUITKA_NO_ANNOTATIONS == 1
|
|
161
208
|
PyObject *is_no_annotations = Py_True;
|
|
162
209
|
#else
|
|
163
210
|
PyObject *is_no_annotations = Py_False;
|
|
164
211
|
#endif
|
|
165
|
-
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value,
|
|
212
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 10, is_no_annotations);
|
|
213
|
+
|
|
214
|
+
#ifdef _NUITKA_MODULE
|
|
215
|
+
PyObject *is_module_mode = Py_True;
|
|
216
|
+
#else
|
|
217
|
+
PyObject *is_module_mode = Py_False;
|
|
218
|
+
#endif
|
|
219
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 11, is_module_mode);
|
|
220
|
+
|
|
221
|
+
#ifdef _NUITKA_MODULE
|
|
222
|
+
PyObject *main_name;
|
|
223
|
+
|
|
224
|
+
#if PYTHON_VERSION < 0x3c0
|
|
225
|
+
if (_Py_PackageContext != NULL) {
|
|
226
|
+
main_name = Nuitka_String_FromString(_Py_PackageContext);
|
|
227
|
+
} else {
|
|
228
|
+
main_name = Nuitka_String_FromString(%(module_name_cstr)s);
|
|
229
|
+
}
|
|
230
|
+
#else
|
|
231
|
+
main_name = real_module_name;
|
|
232
|
+
#endif
|
|
233
|
+
#else
|
|
234
|
+
PyObject *main_name = Nuitka_String_FromString("__main__");
|
|
235
|
+
#endif
|
|
236
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 12, main_name);
|
|
237
|
+
|
|
238
|
+
#if defined(_NUITKA_EXE)
|
|
239
|
+
PyObject *original_argv0 = getOriginalArgv0Object();
|
|
240
|
+
#else
|
|
241
|
+
PyObject *original_argv0 = Py_None;
|
|
242
|
+
# endif
|
|
243
|
+
PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 13, original_argv0);
|
|
166
244
|
|
|
167
245
|
// Prevent users from creating the Nuitka version type object.
|
|
168
246
|
Nuitka_VersionInfoType.tp_init = NULL;
|
|
169
247
|
Nuitka_VersionInfoType.tp_new = NULL;
|
|
170
248
|
|
|
171
|
-
|
|
249
|
+
// Register included meta data.
|
|
250
|
+
setDistributionsMetadata(tstate, %(metadata_values)s);
|
|
172
251
|
}
|
|
173
252
|
|
|
174
253
|
// In debug mode we can check that the constants were not tampered with in any
|
|
@@ -181,17 +260,27 @@ void checkGlobalConstants(void) {
|
|
|
181
260
|
}
|
|
182
261
|
#endif
|
|
183
262
|
|
|
263
|
+
#if defined(_NUITKA_MODULE) && PYTHON_VERSION >= 0x3c0
|
|
264
|
+
void createGlobalConstants(PyThreadState *tstate, PyObject *real_module_name) {
|
|
265
|
+
#else
|
|
184
266
|
void createGlobalConstants(PyThreadState *tstate) {
|
|
185
|
-
|
|
267
|
+
#endif
|
|
268
|
+
if (Nuitka_sentinel_value == NULL) {
|
|
186
269
|
#if PYTHON_VERSION < 0x300
|
|
187
|
-
|
|
270
|
+
Nuitka_sentinel_value = PyCObject_FromVoidPtr(NULL, NULL);
|
|
188
271
|
#else
|
|
189
272
|
// The NULL value is not allowed for a capsule, so use something else.
|
|
190
|
-
|
|
273
|
+
Nuitka_sentinel_value = PyCapsule_New((void *)27, "sentinel", NULL);
|
|
191
274
|
#endif
|
|
192
|
-
assert(
|
|
275
|
+
assert(Nuitka_sentinel_value);
|
|
276
|
+
|
|
277
|
+
Py_SET_REFCNT_IMMORTAL(Nuitka_sentinel_value);
|
|
193
278
|
|
|
279
|
+
#if defined(_NUITKA_MODULE) && PYTHON_VERSION >= 0x3c0
|
|
280
|
+
_createGlobalConstants(tstate, real_module_name);
|
|
281
|
+
#else
|
|
194
282
|
_createGlobalConstants(tstate);
|
|
283
|
+
#endif
|
|
195
284
|
}
|
|
196
285
|
}
|
|
197
286
|
"""
|
|
@@ -199,3 +288,18 @@ void createGlobalConstants(PyThreadState *tstate) {
|
|
|
199
288
|
from . import TemplateDebugWrapper # isort:skip
|
|
200
289
|
|
|
201
290
|
TemplateDebugWrapper.checkDebug(globals())
|
|
291
|
+
|
|
292
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
293
|
+
# integrates with CPython, but also works on its own.
|
|
294
|
+
#
|
|
295
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
296
|
+
# you may not use this file except in compliance with the License.
|
|
297
|
+
# You may obtain a copy of the License at
|
|
298
|
+
#
|
|
299
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
300
|
+
#
|
|
301
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
302
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
303
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
304
|
+
# See the License for the specific language governing permissions and
|
|
305
|
+
# 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
|
""" Coroutines function (await/async) related templates.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -82,8 +68,8 @@ template_coroutine_exception_exit = """\
|
|
|
82
68
|
|
|
83
69
|
function_exception_exit:
|
|
84
70
|
%(function_cleanup)s
|
|
85
|
-
|
|
86
|
-
|
|
71
|
+
CHECK_EXCEPTION_STATE(&%(exception_state_name)s);
|
|
72
|
+
RESTORE_ERROR_OCCURRED_STATE(tstate, &%(exception_state_name)s);
|
|
87
73
|
return NULL;
|
|
88
74
|
"""
|
|
89
75
|
|
|
@@ -106,3 +92,18 @@ template_coroutine_return_exit = """\
|
|
|
106
92
|
from . import TemplateDebugWrapper # isort:skip
|
|
107
93
|
|
|
108
94
|
TemplateDebugWrapper.checkDebug(globals())
|
|
95
|
+
|
|
96
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
97
|
+
# integrates with CPython, but also works on its own.
|
|
98
|
+
#
|
|
99
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
100
|
+
# you may not use this file except in compliance with the License.
|
|
101
|
+
# You may obtain a copy of the License at
|
|
102
|
+
#
|
|
103
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
104
|
+
#
|
|
105
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
106
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
107
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
108
|
+
# See the License for the specific language governing permissions and
|
|
109
|
+
# limitations under the License.
|
|
@@ -1,46 +1,31 @@
|
|
|
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
|
""" Templates for handling exceptions.
|
|
19
5
|
|
|
20
6
|
"""
|
|
21
7
|
|
|
22
8
|
template_publish_exception_to_handler = """\
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
{
|
|
10
|
+
PyTracebackObject *exception_tb = GET_EXCEPTION_STATE_TRACEBACK(&%(keeper_exception_state_name)s);
|
|
11
|
+
if (exception_tb == NULL) {
|
|
12
|
+
exception_tb = %(tb_making)s;
|
|
13
|
+
SET_EXCEPTION_STATE_TRACEBACK(&%(keeper_exception_state_name)s, exception_tb);
|
|
14
|
+
} else if (%(keeper_lineno)s != 0) {
|
|
15
|
+
exception_tb = ADD_TRACEBACK(exception_tb, %(frame_identifier)s, %(keeper_lineno)s);
|
|
16
|
+
SET_EXCEPTION_STATE_TRACEBACK(&%(keeper_exception_state_name)s, exception_tb);
|
|
17
|
+
}
|
|
27
18
|
}
|
|
28
19
|
"""
|
|
29
20
|
|
|
30
|
-
|
|
21
|
+
template_error_catch_fetched_exception = """\
|
|
31
22
|
if (%(condition)s) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Py_INCREF(%(exception_type)s);
|
|
35
|
-
%(exception_value)s = NULL;
|
|
36
|
-
%(exception_tb)s = NULL;
|
|
37
|
-
} else {
|
|
38
|
-
FETCH_ERROR_OCCURRED(tstate, &%(exception_type)s, &%(exception_value)s, &%(exception_tb)s);
|
|
39
|
-
}
|
|
23
|
+
assert(HAS_EXCEPTION_STATE(&%(exception_state_name)s));
|
|
24
|
+
|
|
40
25
|
%(release_temps)s
|
|
41
26
|
|
|
42
|
-
%(var_description_code)s
|
|
43
27
|
%(line_number_code)s
|
|
28
|
+
%(var_description_code)s
|
|
44
29
|
goto %(exception_exit)s;
|
|
45
30
|
}"""
|
|
46
31
|
|
|
@@ -48,7 +33,7 @@ template_error_catch_exception = """\
|
|
|
48
33
|
if (%(condition)s) {
|
|
49
34
|
assert(HAS_ERROR_OCCURRED(tstate));
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
FETCH_ERROR_OCCURRED_STATE(tstate, &%(exception_state_name)s);
|
|
52
37
|
%(release_temps)s
|
|
53
38
|
|
|
54
39
|
%(line_number_code)s
|
|
@@ -70,7 +55,7 @@ if (%(condition)s) {
|
|
|
70
55
|
template_error_format_name_error_exception = """\
|
|
71
56
|
if (unlikely(%(condition)s)) {
|
|
72
57
|
%(release_temps)s
|
|
73
|
-
%(
|
|
58
|
+
%(raise_name_error_helper)s(tstate, &%(exception_state_name)s, %(variable_name)s);
|
|
74
59
|
|
|
75
60
|
%(line_number_code)s
|
|
76
61
|
%(var_description_code)s
|
|
@@ -82,3 +67,18 @@ if (unlikely(%(condition)s)) {
|
|
|
82
67
|
from . import TemplateDebugWrapper # isort:skip
|
|
83
68
|
|
|
84
69
|
TemplateDebugWrapper.checkDebug(globals())
|
|
70
|
+
|
|
71
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
72
|
+
# integrates with CPython, but also works on its own.
|
|
73
|
+
#
|
|
74
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
75
|
+
# you may not use this file except in compliance with the License.
|
|
76
|
+
# You may obtain a copy of the License at
|
|
77
|
+
#
|
|
78
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
79
|
+
#
|
|
80
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
81
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
82
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
83
|
+
# See the License for the specific language governing permissions and
|
|
84
|
+
# 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
|
""" Code templates for frames of all kinds.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -56,7 +42,7 @@ Py_INCREF({{context_identifier}}->m_frame);
|
|
|
56
42
|
assert(Py_REFCNT({{context_identifier}}->m_frame) == 2); // Frame stack
|
|
57
43
|
{% endif %}
|
|
58
44
|
|
|
59
|
-
{% if
|
|
45
|
+
{% if is_python3 %}
|
|
60
46
|
Nuitka_SetFrameGenerator({{context_identifier}}->m_frame, (PyObject *){{context_identifier}});
|
|
61
47
|
{% endif %}
|
|
62
48
|
|
|
@@ -131,10 +117,15 @@ template_frame_guard_normal_exception_handler = """\
|
|
|
131
117
|
RESTORE_FRAME_EXCEPTION(tstate, {{frame_identifier}});
|
|
132
118
|
{% endif %}
|
|
133
119
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
120
|
+
{
|
|
121
|
+
PyTracebackObject *exception_tb = GET_EXCEPTION_STATE_TRACEBACK(&{{exception_state_name}});
|
|
122
|
+
if (exception_tb == NULL) {
|
|
123
|
+
exception_tb = {{tb_making_code}};
|
|
124
|
+
SET_EXCEPTION_STATE_TRACEBACK(&{{exception_state_name}}, exception_tb);
|
|
125
|
+
} else if (exception_tb->tb_frame != &{{frame_identifier}}->m_frame) {
|
|
126
|
+
exception_tb = ADD_TRACEBACK(exception_tb, {{frame_identifier}}, {{exception_lineno}});
|
|
127
|
+
SET_EXCEPTION_STATE_TRACEBACK(&{{exception_state_name}}, exception_tb);
|
|
128
|
+
}
|
|
138
129
|
}
|
|
139
130
|
|
|
140
131
|
{% if attach_locals_code %}
|
|
@@ -188,11 +179,14 @@ template_frame_guard_generator_exception_handler = """\
|
|
|
188
179
|
%(frame_exception_exit)s:;
|
|
189
180
|
|
|
190
181
|
// If it's not an exit exception, consider and create a traceback for it.
|
|
191
|
-
if (!
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
182
|
+
if (!EXCEPTION_STATE_MATCH_GENERATOR(tstate, &%(exception_state_name)s)) {
|
|
183
|
+
PyTracebackObject *exception_tb = GET_EXCEPTION_STATE_TRACEBACK(&%(exception_state_name)s);
|
|
184
|
+
if (exception_tb == NULL) {
|
|
185
|
+
exception_tb = %(tb_making)s;
|
|
186
|
+
SET_EXCEPTION_STATE_TRACEBACK(&%(exception_state_name)s, exception_tb);
|
|
187
|
+
} else if ((%(exception_lineno)s != 0) && (exception_tb->tb_frame != &%(frame_identifier)s->m_frame)) {
|
|
188
|
+
exception_tb = ADD_TRACEBACK(exception_tb, %(frame_identifier)s, %(exception_lineno)s);
|
|
189
|
+
SET_EXCEPTION_STATE_TRACEBACK(&%(exception_state_name)s, exception_tb);
|
|
196
190
|
}
|
|
197
191
|
|
|
198
192
|
%(attach_locals)s
|
|
@@ -228,3 +222,18 @@ goto %(parent_exception_exit)s;
|
|
|
228
222
|
from . import TemplateDebugWrapper # isort:skip
|
|
229
223
|
|
|
230
224
|
TemplateDebugWrapper.checkDebug(globals())
|
|
225
|
+
|
|
226
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
227
|
+
# integrates with CPython, but also works on its own.
|
|
228
|
+
#
|
|
229
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
230
|
+
# you may not use this file except in compliance with the License.
|
|
231
|
+
# You may obtain a copy of the License at
|
|
232
|
+
#
|
|
233
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
234
|
+
#
|
|
235
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
236
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
237
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
238
|
+
# See the License for the specific language governing permissions and
|
|
239
|
+
# 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
|
""" Normal function (no generator, not yielding) related templates.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -77,8 +63,8 @@ static PyObject *impl_%(function_identifier)s(PyThreadState *tstate, %(parameter
|
|
|
77
63
|
template_function_exception_exit = """\
|
|
78
64
|
function_exception_exit:
|
|
79
65
|
%(function_cleanup)s
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
CHECK_EXCEPTION_STATE(&%(exception_state_name)s);
|
|
67
|
+
RESTORE_ERROR_OCCURRED_STATE(tstate, &%(exception_state_name)s);
|
|
82
68
|
|
|
83
69
|
return NULL;
|
|
84
70
|
"""
|
|
@@ -114,3 +100,18 @@ function_direct_body_template = """\
|
|
|
114
100
|
from . import TemplateDebugWrapper # isort:skip
|
|
115
101
|
|
|
116
102
|
TemplateDebugWrapper.checkDebug(globals())
|
|
103
|
+
|
|
104
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
105
|
+
# integrates with CPython, but also works on its own.
|
|
106
|
+
#
|
|
107
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
108
|
+
# you may not use this file except in compliance with the License.
|
|
109
|
+
# You may obtain a copy of the License at
|
|
110
|
+
#
|
|
111
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
112
|
+
#
|
|
113
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
114
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
115
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
116
|
+
# See the License for the specific language governing permissions and
|
|
117
|
+
# 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
|
""" Generator function (with yield) related templates.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -98,8 +84,8 @@ template_generator_exception_exit = """\
|
|
|
98
84
|
|
|
99
85
|
function_exception_exit:
|
|
100
86
|
%(function_cleanup)s
|
|
101
|
-
|
|
102
|
-
|
|
87
|
+
CHECK_EXCEPTION_STATE(&%(exception_state_name)s);
|
|
88
|
+
RESTORE_ERROR_OCCURRED_STATE(tstate, &%(exception_state_name)s);
|
|
103
89
|
|
|
104
90
|
return NULL;
|
|
105
91
|
"""
|
|
@@ -119,6 +105,7 @@ template_generator_return_exit = """\
|
|
|
119
105
|
generator->m_returned = %(return_value)s;
|
|
120
106
|
#endif
|
|
121
107
|
|
|
108
|
+
%(function_cleanup)s
|
|
122
109
|
return NULL;
|
|
123
110
|
"""
|
|
124
111
|
|
|
@@ -126,3 +113,18 @@ template_generator_return_exit = """\
|
|
|
126
113
|
from . import TemplateDebugWrapper # isort:skip
|
|
127
114
|
|
|
128
115
|
TemplateDebugWrapper.checkDebug(globals())
|
|
116
|
+
|
|
117
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
118
|
+
# integrates with CPython, but also works on its own.
|
|
119
|
+
#
|
|
120
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
121
|
+
# you may not use this file except in compliance with the License.
|
|
122
|
+
# You may obtain a copy of the License at
|
|
123
|
+
#
|
|
124
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
125
|
+
#
|
|
126
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
127
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
128
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
129
|
+
# See the License for the specific language governing permissions and
|
|
130
|
+
# limitations under the License.
|