Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
nuitka/SourceCodeReferences.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Source code reference record.
|
|
19
5
|
|
|
20
6
|
All the information to lookup line and file of a code location, together with
|
|
@@ -172,3 +158,19 @@ class SourceCodeReferenceInternal(SourceCodeReference):
|
|
|
172
158
|
|
|
173
159
|
def fromFilename(filename):
|
|
174
160
|
return SourceCodeReference.fromFilenameAndLine(filename=filename, line=1)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
164
|
+
# integrates with CPython, but also works on its own.
|
|
165
|
+
#
|
|
166
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
167
|
+
# you may not use this file except in compliance with the License.
|
|
168
|
+
# You may obtain a copy of the License at
|
|
169
|
+
#
|
|
170
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
171
|
+
#
|
|
172
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
173
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
174
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
175
|
+
# See the License for the specific language governing permissions and
|
|
176
|
+
# limitations under the License.
|
nuitka/Tracing.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Outputs to the user.
|
|
19
5
|
|
|
20
6
|
Printing with intends or plain, mostly a compensation for the print strangeness.
|
|
@@ -34,6 +20,10 @@ import sys
|
|
|
34
20
|
import textwrap
|
|
35
21
|
import traceback
|
|
36
22
|
|
|
23
|
+
from nuitka.__past__ import ( # pylint: disable=redefined-builtin
|
|
24
|
+
BrokenPipeError,
|
|
25
|
+
raw_input,
|
|
26
|
+
)
|
|
37
27
|
from nuitka.utils.Utils import isWin32Windows
|
|
38
28
|
|
|
39
29
|
# Written by Options module.
|
|
@@ -114,6 +104,39 @@ def _enableAnsi():
|
|
|
114
104
|
_enabled_ansi = True
|
|
115
105
|
|
|
116
106
|
|
|
107
|
+
def hasTerminalLinkSupport():
|
|
108
|
+
if not sys.stdout.isatty():
|
|
109
|
+
return False
|
|
110
|
+
|
|
111
|
+
terminal_name = os.getenv("TERM_PROGRAM")
|
|
112
|
+
|
|
113
|
+
if terminal_name is not None:
|
|
114
|
+
if terminal_name == "vscode":
|
|
115
|
+
return True
|
|
116
|
+
|
|
117
|
+
# Windows terminal, in some cases, but not on Windows 11 unfortunately there
|
|
118
|
+
# is no difference between CMD with its own terminal and CMD in Windows
|
|
119
|
+
# Terminal, not even parent processes.
|
|
120
|
+
if isWin32Windows():
|
|
121
|
+
if "WT_SESSION" in os.environ or "WT_PROFILE_ID" in os.environ:
|
|
122
|
+
return True
|
|
123
|
+
|
|
124
|
+
# Powershell, should be used in new terminals only. Also hard to detect,
|
|
125
|
+
# although here we could search parent process names to determine it.
|
|
126
|
+
if isWin32Windows():
|
|
127
|
+
if "PSModulePath" in os.environ:
|
|
128
|
+
return True
|
|
129
|
+
|
|
130
|
+
return False
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def formatTerminalLink(text, link):
|
|
134
|
+
if link is not None and hasTerminalLinkSupport():
|
|
135
|
+
return "\033]8;;%s\033\\%s\033]8;;\033\\" % (link, text)
|
|
136
|
+
else:
|
|
137
|
+
return text
|
|
138
|
+
|
|
139
|
+
|
|
117
140
|
def _getDisableStyleCode():
|
|
118
141
|
return "\033[0m"
|
|
119
142
|
|
|
@@ -177,7 +200,7 @@ def _getTerminalSize():
|
|
|
177
200
|
return columns[1]
|
|
178
201
|
|
|
179
202
|
try:
|
|
180
|
-
return int(os.
|
|
203
|
+
return int(os.getenv("COLUMNS", "1000"))
|
|
181
204
|
except ValueError:
|
|
182
205
|
return 1000
|
|
183
206
|
else:
|
|
@@ -188,6 +211,10 @@ def _getTerminalSize():
|
|
|
188
211
|
|
|
189
212
|
|
|
190
213
|
def _aliasStyle(style):
|
|
214
|
+
"""Map named styles to concrete colors."""
|
|
215
|
+
|
|
216
|
+
# return driven, pylint: disable=too-many-return-statements
|
|
217
|
+
|
|
191
218
|
if style == "test-prepare":
|
|
192
219
|
return "pink"
|
|
193
220
|
if style == "test-progress":
|
|
@@ -196,42 +223,51 @@ def _aliasStyle(style):
|
|
|
196
223
|
return "bold"
|
|
197
224
|
if style == "link":
|
|
198
225
|
return "blue"
|
|
226
|
+
if style == "warning":
|
|
227
|
+
return "yellow"
|
|
228
|
+
if style == "scons-unexpected":
|
|
229
|
+
return "yellow"
|
|
230
|
+
if style == "error":
|
|
231
|
+
return "red"
|
|
199
232
|
else:
|
|
200
233
|
return style
|
|
201
234
|
|
|
202
235
|
|
|
203
236
|
def _my_print(file_output, is_atty, args, kwargs):
|
|
204
|
-
|
|
205
|
-
style
|
|
206
|
-
|
|
237
|
+
try:
|
|
238
|
+
if "style" in kwargs:
|
|
239
|
+
style = kwargs["style"]
|
|
240
|
+
del kwargs["style"]
|
|
207
241
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
242
|
+
if "end" in kwargs:
|
|
243
|
+
end = kwargs["end"]
|
|
244
|
+
del kwargs["end"]
|
|
245
|
+
else:
|
|
246
|
+
end = "\n"
|
|
213
247
|
|
|
214
|
-
|
|
215
|
-
|
|
248
|
+
if style is not None and is_atty:
|
|
249
|
+
enable_style = _getEnableStyleCode(style)
|
|
216
250
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
251
|
+
if enable_style is None:
|
|
252
|
+
raise ValueError(
|
|
253
|
+
"%r is an invalid value for keyword argument style" % style
|
|
254
|
+
)
|
|
221
255
|
|
|
222
|
-
|
|
256
|
+
_enableAnsi()
|
|
223
257
|
|
|
224
|
-
|
|
258
|
+
print(enable_style, end="", **kwargs)
|
|
225
259
|
|
|
226
|
-
|
|
260
|
+
print(*args, end=end, **kwargs)
|
|
227
261
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
262
|
+
if style is not None and is_atty:
|
|
263
|
+
print(_getDisableStyleCode(), end="", **kwargs)
|
|
264
|
+
else:
|
|
265
|
+
print(*args, **kwargs)
|
|
232
266
|
|
|
233
|
-
|
|
234
|
-
|
|
267
|
+
# Flush the output.
|
|
268
|
+
file_output.flush()
|
|
269
|
+
except BrokenPipeError:
|
|
270
|
+
pass
|
|
235
271
|
|
|
236
272
|
|
|
237
273
|
def my_print(*args, **kwargs):
|
|
@@ -271,21 +307,25 @@ class OurLogger(object):
|
|
|
271
307
|
# For overload, pylint: disable=no-self-use
|
|
272
308
|
my_print(message, **kwargs)
|
|
273
309
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return
|
|
280
|
-
|
|
281
|
-
if self.name:
|
|
282
|
-
prefix = "%s:WARNING: " % self.name
|
|
310
|
+
@staticmethod
|
|
311
|
+
def _warnMnemonic(mnemonic, style, output_function):
|
|
312
|
+
if mnemonic.startswith("http"):
|
|
313
|
+
url = mnemonic
|
|
314
|
+
extra_prefix = ""
|
|
283
315
|
else:
|
|
284
|
-
|
|
316
|
+
url = "https://nuitka.net/info/%s.html" % mnemonic
|
|
317
|
+
extra_prefix = "Complex topic! "
|
|
318
|
+
|
|
319
|
+
output_function(
|
|
320
|
+
""" %sMore information can be found at %s%s"""
|
|
321
|
+
% (extra_prefix, _getEnableStyleCode("link"), url),
|
|
322
|
+
style=style,
|
|
323
|
+
)
|
|
285
324
|
|
|
325
|
+
def _printFormatted(self, prefix, message, style, keep_format):
|
|
286
326
|
style = style or self.base_style
|
|
287
327
|
|
|
288
|
-
if sys.stderr.isatty():
|
|
328
|
+
if sys.stderr.isatty() and not keep_format:
|
|
289
329
|
width = _getTerminalSize() or 10000
|
|
290
330
|
else:
|
|
291
331
|
width = 10000
|
|
@@ -302,12 +342,24 @@ class OurLogger(object):
|
|
|
302
342
|
)
|
|
303
343
|
self.my_print(formatted_message, style=style, file=sys.stderr)
|
|
304
344
|
|
|
345
|
+
def warning(self, message, style="yellow", mnemonic=None, keep_format=False):
|
|
305
346
|
if mnemonic is not None:
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
347
|
+
from .Options import shallDisplayWarningMnemonic
|
|
348
|
+
|
|
349
|
+
if not shallDisplayWarningMnemonic(mnemonic):
|
|
350
|
+
return
|
|
351
|
+
|
|
352
|
+
if self.name:
|
|
353
|
+
prefix = "%s:WARNING: " % self.name
|
|
354
|
+
else:
|
|
355
|
+
prefix = "WARNING: "
|
|
356
|
+
|
|
357
|
+
self._printFormatted(
|
|
358
|
+
prefix=prefix, message=message, style=style, keep_format=keep_format
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
if mnemonic is not None:
|
|
362
|
+
self._warnMnemonic(mnemonic, style=style, output_function=self.warning)
|
|
311
363
|
|
|
312
364
|
def sysexit(
|
|
313
365
|
self, message="", style=None, mnemonic=None, exit_code=1, reporting=False
|
|
@@ -334,11 +386,7 @@ class OurLogger(object):
|
|
|
334
386
|
)
|
|
335
387
|
|
|
336
388
|
if mnemonic is not None:
|
|
337
|
-
self.warning
|
|
338
|
-
""" Complex topic! More information can be found at %shttps://nuitka.net/info/%s.html"""
|
|
339
|
-
% (_getEnableStyleCode("link"), mnemonic),
|
|
340
|
-
style=style,
|
|
341
|
-
)
|
|
389
|
+
self._warnMnemonic(mnemonic, style=style, output_function=self.warning)
|
|
342
390
|
|
|
343
391
|
if reporting:
|
|
344
392
|
raise ReportingSystemExit(exit_code=exit_code, exit_message=message)
|
|
@@ -354,13 +402,21 @@ class OurLogger(object):
|
|
|
354
402
|
def isQuiet(self):
|
|
355
403
|
return is_quiet or self.is_quiet
|
|
356
404
|
|
|
357
|
-
def info(self, message, style=None):
|
|
405
|
+
def info(self, message, style=None, mnemonic=None, prefix=None, keep_format=False):
|
|
358
406
|
if not self.isQuiet():
|
|
359
|
-
|
|
360
|
-
|
|
407
|
+
self._printFormatted(
|
|
408
|
+
prefix=(
|
|
409
|
+
"%s: " % self.name
|
|
410
|
+
if prefix is None
|
|
411
|
+
else "%s:%s: " % (self.name, prefix)
|
|
412
|
+
),
|
|
413
|
+
message=message,
|
|
414
|
+
style=style,
|
|
415
|
+
keep_format=keep_format,
|
|
416
|
+
)
|
|
361
417
|
|
|
362
|
-
|
|
363
|
-
|
|
418
|
+
if mnemonic is not None:
|
|
419
|
+
self._warnMnemonic(mnemonic, style=style, output_function=self.info)
|
|
364
420
|
|
|
365
421
|
|
|
366
422
|
class FileLogger(OurLogger):
|
|
@@ -369,6 +425,10 @@ class FileLogger(OurLogger):
|
|
|
369
425
|
|
|
370
426
|
self.file_handle = file_handle
|
|
371
427
|
|
|
428
|
+
def __del__(self):
|
|
429
|
+
if self.file_handle is not None:
|
|
430
|
+
self.file_handle.close()
|
|
431
|
+
|
|
372
432
|
def my_print(self, message, **kwargs):
|
|
373
433
|
if "file" not in kwargs:
|
|
374
434
|
kwargs["file"] = self.file_handle or sys.stdout
|
|
@@ -382,13 +442,16 @@ class FileLogger(OurLogger):
|
|
|
382
442
|
def isFileOutput(self):
|
|
383
443
|
return self.file_handle is not None
|
|
384
444
|
|
|
385
|
-
def info(self, message, style=None):
|
|
445
|
+
def info(self, message, style=None, mnemonic=None):
|
|
386
446
|
if not self.isQuiet() or self.file_handle:
|
|
387
|
-
message = "%s:
|
|
447
|
+
message = "%s: %s" % (self.name, message)
|
|
388
448
|
|
|
389
449
|
style = style or self.base_style
|
|
390
450
|
self.my_print(message, style=style)
|
|
391
451
|
|
|
452
|
+
if mnemonic is not None:
|
|
453
|
+
self._warnMnemonic(mnemonic, style=style, output_function=self.my_print)
|
|
454
|
+
|
|
392
455
|
def debug(self, message, style=None):
|
|
393
456
|
if self.file_handle:
|
|
394
457
|
message = "%s:DEBUG: %s" % (self.name, message)
|
|
@@ -412,7 +475,7 @@ plugins_logger = OurLogger("Nuitka-Plugins")
|
|
|
412
475
|
recursion_logger = OurLogger("Nuitka-Inclusion")
|
|
413
476
|
progress_logger = OurLogger("Nuitka-Progress", quiet=True)
|
|
414
477
|
memory_logger = OurLogger("Nuitka-Memory")
|
|
415
|
-
|
|
478
|
+
metadata_logger = OurLogger("Nuitka-Metadata")
|
|
416
479
|
optimization_logger = FileLogger("Nuitka-Optimization")
|
|
417
480
|
pgo_logger = FileLogger("Nuitka-PGO")
|
|
418
481
|
code_generation_logger = OurLogger("Nuitka-CodeGen")
|
|
@@ -428,3 +491,46 @@ tools_logger = OurLogger("Nuitka-Tools")
|
|
|
428
491
|
wheel_logger = OurLogger("Nuitka-Wheel", base_style="blue")
|
|
429
492
|
cache_logger = OurLogger("Nuitka-Cache")
|
|
430
493
|
reports_logger = OurLogger("Nuitka-Reports")
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
def queryUser(question, choices, default, default_non_interactive):
|
|
497
|
+
assert default in choices, (default, choices)
|
|
498
|
+
assert default_non_interactive in choices, (default, choices)
|
|
499
|
+
|
|
500
|
+
prompt = "%s? %s : " % (
|
|
501
|
+
question,
|
|
502
|
+
"/".join(
|
|
503
|
+
"[%s]" % choice.title() if choice == default else choice.title()
|
|
504
|
+
for choice in choices
|
|
505
|
+
),
|
|
506
|
+
)
|
|
507
|
+
|
|
508
|
+
# Integrates with progress bar by closing it.
|
|
509
|
+
printLine(prompt, end="")
|
|
510
|
+
flushStandardOutputs()
|
|
511
|
+
|
|
512
|
+
try:
|
|
513
|
+
reply = raw_input() or default
|
|
514
|
+
except EOFError:
|
|
515
|
+
reply = default_non_interactive
|
|
516
|
+
|
|
517
|
+
if reply == "y":
|
|
518
|
+
reply = "yes"
|
|
519
|
+
|
|
520
|
+
return reply.lower()
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
524
|
+
# integrates with CPython, but also works on its own.
|
|
525
|
+
#
|
|
526
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
527
|
+
# you may not use this file except in compliance with the License.
|
|
528
|
+
# You may obtain a copy of the License at
|
|
529
|
+
#
|
|
530
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
531
|
+
#
|
|
532
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
533
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
534
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
535
|
+
# See the License for the specific language governing permissions and
|
|
536
|
+
# limitations under the License.
|
nuitka/TreeXML.py
CHANGED
|
@@ -1,27 +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
|
""" XML node tree handling
|
|
19
5
|
|
|
20
6
|
Means to create XML elements from Nuitka tree nodes and to convert the
|
|
21
7
|
XML tree to ASCII or output it.
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
|
-
from nuitka.__past__ import StringIO
|
|
10
|
+
from nuitka.__past__ import BytesIO, StringIO
|
|
25
11
|
|
|
26
12
|
|
|
27
13
|
def _indent(elem, level=0, more_sibs=False):
|
|
@@ -71,13 +57,13 @@ try:
|
|
|
71
57
|
|
|
72
58
|
Element = xml.etree.ElementTree.Element
|
|
73
59
|
|
|
74
|
-
def xml_tostring(tree, indent=True):
|
|
60
|
+
def xml_tostring(tree, indent=True, encoding=None):
|
|
75
61
|
if indent:
|
|
76
62
|
_indent(tree)
|
|
77
63
|
elif not indent:
|
|
78
64
|
_dedent(tree)
|
|
79
65
|
|
|
80
|
-
return xml_module.tostring(tree)
|
|
66
|
+
return xml_module.tostring(tree, encoding=encoding)
|
|
81
67
|
|
|
82
68
|
except ImportError:
|
|
83
69
|
xml_module = None
|
|
@@ -94,12 +80,12 @@ except ImportError:
|
|
|
94
80
|
# xml_writer = None
|
|
95
81
|
|
|
96
82
|
|
|
97
|
-
def toBytes(tree, indent=True):
|
|
98
|
-
return xml_tostring(tree, indent=indent)
|
|
83
|
+
def toBytes(tree, indent=True, encoding=None):
|
|
84
|
+
return xml_tostring(tree, indent=indent, encoding=encoding)
|
|
99
85
|
|
|
100
86
|
|
|
101
87
|
def toString(tree):
|
|
102
|
-
result = toBytes(tree)
|
|
88
|
+
result = toBytes(tree, encoding="utf8")
|
|
103
89
|
|
|
104
90
|
if str is not bytes:
|
|
105
91
|
result = result.decode("utf8")
|
|
@@ -107,8 +93,11 @@ def toString(tree):
|
|
|
107
93
|
return result
|
|
108
94
|
|
|
109
95
|
|
|
110
|
-
def fromString(text):
|
|
111
|
-
|
|
96
|
+
def fromString(text, use_lxml=False):
|
|
97
|
+
if type(text) is str:
|
|
98
|
+
return fromFile(StringIO(text), use_lxml=use_lxml)
|
|
99
|
+
else:
|
|
100
|
+
return fromFile(BytesIO(text), use_lxml=use_lxml)
|
|
112
101
|
|
|
113
102
|
|
|
114
103
|
def fromFile(file_handle, use_lxml=False):
|
|
@@ -131,5 +120,21 @@ def appendTreeElement(parent, *args, **kwargs):
|
|
|
131
120
|
def dumpTreeXMLToFile(tree, output_file):
|
|
132
121
|
"""Write an XML node tree to a file."""
|
|
133
122
|
|
|
134
|
-
value =
|
|
123
|
+
value = toBytes(tree).rstrip()
|
|
135
124
|
output_file.write(value)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
128
|
+
# integrates with CPython, but also works on its own.
|
|
129
|
+
#
|
|
130
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
131
|
+
# you may not use this file except in compliance with the License.
|
|
132
|
+
# You may obtain a copy of the License at
|
|
133
|
+
#
|
|
134
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
135
|
+
#
|
|
136
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
137
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
138
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
139
|
+
# See the License for the specific language governing permissions and
|
|
140
|
+
# limitations under the License.
|
nuitka/Variables.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Variables link the storage and use of a Python variable together.
|
|
19
5
|
|
|
20
6
|
Different kinds of variables represent different scopes and owners types,
|
|
@@ -25,7 +11,7 @@ module variable references.
|
|
|
25
11
|
|
|
26
12
|
from abc import abstractmethod
|
|
27
13
|
|
|
28
|
-
from nuitka.__past__ import
|
|
14
|
+
from nuitka.__past__ import iterItems
|
|
29
15
|
from nuitka.nodes.shapes.BuiltinTypeShapes import tshape_dict
|
|
30
16
|
from nuitka.nodes.shapes.StandardShapes import tshape_unknown
|
|
31
17
|
from nuitka.utils import Utils
|
|
@@ -34,11 +20,12 @@ from nuitka.utils.InstanceCounters import (
|
|
|
34
20
|
counted_init,
|
|
35
21
|
isCountingInstances,
|
|
36
22
|
)
|
|
23
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
37
24
|
|
|
38
25
|
complete = False
|
|
39
26
|
|
|
40
27
|
|
|
41
|
-
class Variable(getMetaClassBase("Variable")):
|
|
28
|
+
class Variable(getMetaClassBase("Variable", require_slots=True)):
|
|
42
29
|
# We will need all of these attributes, since we track the global
|
|
43
30
|
# state and cache some decisions as attributes. TODO: But in some
|
|
44
31
|
# cases, part of the these might be moved to the outside.
|
|
@@ -219,6 +206,11 @@ class Variable(getMetaClassBase("Variable")):
|
|
|
219
206
|
|
|
220
207
|
def hasWritersOutsideOf(self, provider):
|
|
221
208
|
if not self.owner.locals_scope.complete:
|
|
209
|
+
# TODO: Maybe this doesn't have to be limited to these types.
|
|
210
|
+
if not self.shared_users and (
|
|
211
|
+
self.isLocalVariable() or self.isTempVariable()
|
|
212
|
+
):
|
|
213
|
+
return False
|
|
222
214
|
return None
|
|
223
215
|
elif self.writers is None:
|
|
224
216
|
return False
|
|
@@ -390,21 +382,26 @@ class ModuleVariable(Variable):
|
|
|
390
382
|
|
|
391
383
|
|
|
392
384
|
class TempVariable(Variable):
|
|
393
|
-
__slots__ = ()
|
|
385
|
+
__slots__ = ("variable_type",)
|
|
394
386
|
|
|
395
|
-
def __init__(self, owner, variable_name):
|
|
387
|
+
def __init__(self, owner, variable_name, variable_type):
|
|
396
388
|
Variable.__init__(self, owner=owner, variable_name=variable_name)
|
|
397
389
|
|
|
398
|
-
|
|
399
|
-
|
|
390
|
+
# TODO: Push this later down to Variable itself.
|
|
391
|
+
self.variable_type = variable_type
|
|
400
392
|
|
|
401
393
|
@staticmethod
|
|
402
394
|
def isTempVariable():
|
|
403
395
|
return True
|
|
404
396
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
397
|
+
def getVariableType(self):
|
|
398
|
+
return self.variable_type
|
|
399
|
+
|
|
400
|
+
def isTempVariableBool(self):
|
|
401
|
+
return self.variable_type == "bool"
|
|
402
|
+
|
|
403
|
+
def getDescription(self):
|
|
404
|
+
return "temp variable '%s'" % self.variable_name
|
|
408
405
|
|
|
409
406
|
def initVariable(self, trace_collection):
|
|
410
407
|
"""Initialize variable in trace collection state."""
|
|
@@ -417,21 +414,6 @@ class TempVariable(Variable):
|
|
|
417
414
|
# lost to outside star imports or exec/eval uses.
|
|
418
415
|
|
|
419
416
|
|
|
420
|
-
class TempVariableBool(TempVariable):
|
|
421
|
-
__slots__ = ()
|
|
422
|
-
|
|
423
|
-
def getDescription(self):
|
|
424
|
-
return "temp bool variable '%s'" % self.variable_name
|
|
425
|
-
|
|
426
|
-
@staticmethod
|
|
427
|
-
def isTempVariableBool():
|
|
428
|
-
return True
|
|
429
|
-
|
|
430
|
-
@staticmethod
|
|
431
|
-
def getVariableType():
|
|
432
|
-
return "bool"
|
|
433
|
-
|
|
434
|
-
|
|
435
417
|
class LocalsDictVariable(Variable):
|
|
436
418
|
__slots__ = ()
|
|
437
419
|
|
|
@@ -519,3 +501,19 @@ def releaseSharedScopeInformation(tree):
|
|
|
519
501
|
for variable in _variables_in_shared_scopes
|
|
520
502
|
if variable.getOwner().getParentModule() is not tree
|
|
521
503
|
)
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
507
|
+
# integrates with CPython, but also works on its own.
|
|
508
|
+
#
|
|
509
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
510
|
+
# you may not use this file except in compliance with the License.
|
|
511
|
+
# You may obtain a copy of the License at
|
|
512
|
+
#
|
|
513
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
514
|
+
#
|
|
515
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
516
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
517
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
518
|
+
# See the License for the specific language governing permissions and
|
|
519
|
+
# limitations under the License.
|
nuitka/Version.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com
|
|
2
2
|
#
|
|
3
3
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
4
|
# integrates with CPython, but also works on its own.
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
22
|
version_string = """\
|
|
23
|
-
Nuitka
|
|
24
|
-
Copyright (C)
|
|
23
|
+
Nuitka V2.5.1
|
|
24
|
+
Copyright (C) 2024 Kay Hayen."""
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def getNuitkaVersion():
|
|
@@ -32,13 +32,16 @@ def getNuitkaVersion():
|
|
|
32
32
|
return version_string.split()[1][1:]
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
# Sanity check.
|
|
36
|
+
assert getNuitkaVersion()[-1].isdigit(), getNuitkaVersion()
|
|
37
37
|
|
|
38
|
-
This can also not be used for precise comparisons, last one might contain "rc"
|
|
39
|
-
"""
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
def parseNuitkaVersionToTuple(version):
|
|
40
|
+
"""Return Nuitka version as a tuple.
|
|
41
|
+
|
|
42
|
+
This can also not be used for precise comparisons, even with rc versions,
|
|
43
|
+
but it's not actually a version.
|
|
44
|
+
"""
|
|
42
45
|
|
|
43
46
|
if "rc" in version:
|
|
44
47
|
rc_number = int(version[version.find("rc") + 2 :] or "0")
|
|
@@ -58,6 +61,17 @@ def getNuitkaVersionTuple():
|
|
|
58
61
|
return tuple(result)
|
|
59
62
|
|
|
60
63
|
|
|
64
|
+
def getNuitkaVersionTuple():
|
|
65
|
+
"""Return Nuitka version as a tuple.
|
|
66
|
+
|
|
67
|
+
This can also not be used for precise comparisons, even with rc versions,
|
|
68
|
+
but it's not actually a version. The format is used what is used for
|
|
69
|
+
"__compiled__" values.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
return parseNuitkaVersionToTuple(version=getNuitkaVersion())
|
|
73
|
+
|
|
74
|
+
|
|
61
75
|
def getNuitkaVersionYear():
|
|
62
76
|
"""The year of Nuitka copyright for use in generations."""
|
|
63
77
|
|