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,25 +1,10 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Code to generate and interact with compiled function objects.
|
|
19
5
|
|
|
20
6
|
"""
|
|
21
7
|
|
|
22
|
-
|
|
23
8
|
from nuitka.PythonVersions import python_version
|
|
24
9
|
from nuitka.Tracing import general
|
|
25
10
|
|
|
@@ -213,8 +198,10 @@ def getFunctionMakerCode(
|
|
|
213
198
|
"constant_return_code": indented(constant_return_code),
|
|
214
199
|
}
|
|
215
200
|
|
|
216
|
-
# TODO: Make it optional
|
|
217
|
-
|
|
201
|
+
# TODO: Make it optional, only dill plugin really uses that table to
|
|
202
|
+
# transport the C code implementation pointers.
|
|
203
|
+
if function_impl_identifier != "NULL":
|
|
204
|
+
context.addFunctionCreationInfo(function_impl_identifier)
|
|
218
205
|
|
|
219
206
|
return result
|
|
220
207
|
|
|
@@ -675,17 +662,13 @@ def _getFunctionCode(
|
|
|
675
662
|
|
|
676
663
|
if needs_exception_exit:
|
|
677
664
|
(
|
|
678
|
-
|
|
679
|
-
exception_value,
|
|
680
|
-
exception_tb,
|
|
665
|
+
exception_state_name,
|
|
681
666
|
_exception_lineno,
|
|
682
667
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
683
668
|
|
|
684
669
|
function_exit += template_function_exception_exit % {
|
|
685
670
|
"function_cleanup": indented(function_cleanup),
|
|
686
|
-
"
|
|
687
|
-
"exception_value": exception_value,
|
|
688
|
-
"exception_tb": exception_tb,
|
|
671
|
+
"exception_state_name": exception_state_name,
|
|
689
672
|
}
|
|
690
673
|
|
|
691
674
|
if context.hasTempName("return_value"):
|
|
@@ -792,7 +775,7 @@ def generateFunctionOutlineCode(to_name, expression, emit, context):
|
|
|
792
775
|
)
|
|
793
776
|
|
|
794
777
|
if variable_declaration.getCType() is CTypeCellObject:
|
|
795
|
-
emit("%s =
|
|
778
|
+
emit("%s = Nuitka_Cell_NewEmpty();" % variable_declaration)
|
|
796
779
|
|
|
797
780
|
# Need to set return target, to assign to_name from.
|
|
798
781
|
|
|
@@ -863,3 +846,19 @@ def generateFunctionErrorStrCode(to_name, expression, emit, context):
|
|
|
863
846
|
emit=emit,
|
|
864
847
|
context=context,
|
|
865
848
|
)
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
852
|
+
# integrates with CPython, but also works on its own.
|
|
853
|
+
#
|
|
854
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
855
|
+
# you may not use this file except in compliance with the License.
|
|
856
|
+
# You may obtain a copy of the License at
|
|
857
|
+
#
|
|
858
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
859
|
+
#
|
|
860
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
861
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
862
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
863
|
+
# See the License for the specific language governing permissions and
|
|
864
|
+
# 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 to generate and interact with compiled function objects.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -96,17 +82,13 @@ def getGeneratorObjectCode(
|
|
|
96
82
|
|
|
97
83
|
if needs_exception_exit:
|
|
98
84
|
(
|
|
99
|
-
|
|
100
|
-
exception_value,
|
|
101
|
-
exception_tb,
|
|
85
|
+
exception_state_name,
|
|
102
86
|
_exception_lineno,
|
|
103
87
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
104
88
|
|
|
105
89
|
generator_exit = template_generator_exception_exit % {
|
|
106
90
|
"function_cleanup": indented(function_cleanup),
|
|
107
|
-
"
|
|
108
|
-
"exception_value": exception_value,
|
|
109
|
-
"exception_tb": exception_tb,
|
|
91
|
+
"exception_state_name": exception_state_name,
|
|
110
92
|
}
|
|
111
93
|
else:
|
|
112
94
|
generator_exit = template_generator_noexception_exit % {
|
|
@@ -115,9 +97,10 @@ def getGeneratorObjectCode(
|
|
|
115
97
|
|
|
116
98
|
if needs_generator_return:
|
|
117
99
|
generator_exit += template_generator_return_exit % {
|
|
118
|
-
"return_value":
|
|
119
|
-
|
|
120
|
-
|
|
100
|
+
"return_value": (
|
|
101
|
+
context.getReturnValueName() if python_version >= 0x300 else None
|
|
102
|
+
),
|
|
103
|
+
"function_cleanup": indented(function_cleanup),
|
|
121
104
|
}
|
|
122
105
|
|
|
123
106
|
function_locals = context.variable_storage.makeCFunctionLevelDeclarations()
|
|
@@ -218,3 +201,19 @@ def generateMakeGeneratorObjectCode(to_name, expression, emit, context):
|
|
|
218
201
|
)
|
|
219
202
|
|
|
220
203
|
context.addCleanupTempName(to_name)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
207
|
+
# integrates with CPython, but also works on its own.
|
|
208
|
+
#
|
|
209
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
210
|
+
# you may not use this file except in compliance with the License.
|
|
211
|
+
# You may obtain a copy of the License at
|
|
212
|
+
#
|
|
213
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
214
|
+
#
|
|
215
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
216
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
217
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
218
|
+
# See the License for the specific language governing permissions and
|
|
219
|
+
# limitations under the License.
|
|
@@ -1,26 +1,13 @@
|
|
|
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
|
""" Global constant values.
|
|
19
5
|
|
|
20
6
|
"""
|
|
21
7
|
|
|
22
8
|
from nuitka import Options
|
|
23
9
|
from nuitka.__past__ import long
|
|
10
|
+
from nuitka.plugins.Plugins import Plugins
|
|
24
11
|
from nuitka.PythonVersions import python_version
|
|
25
12
|
from nuitka.utils.Utils import isWin32Windows
|
|
26
13
|
|
|
@@ -63,6 +50,7 @@ def getConstantDefaultPopulation():
|
|
|
63
50
|
"__package__",
|
|
64
51
|
"__metaclass__",
|
|
65
52
|
"__abstractmethods__",
|
|
53
|
+
"__closure__",
|
|
66
54
|
# TODO: For PyObject_IsSubClass one day
|
|
67
55
|
# "__subclasscheck__",
|
|
68
56
|
"__dict__",
|
|
@@ -94,6 +82,7 @@ def getConstantDefaultPopulation():
|
|
|
94
82
|
"staticmethod",
|
|
95
83
|
"classmethod",
|
|
96
84
|
"keys",
|
|
85
|
+
"get",
|
|
97
86
|
# Arguments of __import__ built-in used in helper code.
|
|
98
87
|
"name",
|
|
99
88
|
"globals",
|
|
@@ -103,21 +92,30 @@ def getConstantDefaultPopulation():
|
|
|
103
92
|
# Meta path based loader.
|
|
104
93
|
"read",
|
|
105
94
|
"rb",
|
|
95
|
+
"w",
|
|
96
|
+
"b",
|
|
106
97
|
# File handling
|
|
107
98
|
"/",
|
|
108
99
|
"\\",
|
|
109
100
|
"path",
|
|
110
101
|
"basename",
|
|
102
|
+
"dirname",
|
|
111
103
|
"abspath",
|
|
112
104
|
"isabs",
|
|
105
|
+
"normpath",
|
|
113
106
|
"exists",
|
|
114
107
|
"isdir",
|
|
115
108
|
"isfile",
|
|
116
109
|
"listdir",
|
|
110
|
+
"stat",
|
|
111
|
+
"close",
|
|
117
112
|
]
|
|
118
113
|
|
|
114
|
+
if python_version < 0x300:
|
|
115
|
+
result += ("lstat",)
|
|
116
|
+
|
|
119
117
|
# Pickling of instance methods.
|
|
120
|
-
if python_version <
|
|
118
|
+
if python_version < 0x300:
|
|
121
119
|
result += ("__newobj__",)
|
|
122
120
|
else:
|
|
123
121
|
result += ("getattr",)
|
|
@@ -136,21 +134,22 @@ def getConstantDefaultPopulation():
|
|
|
136
134
|
# "__package__" parsing
|
|
137
135
|
result.append(".")
|
|
138
136
|
|
|
137
|
+
# For star imports checking private symbols
|
|
138
|
+
result.append("_")
|
|
139
|
+
if python_version < 0x300:
|
|
140
|
+
result.append("_")
|
|
141
|
+
|
|
139
142
|
if python_version >= 0x300:
|
|
140
143
|
# Modules have that attribute starting with Python3
|
|
141
144
|
result.append("__loader__")
|
|
142
145
|
|
|
143
|
-
|
|
144
|
-
result.append(
|
|
145
|
-
# YIELD_FROM uses this starting 3.4, with 3.3 other code is used.
|
|
146
|
-
"send"
|
|
147
|
-
)
|
|
146
|
+
# YIELD_FROM uses this
|
|
147
|
+
result.append("send")
|
|
148
148
|
|
|
149
149
|
if python_version >= 0x300:
|
|
150
150
|
result += (
|
|
151
151
|
# YIELD_FROM uses this
|
|
152
152
|
"throw",
|
|
153
|
-
"close",
|
|
154
153
|
)
|
|
155
154
|
|
|
156
155
|
if python_version < 0x300:
|
|
@@ -179,7 +178,7 @@ def getConstantDefaultPopulation():
|
|
|
179
178
|
if python_version < 0x300:
|
|
180
179
|
result.append("long")
|
|
181
180
|
|
|
182
|
-
if python_version >=
|
|
181
|
+
if python_version >= 0x300:
|
|
183
182
|
# Work with the __spec__ module attribute.
|
|
184
183
|
result += ("__spec__", "_initializing", "parent")
|
|
185
184
|
|
|
@@ -187,6 +186,10 @@ def getConstantDefaultPopulation():
|
|
|
187
186
|
# Patching the types module.
|
|
188
187
|
result.append("types")
|
|
189
188
|
|
|
189
|
+
# Converting module names
|
|
190
|
+
result.append("ascii")
|
|
191
|
+
result.append("punycode")
|
|
192
|
+
|
|
190
193
|
if not Options.shallMakeModule():
|
|
191
194
|
result.append("__main__")
|
|
192
195
|
|
|
@@ -215,7 +218,30 @@ def getConstantDefaultPopulation():
|
|
|
215
218
|
result.append("__aenter__")
|
|
216
219
|
result.append("__aexit__")
|
|
217
220
|
|
|
221
|
+
# Exception group split method call
|
|
222
|
+
result.append("split")
|
|
223
|
+
|
|
218
224
|
if isWin32Windows():
|
|
219
225
|
result.append("fileno")
|
|
220
226
|
|
|
227
|
+
for value in Plugins.getExtraConstantDefaultPopulation():
|
|
228
|
+
if value not in result:
|
|
229
|
+
result.append(value)
|
|
230
|
+
|
|
221
231
|
return result
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
235
|
+
# integrates with CPython, but also works on its own.
|
|
236
|
+
#
|
|
237
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
238
|
+
# you may not use this file except in compliance with the License.
|
|
239
|
+
# You may obtain a copy of the License at
|
|
240
|
+
#
|
|
241
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
242
|
+
#
|
|
243
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
244
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
245
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
246
|
+
# See the License for the specific language governing permissions and
|
|
247
|
+
# 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 generation for locals and globals handling.
|
|
19
5
|
|
|
20
6
|
This also includes writing back to locals for exec statements.
|
|
@@ -36,7 +22,7 @@ from .templates.CodeTemplatesVariables import (
|
|
|
36
22
|
)
|
|
37
23
|
from .VariableCodes import (
|
|
38
24
|
getLocalVariableDeclaration,
|
|
39
|
-
|
|
25
|
+
getNonModuleVariableReferenceCode,
|
|
40
26
|
)
|
|
41
27
|
from .VariableDeclarations import VariableDeclaration
|
|
42
28
|
|
|
@@ -76,7 +62,7 @@ def generateBuiltinLocalsCode(to_name, expression, emit, context):
|
|
|
76
62
|
# TODO: Creation is not needed for classes.
|
|
77
63
|
emit(
|
|
78
64
|
"""\
|
|
79
|
-
if (%(locals_dict)s == NULL) %(locals_dict)s = MAKE_DICT_EMPTY();
|
|
65
|
+
if (%(locals_dict)s == NULL) %(locals_dict)s = MAKE_DICT_EMPTY(tstate);
|
|
80
66
|
%(to_name)s = %(locals_dict)s;
|
|
81
67
|
Py_INCREF(%(to_name)s);"""
|
|
82
68
|
% {"to_name": value_name, "locals_dict": locals_declaration}
|
|
@@ -85,7 +71,7 @@ Py_INCREF(%(to_name)s);"""
|
|
|
85
71
|
|
|
86
72
|
initial = False
|
|
87
73
|
else:
|
|
88
|
-
emit("%s = MAKE_DICT_EMPTY();" % (to_name,))
|
|
74
|
+
emit("%s = MAKE_DICT_EMPTY(tstate);" % (to_name,))
|
|
89
75
|
|
|
90
76
|
context.addCleanupTempName(value_name)
|
|
91
77
|
|
|
@@ -132,7 +118,7 @@ def _getVariableDictUpdateCode(
|
|
|
132
118
|
|
|
133
119
|
access_code = SourceCodeCollector()
|
|
134
120
|
|
|
135
|
-
|
|
121
|
+
getNonModuleVariableReferenceCode(
|
|
136
122
|
to_name=VariableDeclaration("PyObject *", "value", None, None),
|
|
137
123
|
variable=variable,
|
|
138
124
|
variable_trace=variable_trace,
|
|
@@ -207,3 +193,19 @@ def generateBuiltinVarsCode(to_name, expression, emit, context):
|
|
|
207
193
|
emit=emit,
|
|
208
194
|
context=context,
|
|
209
195
|
)
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
199
|
+
# integrates with CPython, but also works on its own.
|
|
200
|
+
#
|
|
201
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
202
|
+
# you may not use this file except in compliance with the License.
|
|
203
|
+
# You may obtain a copy of the License at
|
|
204
|
+
#
|
|
205
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
206
|
+
#
|
|
207
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
208
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
209
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
210
|
+
# See the License for the specific language governing permissions and
|
|
211
|
+
# 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
|
""" Codes for id and hash
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -49,3 +35,19 @@ def generateBuiltinHashCode(to_name, expression, emit, context):
|
|
|
49
35
|
emit=emit,
|
|
50
36
|
context=context,
|
|
51
37
|
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
41
|
+
# integrates with CPython, but also works on its own.
|
|
42
|
+
#
|
|
43
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
44
|
+
# you may not use this file except in compliance with the License.
|
|
45
|
+
# You may obtain a copy of the License at
|
|
46
|
+
#
|
|
47
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
48
|
+
#
|
|
49
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
50
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
51
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
52
|
+
# See the License for the specific language governing permissions and
|
|
53
|
+
# 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
|
""" Import related codes.
|
|
19
5
|
|
|
20
6
|
That is import as expression, and star import.
|
|
@@ -22,7 +8,7 @@ That is import as expression, and star import.
|
|
|
22
8
|
|
|
23
9
|
import os
|
|
24
10
|
|
|
25
|
-
from nuitka.
|
|
11
|
+
from nuitka.HardImportRegistry import isHardModule, isHardModuleDynamic
|
|
26
12
|
from nuitka.nodes.LocalsScopes import GlobalsDictHandle
|
|
27
13
|
from nuitka.PythonVersions import python_version
|
|
28
14
|
from nuitka.utils.Jinja2 import renderTemplateFromString
|
|
@@ -33,7 +19,7 @@ from .CodeHelpers import (
|
|
|
33
19
|
generateExpressionCode,
|
|
34
20
|
withObjectCodeTemporaryAssignment,
|
|
35
21
|
)
|
|
36
|
-
from .ErrorCodes import getErrorExitBoolCode, getErrorExitCode
|
|
22
|
+
from .ErrorCodes import getErrorExitBoolCode, getErrorExitCode
|
|
37
23
|
from .LineNumberCodes import emitLineNumberUpdateCode
|
|
38
24
|
from .ModuleCodes import getModuleAccessCode
|
|
39
25
|
|
|
@@ -131,7 +117,6 @@ def _getBuiltinImportCode(
|
|
|
131
117
|
|
|
132
118
|
|
|
133
119
|
def generateImportModuleFixedCode(to_name, expression, emit, context):
|
|
134
|
-
module_name = expression.getModuleName()
|
|
135
120
|
needs_check = expression.mayRaiseException(BaseException)
|
|
136
121
|
|
|
137
122
|
if needs_check:
|
|
@@ -141,8 +126,12 @@ def generateImportModuleFixedCode(to_name, expression, emit, context):
|
|
|
141
126
|
to_name, "imported_value", expression, emit, context
|
|
142
127
|
) as value_name:
|
|
143
128
|
emit(
|
|
144
|
-
"""%s =
|
|
145
|
-
% (
|
|
129
|
+
"""%s = IMPORT_MODULE_FIXED(tstate, %s, %s);"""
|
|
130
|
+
% (
|
|
131
|
+
value_name,
|
|
132
|
+
context.getConstantCode(expression.getModuleName().asString()),
|
|
133
|
+
context.getConstantCode(expression.getValueName().asString()),
|
|
134
|
+
)
|
|
146
135
|
)
|
|
147
136
|
|
|
148
137
|
getErrorExitCode(
|
|
@@ -151,24 +140,6 @@ def generateImportModuleFixedCode(to_name, expression, emit, context):
|
|
|
151
140
|
|
|
152
141
|
context.addCleanupTempName(value_name)
|
|
153
142
|
|
|
154
|
-
# IMPORT_MODULE1 doesn't give the child module if one is imported.
|
|
155
|
-
if "." in module_name:
|
|
156
|
-
getReleaseCode(value_name, emit, context)
|
|
157
|
-
|
|
158
|
-
emit(
|
|
159
|
-
"""%s = Nuitka_GetModule(tstate, %s);"""
|
|
160
|
-
% (value_name, context.getConstantCode(module_name.asString()))
|
|
161
|
-
)
|
|
162
|
-
|
|
163
|
-
getErrorExitCode(
|
|
164
|
-
check_name=value_name,
|
|
165
|
-
needs_check=needs_check,
|
|
166
|
-
emit=emit,
|
|
167
|
-
context=context,
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
context.addCleanupTempName(value_name)
|
|
171
|
-
|
|
172
143
|
|
|
173
144
|
def getImportModuleHardCodeName(module_name):
|
|
174
145
|
"""Encoding hard module name for code name."""
|
|
@@ -190,22 +161,44 @@ def generateImportModuleHardCode(to_name, expression, emit, context):
|
|
|
190
161
|
with withObjectCodeTemporaryAssignment(
|
|
191
162
|
to_name, "imported_value", expression, emit, context
|
|
192
163
|
) as value_name:
|
|
164
|
+
import_gives_ref, module_getter_code = getImportHardModuleGetterCode(
|
|
165
|
+
module_name=imported_module_name, context=context
|
|
166
|
+
)
|
|
167
|
+
|
|
193
168
|
if imported_module_name == module_value_name:
|
|
194
|
-
emit(
|
|
195
|
-
"""%s = %s();"""
|
|
196
|
-
% (value_name, getImportModuleHardCodeName(imported_module_name))
|
|
197
|
-
)
|
|
169
|
+
emit("""%s = %s;""" % (value_name, module_getter_code))
|
|
198
170
|
else:
|
|
199
|
-
|
|
171
|
+
import_gives_ref, module_getter_code2 = getImportHardModuleGetterCode(
|
|
172
|
+
module_name=module_value_name, context=context
|
|
173
|
+
)
|
|
174
|
+
|
|
200
175
|
emit(
|
|
201
|
-
|
|
202
|
-
|
|
176
|
+
renderTemplateFromString(
|
|
177
|
+
r"""
|
|
178
|
+
{% if import_gives_ref %}
|
|
179
|
+
{
|
|
180
|
+
PyObject *hard_module = {{module_getter_code1}};
|
|
181
|
+
Py_DECREF(hard_module);
|
|
182
|
+
}
|
|
183
|
+
{% else %}
|
|
184
|
+
{{module_getter_code1}};
|
|
185
|
+
{% endif %}
|
|
186
|
+
{{value_name}} = {{module_getter_code2}};
|
|
187
|
+
""",
|
|
188
|
+
value_name=value_name,
|
|
189
|
+
module_getter_code1=module_getter_code,
|
|
190
|
+
module_getter_code2=module_getter_code2,
|
|
191
|
+
import_gives_ref=import_gives_ref,
|
|
192
|
+
)
|
|
203
193
|
)
|
|
204
194
|
|
|
205
195
|
getErrorExitCode(
|
|
206
196
|
check_name=value_name, needs_check=needs_check, emit=emit, context=context
|
|
207
197
|
)
|
|
208
198
|
|
|
199
|
+
if import_gives_ref:
|
|
200
|
+
context.addCleanupTempName(value_name)
|
|
201
|
+
|
|
209
202
|
|
|
210
203
|
def generateConstantSysVersionInfoCode(to_name, expression, emit, context):
|
|
211
204
|
with withObjectCodeTemporaryAssignment(
|
|
@@ -218,37 +211,68 @@ def generateConstantSysVersionInfoCode(to_name, expression, emit, context):
|
|
|
218
211
|
)
|
|
219
212
|
|
|
220
213
|
|
|
214
|
+
def getImportHardModuleGetterCode(module_name, context):
|
|
215
|
+
if isHardModuleDynamic(module_name):
|
|
216
|
+
module_name_code = context.getConstantCode(module_name.asString())
|
|
217
|
+
|
|
218
|
+
module_getter_code = "IMPORT_MODULE_FIXED(tstate, %s, %s)" % (
|
|
219
|
+
module_name_code,
|
|
220
|
+
module_name_code,
|
|
221
|
+
)
|
|
222
|
+
gives_ref = True
|
|
223
|
+
else:
|
|
224
|
+
module_getter_code = "%s()" % getImportModuleHardCodeName(module_name)
|
|
225
|
+
gives_ref = False
|
|
226
|
+
|
|
227
|
+
return gives_ref, module_getter_code
|
|
228
|
+
|
|
229
|
+
|
|
221
230
|
def getImportModuleNameHardCode(
|
|
222
231
|
to_name, module_name, import_name, needs_check, emit, context
|
|
223
232
|
):
|
|
233
|
+
module_name = ModuleName(module_name)
|
|
234
|
+
|
|
224
235
|
if module_name == "sys":
|
|
225
236
|
emit("""%s = Nuitka_SysGetObject("%s");""" % (to_name, import_name))
|
|
226
237
|
needs_release = False
|
|
227
|
-
elif module_name
|
|
238
|
+
elif isHardModule(module_name):
|
|
228
239
|
if needs_check:
|
|
229
240
|
emitLineNumberUpdateCode(expression=None, emit=emit, context=context)
|
|
230
241
|
|
|
242
|
+
import_gives_ref, module_getter_code = getImportHardModuleGetterCode(
|
|
243
|
+
module_name=module_name, context=context
|
|
244
|
+
)
|
|
245
|
+
|
|
231
246
|
emit(
|
|
232
247
|
renderTemplateFromString(
|
|
233
248
|
r"""
|
|
234
249
|
{
|
|
235
|
-
PyObject *hard_module = {{
|
|
250
|
+
PyObject *hard_module = {{module_getter_code}};
|
|
236
251
|
{% if needs_check %}
|
|
237
252
|
if (likely(hard_module != NULL)) {
|
|
238
253
|
{{to_name}} = LOOKUP_ATTRIBUTE(tstate, hard_module, {{import_name}});
|
|
254
|
+
|
|
255
|
+
{% if import_gives_ref %}
|
|
256
|
+
Py_DECREF(hard_module);
|
|
257
|
+
{% endif %}
|
|
258
|
+
|
|
239
259
|
} else {
|
|
240
260
|
{{to_name}} = NULL;
|
|
241
261
|
}
|
|
242
262
|
{% else %}
|
|
243
263
|
{{to_name}} = LOOKUP_ATTRIBUTE(tstate, hard_module, {{import_name}});
|
|
264
|
+
{% if import_gives_ref %}
|
|
265
|
+
Py_DECREF(hard_module);
|
|
266
|
+
{% endif %}
|
|
244
267
|
{% endif %}
|
|
245
268
|
}
|
|
246
269
|
""",
|
|
247
270
|
to_name=to_name,
|
|
248
271
|
module_name=str(module_name),
|
|
249
|
-
|
|
272
|
+
module_getter_code=module_getter_code,
|
|
250
273
|
import_name=context.getConstantCode(import_name),
|
|
251
274
|
needs_check=needs_check,
|
|
275
|
+
import_gives_ref=import_gives_ref,
|
|
252
276
|
)
|
|
253
277
|
)
|
|
254
278
|
|
|
@@ -426,3 +450,19 @@ if (PyModule_Check(%(from_arg_name)s)) {
|
|
|
426
450
|
)
|
|
427
451
|
|
|
428
452
|
context.addCleanupTempName(value_name)
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
456
|
+
# integrates with CPython, but also works on its own.
|
|
457
|
+
#
|
|
458
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
459
|
+
# you may not use this file except in compliance with the License.
|
|
460
|
+
# You may obtain a copy of the License at
|
|
461
|
+
#
|
|
462
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
463
|
+
#
|
|
464
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
465
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
466
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
467
|
+
# See the License for the specific language governing permissions and
|
|
468
|
+
# limitations under the License.
|