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,31 +1,21 @@
|
|
|
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
|
""" Matplotlib standard plugin module. """
|
|
5
|
+
|
|
19
6
|
import os
|
|
20
7
|
|
|
21
8
|
from nuitka.Options import isStandaloneMode
|
|
22
9
|
from nuitka.plugins.PluginBase import NuitkaPluginBase
|
|
23
10
|
from nuitka.plugins.Plugins import (
|
|
11
|
+
getActiveQtPlugin,
|
|
24
12
|
getActiveQtPluginBindingName,
|
|
25
13
|
hasActivePlugin,
|
|
26
14
|
)
|
|
15
|
+
from nuitka.utils.Execution import NuitkaCalledProcessError
|
|
27
16
|
from nuitka.utils.FileOperations import getFileContentByLine
|
|
28
17
|
from nuitka.utils.Jinja2 import renderTemplateFromString
|
|
18
|
+
from nuitka.utils.Utils import isMacOS
|
|
29
19
|
|
|
30
20
|
# spell-checker: ignore matplotlib, scipy, scikit, matplotlibrc, matplotlibdata
|
|
31
21
|
# spell-checker: ignore mpl_toolkits, tkagg, MPLBACKEND
|
|
@@ -68,9 +58,10 @@ class NuitkaPluginMatplotlib(NuitkaPluginBase):
|
|
|
68
58
|
There might exist a local version outside 'matplotlib/mpl-data' which
|
|
69
59
|
we then must use instead. Determine its name by asking matplotlib.
|
|
70
60
|
"""
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
61
|
+
try:
|
|
62
|
+
info = self.queryRuntimeInformationMultiple(
|
|
63
|
+
info_name="matplotlib_info",
|
|
64
|
+
setup_codes="""
|
|
74
65
|
from matplotlib import matplotlib_fname, get_backend, __version__
|
|
75
66
|
try:
|
|
76
67
|
from matplotlib import get_data_path
|
|
@@ -78,23 +69,53 @@ except ImportError:
|
|
|
78
69
|
from matplotlib import _get_data_path as get_data_path
|
|
79
70
|
from inspect import getsource
|
|
80
71
|
""",
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
(
|
|
87
|
-
"needs_matplotlibdata_env",
|
|
88
|
-
"'MATPLOTLIBDATA' in getsource(get_data_path) or 'MATPLOTLIBRC' in getsource(get_data_path)",
|
|
72
|
+
values=(
|
|
73
|
+
("matplotlibrc_filename", "matplotlib_fname()"),
|
|
74
|
+
("backend", "get_backend()"),
|
|
75
|
+
("data_path", "get_data_path()"),
|
|
76
|
+
("matplotlib_version", "__version__"),
|
|
89
77
|
),
|
|
90
|
-
)
|
|
91
|
-
|
|
78
|
+
)
|
|
79
|
+
except NuitkaCalledProcessError as e:
|
|
80
|
+
self.debug("Exception during detection: %s" % str(e))
|
|
81
|
+
|
|
82
|
+
if "MPLBACKEND" not in os.environ:
|
|
83
|
+
self.sysexit(
|
|
84
|
+
"""\
|
|
85
|
+
Error, failed to detect matplotlib backend. Please set 'MPLBACKEND' \
|
|
86
|
+
environment variable during compilation.""",
|
|
87
|
+
mnemonic="""\
|
|
88
|
+
https://matplotlib.org/stable/users/installing/environment_variables_faq.html#envvar-MPLBACKEND""",
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
raise
|
|
92
92
|
|
|
93
93
|
if info is None:
|
|
94
94
|
self.sysexit("Error, it seems 'matplotlib' is not installed or broken.")
|
|
95
95
|
|
|
96
|
+
# Auto correct for using tk-inter the system setting.
|
|
97
|
+
if "tk" not in info.backend.lower() and hasActivePlugin("tk-inter"):
|
|
98
|
+
info = info.replace(backend="TkAgg")
|
|
99
|
+
|
|
100
|
+
if info.backend == "QtAgg" and getActiveQtPlugin() is None:
|
|
101
|
+
self.sysexit(
|
|
102
|
+
"Error, cannot use 'QtAgg' with not plugin for Qt binding active."
|
|
103
|
+
)
|
|
104
|
+
|
|
96
105
|
return info
|
|
97
106
|
|
|
107
|
+
def getImplicitImports(self, module):
|
|
108
|
+
# Make sure the used Qt namespace is included in compilation, mostly for
|
|
109
|
+
# accelerated mode, but also to prevent people from accidentally
|
|
110
|
+
# removing it.
|
|
111
|
+
if module.getFullName() != "matplotlib":
|
|
112
|
+
return
|
|
113
|
+
|
|
114
|
+
matplotlib_info = self._getMatplotlibInfo()
|
|
115
|
+
|
|
116
|
+
# Make sure, the default backend is included.
|
|
117
|
+
yield "matplotlib.backends.backend_%s" % matplotlib_info.backend.lower()
|
|
118
|
+
|
|
98
119
|
def considerDataFiles(self, module):
|
|
99
120
|
if module.getFullName() != "matplotlib":
|
|
100
121
|
return
|
|
@@ -106,6 +127,18 @@ from inspect import getsource
|
|
|
106
127
|
"mpl-data missing, matplotlib installation appears to be broken"
|
|
107
128
|
)
|
|
108
129
|
|
|
130
|
+
self.info(
|
|
131
|
+
"Using %s backend '%s'."
|
|
132
|
+
% (
|
|
133
|
+
(
|
|
134
|
+
"configuration file or default"
|
|
135
|
+
if "MPLBACKEND" not in os.environ
|
|
136
|
+
else "as per 'MPLBACKEND' environment variable"
|
|
137
|
+
),
|
|
138
|
+
matplotlib_info.backend,
|
|
139
|
+
)
|
|
140
|
+
)
|
|
141
|
+
|
|
109
142
|
# Include the "mpl-data" files.
|
|
110
143
|
yield self.makeIncludedDataDirectory(
|
|
111
144
|
source_path=matplotlib_info.data_path,
|
|
@@ -133,7 +166,7 @@ from inspect import getsource
|
|
|
133
166
|
# old config file has a backend definition
|
|
134
167
|
found = True
|
|
135
168
|
|
|
136
|
-
if not found and matplotlib_info.matplotlib_version < "
|
|
169
|
+
if not found and matplotlib_info.matplotlib_version < "4":
|
|
137
170
|
# Set the backend, so even if it was run time determined, we now enforce it.
|
|
138
171
|
new_lines.append("backend: %s" % matplotlib_info.backend)
|
|
139
172
|
|
|
@@ -152,14 +185,19 @@ from inspect import getsource
|
|
|
152
185
|
# some special handling for matplotlib:
|
|
153
186
|
# depending on whether 'tk-inter' resp. 'qt-plugins' are enabled,
|
|
154
187
|
# their matplotlib backends are included.
|
|
155
|
-
if
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
):
|
|
188
|
+
if module_name in (
|
|
189
|
+
"matplotlib.backends.backend_tk",
|
|
190
|
+
"matplotlib.backends.backend_tkagg",
|
|
191
|
+
"matplotlib.backend.tkagg",
|
|
192
|
+
):
|
|
193
|
+
if hasActivePlugin("tk-inter"):
|
|
161
194
|
return True, "Needed for tkinter matplotlib backend"
|
|
162
195
|
|
|
196
|
+
# For Qt binding, include matplotlib backend, spell-checker: ignore qtagg
|
|
197
|
+
if module_name == "matplotlib.backends.backend_qtagg":
|
|
198
|
+
if getActiveQtPluginBindingName() is not None:
|
|
199
|
+
return True, "Needed for qt matplotlib backend"
|
|
200
|
+
|
|
163
201
|
def createPreModuleLoadCode(self, module):
|
|
164
202
|
"""Method called when a module is being imported.
|
|
165
203
|
|
|
@@ -175,16 +213,13 @@ from inspect import getsource
|
|
|
175
213
|
"""
|
|
176
214
|
|
|
177
215
|
# The version may not need the environment variable.
|
|
178
|
-
if (
|
|
179
|
-
module.getFullName() == "matplotlib"
|
|
180
|
-
and self._getMatplotlibInfo().needs_matplotlibdata_env
|
|
181
|
-
):
|
|
216
|
+
if module.getFullName() == "matplotlib":
|
|
182
217
|
code = renderTemplateFromString(
|
|
183
218
|
r"""
|
|
184
219
|
import os
|
|
185
220
|
os.environ["MATPLOTLIBDATA"] = os.path.join(__nuitka_binary_dir, "matplotlib", "mpl-data")
|
|
186
221
|
os.environ["MATPLOTLIBRC"] = os.path.join(__nuitka_binary_dir, "matplotlib", "mpl-data", "matplotlibrc")
|
|
187
|
-
os.environ["MPLBACKEND"] = {{matplotlib_info.backend}}
|
|
222
|
+
os.environ["MPLBACKEND"] = "{{matplotlib_info.backend}}"
|
|
188
223
|
{% if qt_binding_name %}
|
|
189
224
|
os.environ["QT_API"] = "{{qt_binding_name}}"
|
|
190
225
|
{% endif %}
|
|
@@ -196,3 +231,25 @@ os.environ["QT_API"] = "{{qt_binding_name}}"
|
|
|
196
231
|
code,
|
|
197
232
|
"Setting environment variables for 'matplotlib' to find package configuration.",
|
|
198
233
|
)
|
|
234
|
+
|
|
235
|
+
def decideCompilation(self, module_name):
|
|
236
|
+
# The C code for macOS requires Python functions rather than compiled
|
|
237
|
+
# ones, let it have its way
|
|
238
|
+
if isMacOS() and module_name == "matplotlib.backend_bases":
|
|
239
|
+
return "bytecode"
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
243
|
+
# integrates with CPython, but also works on its own.
|
|
244
|
+
#
|
|
245
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
246
|
+
# you may not use this file except in compliance with the License.
|
|
247
|
+
# You may obtain a copy of the License at
|
|
248
|
+
#
|
|
249
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
250
|
+
#
|
|
251
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
252
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
253
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
254
|
+
# See the License for the specific language governing permissions and
|
|
255
|
+
# 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
|
""" Standard plug-in to make multiprocessing and joblib work well.
|
|
19
5
|
|
|
20
6
|
On Windows, the multiprocessing modules forks new processes which then have
|
|
@@ -23,7 +9,7 @@ point to a "Python.exe" and won't use compiled code by default.
|
|
|
23
9
|
|
|
24
10
|
The issue applies to accelerated and standalone mode alike.
|
|
25
11
|
|
|
26
|
-
spell-checker: ignore joblib
|
|
12
|
+
spell-checker: ignore joblib,anyio
|
|
27
13
|
"""
|
|
28
14
|
|
|
29
15
|
from nuitka import Options
|
|
@@ -65,28 +51,21 @@ class NuitkaPluginMultiprocessingWorkarounds(NuitkaPluginBase):
|
|
|
65
51
|
def createPreModuleLoadCode(module):
|
|
66
52
|
full_name = module.getFullName()
|
|
67
53
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# re-usable or supports conditional replacements based on plugin activity and is
|
|
72
|
-
# always on.
|
|
73
|
-
if full_name == "multiprocessing":
|
|
74
|
-
code = """\
|
|
54
|
+
if full_name in ("multiprocessing", "anyio"):
|
|
55
|
+
yield (
|
|
56
|
+
"""\
|
|
75
57
|
import sys, os
|
|
76
|
-
sys.frozen = 1
|
|
77
58
|
argv0 = sys.argv[0]
|
|
78
59
|
if sys.platform == "win32" and not os.path.exists(argv0) and not argv0.endswith(".exe"):
|
|
79
60
|
argv0 += ".exe"
|
|
80
61
|
|
|
81
62
|
sys.executable = %s
|
|
82
63
|
sys._base_executable = sys.executable
|
|
83
|
-
"""
|
|
84
|
-
"__nuitka_binary_exe" if Options.isStandaloneMode() else "argv0"
|
|
85
|
-
)
|
|
86
|
-
return (
|
|
87
|
-
code,
|
|
64
|
+
"""
|
|
65
|
+
% ("__nuitka_binary_exe" if Options.isStandaloneMode() else "argv0"),
|
|
88
66
|
"""\
|
|
89
|
-
Monkey patching "
|
|
67
|
+
Monkey patching "%s" load environment."""
|
|
68
|
+
% full_name,
|
|
90
69
|
)
|
|
91
70
|
|
|
92
71
|
@staticmethod
|
|
@@ -94,7 +73,8 @@ Monkey patching "multiprocessing" load environment.""",
|
|
|
94
73
|
full_name = module.getFullName()
|
|
95
74
|
|
|
96
75
|
if full_name == "multiprocessing":
|
|
97
|
-
|
|
76
|
+
yield (
|
|
77
|
+
"""\
|
|
98
78
|
try:
|
|
99
79
|
from multiprocessing.forking import ForkingPickler
|
|
100
80
|
except ImportError:
|
|
@@ -113,10 +93,7 @@ def _reduce_compiled_method(m):
|
|
|
113
93
|
ForkingPickler.register(type(C().f), _reduce_compiled_method)
|
|
114
94
|
if str is bytes:
|
|
115
95
|
ForkingPickler.register(type(C.f), _reduce_compiled_method)
|
|
116
|
-
"""
|
|
117
|
-
|
|
118
|
-
return (
|
|
119
|
-
code,
|
|
96
|
+
""",
|
|
120
97
|
"""\
|
|
121
98
|
Monkey patching "multiprocessing" for compiled methods.""",
|
|
122
99
|
)
|
|
@@ -138,10 +115,10 @@ Monkey patching "multiprocessing" for compiled methods.""",
|
|
|
138
115
|
|
|
139
116
|
# For the call stack, this may look bad or different to what CPython
|
|
140
117
|
# does, but such is life. The forking module was split up into multiple
|
|
141
|
-
# modules in
|
|
118
|
+
# modules in Python3 so this is doubled. TODO: Move the version check
|
|
142
119
|
# into the code and let Nuitka compile time optimize it, which will also
|
|
143
120
|
# make sure joblib support is there for Python2 as well.
|
|
144
|
-
if python_version >=
|
|
121
|
+
if python_version >= 0x300:
|
|
145
122
|
source_code += """
|
|
146
123
|
def __nuitka_freeze_support():
|
|
147
124
|
import sys
|
|
@@ -166,6 +143,9 @@ def __nuitka_freeze_support():
|
|
|
166
143
|
else:
|
|
167
144
|
kwds[name] = int(value)
|
|
168
145
|
|
|
146
|
+
# Otherwise main module names will not work.
|
|
147
|
+
sys.modules["__main__"] = sys.modules["__parents_main__"]
|
|
148
|
+
|
|
169
149
|
multiprocessing.spawn.spawn_main(*args, **kwds)
|
|
170
150
|
__nuitka_freeze_support()
|
|
171
151
|
"""
|
|
@@ -200,3 +180,19 @@ __import__("multiprocessing.forking").forking.freeze_support()"""
|
|
|
200
180
|
def getPreprocessorSymbols():
|
|
201
181
|
if getModuleInclusionInfoByName("__parents_main__"):
|
|
202
182
|
return {"_NUITKA_PLUGIN_MULTIPROCESSING_ENABLED": "1"}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
186
|
+
# integrates with CPython, but also works on its own.
|
|
187
|
+
#
|
|
188
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
189
|
+
# you may not use this file except in compliance with the License.
|
|
190
|
+
# You may obtain a copy of the License at
|
|
191
|
+
#
|
|
192
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
193
|
+
#
|
|
194
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
195
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
196
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
197
|
+
# See the License for the specific language governing permissions and
|
|
198
|
+
# 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, Jorj McKie, mailto:<jorj.x.mckie@outlook.de> find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Details see below in class definition.
|
|
19
5
|
"""
|
|
20
6
|
|
|
@@ -30,3 +16,19 @@ class NuitkaPluginNumpy(NuitkaPluginBase):
|
|
|
30
16
|
@classmethod
|
|
31
17
|
def isDeprecated(cls):
|
|
32
18
|
return True
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
22
|
+
# integrates with CPython, but also works on its own.
|
|
23
|
+
#
|
|
24
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
25
|
+
# you may not use this file except in compliance with the License.
|
|
26
|
+
# You may obtain a copy of the License at
|
|
27
|
+
#
|
|
28
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
29
|
+
#
|
|
30
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
31
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
32
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
33
|
+
# See the License for the specific language governing permissions and
|
|
34
|
+
# 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
|
""" Standard plug-in to tell user about needed or useful options for packages.
|
|
19
5
|
|
|
20
6
|
When certain GUI packages are used, disabling the console may or may not be what
|
|
@@ -25,25 +11,19 @@ console is disabled. This reads Yaml configuration.
|
|
|
25
11
|
from nuitka.Options import (
|
|
26
12
|
isOnefileMode,
|
|
27
13
|
isStandaloneMode,
|
|
28
|
-
mayDisableConsoleWindow,
|
|
29
14
|
shallCreateAppBundle,
|
|
30
|
-
shallDisableConsoleWindow,
|
|
31
15
|
)
|
|
32
|
-
from nuitka.plugins.
|
|
16
|
+
from nuitka.plugins.YamlPluginBase import NuitkaYamlPluginBase
|
|
33
17
|
from nuitka.utils.Utils import isMacOS
|
|
34
|
-
from nuitka.utils.Yaml import getYamlPackageConfiguration
|
|
35
18
|
|
|
36
19
|
|
|
37
|
-
class NuitkaPluginOptionsNanny(
|
|
20
|
+
class NuitkaPluginOptionsNanny(NuitkaYamlPluginBase):
|
|
38
21
|
plugin_name = "options-nanny"
|
|
39
22
|
|
|
40
23
|
plugin_desc = (
|
|
41
24
|
"Inform the user about potential problems as per package configuration files."
|
|
42
25
|
)
|
|
43
26
|
|
|
44
|
-
def __init__(self):
|
|
45
|
-
self.config = getYamlPackageConfiguration()
|
|
46
|
-
|
|
47
27
|
@staticmethod
|
|
48
28
|
def isAlwaysEnabled():
|
|
49
29
|
return True
|
|
@@ -59,23 +39,28 @@ class NuitkaPluginOptionsNanny(NuitkaPluginBase):
|
|
|
59
39
|
if support_info == "ignore":
|
|
60
40
|
return
|
|
61
41
|
|
|
62
|
-
if
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
42
|
+
if support_info == "parameter":
|
|
43
|
+
message = "Module has parameter: " + description
|
|
44
|
+
elif support_info == "plugin":
|
|
45
|
+
message = "Module has plugin consideration: " + description
|
|
66
46
|
else:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
47
|
+
if condition != "True":
|
|
48
|
+
problem_desc = (
|
|
49
|
+
" with incomplete support due to condition '%s'" % condition
|
|
50
|
+
)
|
|
51
|
+
else:
|
|
52
|
+
problem_desc = " with incomplete support"
|
|
53
|
+
|
|
54
|
+
message = "Using module '%s' (version %s)%s: %s" % (
|
|
55
|
+
full_name,
|
|
56
|
+
".".join(str(d) for d in self.getPackageVersion(full_name)),
|
|
57
|
+
problem_desc,
|
|
58
|
+
description,
|
|
59
|
+
)
|
|
75
60
|
|
|
76
61
|
if support_info == "error":
|
|
77
62
|
self.sysexit(message)
|
|
78
|
-
elif support_info
|
|
63
|
+
elif support_info in ("warning", "parameter", "plugin"):
|
|
79
64
|
self.warning(message)
|
|
80
65
|
elif support_info == "info":
|
|
81
66
|
self.info(message)
|
|
@@ -85,36 +70,6 @@ class NuitkaPluginOptionsNanny(NuitkaPluginBase):
|
|
|
85
70
|
% full_name.asString()
|
|
86
71
|
)
|
|
87
72
|
|
|
88
|
-
def _checkConsoleMode(self, full_name, console):
|
|
89
|
-
if console == "no":
|
|
90
|
-
if shallDisableConsoleWindow() is not True:
|
|
91
|
-
self.sysexit(
|
|
92
|
-
"Error, when using '%s', you have to use '--disable-console' option."
|
|
93
|
-
% full_name
|
|
94
|
-
)
|
|
95
|
-
elif console == "yes":
|
|
96
|
-
pass
|
|
97
|
-
elif console == "recommend":
|
|
98
|
-
if shallDisableConsoleWindow() is None:
|
|
99
|
-
if isMacOS():
|
|
100
|
-
downside_message = """\
|
|
101
|
-
Otherwise high resolution will not be available and a terminal window will open"""
|
|
102
|
-
else:
|
|
103
|
-
downside_message = """\
|
|
104
|
-
Otherwise a terminal window will open"""
|
|
105
|
-
|
|
106
|
-
self.info(
|
|
107
|
-
"""\
|
|
108
|
-
Note, when using '%s', consider using '--disable-console' option. %s. However for \
|
|
109
|
-
debugging, terminal output is the easiest way to see informative traceback \
|
|
110
|
-
and error information, so delay this until your program working and remove \
|
|
111
|
-
once you find it non-working."""
|
|
112
|
-
% (full_name, downside_message)
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
else:
|
|
116
|
-
self.sysexitIllegalOptionValue(full_name, "console", console)
|
|
117
|
-
|
|
118
73
|
def _checkMacOSBundleMode(self, full_name, macos_bundle):
|
|
119
74
|
if macos_bundle == "yes":
|
|
120
75
|
if isStandaloneMode() and not shallCreateAppBundle():
|
|
@@ -126,8 +81,15 @@ Error, package '%s' requires '--macos-create-app-bundle' to be used or else it c
|
|
|
126
81
|
elif macos_bundle == "no":
|
|
127
82
|
pass
|
|
128
83
|
elif macos_bundle == "recommend":
|
|
129
|
-
|
|
130
|
-
|
|
84
|
+
self.info(
|
|
85
|
+
"""\
|
|
86
|
+
Note, when using '%s', consider using '--macos-create-app-bundle' option. \
|
|
87
|
+
Otherwise high resolution will not be available and a terminal window will \
|
|
88
|
+
open. However for debugging, terminal output is the easiest way to see \
|
|
89
|
+
informative traceback and error information, so launch it from there if \
|
|
90
|
+
possible."""
|
|
91
|
+
% full_name
|
|
92
|
+
)
|
|
131
93
|
else:
|
|
132
94
|
self.sysexitIllegalOptionValue(full_name, "macos_bundle", macos_bundle)
|
|
133
95
|
|
|
@@ -163,12 +125,6 @@ Error, package '%s' requires '--onefile' to be used on top of '--macos-create-ap
|
|
|
163
125
|
condition=condition,
|
|
164
126
|
)
|
|
165
127
|
|
|
166
|
-
if mayDisableConsoleWindow():
|
|
167
|
-
self._checkConsoleMode(
|
|
168
|
-
full_name=full_name,
|
|
169
|
-
console=check.get("console", "yes"),
|
|
170
|
-
)
|
|
171
|
-
|
|
172
128
|
if isMacOS():
|
|
173
129
|
self._checkMacOSBundleMode(
|
|
174
130
|
full_name=full_name,
|
|
@@ -183,3 +139,19 @@ Error, package '%s' requires '--onefile' to be used on top of '--macos-create-ap
|
|
|
183
139
|
)
|
|
184
140
|
|
|
185
141
|
return ()
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
145
|
+
# integrates with CPython, but also works on its own.
|
|
146
|
+
#
|
|
147
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
148
|
+
# you may not use this file except in compliance with the License.
|
|
149
|
+
# You may obtain a copy of the License at
|
|
150
|
+
#
|
|
151
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
152
|
+
#
|
|
153
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
154
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
155
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
156
|
+
# See the License for the specific language governing permissions and
|
|
157
|
+
# 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, Jorj McKie, mailto:<jorj.x.mckie@outlook.de> find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Standard plug-in to make pbr module work when compiled.
|
|
19
5
|
|
|
20
6
|
The pbr module needs to find a version number in compiled mode. The value
|
|
@@ -47,9 +33,9 @@ class NuitkaPluginPbrWorkarounds(NuitkaPluginBase):
|
|
|
47
33
|
if full_name == "pbr.packaging":
|
|
48
34
|
code = """\
|
|
49
35
|
import os
|
|
50
|
-
version = os.
|
|
36
|
+
version = os.getenv(
|
|
51
37
|
"PBR_VERSION",
|
|
52
|
-
os.
|
|
38
|
+
os.getenv("OSLO_PACKAGE_VERSION"))
|
|
53
39
|
if not version:
|
|
54
40
|
os.environ["OSLO_PACKAGE_VERSION"] = "1.0"
|
|
55
41
|
"""
|
|
@@ -58,3 +44,19 @@ if not version:
|
|
|
58
44
|
"""\
|
|
59
45
|
Monkey patching "pbr" version number.""",
|
|
60
46
|
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
50
|
+
# integrates with CPython, but also works on its own.
|
|
51
|
+
#
|
|
52
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
53
|
+
# you may not use this file except in compliance with the License.
|
|
54
|
+
# You may obtain a copy of the License at
|
|
55
|
+
#
|
|
56
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
57
|
+
#
|
|
58
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
59
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
60
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
61
|
+
# See the License for the specific language governing permissions and
|
|
62
|
+
# limitations under the License.
|