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/tree/Building.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
|
""" Build the internal node tree from source code.
|
|
19
5
|
|
|
20
6
|
Does all the Python parsing and puts it into a tree structure for use in later
|
|
@@ -48,15 +34,11 @@ special attribute lookups for "__enter__" and "__exit__", calls of them,
|
|
|
48
34
|
catching and passing in exceptions raised.
|
|
49
35
|
|
|
50
36
|
"""
|
|
37
|
+
|
|
51
38
|
import marshal
|
|
52
39
|
import os
|
|
53
40
|
|
|
54
|
-
from nuitka import
|
|
55
|
-
ModuleRegistry,
|
|
56
|
-
Options,
|
|
57
|
-
OutputDirectories,
|
|
58
|
-
SourceCodeReferences,
|
|
59
|
-
)
|
|
41
|
+
from nuitka import ModuleRegistry, OutputDirectories, SourceCodeReferences
|
|
60
42
|
from nuitka.__past__ import long, unicode
|
|
61
43
|
from nuitka.BytecodeCaching import (
|
|
62
44
|
getCachedImportedModuleUsageAttempts,
|
|
@@ -97,7 +79,10 @@ from nuitka.nodes.ExceptionNodes import (
|
|
|
97
79
|
StatementReraiseException,
|
|
98
80
|
)
|
|
99
81
|
from nuitka.nodes.FutureSpecs import FutureSpec
|
|
100
|
-
from nuitka.nodes.GeneratorNodes import
|
|
82
|
+
from nuitka.nodes.GeneratorNodes import (
|
|
83
|
+
StatementGeneratorReturn,
|
|
84
|
+
StatementGeneratorReturnNone,
|
|
85
|
+
)
|
|
101
86
|
from nuitka.nodes.ImportNodes import (
|
|
102
87
|
isHardModuleWithoutSideEffect,
|
|
103
88
|
makeExpressionImportModuleFixed,
|
|
@@ -128,7 +113,16 @@ from nuitka.nodes.VariableNameNodes import (
|
|
|
128
113
|
StatementAssignmentVariableName,
|
|
129
114
|
)
|
|
130
115
|
from nuitka.optimizations.BytecodeDemotion import demoteSourceCodeToBytecode
|
|
131
|
-
from nuitka.Options import
|
|
116
|
+
from nuitka.Options import (
|
|
117
|
+
getMainEntryPointFilenames,
|
|
118
|
+
hasPythonFlagNoSite,
|
|
119
|
+
hasPythonFlagPackageMode,
|
|
120
|
+
isShowMemory,
|
|
121
|
+
isStandaloneMode,
|
|
122
|
+
shallDisableBytecodeCacheUsage,
|
|
123
|
+
shallMakeModule,
|
|
124
|
+
shallWarnUnusualCode,
|
|
125
|
+
)
|
|
132
126
|
from nuitka.pgo.PGO import decideCompilationFromPGO
|
|
133
127
|
from nuitka.plugins.Plugins import Plugins
|
|
134
128
|
from nuitka.PythonVersions import python_version
|
|
@@ -141,6 +135,7 @@ from nuitka.Tracing import (
|
|
|
141
135
|
)
|
|
142
136
|
from nuitka.utils import MemoryUsage
|
|
143
137
|
from nuitka.utils.ModuleNames import ModuleName
|
|
138
|
+
from nuitka.utils.Utils import withNoSyntaxWarning
|
|
144
139
|
|
|
145
140
|
from . import SyntaxErrors
|
|
146
141
|
from .ReformulationAssertStatements import buildAssertNode
|
|
@@ -150,6 +145,8 @@ from .ReformulationAssignmentStatements import (
|
|
|
150
145
|
buildDeleteNode,
|
|
151
146
|
buildInplaceAssignNode,
|
|
152
147
|
buildNamedExprNode,
|
|
148
|
+
buildTypeAliasNode,
|
|
149
|
+
buildTypeVarNode,
|
|
153
150
|
)
|
|
154
151
|
from .ReformulationBooleanExpressions import buildBoolOpNode
|
|
155
152
|
from .ReformulationCallExpressions import buildCallNode
|
|
@@ -292,9 +289,9 @@ def buildTryFinallyNode2(provider, node, source_ref):
|
|
|
292
289
|
|
|
293
290
|
|
|
294
291
|
def buildTryNode(provider, node, source_ref):
|
|
295
|
-
# Note: This variant is used for Python3
|
|
296
|
-
#
|
|
297
|
-
#
|
|
292
|
+
# Note: This variant is used for Python3 only, older stuff uses the above
|
|
293
|
+
# ones, this one merges try/except with try/finally in the "ast". We split
|
|
294
|
+
# it up again, as it's logically separated of course.
|
|
298
295
|
|
|
299
296
|
# Shortcut missing try/finally.
|
|
300
297
|
if not node.handlers:
|
|
@@ -440,7 +437,7 @@ def handleGlobalDeclarationNode(provider, node, source_ref):
|
|
|
440
437
|
for variable_name in node.names:
|
|
441
438
|
closure_variable = None
|
|
442
439
|
|
|
443
|
-
#
|
|
440
|
+
# Reuse already taken global variables, in order to avoid creating yet
|
|
444
441
|
# another instance, esp. as the indications could then potentially not
|
|
445
442
|
# be shared.
|
|
446
443
|
if provider.hasTakenVariable(variable_name):
|
|
@@ -467,7 +464,7 @@ def handleGlobalDeclarationNode(provider, node, source_ref):
|
|
|
467
464
|
provider.isExpressionClassBodyBase()
|
|
468
465
|
and closure_variable.getName() == "__class__"
|
|
469
466
|
):
|
|
470
|
-
if python_version <
|
|
467
|
+
if python_version < 0x300:
|
|
471
468
|
SyntaxErrors.raiseSyntaxError(
|
|
472
469
|
"cannot make __class__ global", source_ref
|
|
473
470
|
)
|
|
@@ -594,10 +591,12 @@ def buildReturnNode(provider, node, source_ref):
|
|
|
594
591
|
provider.isExpressionGeneratorObjectBody()
|
|
595
592
|
or provider.isExpressionAsyncgenObjectBody()
|
|
596
593
|
):
|
|
597
|
-
if expression is None:
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
594
|
+
if expression is None or expression.isExpressionConstantNoneRef():
|
|
595
|
+
return StatementGeneratorReturnNone(source_ref=source_ref)
|
|
596
|
+
else:
|
|
597
|
+
return StatementGeneratorReturn(
|
|
598
|
+
expression=expression, source_ref=source_ref
|
|
599
|
+
)
|
|
601
600
|
else:
|
|
602
601
|
return makeStatementReturn(expression=expression, source_ref=source_ref)
|
|
603
602
|
|
|
@@ -771,6 +770,7 @@ setBuildingDispatchers(
|
|
|
771
770
|
"NamedExpr": buildNamedExprNode,
|
|
772
771
|
"Slice": buildSliceNode,
|
|
773
772
|
"Match": buildMatchNode,
|
|
773
|
+
"TypeAlias": buildTypeAliasNode,
|
|
774
774
|
},
|
|
775
775
|
path_args2={
|
|
776
776
|
"Constant": buildNamedConstantNode, # Python3.8
|
|
@@ -779,24 +779,24 @@ setBuildingDispatchers(
|
|
|
779
779
|
"Num": buildNumberNode,
|
|
780
780
|
"Bytes": buildBytesNode,
|
|
781
781
|
"Continue": buildStatementLoopContinue,
|
|
782
|
+
"TypeVar": buildTypeVarNode,
|
|
782
783
|
},
|
|
783
784
|
path_args1={"Ellipsis": buildEllipsisNode},
|
|
784
785
|
)
|
|
785
786
|
|
|
786
787
|
|
|
787
|
-
def buildParseTree(provider, ast_tree, source_ref,
|
|
788
|
+
def buildParseTree(provider, ast_tree, source_ref, is_main):
|
|
788
789
|
# There are a bunch of branches here, mostly to deal with version
|
|
789
|
-
# differences for module default variables.
|
|
790
|
+
# differences for module default variables.
|
|
790
791
|
|
|
791
792
|
# Maybe one day, we do exec inlining again, that is what this is for,
|
|
792
793
|
# then is_module won't be True, for now it always is.
|
|
793
|
-
pushFutureSpec()
|
|
794
|
-
|
|
795
|
-
provider.setFutureSpec(getFutureSpec())
|
|
794
|
+
pushFutureSpec(provider.getFullName())
|
|
795
|
+
provider.setFutureSpec(getFutureSpec())
|
|
796
796
|
|
|
797
797
|
body, doc = extractDocFromBody(ast_tree)
|
|
798
798
|
|
|
799
|
-
if
|
|
799
|
+
if is_main and python_version >= 0x360:
|
|
800
800
|
provider.markAsNeedsAnnotationsDictionary()
|
|
801
801
|
|
|
802
802
|
try:
|
|
@@ -817,100 +817,105 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
|
|
|
817
817
|
|
|
818
818
|
statements = []
|
|
819
819
|
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
820
|
+
# Add import of "site" module of main programs visibly in the node tree,
|
|
821
|
+
# so recursion and optimization can pick it up, checking its effects.
|
|
822
|
+
if is_main and not hasPythonFlagNoSite():
|
|
823
|
+
statements.append(
|
|
824
|
+
StatementExpressionOnly(
|
|
825
|
+
expression=makeExpressionImportModuleFixed(
|
|
826
|
+
using_module_name=provider.getParentModule().getFullName(),
|
|
827
|
+
module_name="site",
|
|
828
|
+
value_name="site",
|
|
829
|
+
source_ref=source_ref,
|
|
830
|
+
),
|
|
831
|
+
source_ref=source_ref,
|
|
832
|
+
)
|
|
833
|
+
)
|
|
834
|
+
|
|
835
|
+
for path_imported_name in getPthImportedPackages():
|
|
836
|
+
if isHardModuleWithoutSideEffect(path_imported_name):
|
|
837
|
+
continue
|
|
838
|
+
|
|
824
839
|
statements.append(
|
|
825
840
|
StatementExpressionOnly(
|
|
826
841
|
expression=makeExpressionImportModuleFixed(
|
|
827
|
-
|
|
842
|
+
using_module_name=provider.getParentModule().getFullName(),
|
|
843
|
+
module_name=path_imported_name,
|
|
844
|
+
value_name=path_imported_name.getTopLevelPackageName(),
|
|
845
|
+
source_ref=source_ref,
|
|
828
846
|
),
|
|
829
847
|
source_ref=source_ref,
|
|
830
848
|
)
|
|
831
849
|
)
|
|
832
850
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
)
|
|
844
|
-
)
|
|
851
|
+
statements.append(
|
|
852
|
+
StatementAssignmentVariableName(
|
|
853
|
+
provider=provider,
|
|
854
|
+
variable_name="__doc__",
|
|
855
|
+
source=makeConstantRefNode(
|
|
856
|
+
constant=doc, source_ref=internal_source_ref, user_provided=True
|
|
857
|
+
),
|
|
858
|
+
source_ref=internal_source_ref,
|
|
859
|
+
)
|
|
860
|
+
)
|
|
845
861
|
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
),
|
|
862
|
+
statements.append(
|
|
863
|
+
StatementAssignmentVariableName(
|
|
864
|
+
provider=provider,
|
|
865
|
+
variable_name="__file__",
|
|
866
|
+
source=ExpressionModuleAttributeFileRef(
|
|
867
|
+
variable=provider.getVariableForReference("__file__"),
|
|
853
868
|
source_ref=internal_source_ref,
|
|
854
|
-
)
|
|
869
|
+
),
|
|
870
|
+
source_ref=internal_source_ref,
|
|
855
871
|
)
|
|
872
|
+
)
|
|
856
873
|
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
874
|
+
if provider.isCompiledPythonPackage():
|
|
875
|
+
# This assigns "__path__" value.
|
|
876
|
+
statements.append(createPathAssignment(provider, internal_source_ref))
|
|
877
|
+
|
|
878
|
+
if python_version >= 0x300 and not is_main:
|
|
879
|
+
statements += (
|
|
880
|
+
StatementAssignmentAttribute(
|
|
881
|
+
expression=ExpressionModuleAttributeSpecRef(
|
|
882
|
+
variable=provider.getVariableForReference("__spec__"),
|
|
883
|
+
source_ref=internal_source_ref,
|
|
884
|
+
),
|
|
885
|
+
attribute_name="origin",
|
|
861
886
|
source=ExpressionModuleAttributeFileRef(
|
|
862
887
|
variable=provider.getVariableForReference("__file__"),
|
|
863
888
|
source_ref=internal_source_ref,
|
|
864
889
|
),
|
|
865
890
|
source_ref=internal_source_ref,
|
|
866
|
-
)
|
|
891
|
+
),
|
|
892
|
+
StatementAssignmentAttribute(
|
|
893
|
+
expression=ExpressionModuleAttributeSpecRef(
|
|
894
|
+
variable=provider.getVariableForReference("__spec__"),
|
|
895
|
+
source_ref=internal_source_ref,
|
|
896
|
+
),
|
|
897
|
+
attribute_name="has_location",
|
|
898
|
+
source=makeConstantRefNode(True, internal_source_ref),
|
|
899
|
+
source_ref=internal_source_ref,
|
|
900
|
+
),
|
|
867
901
|
)
|
|
868
902
|
|
|
869
903
|
if provider.isCompiledPythonPackage():
|
|
870
|
-
|
|
871
|
-
statements.append(createPathAssignment(provider, internal_source_ref))
|
|
872
|
-
|
|
873
|
-
if python_version >= 0x340 and not is_main:
|
|
874
|
-
statements += (
|
|
904
|
+
statements.append(
|
|
875
905
|
StatementAssignmentAttribute(
|
|
876
906
|
expression=ExpressionModuleAttributeSpecRef(
|
|
877
907
|
variable=provider.getVariableForReference("__spec__"),
|
|
878
908
|
source_ref=internal_source_ref,
|
|
879
909
|
),
|
|
880
|
-
attribute_name="
|
|
881
|
-
source=
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
),
|
|
885
|
-
source_ref=internal_source_ref,
|
|
886
|
-
),
|
|
887
|
-
StatementAssignmentAttribute(
|
|
888
|
-
expression=ExpressionModuleAttributeSpecRef(
|
|
889
|
-
variable=provider.getVariableForReference("__spec__"),
|
|
910
|
+
attribute_name="submodule_search_locations",
|
|
911
|
+
source=ExpressionVariableNameRef(
|
|
912
|
+
provider=provider,
|
|
913
|
+
variable_name="__path__",
|
|
890
914
|
source_ref=internal_source_ref,
|
|
891
915
|
),
|
|
892
|
-
attribute_name="has_location",
|
|
893
|
-
source=makeConstantRefNode(True, internal_source_ref),
|
|
894
916
|
source_ref=internal_source_ref,
|
|
895
|
-
),
|
|
896
|
-
)
|
|
897
|
-
|
|
898
|
-
if provider.isCompiledPythonPackage():
|
|
899
|
-
statements.append(
|
|
900
|
-
StatementAssignmentAttribute(
|
|
901
|
-
expression=ExpressionModuleAttributeSpecRef(
|
|
902
|
-
variable=provider.getVariableForReference("__spec__"),
|
|
903
|
-
source_ref=internal_source_ref,
|
|
904
|
-
),
|
|
905
|
-
attribute_name="submodule_search_locations",
|
|
906
|
-
source=ExpressionVariableNameRef(
|
|
907
|
-
provider=provider,
|
|
908
|
-
variable_name="__path__",
|
|
909
|
-
source_ref=internal_source_ref,
|
|
910
|
-
),
|
|
911
|
-
source_ref=internal_source_ref,
|
|
912
|
-
)
|
|
913
917
|
)
|
|
918
|
+
)
|
|
914
919
|
|
|
915
920
|
if python_version >= 0x300:
|
|
916
921
|
statements.append(
|
|
@@ -922,23 +927,6 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
|
|
|
922
927
|
)
|
|
923
928
|
)
|
|
924
929
|
|
|
925
|
-
needs__initializing__ = (
|
|
926
|
-
not provider.isMainModule() and 0x300 <= python_version < 0x340
|
|
927
|
-
)
|
|
928
|
-
|
|
929
|
-
if needs__initializing__:
|
|
930
|
-
# Set "__initializing__" at the beginning to True
|
|
931
|
-
statements.append(
|
|
932
|
-
StatementAssignmentVariableName(
|
|
933
|
-
provider=provider,
|
|
934
|
-
variable_name="__initializing__",
|
|
935
|
-
source=makeConstantRefNode(
|
|
936
|
-
constant=True, source_ref=internal_source_ref, user_provided=True
|
|
937
|
-
),
|
|
938
|
-
source_ref=internal_source_ref,
|
|
939
|
-
)
|
|
940
|
-
)
|
|
941
|
-
|
|
942
930
|
if provider.needsAnnotationsDictionary():
|
|
943
931
|
# Set "__annotations__" on module level to {}
|
|
944
932
|
statements.append(
|
|
@@ -956,46 +944,33 @@ def buildParseTree(provider, ast_tree, source_ref, is_module, is_main):
|
|
|
956
944
|
if result is not None:
|
|
957
945
|
statements.extend(result.subnode_statements)
|
|
958
946
|
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
StatementAssignmentVariableName(
|
|
963
|
-
provider=provider,
|
|
964
|
-
variable_name="__initializing__",
|
|
965
|
-
source=makeConstantRefNode(
|
|
966
|
-
constant=False, source_ref=internal_source_ref, user_provided=True
|
|
967
|
-
),
|
|
968
|
-
source_ref=internal_source_ref,
|
|
969
|
-
)
|
|
970
|
-
)
|
|
971
|
-
|
|
972
|
-
if is_module:
|
|
973
|
-
result = makeModuleFrame(
|
|
974
|
-
module=provider, statements=statements, source_ref=source_ref
|
|
975
|
-
)
|
|
947
|
+
result = makeModuleFrame(
|
|
948
|
+
module=provider, statements=statements, source_ref=source_ref
|
|
949
|
+
)
|
|
976
950
|
|
|
977
|
-
|
|
951
|
+
popFutureSpec()
|
|
978
952
|
|
|
979
|
-
|
|
980
|
-
else:
|
|
981
|
-
assert False
|
|
953
|
+
return result
|
|
982
954
|
|
|
983
955
|
|
|
984
|
-
def decideCompilationMode(is_top, module_name, for_pgo):
|
|
956
|
+
def decideCompilationMode(is_top, module_name, module_filename, for_pgo):
|
|
985
957
|
"""Decide the compilation mode for a module.
|
|
986
958
|
|
|
987
959
|
module_name - The module to decide compilation mode for.
|
|
988
960
|
for_pgo - consider PGO information or not
|
|
989
961
|
"""
|
|
990
962
|
|
|
991
|
-
|
|
992
|
-
|
|
963
|
+
is_stdlib = module_filename is not None and isStandardLibraryPath(module_filename)
|
|
964
|
+
|
|
965
|
+
# Technically required modules must be bytecode, do not even ask plugins
|
|
966
|
+
# about it.
|
|
967
|
+
if is_stdlib and module_name in detectEarlyImports():
|
|
993
968
|
return "bytecode"
|
|
994
969
|
|
|
995
970
|
result = Plugins.decideCompilation(module_name)
|
|
996
971
|
|
|
997
|
-
# Cannot change mode of __main__ to bytecode, that is not going
|
|
998
|
-
#
|
|
972
|
+
# Cannot change mode of "__main__" to bytecode, that is not going to work
|
|
973
|
+
# currently, maybe in the future we could allow it.
|
|
999
974
|
if result == "bytecode" and is_top:
|
|
1000
975
|
plugins_logger.warning(
|
|
1001
976
|
"""\
|
|
@@ -1008,13 +983,8 @@ required to compiled."""
|
|
|
1008
983
|
|
|
1009
984
|
# Include all of standard library as bytecode, for now. We need to identify
|
|
1010
985
|
# which ones really need that.
|
|
1011
|
-
if not is_top:
|
|
1012
|
-
|
|
1013
|
-
module_name=module_name, parent_package=None, level=0
|
|
1014
|
-
)[1]
|
|
1015
|
-
|
|
1016
|
-
if module_filename is not None and isStandardLibraryPath(module_filename):
|
|
1017
|
-
result = "bytecode"
|
|
986
|
+
if not is_top and is_stdlib and result is None:
|
|
987
|
+
result = "bytecode"
|
|
1018
988
|
|
|
1019
989
|
# Plugins need to win over PGO, as they might know it better
|
|
1020
990
|
if result is None and not for_pgo:
|
|
@@ -1022,7 +992,7 @@ required to compiled."""
|
|
|
1022
992
|
|
|
1023
993
|
# Default if neither plugins nor PGO have expressed an opinion
|
|
1024
994
|
if result is None:
|
|
1025
|
-
if module_name in detectStdlibAutoInclusionModules():
|
|
995
|
+
if is_stdlib and module_name in detectStdlibAutoInclusionModules():
|
|
1026
996
|
result = "bytecode"
|
|
1027
997
|
else:
|
|
1028
998
|
result = "compiled"
|
|
@@ -1061,6 +1031,7 @@ def _loadUncompiledModuleFromCache(
|
|
|
1061
1031
|
|
|
1062
1032
|
def _createModule(
|
|
1063
1033
|
module_name,
|
|
1034
|
+
module_filename,
|
|
1064
1035
|
module_kind,
|
|
1065
1036
|
reason,
|
|
1066
1037
|
source_code,
|
|
@@ -1071,11 +1042,14 @@ def _createModule(
|
|
|
1071
1042
|
is_main,
|
|
1072
1043
|
main_added,
|
|
1073
1044
|
):
|
|
1045
|
+
is_stdlib = module_filename is not None and isStandardLibraryPath(module_filename)
|
|
1046
|
+
|
|
1074
1047
|
if module_kind == "extension":
|
|
1075
1048
|
result = PythonExtensionModule(
|
|
1076
1049
|
module_name=module_name,
|
|
1050
|
+
module_filename=module_filename,
|
|
1077
1051
|
reason=reason,
|
|
1078
|
-
technical=module_name in detectEarlyImports(),
|
|
1052
|
+
technical=is_stdlib and module_name in detectEarlyImports(),
|
|
1079
1053
|
source_ref=source_ref,
|
|
1080
1054
|
)
|
|
1081
1055
|
elif is_main:
|
|
@@ -1085,7 +1059,10 @@ def _createModule(
|
|
|
1085
1059
|
main_added=main_added,
|
|
1086
1060
|
module_name=module_name,
|
|
1087
1061
|
mode=decideCompilationMode(
|
|
1088
|
-
is_top=is_top,
|
|
1062
|
+
is_top=is_top,
|
|
1063
|
+
module_name=module_name,
|
|
1064
|
+
module_filename=module_filename,
|
|
1065
|
+
for_pgo=False,
|
|
1089
1066
|
),
|
|
1090
1067
|
future_spec=None,
|
|
1091
1068
|
source_ref=source_ref,
|
|
@@ -1101,13 +1078,16 @@ def _createModule(
|
|
|
1101
1078
|
)
|
|
1102
1079
|
else:
|
|
1103
1080
|
mode = decideCompilationMode(
|
|
1104
|
-
is_top=is_top,
|
|
1081
|
+
is_top=is_top,
|
|
1082
|
+
module_name=module_name,
|
|
1083
|
+
module_filename=module_filename,
|
|
1084
|
+
for_pgo=False,
|
|
1105
1085
|
)
|
|
1106
1086
|
|
|
1107
1087
|
if (
|
|
1108
1088
|
mode == "bytecode"
|
|
1109
1089
|
and not is_top
|
|
1110
|
-
and not
|
|
1090
|
+
and not shallDisableBytecodeCacheUsage()
|
|
1111
1091
|
and hasCachedImportedModuleUsageAttempts(
|
|
1112
1092
|
module_name=module_name, source_code=source_code, source_ref=source_ref
|
|
1113
1093
|
)
|
|
@@ -1146,14 +1126,13 @@ def _createModule(
|
|
|
1146
1126
|
|
|
1147
1127
|
|
|
1148
1128
|
def createModuleTree(module, source_ref, ast_tree, is_main):
|
|
1149
|
-
if
|
|
1129
|
+
if isShowMemory():
|
|
1150
1130
|
memory_watch = MemoryUsage.MemoryWatch()
|
|
1151
1131
|
|
|
1152
1132
|
module_body = buildParseTree(
|
|
1153
1133
|
provider=module,
|
|
1154
1134
|
ast_tree=ast_tree,
|
|
1155
1135
|
source_ref=source_ref,
|
|
1156
|
-
is_module=True,
|
|
1157
1136
|
is_main=is_main,
|
|
1158
1137
|
)
|
|
1159
1138
|
|
|
@@ -1164,17 +1143,19 @@ def createModuleTree(module, source_ref, ast_tree, is_main):
|
|
|
1164
1143
|
|
|
1165
1144
|
completeVariableClosures(module)
|
|
1166
1145
|
|
|
1167
|
-
if
|
|
1146
|
+
if isShowMemory():
|
|
1168
1147
|
memory_watch.finish(
|
|
1169
1148
|
"Memory usage changed loading module '%s'" % module.getFullName()
|
|
1170
1149
|
)
|
|
1171
1150
|
|
|
1172
1151
|
|
|
1173
|
-
def buildMainModuleTree(
|
|
1152
|
+
def buildMainModuleTree(source_code):
|
|
1174
1153
|
# Detect to be frozen modules if any, so we can consider to not follow
|
|
1175
1154
|
# to them.
|
|
1176
1155
|
|
|
1177
|
-
|
|
1156
|
+
filename = getMainEntryPointFilenames()[0]
|
|
1157
|
+
|
|
1158
|
+
if shallMakeModule():
|
|
1178
1159
|
module_name = Importing.getModuleNameAndKindFromFilename(filename)[0]
|
|
1179
1160
|
|
|
1180
1161
|
if module_name is None:
|
|
@@ -1184,7 +1165,7 @@ def buildMainModuleTree(filename, source_code):
|
|
|
1184
1165
|
)
|
|
1185
1166
|
else:
|
|
1186
1167
|
# TODO: Doesn't work for deeply nested packages at all.
|
|
1187
|
-
if
|
|
1168
|
+
if hasPythonFlagPackageMode():
|
|
1188
1169
|
module_name = ModuleName(os.path.basename(filename) + ".__main__")
|
|
1189
1170
|
else:
|
|
1190
1171
|
module_name = ModuleName("__main__")
|
|
@@ -1195,13 +1176,13 @@ def buildMainModuleTree(filename, source_code):
|
|
|
1195
1176
|
module_filename=filename,
|
|
1196
1177
|
source_code=source_code,
|
|
1197
1178
|
is_top=True,
|
|
1198
|
-
is_main=not
|
|
1179
|
+
is_main=not shallMakeModule(),
|
|
1199
1180
|
module_kind="py",
|
|
1200
1181
|
is_fake=source_code is not None,
|
|
1201
1182
|
hide_syntax_error=False,
|
|
1202
1183
|
)
|
|
1203
1184
|
|
|
1204
|
-
if
|
|
1185
|
+
if isStandaloneMode():
|
|
1205
1186
|
module.setStandardLibraryModules(
|
|
1206
1187
|
early_module_names=detectEarlyImports(),
|
|
1207
1188
|
stdlib_modules_names=detectStdlibAutoInclusionModules(),
|
|
@@ -1233,7 +1214,7 @@ Cannot follow import to module '%s' because of '%s'."""
|
|
|
1233
1214
|
reason=reason,
|
|
1234
1215
|
is_top=False,
|
|
1235
1216
|
mode="compiled",
|
|
1236
|
-
future_spec=FutureSpec(),
|
|
1217
|
+
future_spec=FutureSpec(use_annotations=False),
|
|
1237
1218
|
source_ref=source_ref,
|
|
1238
1219
|
)
|
|
1239
1220
|
|
|
@@ -1259,11 +1240,14 @@ def _makeModuleBodyTooComplex(
|
|
|
1259
1240
|
if module_filename not in Importing.warned_about:
|
|
1260
1241
|
Importing.warned_about.add(module_filename)
|
|
1261
1242
|
|
|
1262
|
-
|
|
1263
|
-
|
|
1243
|
+
# Known harmless case, not causing issues, lets not warn about it.
|
|
1244
|
+
# spell-checker: ignore sympy,numberfields
|
|
1245
|
+
if module_name != "sympy.polys.numberfields.resolvent_lookup":
|
|
1246
|
+
recursion_logger.info(
|
|
1247
|
+
"""\
|
|
1264
1248
|
Cannot compile module '%s' because its code is too complex, included as bytecode."""
|
|
1265
|
-
|
|
1266
|
-
|
|
1249
|
+
% module_name
|
|
1250
|
+
)
|
|
1267
1251
|
|
|
1268
1252
|
return makeUncompiledPythonModule(
|
|
1269
1253
|
module_name=module_name,
|
|
@@ -1304,8 +1288,8 @@ def buildModule(
|
|
|
1304
1288
|
logger=general,
|
|
1305
1289
|
)
|
|
1306
1290
|
|
|
1307
|
-
if
|
|
1308
|
-
if is_top and
|
|
1291
|
+
if hasPythonFlagPackageMode():
|
|
1292
|
+
if is_top and shallMakeModule():
|
|
1309
1293
|
optimization_logger.warning(
|
|
1310
1294
|
"Python flag -m (package_mode) has no effect in module mode, it's only for executables."
|
|
1311
1295
|
)
|
|
@@ -1358,12 +1342,13 @@ def buildModule(
|
|
|
1358
1342
|
)
|
|
1359
1343
|
|
|
1360
1344
|
try:
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1345
|
+
with withNoSyntaxWarning():
|
|
1346
|
+
ast_tree = parseSourceCodeToAst(
|
|
1347
|
+
source_code=source_code,
|
|
1348
|
+
module_name=module_name,
|
|
1349
|
+
filename=source_filename,
|
|
1350
|
+
line_offset=0,
|
|
1351
|
+
)
|
|
1367
1352
|
except (SyntaxError, IndentationError) as e:
|
|
1368
1353
|
# Do not hide SyntaxError if asked not to.
|
|
1369
1354
|
if not hide_syntax_error:
|
|
@@ -1384,7 +1369,7 @@ def buildModule(
|
|
|
1384
1369
|
source_diff = getSourceCodeDiff(original_source_code, source_code)
|
|
1385
1370
|
|
|
1386
1371
|
for line in source_diff:
|
|
1387
|
-
plugins_logger.warning(line)
|
|
1372
|
+
plugins_logger.warning(line, keep_format=True)
|
|
1388
1373
|
|
|
1389
1374
|
if len(contributing_plugins) == 1:
|
|
1390
1375
|
next(iter(contributing_plugins)).sysexit(
|
|
@@ -1421,6 +1406,7 @@ def buildModule(
|
|
|
1421
1406
|
|
|
1422
1407
|
module = _createModule(
|
|
1423
1408
|
module_name=module_name,
|
|
1409
|
+
module_filename=None if is_fake else module_filename,
|
|
1424
1410
|
module_kind=module_kind,
|
|
1425
1411
|
reason=reason,
|
|
1426
1412
|
source_code=source_code,
|
|
@@ -1459,3 +1445,19 @@ def buildModule(
|
|
|
1459
1445
|
)
|
|
1460
1446
|
|
|
1461
1447
|
return module
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1451
|
+
# integrates with CPython, but also works on its own.
|
|
1452
|
+
#
|
|
1453
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1454
|
+
# you may not use this file except in compliance with the License.
|
|
1455
|
+
# You may obtain a copy of the License at
|
|
1456
|
+
#
|
|
1457
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1458
|
+
#
|
|
1459
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1460
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1461
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1462
|
+
# See the License for the specific language governing permissions and
|
|
1463
|
+
# limitations under the License.
|