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/tools/watch/__main__.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
|
""" Nuitka watch main part.
|
|
19
5
|
|
|
20
6
|
This tool is used to monitor effect of PyPI changes on Nuitka and effect
|
|
@@ -22,21 +8,30 @@ of Nuitka changes on PyPI packages.
|
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
10
|
import os
|
|
11
|
+
import subprocess
|
|
25
12
|
import sys
|
|
26
13
|
from optparse import OptionParser
|
|
27
14
|
|
|
28
15
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
16
|
+
from nuitka.PythonFlavors import isAnacondaPython, isMSYS2MingwPython
|
|
29
17
|
from nuitka.PythonVersions import getTestExecutionPythonVersions
|
|
30
18
|
from nuitka.tools.testing.Common import extractNuitkaVersionFromFilePath
|
|
31
19
|
from nuitka.Tracing import OurLogger
|
|
32
20
|
from nuitka.TreeXML import fromFile
|
|
33
|
-
from nuitka.utils.Execution import
|
|
21
|
+
from nuitka.utils.Execution import (
|
|
22
|
+
check_call,
|
|
23
|
+
executeProcess,
|
|
24
|
+
executeToolChecked,
|
|
25
|
+
withEnvironmentVarOverridden,
|
|
26
|
+
)
|
|
34
27
|
from nuitka.utils.FileOperations import (
|
|
35
28
|
changeTextFileContents,
|
|
29
|
+
deleteFile,
|
|
36
30
|
getFileContents,
|
|
37
31
|
getFileList,
|
|
38
32
|
listDir,
|
|
39
33
|
makePath,
|
|
34
|
+
putTextFileContents,
|
|
40
35
|
relpath,
|
|
41
36
|
withDirectoryChange,
|
|
42
37
|
)
|
|
@@ -44,18 +39,19 @@ from nuitka.utils.Hashing import getFileContentsHash
|
|
|
44
39
|
from nuitka.utils.InstalledPythons import findPythons
|
|
45
40
|
from nuitka.utils.Utils import isLinux, isMacOS, isWin32Windows
|
|
46
41
|
from nuitka.utils.Yaml import parseYaml
|
|
42
|
+
from nuitka.Version import parseNuitkaVersionToTuple
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
nuitka_update_mode = "newer"
|
|
44
|
+
from .GitHub import createNuitkaWatchPR
|
|
50
45
|
|
|
51
46
|
watch_logger = OurLogger("", base_style="blue")
|
|
52
47
|
|
|
53
48
|
|
|
54
|
-
def _compareNuitkaVersions(version_a, version_b):
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
def _compareNuitkaVersions(version_a, version_b, consider_rc):
|
|
50
|
+
if not consider_rc:
|
|
51
|
+
version_a = version_a.split("rc")[0]
|
|
52
|
+
version_b = version_b.split("rc")[0]
|
|
57
53
|
|
|
58
|
-
return
|
|
54
|
+
return parseNuitkaVersionToTuple(version_a) < parseNuitkaVersionToTuple(version_b)
|
|
59
55
|
|
|
60
56
|
|
|
61
57
|
def scanCases(path):
|
|
@@ -70,10 +66,13 @@ def scanCases(path):
|
|
|
70
66
|
yield case
|
|
71
67
|
|
|
72
68
|
|
|
73
|
-
def selectPythons(python_version_req, anaconda):
|
|
69
|
+
def selectPythons(python_version_req, anaconda, msys2_mingw64):
|
|
74
70
|
for _python_version_str, installed_python_for_version in installed_pythons.items():
|
|
75
71
|
for installed_python in installed_python_for_version:
|
|
76
|
-
if
|
|
72
|
+
if anaconda and not installed_python.isAnacondaPython():
|
|
73
|
+
continue
|
|
74
|
+
|
|
75
|
+
if msys2_mingw64 and not installed_python.isMSYS2MingwPython():
|
|
77
76
|
continue
|
|
78
77
|
|
|
79
78
|
if python_version_req is not None:
|
|
@@ -90,14 +89,27 @@ def selectPythons(python_version_req, anaconda):
|
|
|
90
89
|
|
|
91
90
|
|
|
92
91
|
def selectOS(os_values):
|
|
92
|
+
# return driven, pylint: disable=too-many-return-statements
|
|
93
|
+
|
|
93
94
|
for value in os_values:
|
|
94
|
-
if value not in ("Linux", "Win32", "macOS"):
|
|
95
|
+
if value not in ("Linux", "Win32", "macOS", "Win32-MSYS2", "Win32-Anaconda"):
|
|
95
96
|
watch_logger.sysexit("Illegal value for OS: %s" % value)
|
|
96
97
|
|
|
97
98
|
if isLinux() and "Linux" in os_values:
|
|
98
99
|
return "Linux"
|
|
99
|
-
if isWin32Windows()
|
|
100
|
-
|
|
100
|
+
if isWin32Windows():
|
|
101
|
+
if isMSYS2MingwPython():
|
|
102
|
+
if "Win32-MSYS2" in os_values:
|
|
103
|
+
return "Win32-MSYS2"
|
|
104
|
+
|
|
105
|
+
return None
|
|
106
|
+
if isAnacondaPython():
|
|
107
|
+
if "Win32-Anaconda" in os_values:
|
|
108
|
+
return "Win32-Anaconda"
|
|
109
|
+
|
|
110
|
+
return None
|
|
111
|
+
if "Win32" in os_values:
|
|
112
|
+
return "Win32"
|
|
101
113
|
if isMacOS() and "macOS" in os_values:
|
|
102
114
|
return "macOS"
|
|
103
115
|
|
|
@@ -145,14 +157,14 @@ def _updatePipenvFile(installed_python, case_data, dry_run, result_path):
|
|
|
145
157
|
requirement = requirement.replace(" ", "")
|
|
146
158
|
|
|
147
159
|
if all(char not in requirement for char in "=><"):
|
|
148
|
-
pipenv_package_requirements.append('%s = "*"' % requirement)
|
|
160
|
+
pipenv_package_requirements.append('"%s" = "*"' % requirement)
|
|
149
161
|
else:
|
|
150
162
|
operator_index = min(
|
|
151
163
|
requirement.find(char) for char in "=><" if char in requirement
|
|
152
164
|
)
|
|
153
165
|
|
|
154
166
|
pipenv_package_requirements.append(
|
|
155
|
-
'%s = "%s"'
|
|
167
|
+
'"%s" = "%s"'
|
|
156
168
|
% (requirement[:operator_index], requirement[operator_index:])
|
|
157
169
|
)
|
|
158
170
|
|
|
@@ -181,6 +193,57 @@ python_version = "%(python_version)s"
|
|
|
181
193
|
return changed_pipenv_file, pipenv_filename
|
|
182
194
|
|
|
183
195
|
|
|
196
|
+
def _updatePacmanFile(installed_python, case_data, dry_run, result_path):
|
|
197
|
+
pipenv_filename = os.path.join(result_path, "Pacman.txt")
|
|
198
|
+
pipenv_package_requirements = []
|
|
199
|
+
|
|
200
|
+
for requirement in getPlatformRequirements(
|
|
201
|
+
installed_python=installed_python, case_data=case_data
|
|
202
|
+
):
|
|
203
|
+
# Ignore spaces in requirements.
|
|
204
|
+
requirement = requirement.replace(" ", "")
|
|
205
|
+
|
|
206
|
+
# TODO: Other indexes, e.g. nvidia might be needed too
|
|
207
|
+
changed_pipenv_file = changeTextFileContents(
|
|
208
|
+
pipenv_filename,
|
|
209
|
+
"""\
|
|
210
|
+
[python]
|
|
211
|
+
%(python_version)s
|
|
212
|
+
[packages]
|
|
213
|
+
%(pipenv_package_requirements)s
|
|
214
|
+
"""
|
|
215
|
+
% {
|
|
216
|
+
"pipenv_package_requirements": "\n".join(pipenv_package_requirements),
|
|
217
|
+
"python_version": installed_python.getPythonVersion(),
|
|
218
|
+
},
|
|
219
|
+
compare_only=dry_run,
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
return changed_pipenv_file, pipenv_filename
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def _execPipenvCommand(installed_python, command, retry=False):
|
|
226
|
+
try:
|
|
227
|
+
check_call(
|
|
228
|
+
[
|
|
229
|
+
installed_python.getPythonExe(),
|
|
230
|
+
"-m",
|
|
231
|
+
"pipenv",
|
|
232
|
+
command,
|
|
233
|
+
"--python",
|
|
234
|
+
installed_python.getPythonExe(),
|
|
235
|
+
],
|
|
236
|
+
logger=watch_logger,
|
|
237
|
+
)
|
|
238
|
+
except subprocess.CalledProcessError:
|
|
239
|
+
if command in ("install", "update") and not retry:
|
|
240
|
+
_execPipenvCommand(installed_python, "--rm")
|
|
241
|
+
_execPipenvCommand(installed_python, command)
|
|
242
|
+
|
|
243
|
+
else:
|
|
244
|
+
raise
|
|
245
|
+
|
|
246
|
+
|
|
184
247
|
def _updatePipenvLockFile(
|
|
185
248
|
installed_python, dry_run, pipenv_filename_full, no_pipenv_update
|
|
186
249
|
):
|
|
@@ -191,22 +254,15 @@ def _updatePipenvLockFile(
|
|
|
191
254
|
% pipenv_filename_full
|
|
192
255
|
)
|
|
193
256
|
|
|
257
|
+
_execPipenvCommand(installed_python, "install")
|
|
258
|
+
|
|
194
259
|
elif not dry_run:
|
|
195
260
|
watch_logger.info(
|
|
196
261
|
"Working with pipenv file '%s' to update virtualenv, may take a while."
|
|
197
262
|
% pipenv_filename_full
|
|
198
263
|
)
|
|
199
264
|
|
|
200
|
-
|
|
201
|
-
[
|
|
202
|
-
installed_python.getPythonExe(),
|
|
203
|
-
"-m",
|
|
204
|
-
"pipenv",
|
|
205
|
-
"update",
|
|
206
|
-
"--python",
|
|
207
|
-
installed_python.getPythonExe(),
|
|
208
|
-
]
|
|
209
|
-
)
|
|
265
|
+
_execPipenvCommand(installed_python, "update")
|
|
210
266
|
else:
|
|
211
267
|
watch_logger.info(
|
|
212
268
|
"Working with pipenv file '%s' to install virtualenv, may take a while."
|
|
@@ -224,22 +280,63 @@ def _updatePipenvLockFile(
|
|
|
224
280
|
]
|
|
225
281
|
)
|
|
226
282
|
|
|
283
|
+
return "Pipfile.lock"
|
|
227
284
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
285
|
+
|
|
286
|
+
def _updatePacmanLockFile():
|
|
287
|
+
pacman_lock_filename = "Pacman.lock"
|
|
288
|
+
|
|
289
|
+
pacman_output = executeToolChecked(
|
|
290
|
+
logger=watch_logger,
|
|
291
|
+
command=["pacman", "-Q"],
|
|
292
|
+
absence_message="needs pacman to query package status on MSYS2",
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
if str is not bytes:
|
|
296
|
+
pacman_output = pacman_output.decode("utf8")
|
|
297
|
+
|
|
298
|
+
changeTextFileContents(filename=pacman_lock_filename, contents=pacman_output)
|
|
299
|
+
|
|
300
|
+
return pacman_lock_filename
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
def _compileCase(case_data, case_dir, installed_python, lock_filename, jobs):
|
|
304
|
+
preferred_package_type = installed_python.getPreferredPackageType()
|
|
305
|
+
|
|
306
|
+
extra_options = []
|
|
307
|
+
|
|
308
|
+
if preferred_package_type == "pip":
|
|
309
|
+
run_command = [
|
|
231
310
|
installed_python.getPythonExe(),
|
|
232
311
|
"-m",
|
|
233
312
|
"pipenv",
|
|
234
313
|
"run",
|
|
314
|
+
"--python",
|
|
315
|
+
installed_python.getPythonExe(),
|
|
235
316
|
"python",
|
|
317
|
+
]
|
|
318
|
+
elif preferred_package_type == "pacman":
|
|
319
|
+
run_command = ["python"]
|
|
320
|
+
|
|
321
|
+
extra_options.append("--disable-ccache")
|
|
322
|
+
else:
|
|
323
|
+
assert False
|
|
324
|
+
|
|
325
|
+
if jobs is not None:
|
|
326
|
+
extra_options.append("--jobs=%s" % jobs)
|
|
327
|
+
|
|
328
|
+
check_call(
|
|
329
|
+
run_command
|
|
330
|
+
+ [
|
|
236
331
|
nuitka_binary,
|
|
237
332
|
os.path.join(case_dir, case_data["filename"]),
|
|
333
|
+
"--assume-yes-for-downloads",
|
|
238
334
|
"--report=compilation-report.xml",
|
|
239
335
|
"--report-diffable",
|
|
240
336
|
"--report-user-provided=pipenv_hash=%s"
|
|
241
|
-
% getFileContentsHash(
|
|
337
|
+
% getFileContentsHash(lock_filename),
|
|
242
338
|
]
|
|
339
|
+
+ extra_options
|
|
243
340
|
)
|
|
244
341
|
|
|
245
342
|
if case_data["interactive"] == "no":
|
|
@@ -252,54 +349,89 @@ def _compileCase(case_data, case_dir, installed_python):
|
|
|
252
349
|
if len(binaries) != 1:
|
|
253
350
|
sys.exit("Error, failed to identify created binary.")
|
|
254
351
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
if exit_nuitka != 0:
|
|
258
|
-
sys.exit(
|
|
259
|
-
"Error, failed to execute %s with code %d." % (binaries[0], exit_nuitka)
|
|
260
|
-
)
|
|
352
|
+
with withEnvironmentVarOverridden("NUITKA_LAUNCH_TOKEN", "1"):
|
|
353
|
+
stdout, stderr, exit_nuitka = executeProcess([binaries[0]], timeout=5 * 60)
|
|
261
354
|
|
|
262
355
|
with open("compiled-stdout.txt", "wb") as output:
|
|
263
356
|
output.write(stdout)
|
|
264
357
|
with open("compiled-stderr.txt", "wb") as output:
|
|
265
358
|
output.write(stderr)
|
|
266
359
|
|
|
360
|
+
if exit_nuitka == 0:
|
|
361
|
+
deleteFile("compiled-exit.txt", must_exist=False)
|
|
362
|
+
else:
|
|
363
|
+
putTextFileContents(
|
|
364
|
+
filename="compiled-exit.txt",
|
|
365
|
+
contents=str(exit_nuitka),
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
if exit_nuitka != 0:
|
|
369
|
+
sys.exit(
|
|
370
|
+
"Error, failed to execute %s with code %d." % (binaries[0], exit_nuitka)
|
|
371
|
+
)
|
|
372
|
+
|
|
267
373
|
|
|
268
374
|
def _updateCase(
|
|
269
|
-
case_dir,
|
|
375
|
+
case_dir,
|
|
376
|
+
case_data,
|
|
377
|
+
dry_run,
|
|
378
|
+
no_pipenv_update,
|
|
379
|
+
nuitka_update_mode,
|
|
380
|
+
installed_python,
|
|
381
|
+
result_path,
|
|
382
|
+
jobs,
|
|
270
383
|
):
|
|
384
|
+
# Many details and cases due to package method being handled here.
|
|
385
|
+
# pylint: disable=too-many-branches,too-many-locals
|
|
386
|
+
|
|
271
387
|
# Not good for dry run, but tough life.
|
|
272
388
|
makePath(result_path)
|
|
273
389
|
|
|
274
390
|
# Update the pipenv file in any case, ought to be stable but we follow
|
|
275
391
|
# global changes this way.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
392
|
+
preferred_package_type = installed_python.getPreferredPackageType()
|
|
393
|
+
if preferred_package_type == "pip":
|
|
394
|
+
changed_pipenv_file, pipenv_filename = _updatePipenvFile(
|
|
395
|
+
installed_python=installed_python,
|
|
396
|
+
case_data=case_data,
|
|
397
|
+
dry_run=dry_run,
|
|
398
|
+
result_path=result_path,
|
|
399
|
+
)
|
|
282
400
|
|
|
283
|
-
|
|
401
|
+
pipenv_filename_full = os.path.join(case_dir, pipenv_filename)
|
|
284
402
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
403
|
+
if dry_run and changed_pipenv_file:
|
|
404
|
+
watch_logger.info("Would create pipenv file '%s'." % pipenv_filename_full)
|
|
405
|
+
return
|
|
288
406
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
407
|
+
with withDirectoryChange(result_path):
|
|
408
|
+
# Update or create lockfile of pipenv.
|
|
409
|
+
lock_filename = _updatePipenvLockFile(
|
|
410
|
+
installed_python=installed_python,
|
|
411
|
+
dry_run=dry_run,
|
|
412
|
+
pipenv_filename_full=pipenv_filename_full,
|
|
413
|
+
no_pipenv_update=no_pipenv_update,
|
|
414
|
+
)
|
|
415
|
+
elif preferred_package_type == "pacman":
|
|
416
|
+
changed_pipenv_file, pipenv_filename = _updatePacmanFile(
|
|
292
417
|
installed_python=installed_python,
|
|
418
|
+
case_data=case_data,
|
|
293
419
|
dry_run=dry_run,
|
|
294
|
-
|
|
295
|
-
no_pipenv_update=no_pipenv_update,
|
|
420
|
+
result_path=result_path,
|
|
296
421
|
)
|
|
297
422
|
|
|
298
|
-
|
|
423
|
+
with withDirectoryChange(result_path):
|
|
424
|
+
# Update or create lockfile of pipenv.
|
|
425
|
+
lock_filename = _updatePacmanLockFile()
|
|
426
|
+
else:
|
|
427
|
+
assert False, preferred_package_type
|
|
428
|
+
|
|
429
|
+
# Check if compilation is required.
|
|
430
|
+
with withDirectoryChange(result_path):
|
|
299
431
|
if os.path.exists("compilation-report.xml"):
|
|
300
432
|
old_report_root = fromFile("compilation-report.xml")
|
|
301
433
|
|
|
302
|
-
existing_hash = getFileContentsHash(
|
|
434
|
+
existing_hash = getFileContentsHash(lock_filename)
|
|
303
435
|
old_report_root_hash = (
|
|
304
436
|
old_report_root.find("user-data").find("pipenv_hash").text
|
|
305
437
|
)
|
|
@@ -309,7 +441,9 @@ def _updateCase(
|
|
|
309
441
|
if nuitka_update_mode == "force":
|
|
310
442
|
need_compile = True
|
|
311
443
|
elif nuitka_update_mode == "newer":
|
|
312
|
-
if _compareNuitkaVersions(
|
|
444
|
+
if _compareNuitkaVersions(
|
|
445
|
+
old_nuitka_version, nuitka_version, consider_rc=True
|
|
446
|
+
):
|
|
313
447
|
need_compile = True
|
|
314
448
|
else:
|
|
315
449
|
if existing_hash != old_report_root_hash:
|
|
@@ -320,12 +454,15 @@ def _updateCase(
|
|
|
320
454
|
|
|
321
455
|
need_compile = True
|
|
322
456
|
elif old_nuitka_version == nuitka_version:
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
457
|
+
if old_report_root.attrib["completion"] != "yes":
|
|
458
|
+
need_compile = True
|
|
459
|
+
else:
|
|
460
|
+
watch_logger.info(
|
|
461
|
+
"Skipping compilation with identical Nuitka for '%s'."
|
|
462
|
+
% pipenv_filename_full
|
|
463
|
+
)
|
|
327
464
|
|
|
328
|
-
|
|
465
|
+
need_compile = False
|
|
329
466
|
else:
|
|
330
467
|
watch_logger.info(
|
|
331
468
|
"Skipping compilation of old Nuitka %s result with Nuitka %s for '%s'."
|
|
@@ -342,33 +479,63 @@ def _updateCase(
|
|
|
342
479
|
else:
|
|
343
480
|
need_compile = True
|
|
344
481
|
|
|
482
|
+
if not need_compile:
|
|
483
|
+
if os.path.exists("compiled-exit.txt"):
|
|
484
|
+
watch_logger.info(
|
|
485
|
+
"Enforcing compilation of compiled program that failed to run."
|
|
486
|
+
)
|
|
487
|
+
need_compile = True
|
|
488
|
+
|
|
345
489
|
if need_compile:
|
|
346
490
|
_compileCase(
|
|
347
491
|
case_data=case_data,
|
|
348
492
|
case_dir=case_dir,
|
|
349
493
|
installed_python=installed_python,
|
|
494
|
+
lock_filename=lock_filename,
|
|
495
|
+
jobs=jobs,
|
|
350
496
|
)
|
|
351
497
|
|
|
352
498
|
|
|
353
|
-
def updateCase(
|
|
499
|
+
def updateCase(
|
|
500
|
+
case_dir, case_data, dry_run, no_pipenv_update, nuitka_update_mode, jobs
|
|
501
|
+
):
|
|
354
502
|
case_name = case_data["case"]
|
|
355
503
|
|
|
504
|
+
watch_logger.info("Consider '%s' ... " % case_name)
|
|
505
|
+
|
|
356
506
|
# Wrong OS maybe.
|
|
357
507
|
os_name = selectOS(case_data["os"])
|
|
358
508
|
if os_name is None:
|
|
509
|
+
watch_logger.info(" ... not on this OS")
|
|
359
510
|
return
|
|
360
511
|
|
|
361
512
|
nuitka_min_version = case_data.get("nuitka")
|
|
362
513
|
|
|
363
514
|
# Too old Nuitka version maybe.
|
|
364
515
|
if nuitka_min_version is not None and _compareNuitkaVersions(
|
|
365
|
-
nuitka_version, nuitka_min_version
|
|
516
|
+
nuitka_version, nuitka_min_version, consider_rc=False
|
|
366
517
|
):
|
|
518
|
+
watch_logger.info(" ... not for this Nuitka version")
|
|
519
|
+
return
|
|
520
|
+
|
|
521
|
+
selected_pythons = tuple(
|
|
522
|
+
selectPythons(
|
|
523
|
+
# TODO: Enable Anaconda support through options/detection.
|
|
524
|
+
anaconda="Anaconda" in os_name,
|
|
525
|
+
msys2_mingw64="MSYS2" in os_name,
|
|
526
|
+
python_version_req=case_data.get("python_version_req"),
|
|
527
|
+
)
|
|
528
|
+
)
|
|
529
|
+
|
|
530
|
+
if not selected_pythons:
|
|
531
|
+
watch_logger.info(" ... no suitable Python installations")
|
|
367
532
|
return
|
|
368
533
|
|
|
369
534
|
# For all relevant Pythons applicable to this case.
|
|
370
535
|
for installed_python in selectPythons(
|
|
371
|
-
|
|
536
|
+
# TODO: Enable Anaconda support through options/detection.
|
|
537
|
+
anaconda="Anaconda" in os_name,
|
|
538
|
+
msys2_mingw64="MSYS2" in os_name,
|
|
372
539
|
python_version_req=case_data.get("python_version_req"),
|
|
373
540
|
):
|
|
374
541
|
watch_logger.info("Consider with Python %s." % installed_python)
|
|
@@ -384,18 +551,22 @@ def updateCase(case_dir, case_data, dry_run, no_pipenv_update):
|
|
|
384
551
|
case_data=case_data,
|
|
385
552
|
dry_run=dry_run,
|
|
386
553
|
no_pipenv_update=no_pipenv_update,
|
|
554
|
+
nuitka_update_mode=nuitka_update_mode,
|
|
387
555
|
installed_python=installed_python,
|
|
388
556
|
result_path=result_path,
|
|
557
|
+
jobs=jobs,
|
|
389
558
|
)
|
|
390
559
|
|
|
391
560
|
|
|
392
|
-
def updateCases(case_dir, dry_run, no_pipenv_update):
|
|
561
|
+
def updateCases(case_dir, dry_run, no_pipenv_update, nuitka_update_mode, jobs):
|
|
393
562
|
for case_data in parseYaml(getFileContents("case.yml", mode="rb")):
|
|
394
563
|
updateCase(
|
|
395
564
|
case_dir=case_dir,
|
|
396
565
|
case_data=case_data,
|
|
397
566
|
dry_run=dry_run,
|
|
398
567
|
no_pipenv_update=no_pipenv_update,
|
|
568
|
+
nuitka_update_mode=nuitka_update_mode,
|
|
569
|
+
jobs=jobs,
|
|
399
570
|
)
|
|
400
571
|
|
|
401
572
|
|
|
@@ -413,15 +584,6 @@ def main():
|
|
|
413
584
|
|
|
414
585
|
parser = OptionParser()
|
|
415
586
|
|
|
416
|
-
parser.add_option(
|
|
417
|
-
"--dry-run",
|
|
418
|
-
action="store_false",
|
|
419
|
-
dest="dry_run",
|
|
420
|
-
default=False,
|
|
421
|
-
help="""\
|
|
422
|
-
Do not change anything, just report what would be done. Default %default.""",
|
|
423
|
-
)
|
|
424
|
-
|
|
425
587
|
parser.add_option(
|
|
426
588
|
"--python-version",
|
|
427
589
|
action="append",
|
|
@@ -449,19 +611,63 @@ Nuitka binary to compile with. Defaults to one near the nuitka-watch usage.""",
|
|
|
449
611
|
Do not update the pipenv environment. Best to see only effect of Nuitka update. Default %default.""",
|
|
450
612
|
)
|
|
451
613
|
|
|
614
|
+
parser.add_option(
|
|
615
|
+
"--dry-run",
|
|
616
|
+
action="store_false",
|
|
617
|
+
dest="dry_run",
|
|
618
|
+
default=False,
|
|
619
|
+
help="""\
|
|
620
|
+
Do not change anything, just report what would be done. Not yet perfectly true. Default %default.""",
|
|
621
|
+
)
|
|
622
|
+
|
|
623
|
+
parser.add_option(
|
|
624
|
+
"--nuitka-update-mode",
|
|
625
|
+
action="store",
|
|
626
|
+
choices=("newer", "force", "never"),
|
|
627
|
+
dest="nuitka_update_mode",
|
|
628
|
+
default="newer",
|
|
629
|
+
help="""\
|
|
630
|
+
Recompile even if the versions seems not changed. Default %default.""",
|
|
631
|
+
)
|
|
632
|
+
|
|
633
|
+
parser.add_option(
|
|
634
|
+
"--pr",
|
|
635
|
+
action="store",
|
|
636
|
+
dest="nuitka_pr_mode",
|
|
637
|
+
default=None,
|
|
638
|
+
help="""\
|
|
639
|
+
PR to create. Default not making a PR.""",
|
|
640
|
+
)
|
|
641
|
+
|
|
642
|
+
parser.add_option(
|
|
643
|
+
"--jobs",
|
|
644
|
+
action="store",
|
|
645
|
+
dest="jobs",
|
|
646
|
+
default=None,
|
|
647
|
+
help="""\
|
|
648
|
+
Argument for jobs, in order to be nice use negative values
|
|
649
|
+
to reserve cores.""",
|
|
650
|
+
)
|
|
651
|
+
|
|
452
652
|
options, positional_args = parser.parse_args()
|
|
453
653
|
|
|
454
654
|
assert len(positional_args) <= 1, positional_args
|
|
455
655
|
|
|
456
|
-
if positional_args
|
|
656
|
+
if positional_args:
|
|
457
657
|
base_dir = positional_args[0]
|
|
658
|
+
|
|
659
|
+
if not os.path.isdir(base_dir):
|
|
660
|
+
watch_logger.sysexit("Error, '%s' is not a directory" % base_dir)
|
|
661
|
+
|
|
458
662
|
else:
|
|
459
663
|
base_dir = os.getcwd()
|
|
460
664
|
|
|
461
665
|
for python_version in options.python_versions or reversed(
|
|
462
666
|
getTestExecutionPythonVersions()
|
|
463
667
|
):
|
|
464
|
-
installed_pythons[python_version] = findPythons(
|
|
668
|
+
installed_pythons[python_version] = findPythons(
|
|
669
|
+
python_version, module_name="pipenv"
|
|
670
|
+
)
|
|
465
671
|
|
|
466
672
|
nuitka_binary = os.path.abspath(os.path.expanduser(options.nuitka_binary))
|
|
467
673
|
assert os.path.exists(nuitka_binary)
|
|
@@ -475,6 +681,11 @@ Do not update the pipenv environment. Best to see only effect of Nuitka update.
|
|
|
475
681
|
|
|
476
682
|
base_dir = os.path.abspath(base_dir)
|
|
477
683
|
|
|
684
|
+
if options.nuitka_pr_mode is not None:
|
|
685
|
+
pr_category, pr_description = options.nuitka_pr_mode.split(",")
|
|
686
|
+
else:
|
|
687
|
+
pr_category = pr_description = None
|
|
688
|
+
|
|
478
689
|
with withDirectoryChange(base_dir):
|
|
479
690
|
for case_filename in scanCases(base_dir):
|
|
480
691
|
case_relpath = relpath(case_filename, start=base_dir)
|
|
@@ -485,11 +696,31 @@ Do not update the pipenv environment. Best to see only effect of Nuitka update.
|
|
|
485
696
|
|
|
486
697
|
with withDirectoryChange(os.path.dirname(case_filename)):
|
|
487
698
|
updateCases(
|
|
488
|
-
os.path.dirname(case_filename),
|
|
699
|
+
case_dir=os.path.dirname(case_filename),
|
|
489
700
|
dry_run=options.dry_run,
|
|
490
701
|
no_pipenv_update=options.no_pipenv_update,
|
|
702
|
+
nuitka_update_mode=options.nuitka_update_mode,
|
|
703
|
+
jobs=options.jobs,
|
|
491
704
|
)
|
|
492
705
|
|
|
706
|
+
if pr_category is not None:
|
|
707
|
+
createNuitkaWatchPR(category=pr_category, description=pr_description)
|
|
708
|
+
|
|
493
709
|
|
|
494
710
|
if __name__ == "__main__":
|
|
495
711
|
main()
|
|
712
|
+
|
|
713
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
714
|
+
# integrates with CPython, but also works on its own.
|
|
715
|
+
#
|
|
716
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
717
|
+
# you may not use this file except in compliance with the License.
|
|
718
|
+
# You may obtain a copy of the License at
|
|
719
|
+
#
|
|
720
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
721
|
+
#
|
|
722
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
723
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
724
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
725
|
+
# See the License for the specific language governing permissions and
|
|
726
|
+
# limitations under the License.
|