Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,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
|
""" Standard plug-in to tell Nuitka about implicit imports.
|
|
19
5
|
|
|
20
6
|
When C extension modules import other modules, we cannot see this and need to
|
|
@@ -22,17 +8,19 @@ be told that. This encodes the knowledge we have for various modules. Feel free
|
|
|
22
8
|
to add to this and submit patches to make it more complete.
|
|
23
9
|
"""
|
|
24
10
|
|
|
11
|
+
import ast
|
|
25
12
|
import fnmatch
|
|
26
13
|
import os
|
|
27
14
|
|
|
28
|
-
from nuitka.__past__ import iter_modules
|
|
29
|
-
from nuitka.
|
|
15
|
+
from nuitka.__past__ import iter_modules, unicode
|
|
16
|
+
from nuitka.importing.Importing import locateModule
|
|
17
|
+
from nuitka.importing.Recursion import decideRecursion
|
|
18
|
+
from nuitka.plugins.YamlPluginBase import NuitkaYamlPluginBase
|
|
30
19
|
from nuitka.utils.ModuleNames import ModuleName
|
|
31
20
|
from nuitka.utils.Utils import isMacOS, isWin32Windows
|
|
32
|
-
from nuitka.utils.Yaml import getYamlPackageConfiguration
|
|
33
21
|
|
|
34
22
|
|
|
35
|
-
class NuitkaPluginImplicitImports(
|
|
23
|
+
class NuitkaPluginImplicitImports(NuitkaYamlPluginBase):
|
|
36
24
|
plugin_name = "implicit-imports"
|
|
37
25
|
|
|
38
26
|
plugin_desc = (
|
|
@@ -40,7 +28,9 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
40
28
|
)
|
|
41
29
|
|
|
42
30
|
def __init__(self):
|
|
43
|
-
|
|
31
|
+
NuitkaYamlPluginBase.__init__(self)
|
|
32
|
+
|
|
33
|
+
self.lazy_loader_usages = {}
|
|
44
34
|
|
|
45
35
|
@staticmethod
|
|
46
36
|
def isAlwaysEnabled():
|
|
@@ -68,19 +58,22 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
68
58
|
module_name=ModuleName(current),
|
|
69
59
|
)
|
|
70
60
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
61
|
+
if module_filename is not None:
|
|
62
|
+
for sub_module in iter_modules([module_filename]):
|
|
63
|
+
if not fnmatch.fnmatch(sub_module.name, part):
|
|
64
|
+
continue
|
|
74
65
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
66
|
+
if count == len(parts) - 1:
|
|
67
|
+
yield current.getChildNamed(sub_module.name)
|
|
68
|
+
else:
|
|
69
|
+
child_name = current.getChildNamed(
|
|
70
|
+
sub_module.name
|
|
71
|
+
).asString()
|
|
79
72
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
for value in self._resolveModulePattern(
|
|
74
|
+
child_name + "." + ".".join(parts[count + 1 :])
|
|
75
|
+
):
|
|
76
|
+
yield value
|
|
84
77
|
|
|
85
78
|
return
|
|
86
79
|
else:
|
|
@@ -91,6 +84,31 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
91
84
|
|
|
92
85
|
yield current
|
|
93
86
|
|
|
87
|
+
def _resolveImplicitImportsConfig(self, full_name, dependency):
|
|
88
|
+
if "(" in dependency:
|
|
89
|
+
value = self.evaluateExpression(
|
|
90
|
+
full_name=full_name,
|
|
91
|
+
expression=dependency,
|
|
92
|
+
config_name="depends value",
|
|
93
|
+
extra_context=None,
|
|
94
|
+
single_value=False,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
if type(value) in (str, unicode):
|
|
98
|
+
value = (value,)
|
|
99
|
+
|
|
100
|
+
for v in value:
|
|
101
|
+
if "*" in v or "?" in v:
|
|
102
|
+
for resolved in self._resolveModulePattern(v):
|
|
103
|
+
yield resolved
|
|
104
|
+
else:
|
|
105
|
+
yield ModuleName(v)
|
|
106
|
+
elif "*" in dependency or "?" in dependency:
|
|
107
|
+
for resolved in self._resolveModulePattern(dependency):
|
|
108
|
+
yield resolved
|
|
109
|
+
else:
|
|
110
|
+
yield dependency
|
|
111
|
+
|
|
94
112
|
def _handleImplicitImportsConfig(self, module, config):
|
|
95
113
|
full_name = module.getFullName()
|
|
96
114
|
|
|
@@ -109,11 +127,11 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
109
127
|
else:
|
|
110
128
|
dependency = full_name.getSiblingNamed(dependency[1:]).asString()
|
|
111
129
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
yield
|
|
130
|
+
for value in self._resolveImplicitImportsConfig(
|
|
131
|
+
full_name=full_name,
|
|
132
|
+
dependency=dependency,
|
|
133
|
+
):
|
|
134
|
+
yield value
|
|
117
135
|
|
|
118
136
|
def _getImportsByFullname(self, module, full_name):
|
|
119
137
|
"""Provides names of modules to imported implicitly."""
|
|
@@ -248,6 +266,9 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
248
266
|
elif full_name == crypto_module_name + ".Cipher.PKCS1_v1_5":
|
|
249
267
|
yield crypto_module_name + ".Cipher._pkcs1_decode"
|
|
250
268
|
|
|
269
|
+
elif full_name == crypto_module_name + ".Cipher.PKCS1_OAEP":
|
|
270
|
+
yield crypto_module_name + ".Cipher._pkcs1_decode"
|
|
271
|
+
|
|
251
272
|
elif full_name == crypto_module_name + ".Math._IntegerCustom":
|
|
252
273
|
yield crypto_module_name + ".Math._modexp"
|
|
253
274
|
|
|
@@ -321,7 +342,7 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
321
342
|
module_filename = self.locateModule(module_name)
|
|
322
343
|
|
|
323
344
|
if os.path.isfile(module_filename):
|
|
324
|
-
module_filename =
|
|
345
|
+
module_filename = os.path.dirname(module_filename)
|
|
325
346
|
|
|
326
347
|
for relative_path in config.get("global-sys-path", ()):
|
|
327
348
|
candidate = os.path.abspath(os.path.join(module_filename, relative_path))
|
|
@@ -339,16 +360,8 @@ class NuitkaPluginImplicitImports(NuitkaPluginBase):
|
|
|
339
360
|
):
|
|
340
361
|
yield item
|
|
341
362
|
|
|
342
|
-
def onModuleSourceCode(self, module_name, source_code):
|
|
343
|
-
|
|
344
|
-
# We cannot intercept "is" tests, but need it to be "isinstance",
|
|
345
|
-
# so we patch it on the file. TODO: This is only temporary, in
|
|
346
|
-
# the future, we may use optimization that understands the right
|
|
347
|
-
# hand size of the "is" argument well enough to allow for our
|
|
348
|
-
# type too.
|
|
349
|
-
return source_code.replace(
|
|
350
|
-
"type(attr) is types.MethodType", "isinstance(attr, types.MethodType)"
|
|
351
|
-
)
|
|
363
|
+
def onModuleSourceCode(self, module_name, source_filename, source_code):
|
|
364
|
+
# TODO: Move the ones that would be possible to yaml config,
|
|
352
365
|
|
|
353
366
|
if module_name == "site":
|
|
354
367
|
if source_code.startswith("def ") or source_code.startswith("class "):
|
|
@@ -365,11 +378,161 @@ __file__ = (__nuitka_binary_dir + '%ssite.py') if '__nuitka_binary_dir' in dict(
|
|
|
365
378
|
"PREFIXES = [sys.prefix, sys.exec_prefix]", "PREFIXES = []"
|
|
366
379
|
)
|
|
367
380
|
|
|
368
|
-
|
|
381
|
+
# Source code should use lazy_loader, this may not be good enough
|
|
382
|
+
# for all things yet.
|
|
383
|
+
attach_call_replacements = (
|
|
384
|
+
(
|
|
385
|
+
"lazy.attach_stub(__name__, __file__)",
|
|
386
|
+
"lazy.attach('%(module_name)s', %(submodules)s, %(attrs)s)",
|
|
387
|
+
),
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
for attach_call, attach_call_replacement in attach_call_replacements:
|
|
391
|
+
if attach_call in source_code:
|
|
392
|
+
result = self._handleLazyLoad(
|
|
393
|
+
module_name=module_name,
|
|
394
|
+
source_filename=source_filename,
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
# Inline the values, to avoid the data files.
|
|
398
|
+
if result is not None:
|
|
399
|
+
replacement = attach_call_replacement % {
|
|
400
|
+
"module_name": module_name.asString(),
|
|
401
|
+
"submodules": tuple(
|
|
402
|
+
sub_module_name.asString() for sub_module_name in result[0]
|
|
403
|
+
),
|
|
404
|
+
"attrs": dict(
|
|
405
|
+
(
|
|
406
|
+
sub_module_name.getChildNameFromPackage(
|
|
407
|
+
module_name
|
|
408
|
+
).asString(),
|
|
409
|
+
module_attributes,
|
|
410
|
+
)
|
|
411
|
+
for (sub_module_name, module_attributes) in sorted(
|
|
412
|
+
result[1].items()
|
|
413
|
+
)
|
|
414
|
+
),
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
source_code = source_code.replace(attach_call, replacement)
|
|
418
|
+
|
|
419
|
+
if module_name == "huggingface_hub":
|
|
420
|
+
# Special handling for huggingface that uses the source code variant
|
|
421
|
+
# of lazy module. spell-checker: ignore huggingface
|
|
422
|
+
if (
|
|
423
|
+
"__getattr__, __dir__, __all__ = _attach(__name__, submodules=[], submod_attrs=_SUBMOD_ATTRS)"
|
|
424
|
+
in source_code
|
|
425
|
+
):
|
|
426
|
+
huggingface_hub_lazy_loader_info = self.queryRuntimeInformationSingle(
|
|
427
|
+
setup_codes="import huggingface_hub",
|
|
428
|
+
value="huggingface_hub._SUBMOD_ATTRS",
|
|
429
|
+
info_name="huggingface_hub_lazy_loader",
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
self._addLazyLoader(
|
|
433
|
+
module_name,
|
|
434
|
+
submodules=(),
|
|
435
|
+
submodule_attrs=dict(
|
|
436
|
+
("." + submodule_name, attributes)
|
|
437
|
+
for (
|
|
438
|
+
submodule_name,
|
|
439
|
+
attributes,
|
|
440
|
+
) in huggingface_hub_lazy_loader_info.items()
|
|
441
|
+
),
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
if module_name == "pydantic":
|
|
445
|
+
# Pydantic has its own lazy loading, spell-checker: ignore pydantic
|
|
446
|
+
if "def __getattr__(" in source_code:
|
|
447
|
+
pydantic_info = self.queryRuntimeInformationSingle(
|
|
448
|
+
setup_codes="import pydantic",
|
|
449
|
+
value="pydantic._dynamic_imports",
|
|
450
|
+
info_name="pydantic_lazy_loader",
|
|
451
|
+
)
|
|
452
|
+
|
|
453
|
+
pydantic_lazy_loader_info = {}
|
|
454
|
+
for key, value in pydantic_info.items():
|
|
455
|
+
# Older pydantic had only a string for the attribute.
|
|
456
|
+
if type(value) is tuple:
|
|
457
|
+
value = "".join(value).rstrip(".")
|
|
458
|
+
|
|
459
|
+
if value not in pydantic_lazy_loader_info:
|
|
460
|
+
pydantic_lazy_loader_info[value] = []
|
|
461
|
+
pydantic_lazy_loader_info[value].append(key)
|
|
462
|
+
|
|
463
|
+
self._addLazyLoader(
|
|
464
|
+
module_name=module_name,
|
|
465
|
+
submodules=(),
|
|
466
|
+
submodule_attrs=pydantic_lazy_loader_info,
|
|
467
|
+
)
|
|
369
468
|
|
|
370
|
-
# Do nothing by default.
|
|
371
469
|
return source_code
|
|
372
470
|
|
|
471
|
+
def _addLazyLoader(self, module_name, submodules, submodule_attrs):
|
|
472
|
+
"""Add lazy loader information for a module.
|
|
473
|
+
|
|
474
|
+
Args:
|
|
475
|
+
module_name: name of the module to work on
|
|
476
|
+
submodules: list of attributes that are known submodules
|
|
477
|
+
submodule_attrs: dict of module name to list of attributes
|
|
478
|
+
|
|
479
|
+
Notes:
|
|
480
|
+
It converts to modules names on the fly. If in submodule_attr
|
|
481
|
+
the module name starts with a "." then it's relative to the
|
|
482
|
+
module_name value.
|
|
483
|
+
|
|
484
|
+
"""
|
|
485
|
+
|
|
486
|
+
submodules = tuple(ModuleName(submodule) for submodule in submodules)
|
|
487
|
+
|
|
488
|
+
submodule_attrs = dict(
|
|
489
|
+
(
|
|
490
|
+
(
|
|
491
|
+
module_name.getChildNamed(submodule[1:])
|
|
492
|
+
if submodule.startswith(".")
|
|
493
|
+
else ModuleName(submodule)
|
|
494
|
+
),
|
|
495
|
+
tuple(attribute_names),
|
|
496
|
+
)
|
|
497
|
+
for (submodule, attribute_names) in sorted(submodule_attrs.items())
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
self.lazy_loader_usages[module_name] = (
|
|
501
|
+
submodules,
|
|
502
|
+
submodule_attrs,
|
|
503
|
+
)
|
|
504
|
+
|
|
505
|
+
def _handleLazyLoad(self, module_name, source_filename):
|
|
506
|
+
pyi_filename = source_filename + "i"
|
|
507
|
+
|
|
508
|
+
if os.path.exists(pyi_filename):
|
|
509
|
+
try:
|
|
510
|
+
import lazy_loader
|
|
511
|
+
except ImportError:
|
|
512
|
+
pass
|
|
513
|
+
else:
|
|
514
|
+
with open(pyi_filename, "rb") as f:
|
|
515
|
+
stub_node = ast.parse(f.read())
|
|
516
|
+
|
|
517
|
+
# We are using private code here, to avoid use duplicating,
|
|
518
|
+
# pylint: disable=protected-access
|
|
519
|
+
visitor = lazy_loader._StubVisitor()
|
|
520
|
+
visitor.visit(stub_node)
|
|
521
|
+
|
|
522
|
+
self._addLazyLoader(
|
|
523
|
+
module_name=module_name,
|
|
524
|
+
submodules=visitor._submodules,
|
|
525
|
+
submodule_attrs=dict(
|
|
526
|
+
("." + submodule_name, attributes)
|
|
527
|
+
for (
|
|
528
|
+
submodule_name,
|
|
529
|
+
attributes,
|
|
530
|
+
) in visitor._submod_attrs.items()
|
|
531
|
+
),
|
|
532
|
+
)
|
|
533
|
+
|
|
534
|
+
return self.lazy_loader_usages[module_name]
|
|
535
|
+
|
|
373
536
|
def createPreModuleLoadCode(self, module):
|
|
374
537
|
full_name = module.getFullName()
|
|
375
538
|
|
|
@@ -380,8 +543,45 @@ __file__ = (__nuitka_binary_dir + '%ssite.py') if '__nuitka_binary_dir' in dict(
|
|
|
380
543
|
):
|
|
381
544
|
code = "\n".join(entry.get("pre-import-code"))
|
|
382
545
|
|
|
383
|
-
|
|
384
|
-
|
|
546
|
+
for entry in self.config.get(full_name, section="import-hacks"):
|
|
547
|
+
if "force-environment-variables" in entry:
|
|
548
|
+
if self.evaluateCondition(
|
|
549
|
+
full_name=full_name, condition=entry.get("when", "True")
|
|
550
|
+
):
|
|
551
|
+
for (
|
|
552
|
+
environment_variable_name,
|
|
553
|
+
environment_variable_value,
|
|
554
|
+
) in entry.get("force-environment-variables").items():
|
|
555
|
+
code = """\
|
|
556
|
+
import os
|
|
557
|
+
os.environ['%(environment_variable_name)s'] = "%(environment_variable_value)s"
|
|
558
|
+
""" % {
|
|
559
|
+
"environment_variable_name": environment_variable_name,
|
|
560
|
+
"environment_variable_value": environment_variable_value,
|
|
561
|
+
}
|
|
562
|
+
yield code, """\
|
|
563
|
+
According to Yaml 'force-environment-variables' configuration."""
|
|
564
|
+
|
|
565
|
+
for entry in self.config.get(full_name, section="import-hacks"):
|
|
566
|
+
if "overridden-environment-variables" in entry:
|
|
567
|
+
if self.evaluateCondition(
|
|
568
|
+
full_name=full_name, condition=entry.get("when", "True")
|
|
569
|
+
):
|
|
570
|
+
for (
|
|
571
|
+
environment_variable_name,
|
|
572
|
+
environment_variable_value,
|
|
573
|
+
) in entry.get("overridden-environment-variables").items():
|
|
574
|
+
code = """\
|
|
575
|
+
import os
|
|
576
|
+
if os.getenv("%(environment_variable_name)s") is not None:
|
|
577
|
+
os.environ["%(environment_variable_name)s" + "_OLD"] = os.getenv("%(environment_variable_name)s")
|
|
578
|
+
os.environ['%(environment_variable_name)s'] = "%(environment_variable_value)s"
|
|
579
|
+
""" % {
|
|
580
|
+
"environment_variable_name": environment_variable_name,
|
|
581
|
+
"environment_variable_value": environment_variable_value,
|
|
582
|
+
}
|
|
583
|
+
yield code, """\
|
|
584
|
+
According to Yaml 'overridden-environment-variables' configuration."""
|
|
385
585
|
|
|
386
586
|
def createPostModuleLoadCode(self, module):
|
|
387
587
|
full_name = module.getFullName()
|
|
@@ -394,7 +594,30 @@ __file__ = (__nuitka_binary_dir + '%ssite.py') if '__nuitka_binary_dir' in dict(
|
|
|
394
594
|
code = "\n".join(entry.get("post-import-code"))
|
|
395
595
|
|
|
396
596
|
# TODO: Add a description to the Yaml file.
|
|
397
|
-
yield code, "
|
|
597
|
+
yield code, """\
|
|
598
|
+
According to Yaml 'post-import-code' configuration."""
|
|
599
|
+
|
|
600
|
+
for entry in self.config.get(full_name, section="import-hacks"):
|
|
601
|
+
if "overridden-environment-variables" in entry:
|
|
602
|
+
if self.evaluateCondition(
|
|
603
|
+
full_name=full_name, condition=entry.get("when", "True")
|
|
604
|
+
):
|
|
605
|
+
for environment_variable_name in entry.get(
|
|
606
|
+
"overridden-environment-variables"
|
|
607
|
+
):
|
|
608
|
+
code = """\
|
|
609
|
+
import os
|
|
610
|
+
if os.getenv("%(environment_variable_name)s" + "_OLD") is None:
|
|
611
|
+
del os.environ["%(environment_variable_name)s"]
|
|
612
|
+
else:
|
|
613
|
+
os.environ["%(environment_variable_name)s"] = os.environ["%(environment_variable_name)s" + "_OLD"]
|
|
614
|
+
del os.environ["%(environment_variable_name)s" + "_OLD"]
|
|
615
|
+
""" % {
|
|
616
|
+
"environment_variable_name": environment_variable_name
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
yield code, """\
|
|
620
|
+
According to Yaml 'overridden-environment-variables' configuration."""
|
|
398
621
|
|
|
399
622
|
unworthy_namespaces = (
|
|
400
623
|
"setuptools", # Not performance relevant.
|
|
@@ -432,13 +655,139 @@ __file__ = (__nuitka_binary_dir + '%ssite.py') if '__nuitka_binary_dir' in dict(
|
|
|
432
655
|
"asyncua.ua.object_ids", # Too large generated code
|
|
433
656
|
"asyncua.ua.uaerrors._auto", # Too large generated code
|
|
434
657
|
"asyncua.server.standard_address_space.standard_address_space_services", # Too large generated code
|
|
658
|
+
"opcua.ua.object_ids", # Too large generated code
|
|
659
|
+
"opcua.ua.uaerrors._auto", # Too large generated code
|
|
660
|
+
"opcua.server.server.standard_address_space",
|
|
435
661
|
"azure.mgmt.network", # Too large generated code
|
|
436
662
|
"azure.mgmt.compute", # Too large generated code
|
|
437
663
|
"transformers.utils.dummy_pt_objects", # Not performance relevant.
|
|
438
664
|
"transformers.utils.dummy_flax_objects", # Not performance relevant.
|
|
439
665
|
"transformers.utils.dummy_tf_objects", # Not performance relevant.
|
|
666
|
+
"rich", # Not performance relevant and memory leaking due to empty compiled cell leaks
|
|
667
|
+
"altair.vegalite.v5.schema", # Not performance relevant.
|
|
668
|
+
"azure", # Not performance relevant.
|
|
669
|
+
"networkx", # Needs solutions for bytecode requiring decorators.
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
unworthy_modulename_patterns = (
|
|
673
|
+
"tensorflow.*test", # Not performance relevant.
|
|
674
|
+
"tensorflow.**.test_util", # Not performance relevant.
|
|
440
675
|
)
|
|
441
676
|
|
|
442
677
|
def decideCompilation(self, module_name):
|
|
443
678
|
if module_name.hasOneOfNamespaces(self.unworthy_namespaces):
|
|
444
679
|
return "bytecode"
|
|
680
|
+
|
|
681
|
+
is_match, _reason = module_name.matchesToShellPatterns(
|
|
682
|
+
self.unworthy_modulename_patterns
|
|
683
|
+
)
|
|
684
|
+
if is_match:
|
|
685
|
+
return "bytecode"
|
|
686
|
+
|
|
687
|
+
def onModuleUsageLookAhead(
|
|
688
|
+
self, module_name, module_filename, module_kind, get_module_source
|
|
689
|
+
):
|
|
690
|
+
# Getting the source code will also trigger our modification
|
|
691
|
+
# and potentially tell us if any lazy loading applies.
|
|
692
|
+
if get_module_source() is None:
|
|
693
|
+
return
|
|
694
|
+
|
|
695
|
+
if module_name in self.lazy_loader_usages:
|
|
696
|
+
from nuitka.HardImportRegistry import (
|
|
697
|
+
addModuleAttributeFactory,
|
|
698
|
+
addModuleDynamicHard,
|
|
699
|
+
addModuleTrust,
|
|
700
|
+
trust_module,
|
|
701
|
+
trust_node,
|
|
702
|
+
)
|
|
703
|
+
|
|
704
|
+
addModuleDynamicHard(module_name)
|
|
705
|
+
|
|
706
|
+
sub_module_names, sub_module_attr = self.lazy_loader_usages[module_name]
|
|
707
|
+
|
|
708
|
+
for sub_module_name in sub_module_names:
|
|
709
|
+
addModuleTrust(module_name, sub_module_name, trust_module)
|
|
710
|
+
|
|
711
|
+
sub_module_name = module_name.getChildNamed(sub_module_name)
|
|
712
|
+
addModuleDynamicHard(sub_module_name)
|
|
713
|
+
|
|
714
|
+
_lookAhead(using_module_name=module_name, module_name=sub_module_name)
|
|
715
|
+
|
|
716
|
+
for (
|
|
717
|
+
sub_module_name,
|
|
718
|
+
attribute_names,
|
|
719
|
+
) in sub_module_attr.items():
|
|
720
|
+
addModuleDynamicHard(sub_module_name)
|
|
721
|
+
|
|
722
|
+
_lookAhead(using_module_name=module_name, module_name=sub_module_name)
|
|
723
|
+
|
|
724
|
+
for attribute_name in attribute_names:
|
|
725
|
+
addModuleTrust(module_name, attribute_name, trust_node)
|
|
726
|
+
addModuleAttributeFactory(
|
|
727
|
+
module_name,
|
|
728
|
+
attribute_name,
|
|
729
|
+
makeExpressionImportModuleNameHardExistsAfterImportFactory(
|
|
730
|
+
sub_module_name=sub_module_name,
|
|
731
|
+
attribute_name=attribute_name,
|
|
732
|
+
),
|
|
733
|
+
)
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
def makeExpressionImportModuleNameHardExistsAfterImportFactory(
|
|
737
|
+
sub_module_name,
|
|
738
|
+
attribute_name,
|
|
739
|
+
):
|
|
740
|
+
from nuitka.HardImportRegistry import trust_node_factory
|
|
741
|
+
from nuitka.nodes.ImportHardNodes import (
|
|
742
|
+
ExpressionImportModuleNameHardExists,
|
|
743
|
+
)
|
|
744
|
+
|
|
745
|
+
key = (sub_module_name, attribute_name)
|
|
746
|
+
if key in trust_node_factory:
|
|
747
|
+
return lambda source_ref: trust_node_factory[key](source_ref=source_ref)
|
|
748
|
+
|
|
749
|
+
return lambda source_ref: ExpressionImportModuleNameHardExists(
|
|
750
|
+
module_name=sub_module_name,
|
|
751
|
+
import_name=attribute_name,
|
|
752
|
+
module_guaranteed=False,
|
|
753
|
+
source_ref=source_ref,
|
|
754
|
+
)
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
def _lookAhead(using_module_name, module_name):
|
|
758
|
+
(
|
|
759
|
+
_module_name,
|
|
760
|
+
package_filename,
|
|
761
|
+
package_module_kind,
|
|
762
|
+
finding,
|
|
763
|
+
) = locateModule(
|
|
764
|
+
module_name=module_name,
|
|
765
|
+
parent_package=None,
|
|
766
|
+
level=0,
|
|
767
|
+
)
|
|
768
|
+
|
|
769
|
+
assert module_name == _module_name
|
|
770
|
+
|
|
771
|
+
if finding != "not-found":
|
|
772
|
+
decideRecursion(
|
|
773
|
+
using_module_name=using_module_name,
|
|
774
|
+
module_filename=package_filename,
|
|
775
|
+
module_name=module_name,
|
|
776
|
+
module_kind=package_module_kind,
|
|
777
|
+
)
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
781
|
+
# integrates with CPython, but also works on its own.
|
|
782
|
+
#
|
|
783
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
784
|
+
# you may not use this file except in compliance with the License.
|
|
785
|
+
# You may obtain a copy of the License at
|
|
786
|
+
#
|
|
787
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
788
|
+
#
|
|
789
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
790
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
791
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
792
|
+
# See the License for the specific language governing permissions and
|
|
793
|
+
# 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
|
""" Details see below in class definition.
|
|
19
5
|
"""
|
|
20
6
|
|
|
@@ -77,7 +63,9 @@ except ImportError:
|
|
|
77
63
|
return info
|
|
78
64
|
|
|
79
65
|
def getImplicitImports(self, module):
|
|
80
|
-
#
|
|
66
|
+
# TODO: Move this all to yaml configuration, we now can
|
|
67
|
+
# query Kivy installation and use variables to solve some
|
|
68
|
+
# of the more difficult ones.
|
|
81
69
|
|
|
82
70
|
full_name = module.getFullName()
|
|
83
71
|
|
|
@@ -102,10 +90,9 @@ except ImportError:
|
|
|
102
90
|
yield "kivy.graphics.cgl_backend"
|
|
103
91
|
elif full_name == "kivy.graphics.cgl_backend":
|
|
104
92
|
yield "kivy.graphics.cgl_backend.cgl_glew"
|
|
93
|
+
yield "kivy.graphics.cgl_backend.cgl_sdl2"
|
|
105
94
|
elif full_name == "kivy.graphics.cgl_backend.cgl_glew":
|
|
106
95
|
yield "kivy.graphics.cgl_backend.cgl_gl"
|
|
107
|
-
elif full_name == "kivymd.app":
|
|
108
|
-
yield self.locateModules("kivymd.uix")
|
|
109
96
|
|
|
110
97
|
def getExtraDlls(self, module):
|
|
111
98
|
"""Copy extra shared libraries or data for this installation.
|
|
@@ -129,8 +116,25 @@ except ImportError:
|
|
|
129
116
|
yield self.makeDllEntryPoint(
|
|
130
117
|
source_path=full_path,
|
|
131
118
|
dest_path=target_filename,
|
|
119
|
+
module_name=full_name,
|
|
132
120
|
package_name=full_name,
|
|
133
121
|
reason="needed by 'kivy'",
|
|
134
122
|
)
|
|
135
123
|
|
|
136
124
|
self.reportFileCount(full_name, len(kivy_dlls))
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
128
|
+
# integrates with CPython, but also works on its own.
|
|
129
|
+
#
|
|
130
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
131
|
+
# you may not use this file except in compliance with the License.
|
|
132
|
+
# You may obtain a copy of the License at
|
|
133
|
+
#
|
|
134
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
135
|
+
#
|
|
136
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
137
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
138
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
139
|
+
# See the License for the specific language governing permissions and
|
|
140
|
+
# limitations under the License.
|