Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
nuitka/OptionParsing.py
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Command line options of Nuitka.
|
|
19
5
|
|
|
20
6
|
These provide only the optparse options to use, and the mechanic to actually
|
|
@@ -30,8 +16,10 @@ pretty good.
|
|
|
30
16
|
import os
|
|
31
17
|
import re
|
|
32
18
|
import sys
|
|
19
|
+
from string import Formatter
|
|
33
20
|
|
|
34
21
|
from nuitka.PythonFlavors import getPythonFlavorName
|
|
22
|
+
from nuitka.PythonVersions import isPythonWithGil
|
|
35
23
|
from nuitka.utils.CommandLineOptions import SUPPRESS_HELP, makeOptionsParser
|
|
36
24
|
from nuitka.utils.FileOperations import getFileContentByLine
|
|
37
25
|
from nuitka.utils.Utils import (
|
|
@@ -49,15 +37,18 @@ from nuitka.Version import getCommercialVersion, getNuitkaVersion
|
|
|
49
37
|
|
|
50
38
|
# Indicator if we were called as "nuitka-run" in which case we assume some
|
|
51
39
|
# other defaults and work a bit different with parameters.
|
|
52
|
-
|
|
40
|
+
_nuitka_binary_name = os.path.basename(sys.argv[0])
|
|
41
|
+
if _nuitka_binary_name == "__main__.py":
|
|
42
|
+
_nuitka_binary_name = "%s -m nuitka" % os.path.basename(sys.executable)
|
|
43
|
+
is_nuitka_run = _nuitka_binary_name.lower().endswith("-run")
|
|
53
44
|
|
|
54
45
|
if not is_nuitka_run:
|
|
55
|
-
|
|
46
|
+
usage_template = "usage: %s [--module] [--run] [options] main_module.py"
|
|
56
47
|
else:
|
|
57
|
-
|
|
48
|
+
usage_template = "usage: %s [options] main_module.py"
|
|
58
49
|
|
|
59
50
|
|
|
60
|
-
parser = makeOptionsParser(usage=
|
|
51
|
+
parser = makeOptionsParser(usage=usage_template % _nuitka_binary_name)
|
|
61
52
|
|
|
62
53
|
parser.add_option(
|
|
63
54
|
"--version",
|
|
@@ -75,7 +66,21 @@ parser.add_option(
|
|
|
75
66
|
dest="module_mode",
|
|
76
67
|
default=False,
|
|
77
68
|
help="""\
|
|
78
|
-
Create an extension module executable instead of a program. Defaults to off.""",
|
|
69
|
+
Create an importable binary extension module executable instead of a program. Defaults to off.""",
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
parser.add_option(
|
|
73
|
+
"--mode",
|
|
74
|
+
action="store",
|
|
75
|
+
dest="compilation_mode",
|
|
76
|
+
metavar="COMPILATION_MODE",
|
|
77
|
+
choices=("onefile", "standalone", "accelerated", "module"),
|
|
78
|
+
default=None,
|
|
79
|
+
help="""\
|
|
80
|
+
Mode in which to compile. Accelerated runs in your Python
|
|
81
|
+
installation and depends on it. Standalone creates a folder
|
|
82
|
+
with an executable contained to run it. Onefile creates a
|
|
83
|
+
single executable to deploy. Default is 'accelerated'.""",
|
|
79
84
|
)
|
|
80
85
|
|
|
81
86
|
parser.add_option(
|
|
@@ -104,6 +109,7 @@ parser.add_option(
|
|
|
104
109
|
action="store_true",
|
|
105
110
|
dest="is_onefile",
|
|
106
111
|
default=False,
|
|
112
|
+
github_action_default=True,
|
|
107
113
|
help="""\
|
|
108
114
|
On top of standalone mode, enable onefile mode. This means not a folder,
|
|
109
115
|
but a compressed executable is created and used. Defaults to off.""",
|
|
@@ -117,16 +123,6 @@ parser.add_option(
|
|
|
117
123
|
help=SUPPRESS_HELP,
|
|
118
124
|
)
|
|
119
125
|
|
|
120
|
-
parser.add_option(
|
|
121
|
-
"--python-debug",
|
|
122
|
-
action="store_true",
|
|
123
|
-
dest="python_debug",
|
|
124
|
-
default=None,
|
|
125
|
-
help="""\
|
|
126
|
-
Use debug version or not. Default uses what you are using to run Nuitka, most
|
|
127
|
-
likely a non-debug version.""",
|
|
128
|
-
)
|
|
129
|
-
|
|
130
126
|
parser.add_option(
|
|
131
127
|
"--python-flag",
|
|
132
128
|
action="append",
|
|
@@ -144,17 +140,30 @@ load outside code) and "-m" (package mode, compile as "package.__main__").
|
|
|
144
140
|
Default empty.""",
|
|
145
141
|
)
|
|
146
142
|
|
|
143
|
+
parser.add_option(
|
|
144
|
+
"--python-debug",
|
|
145
|
+
action="store_true",
|
|
146
|
+
dest="python_debug",
|
|
147
|
+
default=None,
|
|
148
|
+
help="""\
|
|
149
|
+
Use debug version or not. Default uses what you are using to run Nuitka, most
|
|
150
|
+
likely a non-debug version. Only for debugging and testing purposes.""",
|
|
151
|
+
)
|
|
152
|
+
|
|
147
153
|
parser.add_option(
|
|
148
154
|
"--python-for-scons",
|
|
149
155
|
action="store",
|
|
150
156
|
dest="python_scons",
|
|
151
157
|
metavar="PATH",
|
|
152
158
|
default=None,
|
|
159
|
+
github_action=False,
|
|
153
160
|
help="""\
|
|
154
|
-
|
|
155
|
-
for Scons. Otherwise Nuitka can
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
When compiling with Python 3.4 provide the path of a
|
|
162
|
+
Python binary to use for Scons. Otherwise Nuitka can
|
|
163
|
+
use what you run Nuitka with, or find Python installation,
|
|
164
|
+
e.g. from Windows registry. On Windows, a Python 3.5 or
|
|
165
|
+
higher is needed. On non-Windows, a Python 2.6 or 2.7
|
|
166
|
+
will do as well.""",
|
|
158
167
|
)
|
|
159
168
|
|
|
160
169
|
parser.add_option(
|
|
@@ -180,11 +189,13 @@ parser.add_option(
|
|
|
180
189
|
action="store_true",
|
|
181
190
|
dest="github_workflow_options",
|
|
182
191
|
default=False,
|
|
183
|
-
|
|
192
|
+
github_action=False,
|
|
193
|
+
help=SUPPRESS_HELP, # For use in GitHub Action only.
|
|
184
194
|
)
|
|
185
195
|
|
|
186
196
|
include_group = parser.add_option_group(
|
|
187
|
-
"Control the inclusion of modules and packages in result"
|
|
197
|
+
"Control the inclusion of modules and packages in result",
|
|
198
|
+
link="include-section",
|
|
188
199
|
)
|
|
189
200
|
|
|
190
201
|
include_group.add_option(
|
|
@@ -292,8 +303,8 @@ follow_group.add_option(
|
|
|
292
303
|
default=[],
|
|
293
304
|
help="""\
|
|
294
305
|
Do not follow to that module name even if used, or if a package name, to the
|
|
295
|
-
whole package in any case, overrides all other options.
|
|
296
|
-
times. Default empty.""",
|
|
306
|
+
whole package in any case, overrides all other options. This can also contain
|
|
307
|
+
patterns, e.g. "*.tests". Can be given multiple times. Default empty.""",
|
|
297
308
|
)
|
|
298
309
|
|
|
299
310
|
follow_group.add_option(
|
|
@@ -329,9 +340,9 @@ onefile_group.add_option(
|
|
|
329
340
|
default=None,
|
|
330
341
|
help="""\
|
|
331
342
|
Use this as a folder to unpack to in onefile mode. Defaults to
|
|
332
|
-
'
|
|
343
|
+
'{TEMP}/onefile_{PID}_{TIME}', i.e. user temporary directory
|
|
333
344
|
and being non-static it's removed. Use e.g. a string like
|
|
334
|
-
'
|
|
345
|
+
'{CACHE_DIR}/{COMPANY}/{PRODUCT}/{VERSION}' which is a good
|
|
335
346
|
static cache path, this will then not be removed.""",
|
|
336
347
|
)
|
|
337
348
|
|
|
@@ -358,6 +369,16 @@ When creating the onefile, disable compression of the payload. This is
|
|
|
358
369
|
mostly for debug purposes, or to save time. Default is off.""",
|
|
359
370
|
)
|
|
360
371
|
|
|
372
|
+
onefile_group.add_option(
|
|
373
|
+
"--onefile-as-archive",
|
|
374
|
+
action="store_true",
|
|
375
|
+
dest="onefile_as_archive",
|
|
376
|
+
default=False,
|
|
377
|
+
help="""\
|
|
378
|
+
When creating the onefile, use an archive format, that can be unpacked
|
|
379
|
+
with "nuitka-onefile-unpack" rather than a stream that only the onefile
|
|
380
|
+
program itself unpacks. Default is off.""",
|
|
381
|
+
)
|
|
361
382
|
|
|
362
383
|
del onefile_group
|
|
363
384
|
|
|
@@ -395,7 +416,7 @@ allowed forms. With '--include-data-files=/path/to/file/*.txt=folder_name/some.t
|
|
|
395
416
|
will copy a single file and complain if it's multiple. With
|
|
396
417
|
'--include-data-files=/path/to/files/*.txt=folder_name/' it will put
|
|
397
418
|
all matching files into that folder. For recursive copy there is a
|
|
398
|
-
form with 3 values that '--include-data-files=/path/to/scan=folder_name
|
|
419
|
+
form with 3 values that '--include-data-files=/path/to/scan=folder_name/=**/*.txt'
|
|
399
420
|
that will preserve directory structure. Default empty.""",
|
|
400
421
|
)
|
|
401
422
|
|
|
@@ -409,9 +430,8 @@ data_group.add_option(
|
|
|
409
430
|
Include data files from complete directory in the distribution. This is
|
|
410
431
|
recursive. Check '--include-data-files' with patterns if you want non-recursive
|
|
411
432
|
inclusion. An example would be '--include-data-dir=/path/some_dir=data/some_dir'
|
|
412
|
-
for plain copy, of the whole directory. All files are copied, if you
|
|
413
|
-
|
|
414
|
-
option to remove them. Default empty.""",
|
|
433
|
+
for plain copy, of the whole directory. All non-code files are copied, if you
|
|
434
|
+
want to use '--noinclude-data-files' option to remove them. Default empty.""",
|
|
415
435
|
)
|
|
416
436
|
|
|
417
437
|
data_group.add_option(
|
|
@@ -423,8 +443,22 @@ data_group.add_option(
|
|
|
423
443
|
help="""\
|
|
424
444
|
Do not include data files matching the filename pattern given. This is against
|
|
425
445
|
the target filename, not source paths. So to ignore a file pattern from package
|
|
426
|
-
data for
|
|
427
|
-
whole directory simply use
|
|
446
|
+
data for 'package_name' should be matched as 'package_name/*.txt'. Or for the
|
|
447
|
+
whole directory simply use 'package_name'. Default empty.""",
|
|
448
|
+
)
|
|
449
|
+
|
|
450
|
+
data_group.add_option(
|
|
451
|
+
"--include-onefile-external-data",
|
|
452
|
+
action="append",
|
|
453
|
+
dest="data_files_external",
|
|
454
|
+
metavar="PATTERN",
|
|
455
|
+
default=[],
|
|
456
|
+
help="""\
|
|
457
|
+
Include the specified data file patterns outside of the onefile binary,
|
|
458
|
+
rather than on the inside. Makes only sense in case of '--onefile'
|
|
459
|
+
compilation. First files have to be specified as included with other
|
|
460
|
+
`--include-*data*` options, and then this refers to target paths
|
|
461
|
+
inside the distribution. Default empty.""",
|
|
428
462
|
)
|
|
429
463
|
|
|
430
464
|
data_group.add_option(
|
|
@@ -437,6 +471,18 @@ data_group.add_option(
|
|
|
437
471
|
Output the data files found for a given package name. Default not done.""",
|
|
438
472
|
)
|
|
439
473
|
|
|
474
|
+
data_group.add_option(
|
|
475
|
+
"--include-raw-dir",
|
|
476
|
+
action="append",
|
|
477
|
+
dest="raw_dirs",
|
|
478
|
+
metavar="DIRECTORY",
|
|
479
|
+
default=[],
|
|
480
|
+
help="""\
|
|
481
|
+
Include raw directories completely in the distribution. This is
|
|
482
|
+
recursive. Check '--include-data-dir' to use the sane option.
|
|
483
|
+
Default empty.""",
|
|
484
|
+
)
|
|
485
|
+
|
|
440
486
|
|
|
441
487
|
del data_group
|
|
442
488
|
|
|
@@ -468,8 +514,8 @@ dll_group.add_option(
|
|
|
468
514
|
default=[],
|
|
469
515
|
help="""\
|
|
470
516
|
Do not include DLL files matching the filename pattern given. This is against
|
|
471
|
-
the target filename, not source paths. So ignore a DLL
|
|
472
|
-
the package
|
|
517
|
+
the target filename, not source paths. So ignore a DLL 'someDLL' contained in
|
|
518
|
+
the package 'package_name' it should be matched as 'package_name/someDLL.*'.
|
|
473
519
|
Default empty.""",
|
|
474
520
|
)
|
|
475
521
|
|
|
@@ -512,6 +558,7 @@ warnings_group.add_option(
|
|
|
512
558
|
action="store_true",
|
|
513
559
|
dest="assume_yes_for_downloads",
|
|
514
560
|
default=False,
|
|
561
|
+
github_action_default=True,
|
|
515
562
|
help="""\
|
|
516
563
|
Allow Nuitka to download external code if necessary, e.g. dependency
|
|
517
564
|
walker, ccache, and even gcc on Windows. To disable, redirect input
|
|
@@ -559,18 +606,6 @@ Execute inside a debugger, e.g. "gdb" or "lldb" to automatically get a stack tra
|
|
|
559
606
|
Defaults to off.""",
|
|
560
607
|
)
|
|
561
608
|
|
|
562
|
-
execute_group.add_option(
|
|
563
|
-
"--execute-with-pythonpath",
|
|
564
|
-
action="store_true",
|
|
565
|
-
dest="keep_pythonpath",
|
|
566
|
-
default=False,
|
|
567
|
-
help="""\
|
|
568
|
-
When immediately executing the created binary or module using '--run',
|
|
569
|
-
don't reset 'PYTHONPATH' environment. When all modules are successfully
|
|
570
|
-
included, you ought to not need PYTHONPATH anymore, and definitely not
|
|
571
|
-
for standalone mode.""",
|
|
572
|
-
)
|
|
573
|
-
|
|
574
609
|
del execute_group
|
|
575
610
|
|
|
576
611
|
|
|
@@ -584,9 +619,9 @@ compilation_group.add_option(
|
|
|
584
619
|
metavar="YAML_FILENAME",
|
|
585
620
|
help="""\
|
|
586
621
|
User provided Yaml file with package configuration. You can include DLLs,
|
|
587
|
-
remove bloat, add hidden dependencies. Check
|
|
588
|
-
description of the format to use. Can be given
|
|
589
|
-
to empty.""",
|
|
622
|
+
remove bloat, add hidden dependencies. Check the Nuitka Package Configuration
|
|
623
|
+
Manual for a complete description of the format to use. Can be given
|
|
624
|
+
multiple times. Defaults to empty.""",
|
|
590
625
|
)
|
|
591
626
|
|
|
592
627
|
compilation_group.add_option(
|
|
@@ -654,8 +689,7 @@ choice, also not for standalone mode and using it will be an error. This may
|
|
|
654
689
|
include path information that needs to exist though. Defaults to '%s' on this
|
|
655
690
|
platform.
|
|
656
691
|
"""
|
|
657
|
-
% "<program_name>"
|
|
658
|
-
+ (".exe" if isWin32OrPosixWindows() else ".bin"),
|
|
692
|
+
% ("<program_name>" + (".exe" if isWin32OrPosixWindows() else ".bin")),
|
|
659
693
|
)
|
|
660
694
|
|
|
661
695
|
output_group.add_option(
|
|
@@ -687,13 +721,65 @@ output_group.add_option(
|
|
|
687
721
|
dest="pyi_file",
|
|
688
722
|
default=True,
|
|
689
723
|
help="""\
|
|
690
|
-
Do not create a
|
|
724
|
+
Do not create a '.pyi' file for extension modules created by Nuitka. This is
|
|
691
725
|
used to detect implicit imports.
|
|
692
726
|
Defaults to off.""",
|
|
693
727
|
)
|
|
694
728
|
|
|
729
|
+
output_group.add_option(
|
|
730
|
+
"--no-pyi-stubs",
|
|
731
|
+
action="store_false",
|
|
732
|
+
dest="pyi_stubs",
|
|
733
|
+
default=True,
|
|
734
|
+
help="""\
|
|
735
|
+
Do not use stubgen when creating a '.pyi' file for extension modules
|
|
736
|
+
created by Nuitka. They expose your API, but stubgen may cause issues.
|
|
737
|
+
Defaults to off.""",
|
|
738
|
+
)
|
|
739
|
+
|
|
740
|
+
|
|
695
741
|
del output_group
|
|
696
742
|
|
|
743
|
+
deployment_group = parser.add_option_group("Deployment control")
|
|
744
|
+
|
|
745
|
+
deployment_group.add_option(
|
|
746
|
+
"--deployment",
|
|
747
|
+
action="store_true",
|
|
748
|
+
dest="is_deployment",
|
|
749
|
+
default=False,
|
|
750
|
+
help="""\
|
|
751
|
+
Disable code aimed at making finding compatibility issues easier. This
|
|
752
|
+
will e.g. prevent execution with "-c" argument, which is often used by
|
|
753
|
+
code that attempts run a module, and causes a program to start itself
|
|
754
|
+
over and over potentially. Disable once you deploy to end users, for
|
|
755
|
+
finding typical issues, this is very helpful during development. Default
|
|
756
|
+
off.""",
|
|
757
|
+
)
|
|
758
|
+
|
|
759
|
+
deployment_group.add_option(
|
|
760
|
+
"--no-deployment-flag",
|
|
761
|
+
action="append",
|
|
762
|
+
dest="no_deployment_flags",
|
|
763
|
+
metavar="FLAG",
|
|
764
|
+
default=[],
|
|
765
|
+
help="""\
|
|
766
|
+
Keep deployment mode, but disable selectively parts of it. Errors from
|
|
767
|
+
deployment mode will output these identifiers. Default empty.""",
|
|
768
|
+
)
|
|
769
|
+
|
|
770
|
+
environment_group = parser.add_option_group("Environment control")
|
|
771
|
+
|
|
772
|
+
environment_group.add_option(
|
|
773
|
+
"--force-runtime-environment-variable",
|
|
774
|
+
action="append",
|
|
775
|
+
dest="forced_runtime_env_variables",
|
|
776
|
+
metavar="VARIABLE_SPEC",
|
|
777
|
+
default=[],
|
|
778
|
+
help="""\
|
|
779
|
+
Force an environment variables to a given value. Default empty.""",
|
|
780
|
+
)
|
|
781
|
+
|
|
782
|
+
del environment_group
|
|
697
783
|
|
|
698
784
|
debug_group = parser.add_option_group("Debug features")
|
|
699
785
|
|
|
@@ -707,6 +793,25 @@ Executing all self checks possible to find errors in Nuitka, do not use for
|
|
|
707
793
|
production. Defaults to off.""",
|
|
708
794
|
)
|
|
709
795
|
|
|
796
|
+
debug_group.add_option(
|
|
797
|
+
"--no-debug-immortal-assumptions",
|
|
798
|
+
action="store_false",
|
|
799
|
+
dest="debug_immortal",
|
|
800
|
+
default=None,
|
|
801
|
+
help="""\
|
|
802
|
+
Disable check normally done with "--debug". With Python3.12+ do not check known
|
|
803
|
+
immortal object assumptions. Some C libraries corrupt them. Defaults to check
|
|
804
|
+
being made if "--debug" is on.""",
|
|
805
|
+
)
|
|
806
|
+
|
|
807
|
+
debug_group.add_option(
|
|
808
|
+
"--debug-immortal-assumptions",
|
|
809
|
+
action="store_true",
|
|
810
|
+
dest="debug_immortal",
|
|
811
|
+
default=None,
|
|
812
|
+
help=SUPPRESS_HELP,
|
|
813
|
+
)
|
|
814
|
+
|
|
710
815
|
debug_group.add_option(
|
|
711
816
|
"--unstripped",
|
|
712
817
|
"--unstriped",
|
|
@@ -723,20 +828,11 @@ debug_group.add_option(
|
|
|
723
828
|
action="store_true",
|
|
724
829
|
dest="profile",
|
|
725
830
|
default=False,
|
|
831
|
+
github_action=False,
|
|
726
832
|
help="""\
|
|
727
833
|
Enable vmprof based profiling of time spent. Not working currently. Defaults to off.""",
|
|
728
834
|
)
|
|
729
835
|
|
|
730
|
-
debug_group.add_option(
|
|
731
|
-
"--internal-graph",
|
|
732
|
-
action="store_true",
|
|
733
|
-
dest="internal_graph",
|
|
734
|
-
default=False,
|
|
735
|
-
help="""\
|
|
736
|
-
Create graph of optimization process internals, do not use for whole programs, but only
|
|
737
|
-
for small test cases. Defaults to off.""",
|
|
738
|
-
)
|
|
739
|
-
|
|
740
836
|
debug_group.add_option(
|
|
741
837
|
"--trace-execution",
|
|
742
838
|
action="store_true",
|
|
@@ -747,19 +843,6 @@ Traced execution output, output the line of code before executing it.
|
|
|
747
843
|
Defaults to off.""",
|
|
748
844
|
)
|
|
749
845
|
|
|
750
|
-
debug_group.add_option(
|
|
751
|
-
"--recompile-c-only",
|
|
752
|
-
action="store_true",
|
|
753
|
-
dest="recompile_c_only",
|
|
754
|
-
default=False,
|
|
755
|
-
help="""\
|
|
756
|
-
This is not incremental compilation, but for Nuitka development only. Takes
|
|
757
|
-
existing files and simply compile them as C again. Allows compiling edited
|
|
758
|
-
C files for quick debugging changes to the generated source, e.g. to see if
|
|
759
|
-
code is passed by, values output, etc, Defaults to off. Depends on compiling
|
|
760
|
-
Python source to determine which files it should look at.""",
|
|
761
|
-
)
|
|
762
|
-
|
|
763
846
|
debug_group.add_option(
|
|
764
847
|
"--xml",
|
|
765
848
|
action="store",
|
|
@@ -769,29 +852,6 @@ debug_group.add_option(
|
|
|
769
852
|
help="Write the internal program structure, result of optimization in XML form to given filename.",
|
|
770
853
|
)
|
|
771
854
|
|
|
772
|
-
debug_group.add_option(
|
|
773
|
-
"--deployment",
|
|
774
|
-
action="store_true",
|
|
775
|
-
dest="is_deployment",
|
|
776
|
-
default=False,
|
|
777
|
-
help="""\
|
|
778
|
-
Disable code aimed at making finding compatibility issues easier. This
|
|
779
|
-
will e.g. prevent execution with "-c" argument, which is often used by
|
|
780
|
-
code that attempts run a module, and causes a program to start itself
|
|
781
|
-
over and over potentially. Default off.""",
|
|
782
|
-
)
|
|
783
|
-
|
|
784
|
-
debug_group.add_option(
|
|
785
|
-
"--no-deployment-flag",
|
|
786
|
-
action="append",
|
|
787
|
-
dest="no_deployment_flags",
|
|
788
|
-
metavar="FLAG",
|
|
789
|
-
default=[],
|
|
790
|
-
help="""\
|
|
791
|
-
Keep deployment mode, but disable selectively parts of it. Errors from
|
|
792
|
-
deployment mode will output these identifiers. Default empty.""",
|
|
793
|
-
)
|
|
794
|
-
|
|
795
855
|
debug_group.add_option(
|
|
796
856
|
"--experimental",
|
|
797
857
|
action="append",
|
|
@@ -839,6 +899,7 @@ debug_group.add_option(
|
|
|
839
899
|
action="store_true",
|
|
840
900
|
dest="generate_c_only",
|
|
841
901
|
default=False,
|
|
902
|
+
github_action=False,
|
|
842
903
|
help="""\
|
|
843
904
|
Generate only C source code, and do not compile it to binary or module. This
|
|
844
905
|
is for debugging and code coverage analysis that doesn't waste CPU. Defaults to
|
|
@@ -848,6 +909,61 @@ off. Do not think you can use this directly.""",
|
|
|
848
909
|
|
|
849
910
|
del debug_group
|
|
850
911
|
|
|
912
|
+
|
|
913
|
+
development_group = parser.add_option_group("Nuitka Development features")
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
development_group.add_option(
|
|
917
|
+
"--devel-missing-code-helpers",
|
|
918
|
+
action="store_true",
|
|
919
|
+
dest="report_missing_code_helpers",
|
|
920
|
+
default=False,
|
|
921
|
+
help="""\
|
|
922
|
+
Report warnings for code helpers for types that were attempted, but don't
|
|
923
|
+
exist. This helps to identify opportunities for improving optimization of
|
|
924
|
+
generated code from type knowledge not used. Default False.""",
|
|
925
|
+
)
|
|
926
|
+
|
|
927
|
+
development_group.add_option(
|
|
928
|
+
"--devel-missing-trust",
|
|
929
|
+
action="store_true",
|
|
930
|
+
dest="report_missing_trust",
|
|
931
|
+
default=False,
|
|
932
|
+
help="""\
|
|
933
|
+
Report warnings for imports that could be trusted, but currently are not. This
|
|
934
|
+
is to identify opportunities for improving handling of hard modules, where this
|
|
935
|
+
sometimes could allow more static optimization. Default False.""",
|
|
936
|
+
)
|
|
937
|
+
|
|
938
|
+
development_group.add_option(
|
|
939
|
+
"--devel-recompile-c-only",
|
|
940
|
+
action="store_true",
|
|
941
|
+
dest="recompile_c_only",
|
|
942
|
+
default=False,
|
|
943
|
+
github_action=False,
|
|
944
|
+
help="""\
|
|
945
|
+
This is not incremental compilation, but for Nuitka development only. Takes
|
|
946
|
+
existing files and simply compiles them as C again after doing the Python
|
|
947
|
+
steps. Allows compiling edited C files for manual debugging changes to the
|
|
948
|
+
generated source. Allows us to add printing, check and print values, but it
|
|
949
|
+
is now what users would want. Depends on compiling Python source to
|
|
950
|
+
determine which files it should look at.""",
|
|
951
|
+
)
|
|
952
|
+
|
|
953
|
+
development_group.add_option(
|
|
954
|
+
"--devel-internal-graph",
|
|
955
|
+
action="store_true",
|
|
956
|
+
dest="internal_graph",
|
|
957
|
+
default=False,
|
|
958
|
+
github_action=False,
|
|
959
|
+
help="""\
|
|
960
|
+
Create graph of optimization process internals, do not use for whole programs, but only
|
|
961
|
+
for small test cases. Defaults to off.""",
|
|
962
|
+
)
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
del development_group
|
|
966
|
+
|
|
851
967
|
# This is for testing framework, "coverage.py" hates to loose the process. And
|
|
852
968
|
# we can use it to make sure it's not done unknowingly.
|
|
853
969
|
parser.add_option(
|
|
@@ -855,6 +971,7 @@ parser.add_option(
|
|
|
855
971
|
action="store_false",
|
|
856
972
|
dest="allow_reexecute",
|
|
857
973
|
default=True,
|
|
974
|
+
github_action=False,
|
|
858
975
|
help=SUPPRESS_HELP,
|
|
859
976
|
)
|
|
860
977
|
|
|
@@ -913,8 +1030,9 @@ c_compiler_group.add_option(
|
|
|
913
1030
|
metavar="N",
|
|
914
1031
|
default=None,
|
|
915
1032
|
help="""\
|
|
916
|
-
Specify the allowed number of parallel C compiler jobs.
|
|
917
|
-
system CPU
|
|
1033
|
+
Specify the allowed number of parallel C compiler jobs. Negative values
|
|
1034
|
+
are system CPU minus the given value. Defaults to the full system CPU
|
|
1035
|
+
count unless low memory mode is activated, then it defaults to 1.""",
|
|
918
1036
|
)
|
|
919
1037
|
|
|
920
1038
|
c_compiler_group.add_option(
|
|
@@ -942,12 +1060,26 @@ Use static link library of Python. Allowed values are "yes", "no",
|
|
|
942
1060
|
and "auto" (when it's known to work). Defaults to "auto".""",
|
|
943
1061
|
)
|
|
944
1062
|
|
|
1063
|
+
c_compiler_group.add_option(
|
|
1064
|
+
"--cf-protection",
|
|
1065
|
+
action="store",
|
|
1066
|
+
dest="cf_protection",
|
|
1067
|
+
metavar="PROTECTION_MODE",
|
|
1068
|
+
default="auto",
|
|
1069
|
+
choices=("auto", "full", "branch", "return", "none", "check"),
|
|
1070
|
+
help="""\
|
|
1071
|
+
This option is gcc specific. For the gcc compiler, select the
|
|
1072
|
+
"cf-protection" mode. Default "auto" is to use the gcc default
|
|
1073
|
+
value, but you can override it, e.g. to disable it with "none"
|
|
1074
|
+
value. Refer to gcc documentation for "-fcf-protection" for the
|
|
1075
|
+
details.""",
|
|
1076
|
+
)
|
|
945
1077
|
|
|
946
1078
|
del c_compiler_group
|
|
947
1079
|
|
|
948
1080
|
caching_group = parser.add_option_group("Cache Control")
|
|
949
1081
|
|
|
950
|
-
_cache_names = ("all", "ccache", "bytecode")
|
|
1082
|
+
_cache_names = ("all", "ccache", "bytecode", "compression")
|
|
951
1083
|
|
|
952
1084
|
if isWin32Windows():
|
|
953
1085
|
_cache_names += ("dll-dependencies",)
|
|
@@ -984,9 +1116,7 @@ caching_group.add_option(
|
|
|
984
1116
|
action="store_true",
|
|
985
1117
|
dest="disable_bytecode_cache",
|
|
986
1118
|
default=False,
|
|
987
|
-
help=
|
|
988
|
-
Do not reuse dependency analysis results for modules, esp. from standard library,
|
|
989
|
-
that are included as bytecode. Same as --disable-cache=bytecode.""",
|
|
1119
|
+
help=SUPPRESS_HELP,
|
|
990
1120
|
)
|
|
991
1121
|
|
|
992
1122
|
caching_group.add_option(
|
|
@@ -994,23 +1124,18 @@ caching_group.add_option(
|
|
|
994
1124
|
action="store_true",
|
|
995
1125
|
dest="disable_ccache",
|
|
996
1126
|
default=False,
|
|
997
|
-
help=
|
|
998
|
-
Do not attempt to use ccache (gcc, clang, etc.) or clcache (MSVC, clangcl).
|
|
999
|
-
Same as --disable-cache=ccache.""",
|
|
1127
|
+
help=SUPPRESS_HELP,
|
|
1000
1128
|
)
|
|
1001
1129
|
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
Disable the dependency walker cache. Will result in much longer times to create
|
|
1010
|
-
the distribution folder, but might be used in case the cache is suspect to cause
|
|
1011
|
-
errors. Same as --disable-cache=dll-dependencies.""",
|
|
1012
|
-
)
|
|
1130
|
+
caching_group.add_option(
|
|
1131
|
+
"--disable-dll-dependency-cache",
|
|
1132
|
+
action="store_true",
|
|
1133
|
+
dest="disable_dll_dependency_cache",
|
|
1134
|
+
default=False,
|
|
1135
|
+
help=SUPPRESS_HELP,
|
|
1136
|
+
)
|
|
1013
1137
|
|
|
1138
|
+
if isWin32Windows():
|
|
1014
1139
|
caching_group.add_option(
|
|
1015
1140
|
"--force-dll-dependency-cache-update",
|
|
1016
1141
|
action="store_true",
|
|
@@ -1029,7 +1154,7 @@ del caching_group
|
|
|
1029
1154
|
pgo_group = parser.add_option_group("PGO compilation choices")
|
|
1030
1155
|
|
|
1031
1156
|
pgo_group.add_option(
|
|
1032
|
-
"--pgo",
|
|
1157
|
+
"--pgo-c",
|
|
1033
1158
|
action="store_true",
|
|
1034
1159
|
dest="is_c_pgo",
|
|
1035
1160
|
default=False,
|
|
@@ -1045,7 +1170,7 @@ pgo_group.add_option(
|
|
|
1045
1170
|
action="store_true",
|
|
1046
1171
|
dest="is_python_pgo",
|
|
1047
1172
|
default=False,
|
|
1048
|
-
help=SUPPRESS_HELP,
|
|
1173
|
+
help=SUPPRESS_HELP, # Not yet ready
|
|
1049
1174
|
)
|
|
1050
1175
|
|
|
1051
1176
|
pgo_group.add_option(
|
|
@@ -1053,7 +1178,7 @@ pgo_group.add_option(
|
|
|
1053
1178
|
action="store",
|
|
1054
1179
|
dest="python_pgo_input",
|
|
1055
1180
|
default=None,
|
|
1056
|
-
help=SUPPRESS_HELP,
|
|
1181
|
+
help=SUPPRESS_HELP, # Not yet ready
|
|
1057
1182
|
)
|
|
1058
1183
|
|
|
1059
1184
|
pgo_group.add_option(
|
|
@@ -1062,7 +1187,7 @@ pgo_group.add_option(
|
|
|
1062
1187
|
dest="python_pgo_policy_unused_module",
|
|
1063
1188
|
choices=("include", "exclude", "bytecode"),
|
|
1064
1189
|
default="include",
|
|
1065
|
-
help=SUPPRESS_HELP,
|
|
1190
|
+
help=SUPPRESS_HELP, # Not yet ready
|
|
1066
1191
|
)
|
|
1067
1192
|
|
|
1068
1193
|
pgo_group.add_option(
|
|
@@ -1136,7 +1261,7 @@ tracing_group.add_option(
|
|
|
1136
1261
|
metavar="REPORT_DESC",
|
|
1137
1262
|
default=[],
|
|
1138
1263
|
help="""\
|
|
1139
|
-
Report via template. Provide template and output filename
|
|
1264
|
+
Report via template. Provide template and output filename 'template.rst.j2:output.rst'. For
|
|
1140
1265
|
built-in templates, check the User Manual for what these are. Can be given multiple times.
|
|
1141
1266
|
Default is empty.""",
|
|
1142
1267
|
)
|
|
@@ -1168,6 +1293,7 @@ tracing_group.add_option(
|
|
|
1168
1293
|
action="store_false",
|
|
1169
1294
|
dest="progress_bar",
|
|
1170
1295
|
default=True,
|
|
1296
|
+
github_action=False,
|
|
1171
1297
|
help="""Disable progress bars. Defaults to off.""",
|
|
1172
1298
|
)
|
|
1173
1299
|
|
|
@@ -1176,6 +1302,7 @@ tracing_group.add_option(
|
|
|
1176
1302
|
action="store_true",
|
|
1177
1303
|
dest="show_progress",
|
|
1178
1304
|
default=False,
|
|
1305
|
+
github_action=False,
|
|
1179
1306
|
help="""Obsolete: Provide progress information and statistics.
|
|
1180
1307
|
Disables normal progress bar. Defaults to off.""",
|
|
1181
1308
|
)
|
|
@@ -1194,6 +1321,7 @@ tracing_group.add_option(
|
|
|
1194
1321
|
action="store_true",
|
|
1195
1322
|
dest="show_inclusion",
|
|
1196
1323
|
default=False,
|
|
1324
|
+
github_action=False,
|
|
1197
1325
|
help="""\
|
|
1198
1326
|
Provide information for included modules and DLLs
|
|
1199
1327
|
Obsolete: You should use '--report' file instead. Defaults to off.""",
|
|
@@ -1205,6 +1333,7 @@ tracing_group.add_option(
|
|
|
1205
1333
|
dest="show_inclusion_output",
|
|
1206
1334
|
metavar="PATH",
|
|
1207
1335
|
default=None,
|
|
1336
|
+
github_action=False,
|
|
1208
1337
|
help="""\
|
|
1209
1338
|
Where to output '--show-modules', should be a filename. Default is standard output.""",
|
|
1210
1339
|
)
|
|
@@ -1214,6 +1343,7 @@ tracing_group.add_option(
|
|
|
1214
1343
|
action="store_true",
|
|
1215
1344
|
dest="verbose",
|
|
1216
1345
|
default=False,
|
|
1346
|
+
github_action=False,
|
|
1217
1347
|
help="""\
|
|
1218
1348
|
Output details of actions taken, esp. in optimizations. Can become a lot.
|
|
1219
1349
|
Defaults to off.""",
|
|
@@ -1225,6 +1355,7 @@ tracing_group.add_option(
|
|
|
1225
1355
|
dest="verbose_output",
|
|
1226
1356
|
metavar="PATH",
|
|
1227
1357
|
default=None,
|
|
1358
|
+
github_action=False,
|
|
1228
1359
|
help="""\
|
|
1229
1360
|
Where to output from '--verbose', should be a filename. Default is standard output.""",
|
|
1230
1361
|
)
|
|
@@ -1234,29 +1365,6 @@ del tracing_group
|
|
|
1234
1365
|
|
|
1235
1366
|
os_group = parser.add_option_group("General OS controls")
|
|
1236
1367
|
|
|
1237
|
-
os_group.add_option(
|
|
1238
|
-
"--disable-console",
|
|
1239
|
-
"--macos-disable-console",
|
|
1240
|
-
"--windows-disable-console",
|
|
1241
|
-
action="store_true",
|
|
1242
|
-
dest="disable_console",
|
|
1243
|
-
default=None,
|
|
1244
|
-
help="""\
|
|
1245
|
-
When compiling for Windows or macOS, disable the console window and create a GUI
|
|
1246
|
-
application. Defaults to off.""",
|
|
1247
|
-
)
|
|
1248
|
-
|
|
1249
|
-
os_group.add_option(
|
|
1250
|
-
"--enable-console",
|
|
1251
|
-
action="store_false",
|
|
1252
|
-
dest="disable_console",
|
|
1253
|
-
default=None,
|
|
1254
|
-
help="""\
|
|
1255
|
-
When compiling for Windows or macOS, enable the console window and create a console
|
|
1256
|
-
application. This disables hints from certain modules, e.g. "PySide" that suggest
|
|
1257
|
-
to disable it. Defaults to true.""",
|
|
1258
|
-
)
|
|
1259
|
-
|
|
1260
1368
|
os_group.add_option(
|
|
1261
1369
|
"--force-stdout-spec",
|
|
1262
1370
|
"--windows-force-stdout-spec",
|
|
@@ -1267,7 +1375,7 @@ os_group.add_option(
|
|
|
1267
1375
|
help="""\
|
|
1268
1376
|
Force standard output of the program to go to this location. Useful for programs with
|
|
1269
1377
|
disabled console and programs using the Windows Services Plugin of Nuitka commercial.
|
|
1270
|
-
Defaults to not active, use e.g. '
|
|
1378
|
+
Defaults to not active, use e.g. '{PROGRAM_BASE}.out.txt', i.e. file near your program,
|
|
1271
1379
|
check User Manual for full list of available values.""",
|
|
1272
1380
|
)
|
|
1273
1381
|
|
|
@@ -1281,7 +1389,7 @@ os_group.add_option(
|
|
|
1281
1389
|
help="""\
|
|
1282
1390
|
Force standard error of the program to go to this location. Useful for programs with
|
|
1283
1391
|
disabled console and programs using the Windows Services Plugin of Nuitka commercial.
|
|
1284
|
-
Defaults to not active, use e.g. '
|
|
1392
|
+
Defaults to not active, use e.g. '{PROGRAM_BASE}.err.txt', i.e. file near your program,
|
|
1285
1393
|
check User Manual for full list of available values.""",
|
|
1286
1394
|
)
|
|
1287
1395
|
|
|
@@ -1291,17 +1399,26 @@ del os_group
|
|
|
1291
1399
|
windows_group = parser.add_option_group("Windows specific controls")
|
|
1292
1400
|
|
|
1293
1401
|
windows_group.add_option(
|
|
1294
|
-
"--windows-
|
|
1402
|
+
"--windows-console-mode",
|
|
1295
1403
|
action="store",
|
|
1296
|
-
dest="
|
|
1404
|
+
dest="console_mode",
|
|
1405
|
+
choices=("force", "disable", "attach", "hide"),
|
|
1406
|
+
metavar="CONSOLE_MODE",
|
|
1297
1407
|
default=None,
|
|
1298
|
-
help=
|
|
1408
|
+
help="""\
|
|
1409
|
+
Select console mode to use. Default mode is 'force' and creates a
|
|
1410
|
+
console window unless the program was started from one. With 'disable'
|
|
1411
|
+
it doesn't create or use a console at all. With 'attach' an existing
|
|
1412
|
+
console will be used for outputs. With 'hide' a newly spawned console
|
|
1413
|
+
will be hidden and an already existing console will behave like
|
|
1414
|
+
'force'. Default is 'force'.
|
|
1415
|
+
""",
|
|
1299
1416
|
)
|
|
1300
1417
|
|
|
1301
1418
|
windows_group.add_option(
|
|
1302
1419
|
"--windows-icon-from-ico",
|
|
1303
1420
|
action="append",
|
|
1304
|
-
dest="
|
|
1421
|
+
dest="windows_icon_path",
|
|
1305
1422
|
metavar="ICON_PATH",
|
|
1306
1423
|
default=[],
|
|
1307
1424
|
help="""\
|
|
@@ -1349,6 +1466,32 @@ Request Windows User Control, to enforce running from a few folders only, remote
|
|
|
1349
1466
|
desktop access. (Windows only). Defaults to off.""",
|
|
1350
1467
|
)
|
|
1351
1468
|
|
|
1469
|
+
windows_group.add_option(
|
|
1470
|
+
"--disable-console",
|
|
1471
|
+
"--macos-disable-console",
|
|
1472
|
+
"--windows-disable-console",
|
|
1473
|
+
action="store_true",
|
|
1474
|
+
dest="disable_console",
|
|
1475
|
+
default=None,
|
|
1476
|
+
help=SUPPRESS_HELP,
|
|
1477
|
+
)
|
|
1478
|
+
|
|
1479
|
+
windows_group.add_option(
|
|
1480
|
+
"--enable-console",
|
|
1481
|
+
action="store_false",
|
|
1482
|
+
dest="disable_console",
|
|
1483
|
+
default=None,
|
|
1484
|
+
help=SUPPRESS_HELP,
|
|
1485
|
+
)
|
|
1486
|
+
|
|
1487
|
+
windows_group.add_option(
|
|
1488
|
+
"--windows-dependency-tool",
|
|
1489
|
+
action="store",
|
|
1490
|
+
dest="dependency_tool",
|
|
1491
|
+
default=None,
|
|
1492
|
+
help=SUPPRESS_HELP,
|
|
1493
|
+
)
|
|
1494
|
+
|
|
1352
1495
|
windows_group.add_option(
|
|
1353
1496
|
"--windows-service",
|
|
1354
1497
|
action="store_true",
|
|
@@ -1417,6 +1560,18 @@ del windows_group
|
|
|
1417
1560
|
|
|
1418
1561
|
macos_group = parser.add_option_group("macOS specific controls")
|
|
1419
1562
|
|
|
1563
|
+
macos_group.add_option(
|
|
1564
|
+
"--macos-create-app-bundle",
|
|
1565
|
+
action="store_true",
|
|
1566
|
+
dest="macos_create_bundle",
|
|
1567
|
+
default=False,
|
|
1568
|
+
help="""\
|
|
1569
|
+
When compiling for macOS, create a bundle rather than a plain binary
|
|
1570
|
+
application. This is the only way to unlock the disabling of console,
|
|
1571
|
+
get high DPI graphics, etc. and implies standalone mode. Defaults to
|
|
1572
|
+
off.""",
|
|
1573
|
+
)
|
|
1574
|
+
|
|
1420
1575
|
macos_group.add_option(
|
|
1421
1576
|
"--macos-target-arch",
|
|
1422
1577
|
action="store",
|
|
@@ -1430,21 +1585,10 @@ is what the running Python allows for. Default is "native" which is
|
|
|
1430
1585
|
the architecture the Python is run with.""",
|
|
1431
1586
|
)
|
|
1432
1587
|
|
|
1433
|
-
macos_group.add_option(
|
|
1434
|
-
"--macos-create-app-bundle",
|
|
1435
|
-
action="store_true",
|
|
1436
|
-
dest="macos_create_bundle",
|
|
1437
|
-
default=False,
|
|
1438
|
-
help="""\
|
|
1439
|
-
When compiling for macOS, create a bundle rather than a plain binary
|
|
1440
|
-
application. Currently experimental and incomplete. Currently this
|
|
1441
|
-
is the only way to unlock disabling of console.Defaults to off.""",
|
|
1442
|
-
)
|
|
1443
|
-
|
|
1444
1588
|
macos_group.add_option(
|
|
1445
1589
|
"--macos-app-icon",
|
|
1446
1590
|
action="append",
|
|
1447
|
-
dest="
|
|
1591
|
+
dest="macos_icon_path",
|
|
1448
1592
|
metavar="ICON_PATH",
|
|
1449
1593
|
default=[],
|
|
1450
1594
|
help="Add icon for the application bundle to use. Can be given only one time. Defaults to Python icon if available.",
|
|
@@ -1498,7 +1642,8 @@ macos_group.add_option(
|
|
|
1498
1642
|
help="""\
|
|
1499
1643
|
When signing on macOS, by default an ad-hoc identify will be used, but with this
|
|
1500
1644
|
option your get to specify another identity to use. The signing of code is now
|
|
1501
|
-
mandatory on macOS and cannot be disabled.
|
|
1645
|
+
mandatory on macOS and cannot be disabled. Use "auto" to detect your only identity
|
|
1646
|
+
installed. Default "ad-hoc" if not given.""",
|
|
1502
1647
|
)
|
|
1503
1648
|
|
|
1504
1649
|
macos_group.add_option(
|
|
@@ -1549,7 +1694,7 @@ linux_group.add_option(
|
|
|
1549
1694
|
"--linux-icon",
|
|
1550
1695
|
"--linux-onefile-icon",
|
|
1551
1696
|
action="append",
|
|
1552
|
-
dest="
|
|
1697
|
+
dest="linux_icon_path",
|
|
1553
1698
|
metavar="ICON_PATH",
|
|
1554
1699
|
default=[],
|
|
1555
1700
|
help="Add executable icon for onefile binary to use. Can be given only one time. Defaults to Python icon if available.",
|
|
@@ -1623,7 +1768,7 @@ version_group.add_option(
|
|
|
1623
1768
|
metavar="COPYRIGHT_TEXT",
|
|
1624
1769
|
default=None,
|
|
1625
1770
|
help="""\
|
|
1626
|
-
Copyright used in version information. Windows only at this time. Defaults to not present.""",
|
|
1771
|
+
Copyright used in version information. Windows/macOS only at this time. Defaults to not present.""",
|
|
1627
1772
|
)
|
|
1628
1773
|
|
|
1629
1774
|
version_group.add_option(
|
|
@@ -1633,7 +1778,7 @@ version_group.add_option(
|
|
|
1633
1778
|
metavar="TRADEMARK_TEXT",
|
|
1634
1779
|
default=None,
|
|
1635
1780
|
help="""\
|
|
1636
|
-
Trademark used in version information. Windows only at this time. Defaults to not present.""",
|
|
1781
|
+
Trademark used in version information. Windows/macOS only at this time. Defaults to not present.""",
|
|
1637
1782
|
)
|
|
1638
1783
|
|
|
1639
1784
|
|
|
@@ -1660,6 +1805,7 @@ plugin_group.add_option(
|
|
|
1660
1805
|
dest="plugins_disabled",
|
|
1661
1806
|
metavar="PLUGIN_NAME",
|
|
1662
1807
|
default=[],
|
|
1808
|
+
github_action=False,
|
|
1663
1809
|
help="""\
|
|
1664
1810
|
Disabled plugins. Must be plug-in names. Use '--plugin-list' to query the
|
|
1665
1811
|
full list and exit. Most standard plugins are not a good idea to disable.
|
|
@@ -1667,16 +1813,12 @@ Default empty.""",
|
|
|
1667
1813
|
)
|
|
1668
1814
|
|
|
1669
1815
|
plugin_group.add_option(
|
|
1670
|
-
"--plugin
|
|
1671
|
-
action="
|
|
1672
|
-
dest="
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
via "--disable-plugin=plugin-that-warned", or you can use this option to disable
|
|
1677
|
-
the mechanism entirely, which also speeds up compilation slightly of course as
|
|
1678
|
-
this detection code is run in vain once you are certain of which plugins to
|
|
1679
|
-
use. Defaults to off.""",
|
|
1816
|
+
"--user-plugin",
|
|
1817
|
+
action="append",
|
|
1818
|
+
dest="user_plugins",
|
|
1819
|
+
metavar="PATH",
|
|
1820
|
+
default=[],
|
|
1821
|
+
help="The file name of user plugin. Can be given multiple times. Default empty.",
|
|
1680
1822
|
)
|
|
1681
1823
|
|
|
1682
1824
|
plugin_group.add_option(
|
|
@@ -1685,31 +1827,69 @@ plugin_group.add_option(
|
|
|
1685
1827
|
dest="plugin_list",
|
|
1686
1828
|
default=False,
|
|
1687
1829
|
require_compiling=False,
|
|
1830
|
+
github_action=False,
|
|
1688
1831
|
help="""\
|
|
1689
1832
|
Show list of all available plugins and exit. Defaults to off.""",
|
|
1690
1833
|
)
|
|
1691
1834
|
|
|
1692
1835
|
plugin_group.add_option(
|
|
1693
|
-
"--
|
|
1836
|
+
"--plugin-no-detection",
|
|
1837
|
+
action="store_false",
|
|
1838
|
+
dest="detect_missing_plugins",
|
|
1839
|
+
default=True,
|
|
1840
|
+
help="""\
|
|
1841
|
+
Plugins can detect if they might be used, and the you can disable the warning
|
|
1842
|
+
via "--disable-plugin=plugin-that-warned", or you can use this option to disable
|
|
1843
|
+
the mechanism entirely, which also speeds up compilation slightly of course as
|
|
1844
|
+
this detection code is run in vain once you are certain of which plugins to
|
|
1845
|
+
use. Defaults to off.""",
|
|
1846
|
+
)
|
|
1847
|
+
|
|
1848
|
+
plugin_group.add_option(
|
|
1849
|
+
"--module-parameter",
|
|
1694
1850
|
action="append",
|
|
1695
|
-
dest="
|
|
1696
|
-
metavar="PATH",
|
|
1851
|
+
dest="module_parameters",
|
|
1697
1852
|
default=[],
|
|
1698
|
-
help="
|
|
1853
|
+
help="""\
|
|
1854
|
+
Provide a module parameter. You are asked by some packages
|
|
1855
|
+
to provide extra decisions. Format is currently
|
|
1856
|
+
--module-parameter=module.name-option-name=value
|
|
1857
|
+
Default empty.""",
|
|
1699
1858
|
)
|
|
1700
1859
|
|
|
1701
1860
|
plugin_group.add_option(
|
|
1702
1861
|
"--show-source-changes",
|
|
1703
|
-
action="
|
|
1862
|
+
action="append",
|
|
1704
1863
|
dest="show_source_changes",
|
|
1705
|
-
default=
|
|
1864
|
+
default=[],
|
|
1865
|
+
github_action=False,
|
|
1706
1866
|
help="""\
|
|
1707
1867
|
Show source changes to original Python file content before compilation. Mostly
|
|
1708
|
-
intended for developing plugins.
|
|
1868
|
+
intended for developing plugins and Nuitka package configuration. Use e.g.
|
|
1869
|
+
'--show-source-changes=numpy.**' to see all changes below a given namespace
|
|
1870
|
+
or use '*' to see everything which can get a lot.
|
|
1871
|
+
Default empty.""",
|
|
1709
1872
|
)
|
|
1710
1873
|
|
|
1711
1874
|
del plugin_group
|
|
1712
1875
|
|
|
1876
|
+
target_group = parser.add_option_group("Cross compilation")
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
target_group.add_option(
|
|
1880
|
+
"--target",
|
|
1881
|
+
action="store",
|
|
1882
|
+
dest="target_desc",
|
|
1883
|
+
metavar="TARGET_DESC",
|
|
1884
|
+
default=None,
|
|
1885
|
+
help="""\
|
|
1886
|
+
Cross compilation target. Highly experimental and in development, not
|
|
1887
|
+
supposed to work yet. We are working on '--target=wasi' and nothing
|
|
1888
|
+
else yet.""",
|
|
1889
|
+
)
|
|
1890
|
+
|
|
1891
|
+
del target_group
|
|
1892
|
+
|
|
1713
1893
|
|
|
1714
1894
|
def _considerPluginOptions(logger):
|
|
1715
1895
|
# Cyclic dependency on plugins during parsing of command line.
|
|
@@ -1748,6 +1928,33 @@ def _considerPluginOptions(logger):
|
|
|
1748
1928
|
addUserPluginCommandLineOptions(parser=parser, filename=plugin_name)
|
|
1749
1929
|
|
|
1750
1930
|
|
|
1931
|
+
run_time_variable_names = (
|
|
1932
|
+
"TEMP",
|
|
1933
|
+
"PID",
|
|
1934
|
+
"TIME",
|
|
1935
|
+
"PROGRAM",
|
|
1936
|
+
"PROGRAM_BASE",
|
|
1937
|
+
"CACHE_DIR",
|
|
1938
|
+
"COMPANY",
|
|
1939
|
+
"PRODUCT",
|
|
1940
|
+
"VERSION",
|
|
1941
|
+
"HOME",
|
|
1942
|
+
"NONE",
|
|
1943
|
+
"NULL",
|
|
1944
|
+
)
|
|
1945
|
+
|
|
1946
|
+
|
|
1947
|
+
class _RetainingFormatter(Formatter):
|
|
1948
|
+
def get_value(self, key, args, kwargs):
|
|
1949
|
+
if isinstance(key, str):
|
|
1950
|
+
try:
|
|
1951
|
+
return kwargs[key]
|
|
1952
|
+
except KeyError:
|
|
1953
|
+
return "{%s}" % key
|
|
1954
|
+
else:
|
|
1955
|
+
return Formatter.get_value(self, key, args, kwargs)
|
|
1956
|
+
|
|
1957
|
+
|
|
1751
1958
|
def _expandProjectArg(arg, filename_arg, for_eval):
|
|
1752
1959
|
def wrap(value):
|
|
1753
1960
|
if for_eval:
|
|
@@ -1762,6 +1969,7 @@ def _expandProjectArg(arg, filename_arg, for_eval):
|
|
|
1762
1969
|
"Version": getNuitkaVersion(),
|
|
1763
1970
|
"Commercial": wrap(getCommercialVersion()),
|
|
1764
1971
|
"MAIN_DIRECTORY": wrap(os.path.dirname(filename_arg) or "."),
|
|
1972
|
+
"GIL": isPythonWithGil(),
|
|
1765
1973
|
}
|
|
1766
1974
|
|
|
1767
1975
|
if isLinux():
|
|
@@ -1776,7 +1984,14 @@ def _expandProjectArg(arg, filename_arg, for_eval):
|
|
|
1776
1984
|
if isWin32OrPosixWindows():
|
|
1777
1985
|
values["WindowsRelease"] = getWindowsRelease()
|
|
1778
1986
|
|
|
1779
|
-
|
|
1987
|
+
values.update(
|
|
1988
|
+
(
|
|
1989
|
+
(run_time_variable_name, "{%s}" % run_time_variable_name)
|
|
1990
|
+
for run_time_variable_name in run_time_variable_names
|
|
1991
|
+
)
|
|
1992
|
+
)
|
|
1993
|
+
|
|
1994
|
+
arg = _RetainingFormatter().format(arg, **values)
|
|
1780
1995
|
|
|
1781
1996
|
return arg
|
|
1782
1997
|
|
|
@@ -1898,7 +2113,15 @@ def _considerGithubWorkflowOptions(phase):
|
|
|
1898
2113
|
|
|
1899
2114
|
import json
|
|
1900
2115
|
|
|
1901
|
-
early_names =
|
|
2116
|
+
early_names = (
|
|
2117
|
+
"main",
|
|
2118
|
+
"script-name",
|
|
2119
|
+
"enable-plugin",
|
|
2120
|
+
"enable-plugins",
|
|
2121
|
+
"disable-plugin",
|
|
2122
|
+
"disable-plugins",
|
|
2123
|
+
"user-plugin",
|
|
2124
|
+
)
|
|
1902
2125
|
|
|
1903
2126
|
def filterByName(key):
|
|
1904
2127
|
# Not for Nuitka at all.
|
|
@@ -1934,11 +2157,17 @@ def _considerGithubWorkflowOptions(phase):
|
|
|
1934
2157
|
|
|
1935
2158
|
option_name = "--%s" % key
|
|
1936
2159
|
|
|
1937
|
-
if parser.isBooleanOption(
|
|
2160
|
+
if parser.isBooleanOption(option_name):
|
|
1938
2161
|
if value == "false":
|
|
1939
2162
|
continue
|
|
1940
2163
|
|
|
1941
2164
|
options_added.append(option_name)
|
|
2165
|
+
elif parser.isListOption(option_name):
|
|
2166
|
+
for value in value.split("\n"):
|
|
2167
|
+
if not value.strip():
|
|
2168
|
+
continue
|
|
2169
|
+
|
|
2170
|
+
options_added.append("%s=%s" % (option_name, value))
|
|
1942
2171
|
else:
|
|
1943
2172
|
# Boolean disabled options from inactive plugins that default to off.
|
|
1944
2173
|
if value == "false":
|
|
@@ -1947,7 +2176,7 @@ def _considerGithubWorkflowOptions(phase):
|
|
|
1947
2176
|
options_added.append("%s=%s" % (option_name, value))
|
|
1948
2177
|
|
|
1949
2178
|
sys.argv = (
|
|
1950
|
-
sys.argv[: github_option_index + (
|
|
2179
|
+
sys.argv[: github_option_index + (1 if phase == "early" else 0)]
|
|
1951
2180
|
+ options_added
|
|
1952
2181
|
+ sys.argv[github_option_index + 1 :]
|
|
1953
2182
|
)
|
|
@@ -1955,8 +2184,7 @@ def _considerGithubWorkflowOptions(phase):
|
|
|
1955
2184
|
|
|
1956
2185
|
def parseOptions(logger):
|
|
1957
2186
|
# Pretty complex code, having a small options parser and many details as
|
|
1958
|
-
# well as integrating with plugins and run modes
|
|
1959
|
-
# mode executions, pylint: disable=too-many-branches,too-many-statements
|
|
2187
|
+
# well as integrating with plugins and run modes. pylint: disable=too-many-branches
|
|
1960
2188
|
|
|
1961
2189
|
# First, isolate the first non-option arguments.
|
|
1962
2190
|
extra_args = []
|
|
@@ -1983,12 +2211,15 @@ def parseOptions(logger):
|
|
|
1983
2211
|
filename_args = []
|
|
1984
2212
|
module_mode = False
|
|
1985
2213
|
|
|
2214
|
+
# Options may be coming from GitHub workflow configuration as well.
|
|
2215
|
+
_considerGithubWorkflowOptions(phase="early")
|
|
2216
|
+
|
|
1986
2217
|
for count, arg in enumerate(sys.argv):
|
|
1987
2218
|
if count == 0:
|
|
1988
2219
|
continue
|
|
1989
2220
|
|
|
1990
|
-
if arg.startswith("--main="):
|
|
1991
|
-
filename_args.append(arg)
|
|
2221
|
+
if arg.startswith(("--main=", "--script-name=")):
|
|
2222
|
+
filename_args.append(arg.split("=", 1)[1])
|
|
1992
2223
|
|
|
1993
2224
|
if arg == "--module":
|
|
1994
2225
|
module_mode = True
|
|
@@ -2004,9 +2235,6 @@ def parseOptions(logger):
|
|
|
2004
2235
|
+ sys.argv[1:]
|
|
2005
2236
|
)
|
|
2006
2237
|
|
|
2007
|
-
# Options may be coming from GitHub workflow configuration as well.
|
|
2008
|
-
_considerGithubWorkflowOptions(phase="early")
|
|
2009
|
-
|
|
2010
2238
|
# Next, lets activate plugins early, so they can inject more options to the parser.
|
|
2011
2239
|
_considerPluginOptions(logger)
|
|
2012
2240
|
|
|
@@ -2027,6 +2255,19 @@ def parseOptions(logger):
|
|
|
2027
2255
|
Error, need filename argument with python module or main program."""
|
|
2028
2256
|
)
|
|
2029
2257
|
|
|
2258
|
+
if not options.immediate_execution and len(positional_args) > 1:
|
|
2259
|
+
parser.print_help()
|
|
2260
|
+
|
|
2261
|
+
logger.sysexit(
|
|
2262
|
+
"""
|
|
2263
|
+
Error, specify only one positional argument unless "--run" is specified to
|
|
2264
|
+
pass them to the compiled program execution."""
|
|
2265
|
+
)
|
|
2266
|
+
|
|
2267
|
+
return is_nuitka_run, options, positional_args, extra_args
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
def runSpecialCommandsFromOptions(options):
|
|
2030
2271
|
if options.plugin_list:
|
|
2031
2272
|
from nuitka.plugins.Plugins import listPlugins
|
|
2032
2273
|
|
|
@@ -2066,13 +2307,18 @@ Error, need filename argument with python module or main program."""
|
|
|
2066
2307
|
)
|
|
2067
2308
|
sys.exit(0)
|
|
2068
2309
|
|
|
2069
|
-
if not options.immediate_execution and len(positional_args) > 1:
|
|
2070
|
-
parser.print_help()
|
|
2071
|
-
|
|
2072
|
-
logger.sysexit(
|
|
2073
|
-
"""
|
|
2074
|
-
Error, specify only one positional argument unless "--run" is specified to
|
|
2075
|
-
pass them to the compiled program execution."""
|
|
2076
|
-
)
|
|
2077
2310
|
|
|
2078
|
-
|
|
2311
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
2312
|
+
# integrates with CPython, but also works on its own.
|
|
2313
|
+
#
|
|
2314
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
2315
|
+
# you may not use this file except in compliance with the License.
|
|
2316
|
+
# You may obtain a copy of the License at
|
|
2317
|
+
#
|
|
2318
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
2319
|
+
#
|
|
2320
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
2321
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
2322
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2323
|
+
# See the License for the specific language governing permissions and
|
|
2324
|
+
# limitations under the License.
|