Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__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.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -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 +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- 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 +91 -53
- 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 +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- 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 +593 -190
- 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 -18
- 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 +17 -17
- 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 +24 -22
- 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 +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- 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 +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -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_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 +17 -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 +17 -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 +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -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 +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- 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 +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -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/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 +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- 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 +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- 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 +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- 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 +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- 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 +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- 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 +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- 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 +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- 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 +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- 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 +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -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 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- 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 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- 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/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- 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 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- 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 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- 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 +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- 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 +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- 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 +24 -20
- 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 +68 -19
- 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 +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- 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 +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- 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 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- 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 +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- 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 +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- 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 +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- 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/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -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 +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- 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 +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -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 +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- 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 +19 -21
- 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 +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- 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 +36 -29
- 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 +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -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 +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -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 +21 -19
- 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 +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- 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 +115 -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.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
nuitka/reports/Reports.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
|
""" Collection of information for reports and their writing.
|
|
19
5
|
|
|
20
6
|
These reports are in XML form, and with Jinja2 templates in any form you like.
|
|
@@ -29,10 +15,13 @@ import traceback
|
|
|
29
15
|
from nuitka import TreeXML
|
|
30
16
|
from nuitka.__past__ import unicode
|
|
31
17
|
from nuitka.build.DataComposerInterface import getDataComposerReportValues
|
|
18
|
+
from nuitka.build.SconsUtils import readSconsErrorReport
|
|
19
|
+
from nuitka.code_generation.ConstantCodes import getDistributionMetadataValues
|
|
32
20
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
33
21
|
from nuitka.freezer.IncludedDataFiles import getIncludedDataFiles
|
|
34
22
|
from nuitka.freezer.IncludedEntryPoints import getStandaloneEntryPoints
|
|
35
23
|
from nuitka.importing.Importing import getPackageSearchPath
|
|
24
|
+
from nuitka.importing.Recursion import getRecursionDecisions
|
|
36
25
|
from nuitka.ModuleRegistry import (
|
|
37
26
|
getDoneModules,
|
|
38
27
|
getModuleInclusionInfoByName,
|
|
@@ -43,17 +32,46 @@ from nuitka.Options import (
|
|
|
43
32
|
getCompilationReportFilename,
|
|
44
33
|
getCompilationReportTemplates,
|
|
45
34
|
getCompilationReportUserData,
|
|
35
|
+
isOnefileMode,
|
|
46
36
|
shallCreateDiffableCompilationReport,
|
|
47
37
|
)
|
|
38
|
+
from nuitka.OutputDirectories import (
|
|
39
|
+
getResultRunFilename,
|
|
40
|
+
getSourceDirectoryPath,
|
|
41
|
+
hasMainModule,
|
|
42
|
+
)
|
|
48
43
|
from nuitka.plugins.Plugins import getActivePlugins
|
|
49
44
|
from nuitka.PythonFlavors import getPythonFlavorName
|
|
50
|
-
from nuitka.PythonVersions import
|
|
45
|
+
from nuitka.PythonVersions import (
|
|
46
|
+
getLaunchingSystemPrefixPath,
|
|
47
|
+
getSystemPrefixPath,
|
|
48
|
+
python_version_full_str,
|
|
49
|
+
)
|
|
51
50
|
from nuitka.Tracing import ReportingSystemExit, reports_logger
|
|
52
|
-
from nuitka.utils.Distributions import
|
|
53
|
-
|
|
51
|
+
from nuitka.utils.Distributions import (
|
|
52
|
+
getDistributionInstallerName,
|
|
53
|
+
getDistributionLicense,
|
|
54
|
+
getDistributionName,
|
|
55
|
+
getDistributionsFromModuleName,
|
|
56
|
+
getDistributionVersion,
|
|
57
|
+
)
|
|
58
|
+
from nuitka.utils.FileOperations import (
|
|
59
|
+
getReportPath,
|
|
60
|
+
putBinaryFileContents,
|
|
61
|
+
putTextFileContents,
|
|
62
|
+
)
|
|
54
63
|
from nuitka.utils.Jinja2 import getTemplate
|
|
55
64
|
from nuitka.utils.MemoryUsage import getMemoryInfos
|
|
56
|
-
from nuitka.utils.Utils import
|
|
65
|
+
from nuitka.utils.Utils import (
|
|
66
|
+
getArchitecture,
|
|
67
|
+
getLinuxDistribution,
|
|
68
|
+
getMacOSRelease,
|
|
69
|
+
getOS,
|
|
70
|
+
getWindowsRelease,
|
|
71
|
+
isLinux,
|
|
72
|
+
isMacOS,
|
|
73
|
+
isWin32OrPosixWindows,
|
|
74
|
+
)
|
|
57
75
|
from nuitka.Version import getCommercialVersion, getNuitkaVersion
|
|
58
76
|
|
|
59
77
|
|
|
@@ -61,7 +79,8 @@ def _getReportInputData(aborted):
|
|
|
61
79
|
"""Collect all information for reporting into a dictionary."""
|
|
62
80
|
|
|
63
81
|
# used with locals for laziness and these are to populate a dictionary with
|
|
64
|
-
# many entries,
|
|
82
|
+
# many entries,
|
|
83
|
+
# pylint: disable=possibly-unused-variable,too-many-branches,too-many-locals,too-many-statements
|
|
65
84
|
|
|
66
85
|
module_names = tuple(module.getFullName() for module in getDoneModules())
|
|
67
86
|
|
|
@@ -88,8 +107,14 @@ def _getReportInputData(aborted):
|
|
|
88
107
|
for module in getDoneModules()
|
|
89
108
|
)
|
|
90
109
|
|
|
110
|
+
module_usages = dict(
|
|
111
|
+
(module.getFullName(), tuple(module.getUsedModules()))
|
|
112
|
+
for module in getDoneModules()
|
|
113
|
+
)
|
|
114
|
+
|
|
91
115
|
module_distributions = {}
|
|
92
116
|
distribution_modules = {}
|
|
117
|
+
|
|
93
118
|
for module in getDoneModules():
|
|
94
119
|
module_distributions[module.getFullName()] = getDistributionsFromModuleName(
|
|
95
120
|
module.getFullName()
|
|
@@ -100,9 +125,19 @@ def _getReportInputData(aborted):
|
|
|
100
125
|
|
|
101
126
|
distribution_modules[_distribution].add(module.getFullName())
|
|
102
127
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
128
|
+
module_distribution_usages = {}
|
|
129
|
+
for module in getDoneModules():
|
|
130
|
+
module_distribution_usages[module.getFullName()] = OrderedSet()
|
|
131
|
+
|
|
132
|
+
for _module_usage in module_usages[module.getFullName()]:
|
|
133
|
+
if _module_usage.module_name not in module_usages:
|
|
134
|
+
continue
|
|
135
|
+
|
|
136
|
+
module_distribution_usages[module.getFullName()].update(
|
|
137
|
+
dist
|
|
138
|
+
for dist in module_distributions[_module_usage.module_name]
|
|
139
|
+
if dist not in module_distributions[module.getFullName()]
|
|
140
|
+
)
|
|
106
141
|
|
|
107
142
|
module_distribution_names = dict(
|
|
108
143
|
(module.getFullName(), module.getUsedDistributions())
|
|
@@ -112,10 +147,55 @@ def _getReportInputData(aborted):
|
|
|
112
147
|
all_distributions = tuple(
|
|
113
148
|
sorted(
|
|
114
149
|
set(sum(module_distributions.values(), ())),
|
|
115
|
-
key=
|
|
150
|
+
key=getDistributionName,
|
|
116
151
|
)
|
|
117
152
|
)
|
|
118
153
|
|
|
154
|
+
module_distribution_installers = dict(
|
|
155
|
+
(
|
|
156
|
+
getDistributionName(dist),
|
|
157
|
+
getDistributionInstallerName(getDistributionName(dist)),
|
|
158
|
+
)
|
|
159
|
+
for dist in all_distributions
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
module_exclusions = dict((module.getFullName(), {}) for module in getDoneModules())
|
|
163
|
+
|
|
164
|
+
# TODO: The module filename, and other things can be None. Once we change to
|
|
165
|
+
# namedtuples, we need to adapt the type check.
|
|
166
|
+
def _replaceNoneWithString(value):
|
|
167
|
+
if type(value) is tuple:
|
|
168
|
+
return tuple(_replaceNoneWithString(element) for element in value)
|
|
169
|
+
|
|
170
|
+
return value if value is not None else ""
|
|
171
|
+
|
|
172
|
+
for (
|
|
173
|
+
_using_module_name,
|
|
174
|
+
_module_filename,
|
|
175
|
+
_module_name,
|
|
176
|
+
_module_kind,
|
|
177
|
+
_extra_recursion,
|
|
178
|
+
), (_decision, _reason) in sorted(
|
|
179
|
+
getRecursionDecisions().items(), key=_replaceNoneWithString
|
|
180
|
+
):
|
|
181
|
+
if _decision is not False:
|
|
182
|
+
continue
|
|
183
|
+
|
|
184
|
+
if _using_module_name is None:
|
|
185
|
+
continue
|
|
186
|
+
|
|
187
|
+
# We might be interrupted, and have this information, but never actually
|
|
188
|
+
# finished the module.
|
|
189
|
+
if _using_module_name not in module_exclusions:
|
|
190
|
+
continue
|
|
191
|
+
|
|
192
|
+
module_exclusions[_using_module_name][_module_name] = _reason
|
|
193
|
+
|
|
194
|
+
included_metadata = dict(
|
|
195
|
+
(distribution_name, meta_data_value.reasons)
|
|
196
|
+
for distribution_name, meta_data_value in getDistributionMetadataValues()
|
|
197
|
+
)
|
|
198
|
+
|
|
119
199
|
memory_infos = getMemoryInfos()
|
|
120
200
|
|
|
121
201
|
python_exe = sys.executable
|
|
@@ -125,6 +205,18 @@ def _getReportInputData(aborted):
|
|
|
125
205
|
os_name = getOS()
|
|
126
206
|
arch_name = getArchitecture()
|
|
127
207
|
|
|
208
|
+
# Record system encoding, spell-checker: ignore getfilesystemencoding
|
|
209
|
+
filesystem_encoding = sys.getfilesystemencoding()
|
|
210
|
+
|
|
211
|
+
if isWin32OrPosixWindows():
|
|
212
|
+
os_release = str(getWindowsRelease())
|
|
213
|
+
elif isLinux():
|
|
214
|
+
os_release = "-".join(x for x in getLinuxDistribution() if x)
|
|
215
|
+
elif isMacOS():
|
|
216
|
+
os_release = getMacOSRelease()
|
|
217
|
+
else:
|
|
218
|
+
os_release = "unknown"
|
|
219
|
+
|
|
128
220
|
nuitka_version = getNuitkaVersion()
|
|
129
221
|
nuitka_commercial_version = getCommercialVersion() or "not installed"
|
|
130
222
|
|
|
@@ -136,6 +228,17 @@ def _getReportInputData(aborted):
|
|
|
136
228
|
|
|
137
229
|
data_composer = getDataComposerReportValues()
|
|
138
230
|
|
|
231
|
+
if hasMainModule():
|
|
232
|
+
output_run_filename = os.path.abspath(
|
|
233
|
+
getResultRunFilename(onefile=isOnefileMode())
|
|
234
|
+
)
|
|
235
|
+
scons_error_report_data = readSconsErrorReport(
|
|
236
|
+
source_dir=getSourceDirectoryPath()
|
|
237
|
+
)
|
|
238
|
+
else:
|
|
239
|
+
scons_error_report_data = {}
|
|
240
|
+
output_run_filename = "failed too early"
|
|
241
|
+
|
|
139
242
|
return dict(
|
|
140
243
|
(var_name, var_value)
|
|
141
244
|
for var_name, var_value in locals().items()
|
|
@@ -154,7 +257,7 @@ def _getReportPathPrefixes():
|
|
|
154
257
|
if _report_prefixes is None:
|
|
155
258
|
_report_prefixes = []
|
|
156
259
|
|
|
157
|
-
sys_prefix =
|
|
260
|
+
sys_prefix = getLaunchingSystemPrefixPath() or sys.prefix
|
|
158
261
|
real_sys_prefix = getSystemPrefixPath()
|
|
159
262
|
|
|
160
263
|
if real_sys_prefix != sys_prefix:
|
|
@@ -171,7 +274,8 @@ def _getCompilationReportPath(path):
|
|
|
171
274
|
|
|
172
275
|
|
|
173
276
|
def _addModulesToReport(root, report_input_data, diffable):
|
|
174
|
-
# Many details to work with,
|
|
277
|
+
# Many details to work with,
|
|
278
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
175
279
|
|
|
176
280
|
for module_name in report_input_data["module_names"]:
|
|
177
281
|
active_module_info = report_input_data["module_inclusion_infos"][module_name]
|
|
@@ -188,6 +292,13 @@ def _addModulesToReport(root, report_input_data, diffable):
|
|
|
188
292
|
),
|
|
189
293
|
)
|
|
190
294
|
|
|
295
|
+
distributions = report_input_data["module_distributions"][module_name]
|
|
296
|
+
|
|
297
|
+
if distributions:
|
|
298
|
+
module_xml_node.attrib["distribution"] = ",".join(
|
|
299
|
+
getDistributionName(dist) for dist in distributions
|
|
300
|
+
)
|
|
301
|
+
|
|
191
302
|
for plugin_name, influence, detail in report_input_data[
|
|
192
303
|
"module_plugin_influences"
|
|
193
304
|
][module_name]:
|
|
@@ -199,8 +310,34 @@ def _addModulesToReport(root, report_input_data, diffable):
|
|
|
199
310
|
condition, condition_tags_used, condition_result = detail
|
|
200
311
|
|
|
201
312
|
influence_xml_node.attrib["condition"] = condition
|
|
202
|
-
|
|
313
|
+
if condition_tags_used:
|
|
314
|
+
influence_xml_node.attrib["tags_used"] = ",".join(
|
|
315
|
+
condition_tags_used
|
|
316
|
+
)
|
|
203
317
|
influence_xml_node.attrib["result"] = str(condition_result).lower()
|
|
318
|
+
elif influence == "variable-used":
|
|
319
|
+
variable_name, condition_tags_used, variable_value = detail
|
|
320
|
+
|
|
321
|
+
influence_xml_node.attrib["variable"] = variable_name
|
|
322
|
+
if condition_tags_used:
|
|
323
|
+
influence_xml_node.attrib["tags_used"] = ",".join(
|
|
324
|
+
condition_tags_used
|
|
325
|
+
)
|
|
326
|
+
influence_xml_node.attrib["value"] = variable_value
|
|
327
|
+
elif influence == "parameter-used":
|
|
328
|
+
parameter_name, condition_tags_used, parameter_value = detail
|
|
329
|
+
|
|
330
|
+
influence_xml_node.attrib["parameter"] = parameter_name
|
|
331
|
+
if condition_tags_used:
|
|
332
|
+
influence_xml_node.attrib["tags_used"] = ",".join(
|
|
333
|
+
condition_tags_used
|
|
334
|
+
)
|
|
335
|
+
influence_xml_node.attrib["value"] = repr(parameter_value)
|
|
336
|
+
elif influence == "detection":
|
|
337
|
+
detection_name, detection_value = detail
|
|
338
|
+
|
|
339
|
+
influence_xml_node.attrib["detection"] = detection_name
|
|
340
|
+
influence_xml_node.attrib["value"] = repr(detection_value)
|
|
204
341
|
else:
|
|
205
342
|
assert False, influence
|
|
206
343
|
|
|
@@ -217,21 +354,35 @@ def _addModulesToReport(root, report_input_data, diffable):
|
|
|
217
354
|
"volatile" if diffable else "%.2f" % timing_info.time_used
|
|
218
355
|
)
|
|
219
356
|
|
|
357
|
+
if timing_info.micro_passes:
|
|
358
|
+
timing_xml_node.attrib["micro_passes"] = str(timing_info.micro_passes)
|
|
359
|
+
|
|
360
|
+
if timing_info.merge_counts:
|
|
361
|
+
merged_total = 0
|
|
362
|
+
|
|
363
|
+
for branch_count, merge_count in timing_info.merge_counts.items():
|
|
364
|
+
merged_total += branch_count * merge_count
|
|
365
|
+
|
|
366
|
+
max_merge_size = max(timing_info.merge_counts)
|
|
367
|
+
|
|
368
|
+
timing_xml_node.attrib["max_branch_merge"] = str(max_merge_size)
|
|
369
|
+
timing_xml_node.attrib["merged_total"] = str(merged_total)
|
|
370
|
+
|
|
220
371
|
module_xml_node.append(timing_xml_node)
|
|
221
372
|
|
|
222
|
-
distributions = report_input_data["
|
|
373
|
+
distributions = report_input_data["module_distribution_usages"][module_name]
|
|
223
374
|
|
|
224
375
|
if distributions:
|
|
225
376
|
distributions_xml_node = TreeXML.appendTreeElement(
|
|
226
377
|
module_xml_node,
|
|
227
|
-
"
|
|
378
|
+
"distribution-usages",
|
|
228
379
|
)
|
|
229
380
|
|
|
230
381
|
for distribution in distributions:
|
|
231
382
|
TreeXML.appendTreeElement(
|
|
232
383
|
distributions_xml_node,
|
|
233
|
-
"distribution-
|
|
234
|
-
name=distribution
|
|
384
|
+
"distribution-usage",
|
|
385
|
+
name=getDistributionName(distribution),
|
|
235
386
|
)
|
|
236
387
|
|
|
237
388
|
module_distribution_names = report_input_data["module_distribution_names"][
|
|
@@ -247,7 +398,7 @@ def _addModulesToReport(root, report_input_data, diffable):
|
|
|
247
398
|
for distribution_name, found in module_distribution_names.items():
|
|
248
399
|
TreeXML.appendTreeElement(
|
|
249
400
|
module_distribution_names_xml_node,
|
|
250
|
-
"distribution",
|
|
401
|
+
"distribution-lookup",
|
|
251
402
|
name=distribution_name,
|
|
252
403
|
found="yes" if found else "no",
|
|
253
404
|
)
|
|
@@ -257,15 +408,48 @@ def _addModulesToReport(root, report_input_data, diffable):
|
|
|
257
408
|
"module_usages",
|
|
258
409
|
)
|
|
259
410
|
|
|
260
|
-
for used_module in
|
|
261
|
-
|
|
411
|
+
for count, used_module in enumerate(
|
|
412
|
+
report_input_data["module_usages"][module_name]
|
|
413
|
+
):
|
|
414
|
+
# We don't want to see those parent imports, unless they have
|
|
415
|
+
# an effect.
|
|
416
|
+
if used_module.reason == "import path parent":
|
|
417
|
+
while True:
|
|
418
|
+
count += 1
|
|
419
|
+
next_used_module = report_input_data["module_usages"][module_name][
|
|
420
|
+
count
|
|
421
|
+
]
|
|
422
|
+
|
|
423
|
+
if next_used_module.reason != "import path parent":
|
|
424
|
+
break
|
|
425
|
+
|
|
426
|
+
exclusion_reason = report_input_data["module_exclusions"][
|
|
427
|
+
module_name
|
|
428
|
+
].get(next_used_module.module_name)
|
|
429
|
+
|
|
430
|
+
if exclusion_reason is None or next_used_module.finding != "not-found":
|
|
431
|
+
continue
|
|
432
|
+
|
|
433
|
+
module_usage_node = TreeXML.appendTreeElement(
|
|
262
434
|
used_modules_xml_node,
|
|
263
435
|
"module_usage",
|
|
264
436
|
name=used_module.module_name.asString(),
|
|
265
437
|
finding=used_module.finding,
|
|
266
438
|
line=str(used_module.source_ref.getLineNumber()),
|
|
439
|
+
# TODO: Add reason in a hotfix.
|
|
440
|
+
# reason=used_module.reason,
|
|
441
|
+
)
|
|
442
|
+
|
|
443
|
+
exclusion_reason = report_input_data["module_exclusions"][module_name].get(
|
|
444
|
+
used_module.module_name
|
|
267
445
|
)
|
|
268
446
|
|
|
447
|
+
# Include reason why a module was excluded unless it is obvious like
|
|
448
|
+
# with built-in modules.
|
|
449
|
+
if exclusion_reason is not None and used_module.module_kind != "built-in":
|
|
450
|
+
module_usage_node.attrib["finding"] = "excluded"
|
|
451
|
+
module_usage_node.attrib["exclusion_reason"] = exclusion_reason
|
|
452
|
+
|
|
269
453
|
|
|
270
454
|
def _addMemoryInfosToReport(performance_xml_node, memory_infos, diffable):
|
|
271
455
|
for key, value in memory_infos.items():
|
|
@@ -340,6 +524,45 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
340
524
|
|
|
341
525
|
exception_xml_node.text = "\n" + traceback.format_exc()
|
|
342
526
|
|
|
527
|
+
if report_input_data["scons_error_report_data"]:
|
|
528
|
+
scons_error_reports_node = TreeXML.appendTreeElement(
|
|
529
|
+
root, "scons_error_reports"
|
|
530
|
+
)
|
|
531
|
+
|
|
532
|
+
for cmd, (stdout, stderr) in report_input_data[
|
|
533
|
+
"scons_error_report_data"
|
|
534
|
+
].items():
|
|
535
|
+
scons_error_report_node = TreeXML.appendTreeElement(
|
|
536
|
+
scons_error_reports_node, "scons_error_report"
|
|
537
|
+
)
|
|
538
|
+
|
|
539
|
+
TreeXML.appendTreeElement(
|
|
540
|
+
scons_error_report_node,
|
|
541
|
+
"command",
|
|
542
|
+
).text = cmd
|
|
543
|
+
|
|
544
|
+
if stdout:
|
|
545
|
+
if not stdout.startswith("\n"):
|
|
546
|
+
stdout = "\n" + stdout
|
|
547
|
+
|
|
548
|
+
stdout = stdout.rstrip("\n") + "\n"
|
|
549
|
+
|
|
550
|
+
TreeXML.appendTreeElement(
|
|
551
|
+
scons_error_report_node,
|
|
552
|
+
"stdout",
|
|
553
|
+
).text = stdout
|
|
554
|
+
|
|
555
|
+
if stderr:
|
|
556
|
+
if not stderr.startswith("\n"):
|
|
557
|
+
stderr = "\n" + stderr
|
|
558
|
+
|
|
559
|
+
stderr = stderr.rstrip("\n") + "\n"
|
|
560
|
+
|
|
561
|
+
TreeXML.appendTreeElement(
|
|
562
|
+
scons_error_report_node,
|
|
563
|
+
"stderr",
|
|
564
|
+
).text = stderr
|
|
565
|
+
|
|
343
566
|
_addModulesToReport(
|
|
344
567
|
root=root, report_input_data=report_input_data, diffable=diffable
|
|
345
568
|
)
|
|
@@ -377,6 +600,22 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
377
600
|
tags=",".join(included_datafile.tags),
|
|
378
601
|
)
|
|
379
602
|
|
|
603
|
+
if report_input_data["included_metadata"]:
|
|
604
|
+
metadata_node = TreeXML.appendTreeElement(
|
|
605
|
+
root,
|
|
606
|
+
"metadata",
|
|
607
|
+
)
|
|
608
|
+
|
|
609
|
+
for distribution_name, reasons in sorted(
|
|
610
|
+
report_input_data["included_metadata"].items()
|
|
611
|
+
):
|
|
612
|
+
TreeXML.appendTreeElement(
|
|
613
|
+
metadata_node,
|
|
614
|
+
"included_metadata",
|
|
615
|
+
name=distribution_name,
|
|
616
|
+
reason=". ".join(reasons),
|
|
617
|
+
)
|
|
618
|
+
|
|
380
619
|
for standalone_entry_point in getStandaloneEntryPoints():
|
|
381
620
|
if standalone_entry_point.kind == "executable":
|
|
382
621
|
continue
|
|
@@ -397,7 +636,7 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
397
636
|
source_path=_getCompilationReportPath(standalone_entry_point.source_path),
|
|
398
637
|
package=standalone_entry_point.package_name or "",
|
|
399
638
|
ignored="yes" if ignored else "no",
|
|
400
|
-
reason=standalone_entry_point.reason
|
|
639
|
+
reason=standalone_entry_point.reason,
|
|
401
640
|
# TODO: No reason yet.
|
|
402
641
|
)
|
|
403
642
|
|
|
@@ -460,8 +699,11 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
460
699
|
TreeXML.appendTreeElement(
|
|
461
700
|
distributions_xml_node,
|
|
462
701
|
"distribution",
|
|
463
|
-
name=distribution
|
|
464
|
-
version=distribution
|
|
702
|
+
name=getDistributionName(distribution),
|
|
703
|
+
version=getDistributionVersion(distribution),
|
|
704
|
+
installer=report_input_data["module_distribution_installers"][
|
|
705
|
+
getDistributionName(distribution)
|
|
706
|
+
],
|
|
465
707
|
)
|
|
466
708
|
|
|
467
709
|
python_xml_node = TreeXML.appendTreeElement(
|
|
@@ -471,25 +713,43 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
471
713
|
python_flavor=report_input_data["python_flavor"],
|
|
472
714
|
python_version=report_input_data["python_version"],
|
|
473
715
|
os_name=report_input_data["os_name"],
|
|
716
|
+
os_release=report_input_data["os_release"],
|
|
474
717
|
arch_name=report_input_data["arch_name"],
|
|
718
|
+
filesystem_encoding=report_input_data["filesystem_encoding"],
|
|
475
719
|
)
|
|
476
720
|
|
|
477
|
-
|
|
478
|
-
python_xml_node,
|
|
479
|
-
"search_path",
|
|
480
|
-
)
|
|
721
|
+
search_path = getPackageSearchPath(None)
|
|
481
722
|
|
|
482
|
-
|
|
483
|
-
TreeXML.appendTreeElement(
|
|
484
|
-
|
|
485
|
-
"
|
|
486
|
-
value=_getCompilationReportPath(search_path),
|
|
723
|
+
if search_path is not None:
|
|
724
|
+
search_path_xml_node = TreeXML.appendTreeElement(
|
|
725
|
+
python_xml_node,
|
|
726
|
+
"search_path",
|
|
487
727
|
)
|
|
488
728
|
|
|
729
|
+
for search_path in getPackageSearchPath(None):
|
|
730
|
+
TreeXML.appendTreeElement(
|
|
731
|
+
search_path_xml_node,
|
|
732
|
+
"path",
|
|
733
|
+
value=_getCompilationReportPath(search_path),
|
|
734
|
+
)
|
|
735
|
+
|
|
489
736
|
_addUserDataToReport(root=root, user_data=report_input_data["user_data"])
|
|
490
737
|
|
|
738
|
+
python_xml_node = TreeXML.appendTreeElement(
|
|
739
|
+
root,
|
|
740
|
+
"output",
|
|
741
|
+
run_filename=_getCompilationReportPath(
|
|
742
|
+
report_input_data["output_run_filename"]
|
|
743
|
+
),
|
|
744
|
+
)
|
|
745
|
+
|
|
746
|
+
contents = TreeXML.toString(root)
|
|
747
|
+
|
|
748
|
+
if type(contents) is not bytes:
|
|
749
|
+
contents = contents.encode("utf8")
|
|
750
|
+
|
|
491
751
|
try:
|
|
492
|
-
|
|
752
|
+
putBinaryFileContents(filename=report_filename, contents=contents)
|
|
493
753
|
except OSError as e:
|
|
494
754
|
reports_logger.warning(
|
|
495
755
|
"Compilation report write to file '%s' failed due to: %s."
|
|
@@ -499,9 +759,10 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
|
|
|
499
759
|
if _crash_report_filename == report_filename:
|
|
500
760
|
_crash_report_filename = None
|
|
501
761
|
else:
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
762
|
+
if _crash_report_filename != report_filename:
|
|
763
|
+
reports_logger.info(
|
|
764
|
+
"Compilation report written to file '%s'." % report_filename
|
|
765
|
+
)
|
|
505
766
|
|
|
506
767
|
|
|
507
768
|
def writeCompilationReportFromTemplate(
|
|
@@ -514,25 +775,6 @@ def writeCompilationReportFromTemplate(
|
|
|
514
775
|
extensions=("jinja2.ext.do",),
|
|
515
776
|
)
|
|
516
777
|
|
|
517
|
-
def get_distribution_license(distribution):
|
|
518
|
-
license_name = distribution.metadata["License"]
|
|
519
|
-
|
|
520
|
-
if license_name == "UNKNOWN":
|
|
521
|
-
for classifier in (
|
|
522
|
-
value
|
|
523
|
-
for (key, value) in distribution.metadata.items()
|
|
524
|
-
if "Classifier" in key
|
|
525
|
-
):
|
|
526
|
-
parts = [part.strip() for part in classifier.split("::")]
|
|
527
|
-
if not parts:
|
|
528
|
-
continue
|
|
529
|
-
|
|
530
|
-
if parts[0] == "License":
|
|
531
|
-
license_name = parts[-1]
|
|
532
|
-
break
|
|
533
|
-
|
|
534
|
-
return license_name
|
|
535
|
-
|
|
536
778
|
def quoted(value):
|
|
537
779
|
if isinstance(value, str):
|
|
538
780
|
return "'%s'" % value
|
|
@@ -541,7 +783,11 @@ def writeCompilationReportFromTemplate(
|
|
|
541
783
|
|
|
542
784
|
report_text = template.render(
|
|
543
785
|
# Get the license text.
|
|
544
|
-
get_distribution_license=
|
|
786
|
+
get_distribution_license=getDistributionLicense,
|
|
787
|
+
# get the distribution_name
|
|
788
|
+
get_distribution_name=getDistributionName,
|
|
789
|
+
# get the distribution version
|
|
790
|
+
get_distribution_version=getDistributionVersion,
|
|
545
791
|
# Quote a list of strings.
|
|
546
792
|
quoted=quoted,
|
|
547
793
|
# For checking length of lists.
|
|
@@ -563,15 +809,20 @@ def writeCompilationReportFromTemplate(
|
|
|
563
809
|
|
|
564
810
|
|
|
565
811
|
_crash_report_filename = "nuitka-crash-report.xml"
|
|
812
|
+
_crash_report_bug_message = True
|
|
566
813
|
|
|
567
814
|
|
|
568
815
|
def _informAboutCrashReport():
|
|
569
816
|
if _crash_report_filename is not None:
|
|
817
|
+
message = (
|
|
818
|
+
"Compilation crash report written to file '%s'." % _crash_report_filename
|
|
819
|
+
)
|
|
820
|
+
|
|
821
|
+
if _crash_report_bug_message:
|
|
822
|
+
message += " Please include it in your bug report."
|
|
823
|
+
|
|
570
824
|
reports_logger.info(
|
|
571
|
-
|
|
572
|
-
Compilation crash report written to file '%s'. Please include it in \
|
|
573
|
-
your bug report."""
|
|
574
|
-
% _crash_report_filename,
|
|
825
|
+
message,
|
|
575
826
|
style="red",
|
|
576
827
|
)
|
|
577
828
|
|
|
@@ -588,6 +839,15 @@ def writeCompilationReports(aborted):
|
|
|
588
839
|
):
|
|
589
840
|
report_filename = _crash_report_filename
|
|
590
841
|
|
|
842
|
+
# Inform user about bug reporting of a bug only, if this is not some sort
|
|
843
|
+
# of reporting exit, these do not constitute definitive bugs of Nuitka but
|
|
844
|
+
# are often usage errors only.
|
|
845
|
+
|
|
846
|
+
# Using global here, as this is really a singleton
|
|
847
|
+
# pylint: disable=global-statement
|
|
848
|
+
global _crash_report_bug_message
|
|
849
|
+
_crash_report_bug_message = sys.exc_info()[0] is not ReportingSystemExit
|
|
850
|
+
|
|
591
851
|
atexit.register(_informAboutCrashReport)
|
|
592
852
|
|
|
593
853
|
if report_filename or template_specs:
|
|
@@ -625,3 +885,19 @@ def writeCompilationReports(aborted):
|
|
|
625
885
|
report_filename=report_filename,
|
|
626
886
|
report_input_data=report_input_data,
|
|
627
887
|
)
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
891
|
+
# integrates with CPython, but also works on its own.
|
|
892
|
+
#
|
|
893
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
894
|
+
# you may not use this file except in compliance with the License.
|
|
895
|
+
# You may obtain a copy of the License at
|
|
896
|
+
#
|
|
897
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
898
|
+
#
|
|
899
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
900
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
901
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
902
|
+
# See the License for the specific language governing permissions and
|
|
903
|
+
# limitations under the License.
|
nuitka/reports/__init__.py
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Dummy file to make this directory a package. """
|
|
5
|
+
|
|
3
6
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
7
|
# integrates with CPython, but also works on its own.
|
|
5
8
|
#
|
|
@@ -14,5 +17,3 @@
|
|
|
14
17
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
18
|
# See the License for the specific language governing permissions and
|
|
16
19
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" Dummy file to make this directory a package. """
|