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/Importing.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
|
""" Locating modules and package source on disk.
|
|
19
5
|
|
|
20
6
|
The actual import of a module would already execute code that changes things.
|
|
@@ -35,27 +21,31 @@ it's from the standard library, one can abuse the attribute ``__file__`` of the
|
|
|
35
21
|
|
|
36
22
|
"""
|
|
37
23
|
|
|
38
|
-
|
|
39
24
|
import collections
|
|
40
|
-
import hashlib
|
|
41
25
|
import os
|
|
42
26
|
import sys
|
|
43
27
|
import zipfile
|
|
44
28
|
|
|
45
|
-
from nuitka import
|
|
29
|
+
from nuitka import SourceCodeReferences
|
|
46
30
|
from nuitka.__past__ import iter_modules
|
|
47
31
|
from nuitka.containers.Namedtuples import makeNamedtupleClass
|
|
48
32
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
49
|
-
from nuitka.importing import StandardLibrary
|
|
50
33
|
from nuitka.plugins.Plugins import Plugins
|
|
51
34
|
from nuitka.PythonFlavors import isNuitkaPython
|
|
52
35
|
from nuitka.PythonVersions import python_version
|
|
53
36
|
from nuitka.Tracing import my_print, recursion_logger
|
|
54
37
|
from nuitka.tree.ReformulationMultidist import locateMultidistModule
|
|
55
38
|
from nuitka.utils.AppDirs import getCacheDir
|
|
56
|
-
from nuitka.utils.FileOperations import
|
|
39
|
+
from nuitka.utils.FileOperations import (
|
|
40
|
+
getNormalizedPath,
|
|
41
|
+
listDir,
|
|
42
|
+
removeDirectory,
|
|
43
|
+
)
|
|
44
|
+
from nuitka.utils.Hashing import getFileContentsHash
|
|
57
45
|
from nuitka.utils.Importing import (
|
|
46
|
+
builtin_module_names,
|
|
58
47
|
getModuleFilenameSuffixes,
|
|
48
|
+
getPackageDirFilename,
|
|
59
49
|
getSharedLibrarySuffixes,
|
|
60
50
|
isBuiltinModuleName,
|
|
61
51
|
)
|
|
@@ -63,12 +53,53 @@ from nuitka.utils.ModuleNames import ModuleName
|
|
|
63
53
|
from nuitka.utils.SharedLibraries import (
|
|
64
54
|
hasUniversalOrMatchingMacOSArchitecture,
|
|
65
55
|
)
|
|
66
|
-
from nuitka.utils.Utils import
|
|
56
|
+
from nuitka.utils.Utils import (
|
|
57
|
+
getLaunchingNuitkaProcessEnvironmentValue,
|
|
58
|
+
isMacOS,
|
|
59
|
+
isWin32OrPosixWindows,
|
|
60
|
+
)
|
|
67
61
|
|
|
68
62
|
from .IgnoreListing import isIgnoreListedNotExistingModule
|
|
69
63
|
from .PreloadedPackages import getPreloadedPackagePath, isPreloadedPackagePath
|
|
64
|
+
from .StandardLibrary import isStandardLibraryPath
|
|
65
|
+
|
|
66
|
+
# Debug traces, enabled via --explain-imports
|
|
67
|
+
_debug_module_finding = None
|
|
68
|
+
|
|
69
|
+
# Preference as expressed via --prefer-source-code
|
|
70
|
+
_prefer_source_code_over_extension_modules = None
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def setupImportingFromOptions():
|
|
74
|
+
"""Set up the importing layer from giving options."""
|
|
75
|
+
|
|
76
|
+
# Should only be used inside of here.
|
|
77
|
+
from nuitka import Options
|
|
78
|
+
|
|
79
|
+
# singleton, pylint: disable=global-statement
|
|
80
|
+
global _debug_module_finding
|
|
81
|
+
_debug_module_finding = Options.shallExplainImports()
|
|
82
|
+
|
|
83
|
+
global _prefer_source_code_over_extension_modules
|
|
84
|
+
_prefer_source_code_over_extension_modules = (
|
|
85
|
+
Options.shallPreferSourceCodeOverExtensionModules()
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
# Lets try and have this complete, please report failures.
|
|
89
|
+
if Options.is_debug and not isNuitkaPython():
|
|
90
|
+
_checkRaisingBuiltinComplete()
|
|
91
|
+
|
|
92
|
+
main_filenames = Options.getMainEntryPointFilenames()
|
|
93
|
+
for filename in main_filenames:
|
|
94
|
+
# Inform the importing layer about the main script directory, so it can use
|
|
95
|
+
# it when attempting to follow imports.
|
|
96
|
+
addMainScriptDirectory(main_dir=os.path.dirname(os.path.abspath(filename)))
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _checkRaisingBuiltinComplete():
|
|
100
|
+
for module_name in builtin_module_names:
|
|
101
|
+
assert module_name in _stdlib_module_raises, module_name
|
|
70
102
|
|
|
71
|
-
_debug_module_finding = Options.shallExplainImports()
|
|
72
103
|
|
|
73
104
|
warned_about = set()
|
|
74
105
|
|
|
@@ -108,6 +139,38 @@ def makeModuleUsageAttempt(
|
|
|
108
139
|
)
|
|
109
140
|
|
|
110
141
|
|
|
142
|
+
def makeParentModuleUsagesAttempts(module_usage_attempt):
|
|
143
|
+
result = []
|
|
144
|
+
|
|
145
|
+
for parent_package_name in module_usage_attempt.module_name.getParentPackageNames():
|
|
146
|
+
(
|
|
147
|
+
_parent_package_name,
|
|
148
|
+
parent_module_filename,
|
|
149
|
+
parent_module_kind,
|
|
150
|
+
parent_module_finding,
|
|
151
|
+
) = locateModule(
|
|
152
|
+
module_name=parent_package_name,
|
|
153
|
+
parent_package=None,
|
|
154
|
+
level=0,
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
result.append(
|
|
158
|
+
makeModuleUsageAttempt(
|
|
159
|
+
module_name=parent_package_name,
|
|
160
|
+
filename=parent_module_filename,
|
|
161
|
+
finding=parent_module_finding,
|
|
162
|
+
module_kind=parent_module_kind,
|
|
163
|
+
level=0,
|
|
164
|
+
source_ref=module_usage_attempt.source_ref,
|
|
165
|
+
reason="import path parent",
|
|
166
|
+
)
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
result.append(module_usage_attempt)
|
|
170
|
+
|
|
171
|
+
return tuple(result)
|
|
172
|
+
|
|
173
|
+
|
|
111
174
|
def addMainScriptDirectory(main_dir):
|
|
112
175
|
"""Initialize the main script directory.
|
|
113
176
|
|
|
@@ -130,7 +193,7 @@ def hasMainScriptDirectory():
|
|
|
130
193
|
def isPackageDir(dirname):
|
|
131
194
|
"""Decide if a directory is a package.
|
|
132
195
|
|
|
133
|
-
Before Python3
|
|
196
|
+
Before Python3 it's required to have a "__init__.py" file, but then
|
|
134
197
|
it became impossible to decide, and for extra fun, there is also the
|
|
135
198
|
extra packages provided via "*.pth" file tricks by "site.py" loading.
|
|
136
199
|
"""
|
|
@@ -174,6 +237,16 @@ def getModuleNameAndKindFromFilename(module_filename):
|
|
|
174
237
|
)
|
|
175
238
|
|
|
176
239
|
if os.path.isdir(module_filename):
|
|
240
|
+
package_filename = getPackageDirFilename(module_filename)
|
|
241
|
+
|
|
242
|
+
if package_filename is not None:
|
|
243
|
+
for suffix in getSharedLibrarySuffixes():
|
|
244
|
+
if package_filename.endswith(suffix):
|
|
245
|
+
return (
|
|
246
|
+
ModuleName(os.path.basename(module_filename)),
|
|
247
|
+
"extension",
|
|
248
|
+
)
|
|
249
|
+
|
|
177
250
|
return ModuleName(os.path.basename(module_filename)), "py"
|
|
178
251
|
|
|
179
252
|
return None, None
|
|
@@ -183,10 +256,10 @@ def isIgnoreListedImportMaker(source_ref):
|
|
|
183
256
|
if isNuitkaPython():
|
|
184
257
|
return True
|
|
185
258
|
|
|
186
|
-
return
|
|
259
|
+
return isStandardLibraryPath(source_ref.getFilename())
|
|
187
260
|
|
|
188
261
|
|
|
189
|
-
def
|
|
262
|
+
def warnAboutNotFoundImport(importing, module_name, level, source_ref):
|
|
190
263
|
# This probably should not be dealt with here
|
|
191
264
|
if module_name == "":
|
|
192
265
|
return
|
|
@@ -275,10 +348,19 @@ def findModule(module_name, parent_package, level):
|
|
|
275
348
|
# TODO: Should give a warning and return not found if the levels
|
|
276
349
|
# exceed the package name.
|
|
277
350
|
if parent_package is not None:
|
|
278
|
-
parent_package = parent_package.getRelativePackageName(level)
|
|
351
|
+
parent_package = parent_package.getRelativePackageName(level - 1)
|
|
279
352
|
else:
|
|
280
353
|
return None, None, None, "not-found"
|
|
281
354
|
|
|
355
|
+
if level == 1 and not module_name:
|
|
356
|
+
# Not actually allowed, but we only catch that at run-time.
|
|
357
|
+
if parent_package is None:
|
|
358
|
+
return None, None, None, "not-found"
|
|
359
|
+
|
|
360
|
+
module_name = parent_package
|
|
361
|
+
parent_package = None
|
|
362
|
+
level = 0
|
|
363
|
+
|
|
282
364
|
# Try relative imports first if we have a parent package.
|
|
283
365
|
if level != 0 and parent_package is not None:
|
|
284
366
|
if module_name:
|
|
@@ -313,37 +395,11 @@ def findModule(module_name, parent_package, level):
|
|
|
313
395
|
|
|
314
396
|
return full_name.getPackageName(), module_filename, module_kind, "relative"
|
|
315
397
|
|
|
316
|
-
if level < 1 and module_name
|
|
398
|
+
if level < 1 and module_name:
|
|
317
399
|
module_name = normalizePackageName(module_name)
|
|
318
400
|
|
|
319
401
|
package_name = module_name.getPackageName()
|
|
320
402
|
|
|
321
|
-
# Built-in module names must not be searched any further.
|
|
322
|
-
if module_name in sys.builtin_module_names:
|
|
323
|
-
if _debug_module_finding:
|
|
324
|
-
my_print(
|
|
325
|
-
"findModule: Absolute imported module '%s' in as built-in':"
|
|
326
|
-
% (module_name,)
|
|
327
|
-
)
|
|
328
|
-
return package_name, None, None, "built-in"
|
|
329
|
-
|
|
330
|
-
# Frozen module names are similar to built-in, but there is no list of
|
|
331
|
-
# them, therefore check loader name. Not useful at this time
|
|
332
|
-
# to make a difference with built-in.
|
|
333
|
-
if python_version >= 0x300 and module_name in sys.modules:
|
|
334
|
-
loader = getattr(sys.modules[module_name], "__loader__", None)
|
|
335
|
-
|
|
336
|
-
if (
|
|
337
|
-
loader is not None
|
|
338
|
-
and getattr(loader, "__name__", "") == "FrozenImporter"
|
|
339
|
-
):
|
|
340
|
-
if _debug_module_finding:
|
|
341
|
-
my_print(
|
|
342
|
-
"findModule: Absolute imported module '%s' in as frozen':"
|
|
343
|
-
% (module_name,)
|
|
344
|
-
)
|
|
345
|
-
return package_name, None, None, "built-in"
|
|
346
|
-
|
|
347
403
|
preloaded_path = getPreloadedPackagePath(module_name)
|
|
348
404
|
|
|
349
405
|
if preloaded_path is not None:
|
|
@@ -393,10 +449,7 @@ def _reportCandidates(package_name, module_name, candidate, candidates):
|
|
|
393
449
|
else module_name
|
|
394
450
|
)
|
|
395
451
|
|
|
396
|
-
if
|
|
397
|
-
candidate.priority == 1
|
|
398
|
-
and Options.shallPreferSourceCodeOverExtensionModules() is None
|
|
399
|
-
):
|
|
452
|
+
if candidate.priority == 1 and _prefer_source_code_over_extension_modules is None:
|
|
400
453
|
for c in candidates:
|
|
401
454
|
# Don't compare to itself and don't consider unused bytecode a problem.
|
|
402
455
|
if c is candidate or c.priority == 3:
|
|
@@ -454,7 +507,7 @@ def _findModuleInPath2(package_name, module_name, search_path):
|
|
|
454
507
|
# Higher values are lower priority.
|
|
455
508
|
priority_map = {
|
|
456
509
|
"PY_COMPILED": 3,
|
|
457
|
-
"PY_SOURCE": 0 if
|
|
510
|
+
"PY_SOURCE": 0 if _prefer_source_code_over_extension_modules else 2,
|
|
458
511
|
"C_EXTENSION": 1,
|
|
459
512
|
}
|
|
460
513
|
|
|
@@ -473,9 +526,6 @@ def _findModuleInPath2(package_name, module_name, search_path):
|
|
|
473
526
|
found = False
|
|
474
527
|
|
|
475
528
|
for suffix, module_type in getModuleFilenameSuffixes():
|
|
476
|
-
if module_type == "C_EXTENSION":
|
|
477
|
-
continue
|
|
478
|
-
|
|
479
529
|
package_file_name = "__init__" + suffix
|
|
480
530
|
|
|
481
531
|
file_path = os.path.join(package_directory, package_file_name)
|
|
@@ -557,7 +607,11 @@ def _findModuleInPath2(package_name, module_name, search_path):
|
|
|
557
607
|
if (
|
|
558
608
|
found_candidate.module_type == "C_EXTENSION"
|
|
559
609
|
and isMacOS()
|
|
560
|
-
and not hasUniversalOrMatchingMacOSArchitecture(
|
|
610
|
+
and not hasUniversalOrMatchingMacOSArchitecture(
|
|
611
|
+
getPackageDirFilename(found_candidate.full_path)
|
|
612
|
+
if os.path.isdir(found_candidate.full_path)
|
|
613
|
+
else found_candidate.full_path
|
|
614
|
+
)
|
|
561
615
|
):
|
|
562
616
|
# Not usable for target architecture.
|
|
563
617
|
raise ImportError
|
|
@@ -582,26 +636,31 @@ def _unpackPathElement(path_entry):
|
|
|
582
636
|
if not path_entry:
|
|
583
637
|
return "." # empty means current directory
|
|
584
638
|
|
|
585
|
-
if os.path.isfile(path_entry)
|
|
586
|
-
if path_entry
|
|
587
|
-
|
|
588
|
-
checksum =
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
639
|
+
if os.path.isfile(path_entry):
|
|
640
|
+
if path_entry.lower().endswith((".egg", ".zip")):
|
|
641
|
+
if path_entry not in _egg_files:
|
|
642
|
+
checksum = getFileContentsHash(path_entry)
|
|
643
|
+
|
|
644
|
+
target_dir = os.path.join(getCacheDir("egg-content"), checksum)
|
|
645
|
+
|
|
646
|
+
if not os.path.exists(target_dir):
|
|
647
|
+
try:
|
|
648
|
+
# Not all Python versions allow using with here, pylint: disable=consider-using-with
|
|
649
|
+
zip_ref = zipfile.ZipFile(path_entry, "r")
|
|
650
|
+
zip_ref.extractall(target_dir)
|
|
651
|
+
zip_ref.close()
|
|
652
|
+
except BaseException:
|
|
653
|
+
removeDirectory(
|
|
654
|
+
target_dir,
|
|
655
|
+
logger=recursion_logger,
|
|
656
|
+
ignore_errors=True,
|
|
657
|
+
extra_recommendation=None,
|
|
658
|
+
)
|
|
659
|
+
raise
|
|
601
660
|
|
|
602
|
-
|
|
661
|
+
_egg_files[path_entry] = target_dir
|
|
603
662
|
|
|
604
|
-
|
|
663
|
+
return _egg_files[path_entry]
|
|
605
664
|
|
|
606
665
|
return path_entry
|
|
607
666
|
|
|
@@ -614,7 +673,8 @@ def getPythonUnpackedSearchPath():
|
|
|
614
673
|
|
|
615
674
|
|
|
616
675
|
def getPackageSearchPath(package_name):
|
|
617
|
-
|
|
676
|
+
if not _main_paths:
|
|
677
|
+
return None
|
|
618
678
|
|
|
619
679
|
if package_name is None:
|
|
620
680
|
result = (
|
|
@@ -632,8 +692,9 @@ def getPackageSearchPath(package_name):
|
|
|
632
692
|
|
|
633
693
|
if isPackageDir(package_dir):
|
|
634
694
|
result.append(package_dir)
|
|
635
|
-
# Hack for "
|
|
695
|
+
# Hack for "uniconvertor". TODO: Move this to plug-in decision. This
|
|
636
696
|
# fails the above test, but at run time should be a package.
|
|
697
|
+
# spell-checker: ignore uniconvertor
|
|
637
698
|
elif package_name == "uniconvertor.app.modules":
|
|
638
699
|
result.append(package_dir)
|
|
639
700
|
|
|
@@ -671,14 +732,14 @@ def _findModuleInPath(module_name):
|
|
|
671
732
|
# executed, while we normally search in PYTHONPATH after it was executed,
|
|
672
733
|
# and on some systems, that fails.
|
|
673
734
|
if package_name is None and module_name == "site":
|
|
674
|
-
candidate =
|
|
735
|
+
candidate = getLaunchingNuitkaProcessEnvironmentValue("NUITKA_SITE_FILENAME")
|
|
675
736
|
|
|
676
737
|
if candidate:
|
|
677
738
|
return candidate, "py"
|
|
678
739
|
|
|
679
740
|
# Free pass for built-in modules, they need not exist.
|
|
680
741
|
if package_name is None and isBuiltinModuleName(module_name):
|
|
681
|
-
return None
|
|
742
|
+
return None, "built-in"
|
|
682
743
|
|
|
683
744
|
search_path = getPackageSearchPath(package_name)
|
|
684
745
|
|
|
@@ -698,7 +759,7 @@ def _findModuleInPath(module_name):
|
|
|
698
759
|
module_name if package_name is None else package_name + "." + module_name,
|
|
699
760
|
)
|
|
700
761
|
|
|
701
|
-
return None
|
|
762
|
+
return None, None
|
|
702
763
|
|
|
703
764
|
if _debug_module_finding:
|
|
704
765
|
my_print("_findModuleInPath: _findModuleInPath2 gave", module_filename)
|
|
@@ -737,6 +798,8 @@ def _findModule(module_name):
|
|
|
737
798
|
module_search_cache[key] = ImportError
|
|
738
799
|
raise
|
|
739
800
|
|
|
801
|
+
# assert len(module_search_cache[key]) == 2, (module_name, module_search_cache[key])
|
|
802
|
+
|
|
740
803
|
return module_search_cache[key]
|
|
741
804
|
|
|
742
805
|
|
|
@@ -747,9 +810,10 @@ def locateModule(module_name, parent_package, level):
|
|
|
747
810
|
as with "__import__" built-in.
|
|
748
811
|
|
|
749
812
|
Returns:
|
|
750
|
-
Returns a
|
|
813
|
+
Returns a tuple of module name the module has considering
|
|
751
814
|
package containing it, and filename of it which can be a
|
|
752
|
-
directory for packages, and the
|
|
815
|
+
directory for packages, the module kind, and the finding
|
|
816
|
+
kind.
|
|
753
817
|
"""
|
|
754
818
|
|
|
755
819
|
if module_name.isMultidistModuleName():
|
|
@@ -762,17 +826,14 @@ def locateModule(module_name, parent_package, level):
|
|
|
762
826
|
)
|
|
763
827
|
|
|
764
828
|
# Allowing ourselves to be lazy.
|
|
765
|
-
|
|
766
|
-
module_kind = None
|
|
767
|
-
else:
|
|
768
|
-
assert module_kind is not None, module_filename
|
|
829
|
+
assert module_kind is not None or module_filename is None, module_name
|
|
769
830
|
|
|
770
831
|
assert module_package is None or (
|
|
771
832
|
type(module_package) is ModuleName and module_package != ""
|
|
772
|
-
),
|
|
833
|
+
), ("Must not attempt to locate %r" % module_name)
|
|
773
834
|
|
|
774
835
|
if module_filename is not None:
|
|
775
|
-
module_filename =
|
|
836
|
+
module_filename = getNormalizedPath(module_filename)
|
|
776
837
|
|
|
777
838
|
module_name, module_kind = getModuleNameAndKindFromFilename(module_filename)
|
|
778
839
|
module_name = ModuleName.makeModuleNameInPackage(module_name, module_package)
|
|
@@ -817,7 +878,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
|
|
|
817
878
|
is_package = False
|
|
818
879
|
|
|
819
880
|
if is_main and os.path.isdir(filename):
|
|
820
|
-
source_filename = os.path.join(filename, "__main__.py")
|
|
881
|
+
source_filename = getNormalizedPath(os.path.join(filename, "__main__.py"))
|
|
821
882
|
|
|
822
883
|
if not os.path.isfile(source_filename):
|
|
823
884
|
sys.stderr.write(
|
|
@@ -847,7 +908,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
|
|
|
847
908
|
elif isPackageDir(filename):
|
|
848
909
|
is_package = True
|
|
849
910
|
|
|
850
|
-
source_filename = os.path.join(filename, "__init__.py")
|
|
911
|
+
source_filename = getNormalizedPath(os.path.join(filename, "__init__.py"))
|
|
851
912
|
|
|
852
913
|
if not os.path.isfile(source_filename):
|
|
853
914
|
source_ref = SourceCodeReferences.fromFilename(
|
|
@@ -856,7 +917,7 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
|
|
|
856
917
|
is_namespace = True
|
|
857
918
|
else:
|
|
858
919
|
source_ref = SourceCodeReferences.fromFilename(
|
|
859
|
-
filename=os.path.abspath(source_filename)
|
|
920
|
+
filename=getNormalizedPath(os.path.abspath(source_filename))
|
|
860
921
|
)
|
|
861
922
|
|
|
862
923
|
else:
|
|
@@ -872,3 +933,163 @@ def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
|
|
|
872
933
|
source_ref,
|
|
873
934
|
source_filename,
|
|
874
935
|
)
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
# spell-checker: ignore _posixsubprocess,pyexpat,xxsubtype
|
|
939
|
+
|
|
940
|
+
_stdlib_module_raises = {
|
|
941
|
+
"__builtin__": False,
|
|
942
|
+
"_abc": False,
|
|
943
|
+
"_ast": False,
|
|
944
|
+
"_bisect": False,
|
|
945
|
+
"_blake2": False,
|
|
946
|
+
"_bytesio": False,
|
|
947
|
+
"_codecs": False,
|
|
948
|
+
"_codecs_cn": False,
|
|
949
|
+
"_codecs_hk": False,
|
|
950
|
+
"_codecs_iso2022": False,
|
|
951
|
+
"_codecs_jp": False,
|
|
952
|
+
"_codecs_kr": False,
|
|
953
|
+
"_codecs_tw": False,
|
|
954
|
+
"_collections": False,
|
|
955
|
+
"_contextvars": False,
|
|
956
|
+
"_csv": False,
|
|
957
|
+
"_datetime": False,
|
|
958
|
+
"_elementtree": False,
|
|
959
|
+
"_fileio": False,
|
|
960
|
+
"_functools": False,
|
|
961
|
+
"_heapq": False,
|
|
962
|
+
"_hotshot": False,
|
|
963
|
+
"_imp": False,
|
|
964
|
+
"_io": False,
|
|
965
|
+
"_json": False,
|
|
966
|
+
"_locale": False,
|
|
967
|
+
"_lsprof": False,
|
|
968
|
+
"_md5": False,
|
|
969
|
+
"_multibytecodec": False,
|
|
970
|
+
"_opcode": False,
|
|
971
|
+
"_operator": False,
|
|
972
|
+
"_peg_parser": False,
|
|
973
|
+
"_pickle": False,
|
|
974
|
+
"_posixsubprocess": False,
|
|
975
|
+
"_random": False,
|
|
976
|
+
"_subprocess": False,
|
|
977
|
+
"_sha": False, # TODO: Not entirely clear if that's true
|
|
978
|
+
"_sha1": False,
|
|
979
|
+
"_sha2": False,
|
|
980
|
+
"_sha256": False,
|
|
981
|
+
"_sha3": False,
|
|
982
|
+
"_sha512": False,
|
|
983
|
+
"_signal": False,
|
|
984
|
+
"_socket": False,
|
|
985
|
+
"_sre": False,
|
|
986
|
+
"_stat": False,
|
|
987
|
+
"_statistics": False,
|
|
988
|
+
"_string": False,
|
|
989
|
+
"_struct": False,
|
|
990
|
+
"_symtable": False,
|
|
991
|
+
"_thread": False,
|
|
992
|
+
"_tracemalloc": False,
|
|
993
|
+
"_tokenize": False,
|
|
994
|
+
"_typing": False,
|
|
995
|
+
"_warnings": False,
|
|
996
|
+
"_weakref": False,
|
|
997
|
+
"_winapi": False,
|
|
998
|
+
"_winreg": False,
|
|
999
|
+
"_xxsubinterpreters": False,
|
|
1000
|
+
"array": False,
|
|
1001
|
+
"atexit": False,
|
|
1002
|
+
"audioop": False,
|
|
1003
|
+
"binascii": False,
|
|
1004
|
+
"builtins": False,
|
|
1005
|
+
"cmath": False,
|
|
1006
|
+
"cStringIO": False,
|
|
1007
|
+
"cPickle": False,
|
|
1008
|
+
"datetime": False,
|
|
1009
|
+
"errno": False,
|
|
1010
|
+
"exceptions": False,
|
|
1011
|
+
"faulthandler": False,
|
|
1012
|
+
"fcntl": False,
|
|
1013
|
+
"future_builtins": False,
|
|
1014
|
+
"gc": False,
|
|
1015
|
+
"grp": False,
|
|
1016
|
+
"itertools": False,
|
|
1017
|
+
"imageop": False,
|
|
1018
|
+
"imp": False,
|
|
1019
|
+
"operator": False,
|
|
1020
|
+
"marshal": False,
|
|
1021
|
+
"math": False,
|
|
1022
|
+
"mmap": False,
|
|
1023
|
+
"msvcrt": False,
|
|
1024
|
+
"nt": False,
|
|
1025
|
+
"parser": False,
|
|
1026
|
+
"posix": False,
|
|
1027
|
+
"pwd": False,
|
|
1028
|
+
"pyexpat": False,
|
|
1029
|
+
"select": False,
|
|
1030
|
+
"signal": False,
|
|
1031
|
+
"strop": False,
|
|
1032
|
+
"spwd": False,
|
|
1033
|
+
"sys": False,
|
|
1034
|
+
"syslog": False,
|
|
1035
|
+
"time": False,
|
|
1036
|
+
"thread": False,
|
|
1037
|
+
"unicodedata": False,
|
|
1038
|
+
"winreg": False,
|
|
1039
|
+
"xxsubtype": False,
|
|
1040
|
+
"zipimport": False,
|
|
1041
|
+
"zlib": False,
|
|
1042
|
+
"_ssl": True,
|
|
1043
|
+
"_xxinterpchannels": False,
|
|
1044
|
+
# TODO: 3.13 clarify if this is actually true
|
|
1045
|
+
"_interpchannels": False,
|
|
1046
|
+
"_interpreters": False,
|
|
1047
|
+
"_interpqueues": False,
|
|
1048
|
+
"_sysconfig": False,
|
|
1049
|
+
"_suggestions": False,
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
def isNonRaisingBuiltinModule(module_name):
|
|
1054
|
+
assert isBuiltinModuleName(module_name), module_name
|
|
1055
|
+
|
|
1056
|
+
# Return None, if we don't know.
|
|
1057
|
+
return _stdlib_module_raises.get(module_name)
|
|
1058
|
+
|
|
1059
|
+
|
|
1060
|
+
def _getChildPackageNames(module_name):
|
|
1061
|
+
module_name = ModuleName(module_name)
|
|
1062
|
+
|
|
1063
|
+
_module_name, module_filename, _module_kind, _finding = locateModule(
|
|
1064
|
+
parent_package=None, module_name=module_name, level=0
|
|
1065
|
+
)
|
|
1066
|
+
|
|
1067
|
+
package_dir = module_filename
|
|
1068
|
+
|
|
1069
|
+
for module_info in iter_modules([package_dir]):
|
|
1070
|
+
child_name = module_name.getChildNamed(module_info.name)
|
|
1071
|
+
yield child_name
|
|
1072
|
+
|
|
1073
|
+
if module_info.ispkg:
|
|
1074
|
+
for sub_module_name in getChildPackageNames(child_name):
|
|
1075
|
+
yield sub_module_name
|
|
1076
|
+
|
|
1077
|
+
|
|
1078
|
+
def getChildPackageNames(module_name):
|
|
1079
|
+
return tuple(_getChildPackageNames(module_name))
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1083
|
+
# integrates with CPython, but also works on its own.
|
|
1084
|
+
#
|
|
1085
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1086
|
+
# you may not use this file except in compliance with the License.
|
|
1087
|
+
# You may obtain a copy of the License at
|
|
1088
|
+
#
|
|
1089
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1090
|
+
#
|
|
1091
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1092
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1093
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1094
|
+
# See the License for the specific language governing permissions and
|
|
1095
|
+
# 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
|
""" This module abstracts what site.py is normally doing in .pth files.
|
|
19
5
|
|
|
20
6
|
This tries to extract "namespaces" packages that were manually created and
|
|
@@ -27,6 +13,7 @@ import sys
|
|
|
27
13
|
|
|
28
14
|
from nuitka.Tracing import recursion_logger
|
|
29
15
|
from nuitka.utils.FileOperations import getFileContentByLine, listDir
|
|
16
|
+
from nuitka.utils.ModuleNames import ModuleName
|
|
30
17
|
|
|
31
18
|
|
|
32
19
|
def getLoadedPackages():
|
|
@@ -154,8 +141,24 @@ def setPthImportedPackages(value):
|
|
|
154
141
|
# We need to set this from the outside, pylint: disable=global-statement
|
|
155
142
|
global pth_imported_packages
|
|
156
143
|
|
|
157
|
-
pth_imported_packages = value
|
|
144
|
+
pth_imported_packages = tuple(ModuleName(module_name) for module_name in value)
|
|
158
145
|
|
|
159
146
|
|
|
160
147
|
def getPthImportedPackages():
|
|
161
148
|
return pth_imported_packages
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
152
|
+
# integrates with CPython, but also works on its own.
|
|
153
|
+
#
|
|
154
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
155
|
+
# you may not use this file except in compliance with the License.
|
|
156
|
+
# You may obtain a copy of the License at
|
|
157
|
+
#
|
|
158
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
159
|
+
#
|
|
160
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
161
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
162
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
163
|
+
# See the License for the specific language governing permissions and
|
|
164
|
+
# limitations under the License.
|