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
|
@@ -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
|
""" Finalize the markups
|
|
19
5
|
|
|
20
6
|
Set flags on functions and classes to indicate if a locals dict is really
|
|
@@ -31,19 +17,10 @@ are in another context.
|
|
|
31
17
|
|
|
32
18
|
"""
|
|
33
19
|
|
|
34
|
-
|
|
35
20
|
from nuitka import Tracing
|
|
36
|
-
from nuitka.__past__ import unicode
|
|
37
|
-
from nuitka.containers.OrderedSets import OrderedSet
|
|
38
21
|
from nuitka.PythonVersions import python_version
|
|
39
22
|
from nuitka.tree.Operations import VisitorNoopMixin
|
|
40
23
|
|
|
41
|
-
imported_names = OrderedSet()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def getImportedNames():
|
|
45
|
-
return imported_names
|
|
46
|
-
|
|
47
24
|
|
|
48
25
|
class FinalizeMarkups(VisitorNoopMixin):
|
|
49
26
|
def onEnterNode(self, node):
|
|
@@ -81,16 +58,6 @@ class FinalizeMarkups(VisitorNoopMixin):
|
|
|
81
58
|
else:
|
|
82
59
|
search.markAsNeedsGeneratorReturnHandling(1)
|
|
83
60
|
|
|
84
|
-
if node.isExpressionBuiltinImport() and node.follow_attempted:
|
|
85
|
-
module_name = node.subnode_name
|
|
86
|
-
|
|
87
|
-
if module_name.isCompileTimeConstant():
|
|
88
|
-
imported_module_name = module_name.getCompileTimeConstant()
|
|
89
|
-
|
|
90
|
-
if type(imported_module_name) in (str, unicode):
|
|
91
|
-
if imported_module_name:
|
|
92
|
-
imported_names.add(imported_module_name)
|
|
93
|
-
|
|
94
61
|
if node.isExpressionFunctionCreation():
|
|
95
62
|
if (
|
|
96
63
|
not node.getParent().isExpressionFunctionCall()
|
|
@@ -118,10 +85,7 @@ class FinalizeMarkups(VisitorNoopMixin):
|
|
|
118
85
|
if assign_source.isExpressionOperationBinary():
|
|
119
86
|
left_arg = assign_source.subnode_left
|
|
120
87
|
|
|
121
|
-
if (
|
|
122
|
-
left_arg.isExpressionVariableRef()
|
|
123
|
-
or left_arg.isExpressionTempVariableRef()
|
|
124
|
-
):
|
|
88
|
+
if left_arg.isExpressionVariableRefOrTempVariableRef():
|
|
125
89
|
if assign_source.subnode_left.getVariable() is target_var:
|
|
126
90
|
if assign_source.isInplaceSuspect():
|
|
127
91
|
node.markAsInplaceSuspect()
|
|
@@ -136,7 +100,7 @@ class FinalizeMarkups(VisitorNoopMixin):
|
|
|
136
100
|
if (
|
|
137
101
|
node.isExpressionYield()
|
|
138
102
|
or node.isExpressionYieldFrom()
|
|
139
|
-
or node.
|
|
103
|
+
or node.isExpressionYieldFromAwaitable()
|
|
140
104
|
):
|
|
141
105
|
search = node.getParent()
|
|
142
106
|
|
|
@@ -158,3 +122,19 @@ class FinalizeMarkups(VisitorNoopMixin):
|
|
|
158
122
|
):
|
|
159
123
|
node.markAsExceptionPreserving()
|
|
160
124
|
break
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
128
|
+
# integrates with CPython, but also works on its own.
|
|
129
|
+
#
|
|
130
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
131
|
+
# you may not use this file except in compliance with the License.
|
|
132
|
+
# You may obtain a copy of the License at
|
|
133
|
+
#
|
|
134
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
135
|
+
#
|
|
136
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
137
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
138
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
139
|
+
# See the License for the specific language governing permissions and
|
|
140
|
+
# limitations under the License.
|
nuitka/finalizations/__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. """
|
nuitka/freezer/DependsExe.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
|
""" Interface to depends.exe on Windows.
|
|
19
5
|
|
|
20
6
|
We use depends.exe to investigate needed DLLs of Python DLLs.
|
|
@@ -32,7 +18,9 @@ from nuitka.utils.FileOperations import (
|
|
|
32
18
|
deleteFile,
|
|
33
19
|
getExternalUsePath,
|
|
34
20
|
getFileContentByLine,
|
|
21
|
+
getWindowsLongPathName,
|
|
35
22
|
isFilenameBelowPath,
|
|
23
|
+
isFilesystemEncodable,
|
|
36
24
|
putTextFileContents,
|
|
37
25
|
withFileLock,
|
|
38
26
|
)
|
|
@@ -52,9 +40,11 @@ def getDependsExePath():
|
|
|
52
40
|
depends_url = "https://dependencywalker.com/depends22_x64.zip"
|
|
53
41
|
|
|
54
42
|
return getCachedDownload(
|
|
43
|
+
name="dependency walker",
|
|
55
44
|
url=depends_url,
|
|
56
45
|
is_arch_specific=getArchitecture(),
|
|
57
46
|
binary="depends.exe",
|
|
47
|
+
unzip=True,
|
|
58
48
|
flatten=True,
|
|
59
49
|
specificity="", # Note: If there ever was an update, put version here.
|
|
60
50
|
message="""\
|
|
@@ -135,20 +125,29 @@ def _parseDependsExeOutput2(lines):
|
|
|
135
125
|
else:
|
|
136
126
|
continue
|
|
137
127
|
|
|
138
|
-
|
|
128
|
+
# The executable itself is of course exempted. We cannot check its path
|
|
129
|
+
# because depends.exe mistreats unicode paths.
|
|
130
|
+
if first:
|
|
131
|
+
first = False
|
|
132
|
+
continue
|
|
139
133
|
|
|
140
134
|
dll_filename = os.path.abspath(dll_filename)
|
|
135
|
+
dll_filename = getWindowsLongPathName(dll_filename)
|
|
141
136
|
|
|
142
137
|
dll_name = os.path.basename(dll_filename)
|
|
143
138
|
|
|
144
139
|
# Ignore this runtime DLL of Python2, will be coming via manifest.
|
|
140
|
+
# spell-checker: ignore msvcr90
|
|
145
141
|
if dll_name in ("msvcr90.dll",):
|
|
146
142
|
continue
|
|
147
143
|
|
|
148
|
-
#
|
|
149
|
-
#
|
|
150
|
-
if
|
|
151
|
-
|
|
144
|
+
# Ignore API DLLs, they can come in from PATH, but we do not want to
|
|
145
|
+
# include them.
|
|
146
|
+
if dll_name.startswith("api-ms-win-"):
|
|
147
|
+
continue
|
|
148
|
+
|
|
149
|
+
# Ignore UCRT runtime, this must come from OS, spell-checker: ignore ucrtbase
|
|
150
|
+
if dll_name == "ucrtbase.dll":
|
|
152
151
|
continue
|
|
153
152
|
|
|
154
153
|
assert os.path.isfile(dll_filename), (dll_filename, line)
|
|
@@ -163,10 +162,14 @@ def parseDependsExeOutput(filename):
|
|
|
163
162
|
|
|
164
163
|
|
|
165
164
|
def detectDLLsWithDependencyWalker(binary_filename, source_dir, scan_dirs):
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
)
|
|
165
|
+
source_dir = getExternalUsePath(source_dir)
|
|
166
|
+
temp_base_name = os.path.basename(binary_filename)
|
|
167
|
+
|
|
168
|
+
if not isFilesystemEncodable(temp_base_name):
|
|
169
|
+
temp_base_name = "dependency_walker"
|
|
170
|
+
|
|
171
|
+
dwp_filename = os.path.join(source_dir, temp_base_name + ".dwp")
|
|
172
|
+
output_filename = os.path.join(source_dir, temp_base_name + ".depends")
|
|
170
173
|
|
|
171
174
|
# User query should only happen once if at all.
|
|
172
175
|
with withFileLock(
|
|
@@ -204,14 +207,15 @@ SxS
|
|
|
204
207
|
"-f1",
|
|
205
208
|
"-pa1",
|
|
206
209
|
"-ps1",
|
|
207
|
-
binary_filename,
|
|
210
|
+
getExternalUsePath(binary_filename),
|
|
208
211
|
),
|
|
209
212
|
external_cwd=True,
|
|
210
213
|
)
|
|
211
214
|
|
|
212
215
|
if not os.path.exists(output_filename):
|
|
213
216
|
inclusion_logger.sysexit(
|
|
214
|
-
"Error, 'depends.exe' failed to produce expected output."
|
|
217
|
+
"Error, 'depends.exe' failed to produce expected output for binary '%s'."
|
|
218
|
+
% binary_filename
|
|
215
219
|
)
|
|
216
220
|
|
|
217
221
|
# Opening the result under lock, so it is not getting locked by new processes.
|
|
@@ -224,3 +228,19 @@ SxS
|
|
|
224
228
|
deleteFile(dwp_filename, must_exist=True)
|
|
225
229
|
|
|
226
230
|
return result
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
234
|
+
# integrates with CPython, but also works on its own.
|
|
235
|
+
#
|
|
236
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
237
|
+
# you may not use this file except in compliance with the License.
|
|
238
|
+
# You may obtain a copy of the License at
|
|
239
|
+
#
|
|
240
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
241
|
+
#
|
|
242
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
243
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
244
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
245
|
+
# See the License for the specific language governing permissions and
|
|
246
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
"""DLL dependency scan methods that are shared. """
|
|
19
5
|
|
|
20
6
|
import os
|
|
@@ -22,6 +8,7 @@ import os
|
|
|
22
8
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
23
9
|
from nuitka.importing.Importing import locateModule
|
|
24
10
|
from nuitka.plugins.Plugins import Plugins
|
|
11
|
+
from nuitka.Tracing import inclusion_logger
|
|
25
12
|
from nuitka.utils.FileOperations import getSubDirectoriesWithDlls
|
|
26
13
|
from nuitka.utils.ModuleNames import ModuleName
|
|
27
14
|
|
|
@@ -36,7 +23,12 @@ def getLdLibraryPath(package_name, python_rpaths, original_dir):
|
|
|
36
23
|
if python_rpaths:
|
|
37
24
|
ld_library_path.update(python_rpaths)
|
|
38
25
|
|
|
39
|
-
ld_library_path.update(
|
|
26
|
+
ld_library_path.update(
|
|
27
|
+
getPackageSpecificDLLDirectories(
|
|
28
|
+
package_name=package_name,
|
|
29
|
+
consider_plugins=True,
|
|
30
|
+
)
|
|
31
|
+
)
|
|
40
32
|
if original_dir is not None:
|
|
41
33
|
ld_library_path.add(original_dir)
|
|
42
34
|
|
|
@@ -45,7 +37,9 @@ def getLdLibraryPath(package_name, python_rpaths, original_dir):
|
|
|
45
37
|
return _ld_library_cache[key]
|
|
46
38
|
|
|
47
39
|
|
|
48
|
-
def getPackageSpecificDLLDirectories(
|
|
40
|
+
def getPackageSpecificDLLDirectories(
|
|
41
|
+
package_name, consider_plugins, allow_not_found=False
|
|
42
|
+
):
|
|
49
43
|
scan_dirs = OrderedSet()
|
|
50
44
|
|
|
51
45
|
if package_name is not None:
|
|
@@ -53,6 +47,17 @@ def getPackageSpecificDLLDirectories(package_name, consider_plugins=True):
|
|
|
53
47
|
module_name=package_name, parent_package=None, level=0
|
|
54
48
|
)[1]
|
|
55
49
|
|
|
50
|
+
if package_dir is None:
|
|
51
|
+
if allow_not_found:
|
|
52
|
+
return scan_dirs
|
|
53
|
+
|
|
54
|
+
inclusion_logger.sysexit(
|
|
55
|
+
"""\
|
|
56
|
+
Error, failed to locate package '%s' while trying to look up DLL dependencies, \
|
|
57
|
+
that should not happen. Please report the issue."""
|
|
58
|
+
% package_name
|
|
59
|
+
)
|
|
60
|
+
|
|
56
61
|
if os.path.isdir(package_dir):
|
|
57
62
|
scan_dirs.add(package_dir)
|
|
58
63
|
scan_dirs.update(getSubDirectoriesWithDlls(package_dir))
|
|
@@ -65,6 +70,28 @@ def getPackageSpecificDLLDirectories(package_name, consider_plugins=True):
|
|
|
65
70
|
|
|
66
71
|
# TODO: Move this to plugins DLLs section.
|
|
67
72
|
if package_name == "torchvision" and consider_plugins:
|
|
68
|
-
scan_dirs.update(
|
|
73
|
+
scan_dirs.update(
|
|
74
|
+
getPackageSpecificDLLDirectories(
|
|
75
|
+
package_name=ModuleName("torch"),
|
|
76
|
+
consider_plugins=True,
|
|
77
|
+
allow_not_found=True,
|
|
78
|
+
)
|
|
79
|
+
)
|
|
69
80
|
|
|
70
81
|
return scan_dirs
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
85
|
+
# integrates with CPython, but also works on its own.
|
|
86
|
+
#
|
|
87
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
88
|
+
# you may not use this file except in compliance with the License.
|
|
89
|
+
# You may obtain a copy of the License at
|
|
90
|
+
#
|
|
91
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
92
|
+
#
|
|
93
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
94
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
95
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
96
|
+
# See the License for the specific language governing permissions and
|
|
97
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
"""DLL dependency scan methods for macOS. """
|
|
19
5
|
|
|
20
6
|
import os
|
|
@@ -28,14 +14,21 @@ from nuitka.plugins.Plugins import Plugins
|
|
|
28
14
|
from nuitka.PythonFlavors import isAnacondaPython, isNuitkaPython
|
|
29
15
|
from nuitka.PythonVersions import python_version
|
|
30
16
|
from nuitka.Tracing import inclusion_logger
|
|
31
|
-
from nuitka.utils.FileOperations import
|
|
17
|
+
from nuitka.utils.FileOperations import (
|
|
18
|
+
areSamePaths,
|
|
19
|
+
changeFilenameExtension,
|
|
20
|
+
getReportPath,
|
|
21
|
+
isFilenameBelowPath,
|
|
22
|
+
)
|
|
32
23
|
from nuitka.utils.Importing import getSharedLibrarySuffixes
|
|
33
24
|
from nuitka.utils.Json import loadJsonFromFilename
|
|
34
25
|
from nuitka.utils.SharedLibraries import (
|
|
35
26
|
callInstallNameTool,
|
|
36
27
|
getOtoolDependencyOutput,
|
|
37
28
|
getOtoolListing,
|
|
29
|
+
parseOtoolListingOutput,
|
|
38
30
|
)
|
|
31
|
+
from nuitka.utils.Utils import getArchitecture
|
|
39
32
|
|
|
40
33
|
from .DllDependenciesCommon import getLdLibraryPath
|
|
41
34
|
|
|
@@ -60,7 +53,7 @@ def _detectPythonRpaths():
|
|
|
60
53
|
if os.path.isdir(candidate):
|
|
61
54
|
result.append(candidate)
|
|
62
55
|
|
|
63
|
-
return tuple(result)
|
|
56
|
+
return tuple(set(result))
|
|
64
57
|
|
|
65
58
|
|
|
66
59
|
def detectBinaryPathDLLsMacOS(
|
|
@@ -103,8 +96,8 @@ def detectBinaryPathDLLsMacOS(
|
|
|
103
96
|
original_dir=os.path.dirname(sub_dll_filename),
|
|
104
97
|
binary_filename=sub_dll_filename,
|
|
105
98
|
package_name=package_name,
|
|
106
|
-
recursive=True,
|
|
107
99
|
keep_unresolved=True,
|
|
100
|
+
recursive=True,
|
|
108
101
|
)
|
|
109
102
|
|
|
110
103
|
merged_result.update(sub_result)
|
|
@@ -118,17 +111,9 @@ def detectBinaryPathDLLsMacOS(
|
|
|
118
111
|
|
|
119
112
|
|
|
120
113
|
def _parseOtoolListingOutput(output):
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
for line in output.split(b"\n")[1:]:
|
|
124
|
-
if str is not bytes:
|
|
125
|
-
line = line.decode("utf8")
|
|
126
|
-
|
|
127
|
-
if not line:
|
|
128
|
-
continue
|
|
129
|
-
|
|
130
|
-
filename = line.split(" (", 1)[0].strip()
|
|
114
|
+
result = OrderedSet()
|
|
131
115
|
|
|
116
|
+
for filename in parseOtoolListingOutput(output):
|
|
132
117
|
# Ignore dependency from system paths.
|
|
133
118
|
if not isFilenameBelowPath(
|
|
134
119
|
path=(
|
|
@@ -138,9 +123,49 @@ def _parseOtoolListingOutput(output):
|
|
|
138
123
|
),
|
|
139
124
|
filename=filename,
|
|
140
125
|
):
|
|
141
|
-
|
|
126
|
+
result.add(filename)
|
|
127
|
+
|
|
128
|
+
return result
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _getNonVersionedDllFilenames2(filename):
|
|
132
|
+
yield filename
|
|
133
|
+
|
|
134
|
+
if getArchitecture() == "arm64" and filename.endswith(".dylib"):
|
|
135
|
+
yield filename[:-6] + "_arm64.dylib"
|
|
136
|
+
|
|
137
|
+
match = re.match(r"^(.*?)(\.\d+)+\.dylib$", filename)
|
|
138
|
+
|
|
139
|
+
if match:
|
|
140
|
+
yield match.group(1) + ".dylib"
|
|
141
|
+
|
|
142
|
+
# TODO: The versioned filename, might do the same, and so could the
|
|
143
|
+
# "x86_64" specific DLL be a thing too, but we should have actual
|
|
144
|
+
# examples to be sure they are covered with tests.
|
|
145
|
+
if getArchitecture() == "arm64":
|
|
146
|
+
yield match.group(1) + "_arm64.dylib"
|
|
147
|
+
|
|
148
|
+
if filename.endswith(".so"):
|
|
149
|
+
yield changeFilenameExtension(filename, ".dylib")
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def _getNonVersionedDllFilenames(dll_filename, package_name):
|
|
153
|
+
for filename in _getNonVersionedDllFilenames2(dll_filename):
|
|
154
|
+
yield filename
|
|
155
|
+
|
|
156
|
+
# Some build systems, internally prefix DLLs with package names, attempt
|
|
157
|
+
# those removed as well.
|
|
158
|
+
if package_name is not None:
|
|
159
|
+
package_prefix = package_name.asString() + "."
|
|
160
|
+
|
|
161
|
+
if os.path.basename(dll_filename).startswith(package_prefix):
|
|
162
|
+
dll_filename = os.path.join(
|
|
163
|
+
os.path.dirname(dll_filename),
|
|
164
|
+
os.path.basename(dll_filename)[len(package_prefix) :],
|
|
165
|
+
)
|
|
142
166
|
|
|
143
|
-
|
|
167
|
+
for filename in _getNonVersionedDllFilenames2(dll_filename):
|
|
168
|
+
yield filename
|
|
144
169
|
|
|
145
170
|
|
|
146
171
|
def _resolveBinaryPathDLLsMacOS(
|
|
@@ -159,11 +184,17 @@ def _resolveBinaryPathDLLsMacOS(
|
|
|
159
184
|
for path in paths:
|
|
160
185
|
if path.startswith("@rpath/"):
|
|
161
186
|
# Resolve rpath to just the ones given, first match.
|
|
187
|
+
library_name = path[7:]
|
|
188
|
+
|
|
162
189
|
for rpath in rpaths:
|
|
163
|
-
if os.path.exists(os.path.join(rpath,
|
|
190
|
+
if os.path.exists(os.path.join(rpath, library_name)):
|
|
164
191
|
resolved_path = os.path.normpath(os.path.join(rpath, path[7:]))
|
|
165
192
|
break
|
|
166
193
|
else:
|
|
194
|
+
# These have become virtual in later macOS, spell-checker: ignore libz
|
|
195
|
+
if library_name in ("libc++.1.dylib", "libz.1.dylib"):
|
|
196
|
+
continue
|
|
197
|
+
|
|
167
198
|
# This is only a guess, might be missing package specific directories.
|
|
168
199
|
resolved_path = os.path.normpath(os.path.join(original_dir, path[7:]))
|
|
169
200
|
elif path.startswith("@loader_path/"):
|
|
@@ -199,38 +230,70 @@ def _resolveBinaryPathDLLsMacOS(
|
|
|
199
230
|
)
|
|
200
231
|
|
|
201
232
|
# Some extension modules seem to reference themselves by a different
|
|
202
|
-
# extension module name, so use that if it exists
|
|
203
|
-
|
|
233
|
+
# extension module name, so use that if it exists, and some versioned
|
|
234
|
+
# DLL dependencies do not matter.
|
|
235
|
+
if python_version >= 0x300:
|
|
204
236
|
so_suffixes = getSharedLibrarySuffixes()[:-1]
|
|
205
237
|
|
|
206
238
|
specific_suffix = so_suffixes[0]
|
|
207
239
|
abi_suffix = so_suffixes[1]
|
|
208
240
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if candidate is not None and os.path.exists(candidate):
|
|
217
|
-
resolved_path = candidate
|
|
218
|
-
|
|
219
|
-
# Sometimes self-dependencies are on a numbered version, but deployed is
|
|
220
|
-
# one version without it. The macOS just ignores that, and so we do.
|
|
221
|
-
if not os.path.exists(resolved_path):
|
|
222
|
-
match = re.match(r"^(.*)\.\d+\.dylib$", resolved_path)
|
|
241
|
+
for resolved_path_candidate in _getNonVersionedDllFilenames(
|
|
242
|
+
dll_filename=resolved_path, package_name=package_name
|
|
243
|
+
):
|
|
244
|
+
if os.path.exists(resolved_path_candidate):
|
|
245
|
+
resolved_path = resolved_path_candidate
|
|
246
|
+
break
|
|
223
247
|
|
|
224
|
-
|
|
225
|
-
|
|
248
|
+
if resolved_path_candidate.endswith(specific_suffix):
|
|
249
|
+
candidate = (
|
|
250
|
+
resolved_path_candidate[: -len(specific_suffix)] + abi_suffix
|
|
251
|
+
)
|
|
252
|
+
elif resolved_path_candidate.endswith(abi_suffix):
|
|
253
|
+
candidate = (
|
|
254
|
+
resolved_path_candidate[: -len(specific_suffix)] + abi_suffix
|
|
255
|
+
)
|
|
256
|
+
else:
|
|
257
|
+
candidate = None
|
|
226
258
|
|
|
227
|
-
if os.path.exists(candidate):
|
|
259
|
+
if candidate is not None and os.path.exists(candidate):
|
|
228
260
|
resolved_path = candidate
|
|
229
|
-
|
|
230
|
-
candidate = os.path.join(original_dir, os.path.basename(candidate))
|
|
261
|
+
break
|
|
231
262
|
|
|
232
|
-
|
|
233
|
-
|
|
263
|
+
# Sometimes self-dependencies are on a numbered version, but deployed is
|
|
264
|
+
# one version without it. Also be tolerant about changing suffixes
|
|
265
|
+
# internally. The macOS just ignores that, and so we do.
|
|
266
|
+
if not os.path.exists(resolved_path):
|
|
267
|
+
if os.path.basename(resolved_path) == os.path.basename(binary_filename):
|
|
268
|
+
resolved_path = binary_filename
|
|
269
|
+
else:
|
|
270
|
+
for suffix1, suffix2 in (
|
|
271
|
+
(".dylib", ".dylib"),
|
|
272
|
+
(".so", ".so"),
|
|
273
|
+
(".dylib", ".so"),
|
|
274
|
+
(".so", ".dylib"),
|
|
275
|
+
):
|
|
276
|
+
pattern = r"^(.*?)(\.\d+)*%s$" % re.escape(suffix1)
|
|
277
|
+
|
|
278
|
+
match = re.match(pattern, resolved_path)
|
|
279
|
+
|
|
280
|
+
if match:
|
|
281
|
+
candidate = match.group(1) + suffix2
|
|
282
|
+
|
|
283
|
+
if os.path.exists(candidate):
|
|
284
|
+
resolved_path = candidate
|
|
285
|
+
else:
|
|
286
|
+
candidate = os.path.join(
|
|
287
|
+
original_dir, os.path.basename(candidate)
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
if os.path.exists(candidate):
|
|
291
|
+
resolved_path = candidate
|
|
292
|
+
elif os.path.basename(candidate) == os.path.basename(
|
|
293
|
+
binary_filename
|
|
294
|
+
):
|
|
295
|
+
# Versioned dependency on itself in non-existent path.
|
|
296
|
+
resolved_path = binary_filename
|
|
234
297
|
|
|
235
298
|
if not os.path.exists(resolved_path):
|
|
236
299
|
acceptable, plugin_name = Plugins.isAcceptableMissingDLL(
|
|
@@ -241,6 +304,17 @@ def _resolveBinaryPathDLLsMacOS(
|
|
|
241
304
|
# TODO: Missing DLLs that are accepted, are not really forbidden, we
|
|
242
305
|
# should instead acknowledge them as missing, and treat that properly
|
|
243
306
|
# in using code.
|
|
307
|
+
if acceptable is True:
|
|
308
|
+
raise NuitkaForbiddenDLLEncounter(binary_filename, plugin_name)
|
|
309
|
+
|
|
310
|
+
# We check both the user and the used DLL if they are listed. This
|
|
311
|
+
# might be a form of bug hiding, that the later is not sufficient,
|
|
312
|
+
# that we should address later.
|
|
313
|
+
acceptable, plugin_name = Plugins.isAcceptableMissingDLL(
|
|
314
|
+
package_name=package_name,
|
|
315
|
+
filename=resolved_path,
|
|
316
|
+
)
|
|
317
|
+
|
|
244
318
|
if acceptable is True:
|
|
245
319
|
raise NuitkaForbiddenDLLEncounter(binary_filename, plugin_name)
|
|
246
320
|
|
|
@@ -318,7 +392,7 @@ def fixupBinaryDLLPathsMacOS(
|
|
|
318
392
|
inclusion_logger.sysexit(
|
|
319
393
|
"""\
|
|
320
394
|
Error, problem with dependency scan of '%s' with '%s' please report the bug."""
|
|
321
|
-
% (original_location, rpath_filename)
|
|
395
|
+
% (getReportPath(original_location), rpath_filename)
|
|
322
396
|
)
|
|
323
397
|
|
|
324
398
|
mapping.append((rpath_filename, "@executable_path/" + dist_path))
|
|
@@ -330,3 +404,19 @@ def fixupBinaryDLLPathsMacOS(
|
|
|
330
404
|
id_path=os.path.basename(binary_filename) if had_self else None,
|
|
331
405
|
rpath=None,
|
|
332
406
|
)
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
410
|
+
# integrates with CPython, but also works on its own.
|
|
411
|
+
#
|
|
412
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
413
|
+
# you may not use this file except in compliance with the License.
|
|
414
|
+
# You may obtain a copy of the License at
|
|
415
|
+
#
|
|
416
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
417
|
+
#
|
|
418
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
419
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
420
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
421
|
+
# See the License for the specific language governing permissions and
|
|
422
|
+
# limitations under the License.
|