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/importing/Recursion.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
|
""" Recursion into other modules.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -28,7 +14,7 @@ from nuitka.freezer.ImportDetection import (
|
|
|
28
14
|
detectEarlyImports,
|
|
29
15
|
detectStdlibAutoInclusionModules,
|
|
30
16
|
)
|
|
31
|
-
from nuitka.importing import ImportCache,
|
|
17
|
+
from nuitka.importing import ImportCache, StandardLibrary
|
|
32
18
|
from nuitka.ModuleRegistry import addUsedModule, getRootTopModule
|
|
33
19
|
from nuitka.pgo.PGO import decideInclusionFromPGO
|
|
34
20
|
from nuitka.plugins.Plugins import Plugins
|
|
@@ -38,6 +24,13 @@ from nuitka.utils.FileOperations import listDir
|
|
|
38
24
|
from nuitka.utils.Importing import getSharedLibrarySuffixes
|
|
39
25
|
from nuitka.utils.ModuleNames import ModuleName
|
|
40
26
|
|
|
27
|
+
from .Importing import (
|
|
28
|
+
getModuleNameAndKindFromFilename,
|
|
29
|
+
isPackageDir,
|
|
30
|
+
locateModule,
|
|
31
|
+
warnAboutNotFoundImport,
|
|
32
|
+
)
|
|
33
|
+
|
|
41
34
|
|
|
42
35
|
def _recurseTo(module_name, module_filename, module_kind, reason):
|
|
43
36
|
from nuitka.tree import Building
|
|
@@ -97,9 +90,38 @@ def recurseTo(
|
|
|
97
90
|
_recursion_decision_cache = {}
|
|
98
91
|
|
|
99
92
|
|
|
93
|
+
def getRecursionDecisions():
|
|
94
|
+
"""Access to recursion decisions, intended only for reporting."""
|
|
95
|
+
return _recursion_decision_cache
|
|
96
|
+
|
|
97
|
+
|
|
100
98
|
def decideRecursion(
|
|
101
99
|
using_module_name, module_filename, module_name, module_kind, extra_recursion=False
|
|
102
100
|
):
|
|
101
|
+
package_part, _remainder = module_name.splitModuleBasename()
|
|
102
|
+
|
|
103
|
+
if package_part is not None:
|
|
104
|
+
(
|
|
105
|
+
_package_part,
|
|
106
|
+
package_filename,
|
|
107
|
+
package_module_kind,
|
|
108
|
+
package_finding,
|
|
109
|
+
) = locateModule(module_name=package_part, parent_package=None, level=0)
|
|
110
|
+
assert _package_part == package_part
|
|
111
|
+
|
|
112
|
+
# For bad decisions, this may already not work.
|
|
113
|
+
if package_finding != "not-found":
|
|
114
|
+
package_decision, package_reason = decideRecursion(
|
|
115
|
+
using_module_name=using_module_name,
|
|
116
|
+
module_filename=package_filename,
|
|
117
|
+
module_name=package_part,
|
|
118
|
+
module_kind=package_module_kind,
|
|
119
|
+
extra_recursion=extra_recursion,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
if package_decision is False:
|
|
123
|
+
return package_decision, package_reason
|
|
124
|
+
|
|
103
125
|
key = using_module_name, module_filename, module_name, module_kind, extra_recursion
|
|
104
126
|
|
|
105
127
|
if key not in _recursion_decision_cache:
|
|
@@ -111,6 +133,16 @@ def decideRecursion(
|
|
|
111
133
|
extra_recursion,
|
|
112
134
|
)
|
|
113
135
|
|
|
136
|
+
# If decided true, give the plugins a chance to e.g. add more hard
|
|
137
|
+
# module information, this indicates tentatively, that a module might
|
|
138
|
+
# get used, but it may also not happen at all.
|
|
139
|
+
if _recursion_decision_cache[key][0]:
|
|
140
|
+
Plugins.onModuleUsageLookAhead(
|
|
141
|
+
module_name=module_name,
|
|
142
|
+
module_filename=module_filename,
|
|
143
|
+
module_kind=module_kind,
|
|
144
|
+
)
|
|
145
|
+
|
|
114
146
|
return _recursion_decision_cache[key]
|
|
115
147
|
|
|
116
148
|
|
|
@@ -122,13 +154,23 @@ def _decideRecursion(
|
|
|
122
154
|
if module_name == "__main__":
|
|
123
155
|
return False, "Main program is not followed to a second time."
|
|
124
156
|
|
|
157
|
+
if using_module_name == "__main__" and Options.isMultidistMode():
|
|
158
|
+
return True, "Main program multidist entry points."
|
|
159
|
+
|
|
125
160
|
if module_kind == "extension" and not Options.isStandaloneMode():
|
|
126
161
|
return False, "Extension modules cannot be inspected."
|
|
127
162
|
|
|
163
|
+
if module_kind == "built-in":
|
|
164
|
+
return False, "Built-in modules cannot be inspected."
|
|
165
|
+
|
|
128
166
|
if module_name in detectEarlyImports():
|
|
129
167
|
return True, "Technically required for CPython library startup."
|
|
130
168
|
|
|
131
|
-
|
|
169
|
+
is_stdlib = module_filename is not None and StandardLibrary.isStandardLibraryPath(
|
|
170
|
+
module_filename
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
if is_stdlib and module_name in detectStdlibAutoInclusionModules():
|
|
132
174
|
return True, "Including as part of the non-excluded parts of standard library."
|
|
133
175
|
|
|
134
176
|
# In '-m' mode, when including the package, do not duplicate main program.
|
|
@@ -164,7 +206,7 @@ def _decideRecursion(
|
|
|
164
206
|
if plugin_decision and plugin_decision[0]:
|
|
165
207
|
deciding_plugins[0].sysexit(
|
|
166
208
|
"Conflict between user and plugin decision for module '%s'."
|
|
167
|
-
%
|
|
209
|
+
% module_name
|
|
168
210
|
)
|
|
169
211
|
|
|
170
212
|
return False, "Module %s instructed by user to not follow to." % reason
|
|
@@ -177,7 +219,7 @@ def _decideRecursion(
|
|
|
177
219
|
if plugin_decision and not plugin_decision[0] and deciding_plugins:
|
|
178
220
|
deciding_plugins[0].sysexit(
|
|
179
221
|
"Conflict between user and plugin decision for module '%s'."
|
|
180
|
-
%
|
|
222
|
+
% module_name
|
|
181
223
|
)
|
|
182
224
|
|
|
183
225
|
return True, "Module %s instructed by user to follow to." % reason
|
|
@@ -193,7 +235,6 @@ def _decideRecursion(
|
|
|
193
235
|
|
|
194
236
|
# PGO decisions are not overruling plugins, but all command line options, they are
|
|
195
237
|
# supposed to be applied already.
|
|
196
|
-
is_stdlib = StandardLibrary.isStandardLibraryPath(module_filename)
|
|
197
238
|
|
|
198
239
|
if not is_stdlib or Options.shallFollowStandardLibrary():
|
|
199
240
|
# TODO: Bad placement of this function or should PGO also know about
|
|
@@ -201,7 +242,12 @@ def _decideRecursion(
|
|
|
201
242
|
from nuitka.tree.Building import decideCompilationMode
|
|
202
243
|
|
|
203
244
|
if (
|
|
204
|
-
decideCompilationMode(
|
|
245
|
+
decideCompilationMode(
|
|
246
|
+
is_top=False,
|
|
247
|
+
module_name=module_name,
|
|
248
|
+
module_filename=module_filename,
|
|
249
|
+
for_pgo=True,
|
|
250
|
+
)
|
|
205
251
|
== "compiled"
|
|
206
252
|
):
|
|
207
253
|
pgo_decision = decideInclusionFromPGO(
|
|
@@ -247,8 +293,9 @@ def isSameModulePath(path1, path2):
|
|
|
247
293
|
return os.path.abspath(path1) == os.path.abspath(path2)
|
|
248
294
|
|
|
249
295
|
|
|
250
|
-
def _addIncludedModule(module):
|
|
251
|
-
# Many branches, for the decision is very complex
|
|
296
|
+
def _addIncludedModule(module, package_only):
|
|
297
|
+
# Many branches, for the decision is very complex
|
|
298
|
+
# pylint: disable=too-many-branches
|
|
252
299
|
|
|
253
300
|
if Options.isShowInclusion():
|
|
254
301
|
recursion_logger.info(
|
|
@@ -281,16 +328,34 @@ def _addIncludedModule(module):
|
|
|
281
328
|
if Options.isShowInclusion():
|
|
282
329
|
recursion_logger.info("Package directory '%s'." % package_dir)
|
|
283
330
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
sub_path + ".py"
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
331
|
+
if not package_only:
|
|
332
|
+
for sub_path, sub_filename in listDir(package_dir):
|
|
333
|
+
if sub_filename in ("__init__.py", "__pycache__"):
|
|
334
|
+
continue
|
|
335
|
+
|
|
336
|
+
if isPackageDir(sub_path) and not os.path.exists(sub_path + ".py"):
|
|
337
|
+
checkPluginSinglePath(
|
|
338
|
+
sub_path,
|
|
339
|
+
module_package=module.getFullName(),
|
|
340
|
+
package_only=False,
|
|
341
|
+
)
|
|
342
|
+
elif sub_filename.endswith(".py"):
|
|
343
|
+
checkPluginSinglePath(
|
|
344
|
+
sub_path,
|
|
345
|
+
module_package=module.getFullName(),
|
|
346
|
+
package_only=False,
|
|
347
|
+
)
|
|
348
|
+
else:
|
|
349
|
+
for suffix in getSharedLibrarySuffixes():
|
|
350
|
+
if (
|
|
351
|
+
sub_filename.endswith(suffix)
|
|
352
|
+
and "." not in sub_filename[: -len(suffix)]
|
|
353
|
+
):
|
|
354
|
+
checkPluginSinglePath(
|
|
355
|
+
sub_path,
|
|
356
|
+
module_package=module.getFullName(),
|
|
357
|
+
package_only=False,
|
|
358
|
+
)
|
|
294
359
|
|
|
295
360
|
elif module.isCompiledPythonModule() or module.isUncompiledPythonModule():
|
|
296
361
|
ModuleRegistry.addRootModule(module)
|
|
@@ -301,7 +366,7 @@ def _addIncludedModule(module):
|
|
|
301
366
|
assert False, module
|
|
302
367
|
|
|
303
368
|
|
|
304
|
-
def checkPluginSinglePath(plugin_filename, module_package):
|
|
369
|
+
def checkPluginSinglePath(plugin_filename, module_package, package_only):
|
|
305
370
|
# The importing wants these to be unique.
|
|
306
371
|
plugin_filename = os.path.abspath(plugin_filename)
|
|
307
372
|
|
|
@@ -311,9 +376,7 @@ def checkPluginSinglePath(plugin_filename, module_package):
|
|
|
311
376
|
% (plugin_filename, module_package)
|
|
312
377
|
)
|
|
313
378
|
|
|
314
|
-
module_name, module_kind =
|
|
315
|
-
plugin_filename
|
|
316
|
-
)
|
|
379
|
+
module_name, module_kind = getModuleNameAndKindFromFilename(plugin_filename)
|
|
317
380
|
|
|
318
381
|
module_name = ModuleName.makeModuleNameInPackage(module_name, module_package)
|
|
319
382
|
|
|
@@ -347,7 +410,7 @@ the compiled result, and therefore asking to include them makes no sense.
|
|
|
347
410
|
)
|
|
348
411
|
|
|
349
412
|
if module:
|
|
350
|
-
_addIncludedModule(module)
|
|
413
|
+
_addIncludedModule(module=module, package_only=package_only)
|
|
351
414
|
else:
|
|
352
415
|
recursion_logger.warning(
|
|
353
416
|
"Failed to include module from '%s'." % plugin_filename
|
|
@@ -367,21 +430,33 @@ def checkPluginPath(plugin_filename, module_package):
|
|
|
367
430
|
)
|
|
368
431
|
|
|
369
432
|
# Files and package directories are handled here.
|
|
370
|
-
if os.path.isfile(plugin_filename) or
|
|
371
|
-
checkPluginSinglePath(
|
|
433
|
+
if os.path.isfile(plugin_filename) or isPackageDir(plugin_filename):
|
|
434
|
+
checkPluginSinglePath(
|
|
435
|
+
plugin_filename,
|
|
436
|
+
module_package=module_package,
|
|
437
|
+
package_only=False,
|
|
438
|
+
)
|
|
372
439
|
# This effectively only covers files known to not be packages due to name
|
|
373
440
|
# or older Python version.
|
|
374
441
|
elif os.path.isdir(plugin_filename):
|
|
375
442
|
for sub_path, sub_filename in listDir(plugin_filename):
|
|
376
443
|
assert sub_filename != "__init__.py"
|
|
377
444
|
|
|
378
|
-
if
|
|
379
|
-
checkPluginSinglePath(
|
|
445
|
+
if isPackageDir(sub_path) or sub_path.endswith(".py"):
|
|
446
|
+
checkPluginSinglePath(
|
|
447
|
+
sub_path,
|
|
448
|
+
module_package=None,
|
|
449
|
+
package_only=False,
|
|
450
|
+
)
|
|
380
451
|
continue
|
|
381
452
|
|
|
382
453
|
for suffix in getSharedLibrarySuffixes():
|
|
383
454
|
if sub_path.endswith(suffix):
|
|
384
|
-
checkPluginSinglePath(
|
|
455
|
+
checkPluginSinglePath(
|
|
456
|
+
sub_path,
|
|
457
|
+
module_package=None,
|
|
458
|
+
package_only=False,
|
|
459
|
+
)
|
|
385
460
|
|
|
386
461
|
else:
|
|
387
462
|
recursion_logger.warning(
|
|
@@ -405,7 +480,11 @@ def checkPluginFilenamePattern(pattern):
|
|
|
405
480
|
continue
|
|
406
481
|
|
|
407
482
|
found = True
|
|
408
|
-
checkPluginSinglePath(
|
|
483
|
+
checkPluginSinglePath(
|
|
484
|
+
filename,
|
|
485
|
+
module_package=None,
|
|
486
|
+
package_only=False,
|
|
487
|
+
)
|
|
409
488
|
|
|
410
489
|
if not found:
|
|
411
490
|
recursion_logger.warning(
|
|
@@ -430,7 +509,7 @@ def considerUsedModules(module, pass_count):
|
|
|
430
509
|
continue
|
|
431
510
|
|
|
432
511
|
if used_module.finding == "not-found":
|
|
433
|
-
|
|
512
|
+
warnAboutNotFoundImport(
|
|
434
513
|
importing=module,
|
|
435
514
|
source_ref=used_module.source_ref,
|
|
436
515
|
module_name=used_module.module_name,
|
|
@@ -485,3 +564,19 @@ def considerUsedModules(module, pass_count):
|
|
|
485
564
|
"Error, forbidden import of '%s' (intending to avoid '%s') done implicitly by module '%s'."
|
|
486
565
|
% (e.args[0], e.args[1], module.getFullName())
|
|
487
566
|
)
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
570
|
+
# integrates with CPython, but also works on its own.
|
|
571
|
+
#
|
|
572
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
573
|
+
# you may not use this file except in compliance with the License.
|
|
574
|
+
# You may obtain a copy of the License at
|
|
575
|
+
#
|
|
576
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
577
|
+
#
|
|
578
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
579
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
580
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
581
|
+
# See the License for the specific language governing permissions and
|
|
582
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Access to standard library distinction.
|
|
19
5
|
|
|
20
6
|
For code to be in the standard library means that it's not written by the
|
|
@@ -28,11 +14,11 @@ module.
|
|
|
28
14
|
|
|
29
15
|
import os
|
|
30
16
|
|
|
31
|
-
from nuitka.Options import shallUseStaticLibPython
|
|
32
17
|
from nuitka.PythonVersions import python_version
|
|
33
18
|
from nuitka.utils.FileOperations import getFileContents, isFilenameBelowPath
|
|
34
19
|
from nuitka.utils.ModuleNames import ModuleName
|
|
35
20
|
from nuitka.utils.Utils import (
|
|
21
|
+
isMacOS,
|
|
36
22
|
isNetBSD,
|
|
37
23
|
isPosixWindows,
|
|
38
24
|
isWin32OrPosixWindows,
|
|
@@ -104,10 +90,13 @@ def getStandardLibraryPaths():
|
|
|
104
90
|
if os.path.isdir(candidate):
|
|
105
91
|
stdlib_paths.add(candidate)
|
|
106
92
|
|
|
107
|
-
if isWin32OrPosixWindows()
|
|
108
|
-
import
|
|
93
|
+
if isWin32OrPosixWindows():
|
|
94
|
+
from nuitka.Options import shallUseStaticLibPython
|
|
95
|
+
|
|
96
|
+
if not shallUseStaticLibPython():
|
|
97
|
+
import _ctypes
|
|
109
98
|
|
|
110
|
-
|
|
99
|
+
stdlib_paths.add(os.path.dirname(_ctypes.__file__))
|
|
111
100
|
|
|
112
101
|
getStandardLibraryPaths.result = [
|
|
113
102
|
os.path.normcase(os.path.normpath(stdlib_path))
|
|
@@ -117,11 +106,7 @@ def getStandardLibraryPaths():
|
|
|
117
106
|
return getStandardLibraryPaths.result
|
|
118
107
|
|
|
119
108
|
|
|
120
|
-
def
|
|
121
|
-
"""Check if a path is in the standard library."""
|
|
122
|
-
|
|
123
|
-
filename = os.path.normcase(os.path.normpath(filename))
|
|
124
|
-
|
|
109
|
+
def _isStandardLibraryPath(filename):
|
|
125
110
|
# In virtualenv, the "site.py" lives in a place that suggests it is not in
|
|
126
111
|
# standard library, although it is.
|
|
127
112
|
if os.path.basename(filename) == "site.py":
|
|
@@ -142,50 +127,69 @@ def isStandardLibraryPath(filename):
|
|
|
142
127
|
return False
|
|
143
128
|
|
|
144
129
|
|
|
145
|
-
|
|
146
|
-
_excluded_stdlib_modules = ["__main__.py", "__init__.py", "antigravity.py"]
|
|
130
|
+
_is_standard_library_path_cache = {}
|
|
147
131
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
132
|
+
|
|
133
|
+
def isStandardLibraryPath(filename):
|
|
134
|
+
"""Check if a path is in the standard library."""
|
|
135
|
+
|
|
136
|
+
filename = os.path.normcase(os.path.normpath(filename))
|
|
137
|
+
|
|
138
|
+
if filename not in _is_standard_library_path_cache:
|
|
139
|
+
_is_standard_library_path_cache[filename] = _isStandardLibraryPath(filename)
|
|
140
|
+
|
|
141
|
+
return _is_standard_library_path_cache[filename]
|
|
153
142
|
|
|
154
143
|
|
|
155
144
|
def scanStandardLibraryPath(stdlib_dir):
|
|
156
145
|
# There is a lot of filtering here, done in branches, so there is many of
|
|
157
|
-
# them, but that's acceptable, pylint: disable=too-many-branches
|
|
146
|
+
# them, but that's acceptable, pylint: disable=too-many-branches
|
|
158
147
|
|
|
159
148
|
for root, dirs, filenames in os.walk(stdlib_dir):
|
|
160
149
|
import_path = root[len(stdlib_dir) :].strip("/\\")
|
|
161
150
|
import_path = import_path.replace("\\", ".").replace("/", ".")
|
|
162
151
|
|
|
152
|
+
def _removeFilenamesIfPresent(*remove_filenames):
|
|
153
|
+
# pylint: intended for loop usage, pylint: disable=cell-var-from-loop
|
|
154
|
+
for remove_filename in remove_filenames:
|
|
155
|
+
if remove_filename in filenames:
|
|
156
|
+
filenames.remove(remove_filename)
|
|
157
|
+
|
|
158
|
+
def _removeDirsIfPresent(*remove_dirs):
|
|
159
|
+
# pylint: intended for loop usage, pylint: disable=cell-var-from-loop
|
|
160
|
+
for remove_dir in remove_dirs:
|
|
161
|
+
if remove_dir in dirs:
|
|
162
|
+
dirs.remove(remove_dir)
|
|
163
|
+
|
|
164
|
+
_removeDirsIfPresent("__pycache__")
|
|
165
|
+
|
|
166
|
+
# Ignore ".idea", ".git" and similar folders, they are not modules
|
|
167
|
+
dirs[:] = [dirname for dirname in dirs if not dirname.startswith(".")]
|
|
168
|
+
|
|
163
169
|
if import_path == "":
|
|
164
|
-
|
|
165
|
-
dirs.remove("site-packages")
|
|
166
|
-
if "dist-packages" in dirs:
|
|
167
|
-
dirs.remove("dist-packages")
|
|
168
|
-
if "vendor-packages" in dirs:
|
|
169
|
-
dirs.remove("vendor-packages")
|
|
170
|
-
if "test" in dirs:
|
|
171
|
-
dirs.remove("test")
|
|
172
|
-
if "turtledemo" in dirs:
|
|
173
|
-
dirs.remove("turtledemo")
|
|
174
|
-
|
|
175
|
-
if "ensurepip" in filenames:
|
|
176
|
-
filenames.remove("ensurepip")
|
|
177
|
-
if "ensurepip" in dirs:
|
|
178
|
-
dirs.remove("ensurepip")
|
|
179
|
-
|
|
180
|
-
# Ignore "lib-dynload" and "lib-tk" and alike.
|
|
170
|
+
# Ignore "lib-dynload" and "lib-tk" and alike, spell-checker: ignore dynload
|
|
181
171
|
dirs[:] = [
|
|
182
172
|
dirname
|
|
183
173
|
for dirname in dirs
|
|
184
174
|
if not dirname.startswith("lib-")
|
|
185
|
-
if dirname != "Tools"
|
|
186
175
|
if not dirname.startswith("plat-")
|
|
187
176
|
]
|
|
188
177
|
|
|
178
|
+
_removeDirsIfPresent(
|
|
179
|
+
"site-packages",
|
|
180
|
+
"dist-packages",
|
|
181
|
+
"vendor-packages",
|
|
182
|
+
"test",
|
|
183
|
+
"ensurepip",
|
|
184
|
+
"turtledemo",
|
|
185
|
+
"Tools",
|
|
186
|
+
)
|
|
187
|
+
_removeFilenamesIfPresent("ensurepip")
|
|
188
|
+
|
|
189
|
+
if not isMacOS():
|
|
190
|
+
_removeFilenamesIfPresent("_ios_support.py")
|
|
191
|
+
|
|
192
|
+
# Ignore tests from selected packages, spell-checker: ignore bsddb
|
|
189
193
|
if import_path in (
|
|
190
194
|
"tkinter",
|
|
191
195
|
"Tkinter",
|
|
@@ -197,38 +201,40 @@ def scanStandardLibraryPath(stdlib_dir):
|
|
|
197
201
|
"email",
|
|
198
202
|
"bsddb",
|
|
199
203
|
):
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
_removeDirsIfPresent("test")
|
|
205
|
+
|
|
206
|
+
if import_path in ("lib2to3", "json", "distutils"):
|
|
207
|
+
_removeDirsIfPresent("tests")
|
|
202
208
|
|
|
203
209
|
if import_path == "distutils.command":
|
|
204
210
|
# Misbehaving and crashing while importing the world.
|
|
205
|
-
|
|
206
|
-
filenames.remove("bdist_conda.py")
|
|
207
|
-
|
|
208
|
-
if import_path in ("lib2to3", "json", "distutils"):
|
|
209
|
-
if "tests" in dirs:
|
|
210
|
-
dirs.remove("tests")
|
|
211
|
+
_removeFilenamesIfPresent("bdist_conda.py")
|
|
211
212
|
|
|
212
213
|
if import_path == "asyncio":
|
|
213
|
-
|
|
214
|
-
filenames.remove("test_utils.py")
|
|
214
|
+
_removeFilenamesIfPresent("test_utils.py")
|
|
215
215
|
|
|
216
|
-
if python_version >=
|
|
216
|
+
if python_version >= 0x300 and isPosixWindows():
|
|
217
217
|
if import_path == "multiprocessing":
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
_removeFilenamesIfPresent(
|
|
219
|
+
"popen_fork.py", "popen_forkserver.py", "popen_spawn_posix.py"
|
|
220
|
+
)
|
|
221
221
|
|
|
222
|
-
if python_version >= 0x300 and isPosixWindows():
|
|
223
222
|
if import_path == "curses":
|
|
224
|
-
|
|
223
|
+
_removeFilenamesIfPresent("has_key.py")
|
|
225
224
|
|
|
226
225
|
if isNetBSD():
|
|
227
226
|
if import_path == "xml.sax":
|
|
228
|
-
|
|
227
|
+
_removeFilenamesIfPresent("expatreader.py")
|
|
228
|
+
|
|
229
|
+
_removeFilenamesIfPresent("__main__.py", "__init__.py", "antigravity.py")
|
|
230
|
+
|
|
231
|
+
if not isWin32Windows():
|
|
232
|
+
# On POSIX systems, and on POSIX Python variants on Windows, this
|
|
233
|
+
# won't work.
|
|
234
|
+
_removeFilenamesIfPresent("wintypes.py", "cp65001.py")
|
|
229
235
|
|
|
230
236
|
for filename in filenames:
|
|
231
|
-
if filename.endswith(".py")
|
|
237
|
+
if filename.endswith(".py"):
|
|
232
238
|
module_name = filename[:-3]
|
|
233
239
|
|
|
234
240
|
if import_path == "":
|
|
@@ -236,13 +242,6 @@ def scanStandardLibraryPath(stdlib_dir):
|
|
|
236
242
|
else:
|
|
237
243
|
yield ModuleName(import_path + "." + module_name)
|
|
238
244
|
|
|
239
|
-
if python_version >= 0x300:
|
|
240
|
-
if "__pycache__" in dirs:
|
|
241
|
-
dirs.remove("__pycache__")
|
|
242
|
-
|
|
243
|
-
# Ignore ".idea", ".git" and similar folders, they are not modules
|
|
244
|
-
dirs = [dirname for dirname in dirs if not dirname.startswith(".")]
|
|
245
|
-
|
|
246
245
|
for dirname in dirs:
|
|
247
246
|
if import_path == "":
|
|
248
247
|
yield ModuleName(dirname)
|
|
@@ -253,6 +252,7 @@ def scanStandardLibraryPath(stdlib_dir):
|
|
|
253
252
|
_stdlib_no_auto_inclusion_list = (
|
|
254
253
|
# Avoid this to be included, implicit usages will be rare, but it triggers
|
|
255
254
|
# the Nuitka plugin "multiprocessing" that is always enabled.
|
|
255
|
+
# spell-checker: ignore _pydecimal,_posixsubprocess,pyexpat,sitecustomize
|
|
256
256
|
"multiprocessing",
|
|
257
257
|
"_multiprocessing",
|
|
258
258
|
# Implicit usages of these will be rare, but it can have that costly extension module
|
|
@@ -338,7 +338,6 @@ _stdlib_no_auto_inclusion_list = (
|
|
|
338
338
|
# Packages that will be imported rarely by extension modules
|
|
339
339
|
"email",
|
|
340
340
|
"mailbox",
|
|
341
|
-
"calendar",
|
|
342
341
|
"argparse",
|
|
343
342
|
"telnetlib",
|
|
344
343
|
"smtplib",
|
|
@@ -359,6 +358,7 @@ _stdlib_no_auto_inclusion_list = (
|
|
|
359
358
|
"tty",
|
|
360
359
|
"termios",
|
|
361
360
|
"this",
|
|
361
|
+
"textwrap",
|
|
362
362
|
# Distribution and bytecode related stuff
|
|
363
363
|
"plistlib",
|
|
364
364
|
"distutils",
|
|
@@ -367,13 +367,13 @@ _stdlib_no_auto_inclusion_list = (
|
|
|
367
367
|
"py_compile",
|
|
368
368
|
"msilib",
|
|
369
369
|
"_opcode",
|
|
370
|
-
#
|
|
370
|
+
# time zone data is not always needed
|
|
371
371
|
"zoneinfo",
|
|
372
372
|
# tkinter under all its names
|
|
373
373
|
"Tkinter",
|
|
374
374
|
"tkinter",
|
|
375
375
|
"_tkinter",
|
|
376
|
-
# lib-tk from Python2
|
|
376
|
+
# lib-tk from Python2, spell-checker: ignore Tkdnd,Tkconstants
|
|
377
377
|
"Tix",
|
|
378
378
|
"FixTk",
|
|
379
379
|
"ScrolledText",
|
|
@@ -411,3 +411,19 @@ if not isWin32Windows():
|
|
|
411
411
|
|
|
412
412
|
def isStandardLibraryNoAutoInclusionModule(module_name):
|
|
413
413
|
return module_name.hasOneOfNamespaces(*_stdlib_no_auto_inclusion_list)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
417
|
+
# integrates with CPython, but also works on its own.
|
|
418
|
+
#
|
|
419
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
420
|
+
# you may not use this file except in compliance with the License.
|
|
421
|
+
# You may obtain a copy of the License at
|
|
422
|
+
#
|
|
423
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
424
|
+
#
|
|
425
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
426
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
427
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
428
|
+
# See the License for the specific language governing permissions and
|
|
429
|
+
# limitations under the License.
|
nuitka/importing/__init__.py
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Dummy file to make this directory a package. """
|
|
5
|
+
|
|
3
6
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
7
|
# integrates with CPython, but also works on its own.
|
|
5
8
|
#
|
|
@@ -14,5 +17,3 @@
|
|
|
14
17
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
18
|
# See the License for the specific language governing permissions and
|
|
16
19
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" Dummy file to make this directory a package. """
|