Nuitka-winsvc 2.7.7__cp313-cp313-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/Builtins.py +259 -0
- nuitka/BytecodeCaching.py +184 -0
- nuitka/Bytecodes.py +109 -0
- nuitka/CacheCleanup.py +54 -0
- nuitka/Constants.py +425 -0
- nuitka/Errors.py +93 -0
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +1201 -0
- nuitka/ModuleRegistry.py +364 -0
- nuitka/OptionParsing.py +2473 -0
- nuitka/Options.py +2948 -0
- nuitka/OutputDirectories.py +201 -0
- nuitka/PostProcessing.py +551 -0
- nuitka/Progress.py +252 -0
- nuitka/PythonFlavors.py +426 -0
- nuitka/PythonOperators.py +146 -0
- nuitka/PythonVersions.py +513 -0
- nuitka/Serialization.py +291 -0
- nuitka/SourceCodeReferences.py +176 -0
- nuitka/Tracing.py +579 -0
- nuitka/TreeXML.py +141 -0
- nuitka/Variables.py +515 -0
- nuitka/Version.py +88 -0
- nuitka/__init__.py +19 -0
- nuitka/__main__.py +224 -0
- nuitka/__past__.py +217 -0
- nuitka/build/Backend.scons +1111 -0
- nuitka/build/CCompilerVersion.scons +281 -0
- nuitka/build/DataComposerInterface.py +116 -0
- nuitka/build/Offsets.scons +626 -0
- nuitka/build/Onefile.scons +564 -0
- nuitka/build/SconsCaching.py +451 -0
- nuitka/build/SconsCompilerSettings.py +1133 -0
- nuitka/build/SconsHacks.py +215 -0
- nuitka/build/SconsInterface.py +664 -0
- nuitka/build/SconsProgress.py +100 -0
- nuitka/build/SconsSpawn.py +436 -0
- nuitka/build/SconsUtils.py +939 -0
- nuitka/build/__init__.py +19 -0
- nuitka/build/include/nuitka/allocator.h +450 -0
- nuitka/build/include/nuitka/builtins.h +97 -0
- nuitka/build/include/nuitka/calling.h +123 -0
- nuitka/build/include/nuitka/checkers.h +39 -0
- nuitka/build/include/nuitka/checksum_tools.h +28 -0
- nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
- nuitka/build/include/nuitka/compiled_cell.h +64 -0
- nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
- nuitka/build/include/nuitka/compiled_frame.h +502 -0
- nuitka/build/include/nuitka/compiled_function.h +170 -0
- nuitka/build/include/nuitka/compiled_generator.h +287 -0
- nuitka/build/include/nuitka/compiled_method.h +54 -0
- nuitka/build/include/nuitka/constants.h +251 -0
- nuitka/build/include/nuitka/constants_blob.h +34 -0
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +51 -0
- nuitka/build/include/nuitka/exception_groups.h +167 -0
- nuitka/build/include/nuitka/exceptions.h +1458 -0
- nuitka/build/include/nuitka/filesystem_paths.h +117 -0
- nuitka/build/include/nuitka/freelists.h +92 -0
- nuitka/build/include/nuitka/hedley.h +1774 -0
- nuitka/build/include/nuitka/helper/attributes.h +90 -0
- nuitka/build/include/nuitka/helper/boolean.h +86 -0
- nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
- nuitka/build/include/nuitka/helper/bytes.h +28 -0
- nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
- nuitka/build/include/nuitka/helper/complex.h +46 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
- nuitka/build/include/nuitka/helper/floats.h +32 -0
- nuitka/build/include/nuitka/helper/import_hard.h +121 -0
- nuitka/build/include/nuitka/helper/indexes.h +47 -0
- nuitka/build/include/nuitka/helper/ints.h +165 -0
- nuitka/build/include/nuitka/helper/iterators.h +376 -0
- nuitka/build/include/nuitka/helper/lists.h +94 -0
- nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
- nuitka/build/include/nuitka/helper/mappings.h +39 -0
- nuitka/build/include/nuitka/helper/operations.h +114 -0
- nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
- nuitka/build/include/nuitka/helper/raising.h +114 -0
- nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
- nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
- nuitka/build/include/nuitka/helper/sequences.h +33 -0
- nuitka/build/include/nuitka/helper/sets.h +25 -0
- nuitka/build/include/nuitka/helper/slices.h +314 -0
- nuitka/build/include/nuitka/helper/strings.h +30 -0
- nuitka/build/include/nuitka/helper/subscripts.h +390 -0
- nuitka/build/include/nuitka/helper/tuples.h +187 -0
- nuitka/build/include/nuitka/helpers.h +417 -0
- nuitka/build/include/nuitka/importing.h +149 -0
- nuitka/build/include/nuitka/incbin.h +402 -0
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +626 -0
- nuitka/build/include/nuitka/printing.h +84 -0
- nuitka/build/include/nuitka/python_pgo.h +57 -0
- nuitka/build/include/nuitka/safe_string_ops.h +57 -0
- nuitka/build/include/nuitka/threading.h +142 -0
- nuitka/build/include/nuitka/tracing.h +82 -0
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +91 -0
- nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
- nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
- nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
- nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
- nuitka/build/inline_copy/bin/scons.py +58 -0
- nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
- nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
- nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
- nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
- nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
- nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
- nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
- nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
- nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
- nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
- nuitka/build/inline_copy/glob2/LICENSE +27 -0
- nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
- nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
- nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
- nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
- nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
- nuitka/build/inline_copy/jinja2/README.rst +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
- nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
- nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
- nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
- nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
- nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
- nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
- nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
- nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
- nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
- nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
- nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
- nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
- nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
- nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
- nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
- nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
- nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
- nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
- nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
- nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
- nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
- nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
- nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
- nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
- nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
- nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
- nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
- nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
- nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
- nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
- nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
- nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
- nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
- nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
- nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
- nuitka/build/inline_copy/yaml/LICENSE +20 -0
- nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
- nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
- nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
- nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
- nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
- nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
- nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
- nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
- nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
- nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
- nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
- nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
- nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
- nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
- nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
- nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
- nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
- 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/inline_copy/zstd/LICENSE.txt +30 -0
- nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
- nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
- nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
- nuitka/build/inline_copy/zstd/common/debug.h +107 -0
- nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
- nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
- nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
- nuitka/build/inline_copy/zstd/common/fse.h +715 -0
- nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
- nuitka/build/inline_copy/zstd/common/huf.h +361 -0
- nuitka/build/inline_copy/zstd/common/mem.h +426 -0
- nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
- nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
- nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
- nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
- nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
- nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
- nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
- nuitka/build/inline_copy/zstd/zstd.h +2391 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
- nuitka/build/static_src/CompiledCellType.c +300 -0
- nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
- nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
- nuitka/build/static_src/CompiledFrameType.c +1337 -0
- nuitka/build/static_src/CompiledFunctionType.c +3320 -0
- nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
- nuitka/build/static_src/CompiledMethodType.c +614 -0
- nuitka/build/static_src/GenerateHeadersMain.c +30 -0
- nuitka/build/static_src/HelpersAllocator.c +939 -0
- nuitka/build/static_src/HelpersAttributes.c +1241 -0
- nuitka/build/static_src/HelpersBuiltin.c +901 -0
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
- nuitka/build/static_src/HelpersBytes.c +107 -0
- nuitka/build/static_src/HelpersCalling.c +397 -0
- nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
- nuitka/build/static_src/HelpersChecksumTools.c +59 -0
- nuitka/build/static_src/HelpersClasses.c +91 -0
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
- nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
- nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
- nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
- nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
- nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
- nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
- nuitka/build/static_src/HelpersConsole.c +124 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
- nuitka/build/static_src/HelpersDeepcopy.c +636 -0
- nuitka/build/static_src/HelpersDictionaries.c +1739 -0
- nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
- nuitka/build/static_src/HelpersExceptions.c +298 -0
- nuitka/build/static_src/HelpersFiles.c +353 -0
- nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
- nuitka/build/static_src/HelpersFloats.c +92 -0
- nuitka/build/static_src/HelpersHeapStorage.c +68 -0
- nuitka/build/static_src/HelpersImport.c +506 -0
- nuitka/build/static_src/HelpersImportHard.c +526 -0
- nuitka/build/static_src/HelpersJitSources.c +48 -0
- nuitka/build/static_src/HelpersLists.c +899 -0
- nuitka/build/static_src/HelpersListsGenerated.c +564 -0
- nuitka/build/static_src/HelpersMappings.c +46 -0
- nuitka/build/static_src/HelpersMatching.c +192 -0
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
- nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
- nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
- nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
- nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
- nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
- nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
- nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
- nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
- nuitka/build/static_src/HelpersProfiling.c +104 -0
- nuitka/build/static_src/HelpersPythonPgo.c +113 -0
- nuitka/build/static_src/HelpersRaising.c +447 -0
- nuitka/build/static_src/HelpersSafeStrings.c +185 -0
- nuitka/build/static_src/HelpersSequences.c +134 -0
- nuitka/build/static_src/HelpersSlices.c +73 -0
- nuitka/build/static_src/HelpersStrings.c +998 -0
- nuitka/build/static_src/HelpersTuples.c +148 -0
- nuitka/build/static_src/HelpersTypes.c +329 -0
- nuitka/build/static_src/InspectPatcher.c +439 -0
- nuitka/build/static_src/MainProgram.c +2060 -0
- nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
- nuitka/build/static_src/OnefileBootstrap.c +1580 -0
- nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
- nuitka/code_generation/AsyncgenCodes.py +186 -0
- nuitka/code_generation/AttributeCodes.py +357 -0
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
- nuitka/code_generation/BranchCodes.py +67 -0
- nuitka/code_generation/BuiltinCodes.py +529 -0
- nuitka/code_generation/CallCodes.py +1186 -0
- nuitka/code_generation/ClassCodes.py +156 -0
- nuitka/code_generation/CodeGeneration.py +1078 -0
- nuitka/code_generation/CodeHelperSelection.py +81 -0
- nuitka/code_generation/CodeHelpers.py +455 -0
- nuitka/code_generation/CodeObjectCodes.py +165 -0
- nuitka/code_generation/ComparisonCodes.py +569 -0
- nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
- nuitka/code_generation/ConditionalCodes.py +236 -0
- nuitka/code_generation/ConstantCodes.py +243 -0
- nuitka/code_generation/Contexts.py +1248 -0
- nuitka/code_generation/CoroutineCodes.py +253 -0
- nuitka/code_generation/CtypesCodes.py +46 -0
- nuitka/code_generation/DictCodes.py +918 -0
- nuitka/code_generation/Emission.py +75 -0
- nuitka/code_generation/ErrorCodes.py +281 -0
- nuitka/code_generation/EvalCodes.py +444 -0
- nuitka/code_generation/ExceptionCodes.py +337 -0
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
- nuitka/code_generation/ExpressionCodes.py +61 -0
- nuitka/code_generation/FrameCodes.py +518 -0
- nuitka/code_generation/FunctionCodes.py +858 -0
- nuitka/code_generation/GeneratorCodes.py +218 -0
- nuitka/code_generation/GlobalConstants.py +249 -0
- nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
- nuitka/code_generation/IdCodes.py +53 -0
- nuitka/code_generation/ImportCodes.py +468 -0
- nuitka/code_generation/Indentation.py +45 -0
- nuitka/code_generation/IndexCodes.py +50 -0
- nuitka/code_generation/InjectCCodes.py +28 -0
- nuitka/code_generation/IntegerCodes.py +110 -0
- nuitka/code_generation/IteratorCodes.py +378 -0
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +68 -0
- nuitka/code_generation/LineNumberCodes.py +91 -0
- nuitka/code_generation/ListCodes.py +502 -0
- nuitka/code_generation/LoaderCodes.py +193 -0
- nuitka/code_generation/LocalsDictCodes.py +359 -0
- nuitka/code_generation/LoopCodes.py +88 -0
- nuitka/code_generation/MatchCodes.py +67 -0
- nuitka/code_generation/ModuleCodes.py +247 -0
- nuitka/code_generation/Namify.py +260 -0
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +398 -0
- nuitka/code_generation/PackageResourceCodes.py +986 -0
- nuitka/code_generation/PrintCodes.py +93 -0
- nuitka/code_generation/PythonAPICodes.py +215 -0
- nuitka/code_generation/RaisingCodes.py +481 -0
- nuitka/code_generation/Reports.py +115 -0
- nuitka/code_generation/ReturnCodes.py +143 -0
- nuitka/code_generation/SetCodes.py +196 -0
- nuitka/code_generation/SliceCodes.py +465 -0
- nuitka/code_generation/StringCodes.py +303 -0
- nuitka/code_generation/SubscriptCodes.py +263 -0
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +326 -0
- nuitka/code_generation/TupleCodes.py +115 -0
- nuitka/code_generation/TypeAliasCodes.py +120 -0
- nuitka/code_generation/VariableCodes.py +519 -0
- nuitka/code_generation/VariableDeclarations.py +279 -0
- nuitka/code_generation/YieldCodes.py +253 -0
- nuitka/code_generation/__init__.py +19 -0
- nuitka/code_generation/c_types/CTypeBases.py +177 -0
- nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
- nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
- nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
- nuitka/code_generation/c_types/CTypeVoids.py +92 -0
- nuitka/code_generation/c_types/__init__.py +19 -0
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
- nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
- nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
- nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
- nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
- nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
- nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
- nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
- nuitka/code_generation/templates/__init__.py +19 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
- nuitka/containers/Namedtuples.py +51 -0
- nuitka/containers/OrderedDicts.py +191 -0
- nuitka/containers/OrderedSets.py +123 -0
- nuitka/containers/OrderedSetsFallback.py +139 -0
- nuitka/containers/__init__.py +19 -0
- nuitka/distutils/Build.py +76 -0
- nuitka/distutils/DistutilCommands.py +438 -0
- nuitka/distutils/__init__.py +19 -0
- nuitka/finalizations/Finalization.py +35 -0
- nuitka/finalizations/FinalizeMarkups.py +136 -0
- nuitka/finalizations/__init__.py +19 -0
- nuitka/freezer/DependsExe.py +257 -0
- nuitka/freezer/DllDependenciesCommon.py +97 -0
- nuitka/freezer/DllDependenciesMacOS.py +444 -0
- nuitka/freezer/DllDependenciesPosix.py +242 -0
- nuitka/freezer/DllDependenciesWin32.py +315 -0
- nuitka/freezer/ImportDetection.py +359 -0
- nuitka/freezer/IncludedDataFiles.py +689 -0
- nuitka/freezer/IncludedEntryPoints.py +376 -0
- nuitka/freezer/Onefile.py +296 -0
- nuitka/freezer/Standalone.py +520 -0
- nuitka/freezer/__init__.py +19 -0
- nuitka/importing/IgnoreListing.py +449 -0
- nuitka/importing/ImportCache.py +95 -0
- nuitka/importing/ImportResolving.py +186 -0
- nuitka/importing/Importing.py +1200 -0
- nuitka/importing/PreloadedPackages.py +164 -0
- nuitka/importing/Recursion.py +611 -0
- nuitka/importing/StandardLibrary.py +429 -0
- nuitka/importing/__init__.py +19 -0
- nuitka/nodes/AsyncgenNodes.py +107 -0
- nuitka/nodes/AttributeLookupNodes.py +124 -0
- nuitka/nodes/AttributeNodes.py +386 -0
- nuitka/nodes/AttributeNodesGenerated.py +10734 -0
- nuitka/nodes/BuiltinAllNodes.py +115 -0
- nuitka/nodes/BuiltinAnyNodes.py +124 -0
- nuitka/nodes/BuiltinComplexNodes.py +83 -0
- nuitka/nodes/BuiltinDecodingNodes.py +52 -0
- nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
- nuitka/nodes/BuiltinDictNodes.py +140 -0
- nuitka/nodes/BuiltinFormatNodes.py +159 -0
- nuitka/nodes/BuiltinHashNodes.py +63 -0
- nuitka/nodes/BuiltinInputNodes.py +39 -0
- nuitka/nodes/BuiltinIntegerNodes.py +170 -0
- nuitka/nodes/BuiltinIteratorNodes.py +391 -0
- nuitka/nodes/BuiltinLenNodes.py +61 -0
- nuitka/nodes/BuiltinNextNodes.py +111 -0
- nuitka/nodes/BuiltinOpenNodes.py +148 -0
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
- nuitka/nodes/BuiltinRangeNodes.py +690 -0
- nuitka/nodes/BuiltinRefNodes.py +314 -0
- nuitka/nodes/BuiltinSumNodes.py +104 -0
- nuitka/nodes/BuiltinTypeNodes.py +454 -0
- nuitka/nodes/BuiltinVarsNodes.py +44 -0
- nuitka/nodes/BytesNodes.py +829 -0
- nuitka/nodes/CallNodes.py +217 -0
- nuitka/nodes/Checkers.py +55 -0
- nuitka/nodes/ChildrenHavingMixins.py +21576 -0
- nuitka/nodes/ClassNodes.py +286 -0
- nuitka/nodes/CodeObjectSpecs.py +230 -0
- nuitka/nodes/ComparisonNodes.py +687 -0
- nuitka/nodes/ConditionalNodes.py +884 -0
- nuitka/nodes/ConstantRefNodes.py +1717 -0
- nuitka/nodes/ContainerMakingNodes.py +408 -0
- nuitka/nodes/ContainerOperationNodes.py +87 -0
- nuitka/nodes/CoroutineNodes.py +144 -0
- nuitka/nodes/CtypesNodes.py +51 -0
- nuitka/nodes/DictionaryNodes.py +1513 -0
- nuitka/nodes/ExceptionNodes.py +393 -0
- nuitka/nodes/ExecEvalNodes.py +229 -0
- nuitka/nodes/ExpressionBases.py +1301 -0
- nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
- nuitka/nodes/ExpressionShapeMixins.py +886 -0
- nuitka/nodes/FrameNodes.py +413 -0
- nuitka/nodes/FunctionAttributeNodes.py +102 -0
- nuitka/nodes/FunctionNodes.py +1303 -0
- nuitka/nodes/FutureSpecs.py +224 -0
- nuitka/nodes/GeneratorNodes.py +201 -0
- nuitka/nodes/GlobalsLocalsNodes.py +209 -0
- nuitka/nodes/HardImportNodesGenerated.py +3599 -0
- nuitka/nodes/ImportHardNodes.py +185 -0
- nuitka/nodes/ImportNodes.py +1366 -0
- nuitka/nodes/IndicatorMixins.py +79 -0
- nuitka/nodes/InjectCNodes.py +51 -0
- nuitka/nodes/IterationHandles.py +407 -0
- nuitka/nodes/KeyValuePairNodes.py +378 -0
- nuitka/nodes/ListOperationNodes.py +525 -0
- nuitka/nodes/LocalsDictNodes.py +717 -0
- nuitka/nodes/LocalsScopes.py +505 -0
- nuitka/nodes/LoopNodes.py +445 -0
- nuitka/nodes/MatchNodes.py +60 -0
- nuitka/nodes/ModuleAttributeNodes.py +180 -0
- nuitka/nodes/ModuleNodes.py +1137 -0
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +890 -0
- nuitka/nodes/NodeMakingHelpers.py +481 -0
- nuitka/nodes/NodeMetaClasses.py +172 -0
- nuitka/nodes/OperatorNodes.py +944 -0
- nuitka/nodes/OperatorNodesUnary.py +403 -0
- nuitka/nodes/OsSysNodes.py +215 -0
- nuitka/nodes/OutlineNodes.py +372 -0
- nuitka/nodes/PackageMetadataNodes.py +982 -0
- nuitka/nodes/PackageResourceNodes.py +424 -0
- nuitka/nodes/PrintNodes.py +105 -0
- nuitka/nodes/ReturnNodes.py +255 -0
- nuitka/nodes/SideEffectNodes.py +139 -0
- nuitka/nodes/SliceNodes.py +386 -0
- nuitka/nodes/StatementBasesGenerated.py +3419 -0
- nuitka/nodes/StatementNodes.py +316 -0
- nuitka/nodes/StrNodes.py +919 -0
- nuitka/nodes/StringConcatenationNodes.py +103 -0
- nuitka/nodes/SubscriptNodes.py +245 -0
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +519 -0
- nuitka/nodes/TypeMatchNodes.py +65 -0
- nuitka/nodes/TypeNodes.py +390 -0
- nuitka/nodes/VariableAssignNodes.py +1177 -0
- nuitka/nodes/VariableDelNodes.py +320 -0
- nuitka/nodes/VariableNameNodes.py +153 -0
- nuitka/nodes/VariableRefNodes.py +895 -0
- nuitka/nodes/VariableReleaseNodes.py +153 -0
- nuitka/nodes/YieldNodes.py +121 -0
- nuitka/nodes/__init__.py +19 -0
- nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
- nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +255 -0
- nuitka/nodes/shapes/StandardShapes.py +1384 -0
- nuitka/nodes/shapes/__init__.py +19 -0
- nuitka/optimizations/BytecodeDemotion.py +105 -0
- nuitka/optimizations/FunctionInlining.py +110 -0
- nuitka/optimizations/Graphs.py +70 -0
- nuitka/optimizations/Optimization.py +363 -0
- nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
- nuitka/optimizations/Tags.py +76 -0
- nuitka/optimizations/TraceCollections.py +1257 -0
- nuitka/optimizations/ValueTraces.py +980 -0
- nuitka/optimizations/__init__.py +19 -0
- nuitka/pgo/PGO.py +160 -0
- nuitka/pgo/__init__.py +19 -0
- nuitka/plugins/PluginBase.py +1924 -0
- nuitka/plugins/Plugins.py +2007 -0
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +19 -0
- nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
- nuitka/plugins/standard/DataFilesPlugin.py +311 -0
- nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
- nuitka/plugins/standard/DillPlugin.py +137 -0
- nuitka/plugins/standard/DllFilesPlugin.py +527 -0
- nuitka/plugins/standard/EnumPlugin.py +64 -0
- nuitka/plugins/standard/EventletPlugin.py +57 -0
- nuitka/plugins/standard/GeventPlugin.py +64 -0
- nuitka/plugins/standard/GiPlugin.py +118 -0
- nuitka/plugins/standard/GlfwPlugin.py +138 -0
- nuitka/plugins/standard/ImplicitImports.py +845 -0
- nuitka/plugins/standard/KivyPlugin.py +141 -0
- nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
- nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
- nuitka/plugins/standard/NumpyPlugin.py +35 -0
- nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
- nuitka/plugins/standard/PbrPlugin.py +62 -0
- nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
- nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
- nuitka/plugins/standard/PmwPlugin.py +248 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
- nuitka/plugins/standard/PywebViewPlugin.py +81 -0
- nuitka/plugins/standard/SpacyPlugin.py +137 -0
- nuitka/plugins/standard/TensorflowPlugin.py +35 -0
- nuitka/plugins/standard/TkinterPlugin.py +416 -0
- nuitka/plugins/standard/TorchPlugin.py +35 -0
- nuitka/plugins/standard/TransformersPlugin.py +121 -0
- nuitka/plugins/standard/TrioPlugin.py +33 -0
- nuitka/plugins/standard/UpxPlugin.py +174 -0
- nuitka/plugins/standard/__init__.py +19 -0
- nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
- nuitka/reports/CompilationReportReader.py +83 -0
- nuitka/reports/LicenseReport.rst.j2 +41 -0
- nuitka/reports/Reports.py +961 -0
- nuitka/reports/__init__.py +19 -0
- nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
- nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
- nuitka/specs/BuiltinListOperationSpecs.py +80 -0
- nuitka/specs/BuiltinParameterSpecs.py +831 -0
- nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
- nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
- nuitka/specs/HardImportSpecs.py +236 -0
- nuitka/specs/ParameterSpecs.py +630 -0
- nuitka/specs/__init__.py +19 -0
- nuitka/tools/Basics.py +55 -0
- nuitka/tools/__init__.py +19 -0
- nuitka/tools/commercial/__init__.py +21 -0
- nuitka/tools/data_composer/DataComposer.py +593 -0
- nuitka/tools/data_composer/__init__.py +19 -0
- nuitka/tools/data_composer/__main__.py +41 -0
- nuitka/tools/environments/CreateEnvironment.py +69 -0
- nuitka/tools/environments/Virtualenv.py +158 -0
- nuitka/tools/environments/__init__.py +19 -0
- nuitka/tools/general/__init__.py +19 -0
- nuitka/tools/general/dll_report/__init__.py +19 -0
- nuitka/tools/general/dll_report/__main__.py +83 -0
- nuitka/tools/general/find_module/FindModuleCode.py +127 -0
- nuitka/tools/general/find_module/__init__.py +19 -0
- nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
- nuitka/tools/general/generate_header/__init__.py +19 -0
- nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
- nuitka/tools/onefile_compressor/__init__.py +19 -0
- nuitka/tools/onefile_compressor/__main__.py +41 -0
- nuitka/tools/podman/Podman.py +55 -0
- nuitka/tools/podman/__init__.py +19 -0
- nuitka/tools/podman/__main__.py +425 -0
- nuitka/tools/profiler/__init__.py +19 -0
- nuitka/tools/profiler/__main__.py +93 -0
- nuitka/tools/scanning/DisplayDistributions.py +39 -0
- nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
- nuitka/tools/scanning/DisplayPackageData.py +73 -0
- nuitka/tools/scanning/__init__.py +19 -0
- nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
- nuitka/tools/specialize/Common.py +380 -0
- nuitka/tools/specialize/SpecializeC.py +1483 -0
- nuitka/tools/specialize/SpecializePython.py +1151 -0
- nuitka/tools/specialize/__init__.py +19 -0
- nuitka/tools/testing/Common.py +2007 -0
- nuitka/tools/testing/Constructs.py +53 -0
- nuitka/tools/testing/DocTests.py +156 -0
- nuitka/tools/testing/OutputComparison.py +313 -0
- nuitka/tools/testing/Pythons.py +34 -0
- nuitka/tools/testing/RuntimeTracing.py +260 -0
- nuitka/tools/testing/SearchModes.py +208 -0
- nuitka/tools/testing/Valgrind.py +103 -0
- nuitka/tools/testing/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
- nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
- nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
- nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
- nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
- nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
- nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
- nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
- nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/Common.py +55 -0
- nuitka/tools/watch/Conda.py +125 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/Pacman.py +73 -0
- nuitka/tools/watch/Pipenv.py +145 -0
- nuitka/tools/watch/__init__.py +19 -0
- nuitka/tools/watch/__main__.py +615 -0
- nuitka/tree/Building.py +1459 -0
- nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
- nuitka/tree/Extractions.py +48 -0
- nuitka/tree/FutureSpecState.py +71 -0
- nuitka/tree/InternalModule.py +96 -0
- nuitka/tree/Operations.py +45 -0
- nuitka/tree/ReformulationAssertStatements.py +97 -0
- nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
- nuitka/tree/ReformulationBooleanExpressions.py +97 -0
- nuitka/tree/ReformulationCallExpressions.py +314 -0
- nuitka/tree/ReformulationClasses.py +407 -0
- nuitka/tree/ReformulationClasses3.py +1149 -0
- nuitka/tree/ReformulationComparisonExpressions.py +174 -0
- nuitka/tree/ReformulationContractionExpressions.py +676 -0
- nuitka/tree/ReformulationDictionaryCreation.py +304 -0
- nuitka/tree/ReformulationExecStatements.py +386 -0
- nuitka/tree/ReformulationForLoopStatements.py +215 -0
- nuitka/tree/ReformulationFunctionStatements.py +931 -0
- nuitka/tree/ReformulationImportStatements.py +333 -0
- nuitka/tree/ReformulationLambdaExpressions.py +185 -0
- nuitka/tree/ReformulationMatchStatements.py +797 -0
- nuitka/tree/ReformulationMultidist.py +80 -0
- nuitka/tree/ReformulationNamespacePackages.py +239 -0
- nuitka/tree/ReformulationPrintStatements.py +127 -0
- nuitka/tree/ReformulationSequenceCreation.py +438 -0
- nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
- nuitka/tree/ReformulationTryExceptStatements.py +418 -0
- nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
- nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
- nuitka/tree/ReformulationWithStatements.py +382 -0
- nuitka/tree/ReformulationYieldExpressions.py +133 -0
- nuitka/tree/SourceHandling.py +476 -0
- nuitka/tree/SyntaxErrors.py +143 -0
- nuitka/tree/TreeHelpers.py +720 -0
- nuitka/tree/VariableClosure.py +483 -0
- nuitka/tree/__init__.py +19 -0
- nuitka/utils/AppDirs.py +104 -0
- nuitka/utils/CStrings.py +208 -0
- nuitka/utils/CommandLineOptions.py +207 -0
- nuitka/utils/Distributions.py +728 -0
- nuitka/utils/Download.py +217 -0
- nuitka/utils/Execution.py +517 -0
- nuitka/utils/FileOperations.py +1587 -0
- nuitka/utils/Hashing.py +137 -0
- nuitka/utils/Images.py +79 -0
- nuitka/utils/Importing.py +335 -0
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +254 -0
- nuitka/utils/InstanceCounters.py +86 -0
- nuitka/utils/Jinja2.py +158 -0
- nuitka/utils/Json.py +40 -0
- nuitka/utils/MacOSApp.py +134 -0
- nuitka/utils/MemoryUsage.py +165 -0
- nuitka/utils/ModuleNames.py +317 -0
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +152 -0
- nuitka/utils/Rest.py +60 -0
- nuitka/utils/SharedLibraries.py +1014 -0
- nuitka/utils/Shebang.py +113 -0
- nuitka/utils/Signing.py +144 -0
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +260 -0
- nuitka/utils/ThreadedExecutor.py +87 -0
- nuitka/utils/Timing.py +102 -0
- nuitka/utils/Utils.py +483 -0
- nuitka/utils/WindowsFileUsage.py +337 -0
- nuitka/utils/WindowsResources.py +652 -0
- nuitka/utils/Yaml.py +247 -0
- nuitka/utils/__init__.py +19 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
- nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
- nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
- nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
- nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
- nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
- nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
"""DLL dependency scan methods for macOS. """
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
import re
|
|
8
|
+
import sys
|
|
9
|
+
|
|
10
|
+
from nuitka.containers.OrderedDicts import OrderedDict
|
|
11
|
+
from nuitka.containers.OrderedSets import OrderedSet
|
|
12
|
+
from nuitka.Errors import NuitkaForbiddenDLLEncounter
|
|
13
|
+
from nuitka.plugins.Plugins import Plugins
|
|
14
|
+
from nuitka.PythonFlavors import isAnacondaPython, isNuitkaPython
|
|
15
|
+
from nuitka.PythonVersions import python_version
|
|
16
|
+
from nuitka.Tracing import inclusion_logger
|
|
17
|
+
from nuitka.utils.FileOperations import (
|
|
18
|
+
areSamePaths,
|
|
19
|
+
changeFilenameExtension,
|
|
20
|
+
getReportPath,
|
|
21
|
+
isFilenameBelowPath,
|
|
22
|
+
)
|
|
23
|
+
from nuitka.utils.Importing import getExtensionModuleSuffixes
|
|
24
|
+
from nuitka.utils.Json import loadJsonFromFilename
|
|
25
|
+
from nuitka.utils.SharedLibraries import (
|
|
26
|
+
callInstallNameTool,
|
|
27
|
+
getOtoolDependencyOutput,
|
|
28
|
+
getOtoolListing,
|
|
29
|
+
parseOtoolListingOutput,
|
|
30
|
+
)
|
|
31
|
+
from nuitka.utils.Utils import getArchitecture
|
|
32
|
+
|
|
33
|
+
from .DllDependenciesCommon import getLdLibraryPath
|
|
34
|
+
|
|
35
|
+
# Detected Python rpath is cached.
|
|
36
|
+
_detected_python_rpaths = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _detectPythonRpaths():
|
|
40
|
+
result = []
|
|
41
|
+
|
|
42
|
+
if isAnacondaPython() and "CONDA_PREFIX" in os.environ:
|
|
43
|
+
candidate = os.path.normpath(os.path.join(os.environ["CONDA_PREFIX"], "lib"))
|
|
44
|
+
|
|
45
|
+
if os.path.isdir(candidate):
|
|
46
|
+
result.append(candidate)
|
|
47
|
+
|
|
48
|
+
if isAnacondaPython() and "CONDA_PYTHON_EXE" in os.environ:
|
|
49
|
+
candidate = os.path.normpath(
|
|
50
|
+
os.path.join(os.path.dirname(os.environ["CONDA_PYTHON_EXE"]), "..", "lib")
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
if os.path.isdir(candidate):
|
|
54
|
+
result.append(candidate)
|
|
55
|
+
|
|
56
|
+
return tuple(set(result))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def detectBinaryPathDLLsMacOS(
|
|
60
|
+
original_dir,
|
|
61
|
+
binary_filename,
|
|
62
|
+
package_name,
|
|
63
|
+
keep_unresolved,
|
|
64
|
+
recursive,
|
|
65
|
+
recursive_dlls=None,
|
|
66
|
+
):
|
|
67
|
+
assert os.path.exists(binary_filename), binary_filename
|
|
68
|
+
|
|
69
|
+
# This is for Anaconda, which puts required libraries of packages in this folder.
|
|
70
|
+
# do it only once, pylint: disable=global-statement
|
|
71
|
+
global _detected_python_rpaths
|
|
72
|
+
if _detected_python_rpaths is None:
|
|
73
|
+
_detected_python_rpaths = _detectPythonRpaths()
|
|
74
|
+
|
|
75
|
+
package_specific_dirs = getLdLibraryPath(
|
|
76
|
+
package_name=package_name,
|
|
77
|
+
python_rpaths=_detected_python_rpaths,
|
|
78
|
+
original_dir=original_dir,
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
# This is recursive potentially and might add more and more.
|
|
82
|
+
stdout = getOtoolDependencyOutput(
|
|
83
|
+
filename=binary_filename,
|
|
84
|
+
package_specific_dirs=package_specific_dirs,
|
|
85
|
+
)
|
|
86
|
+
paths = _parseOtoolListingOutput(stdout)
|
|
87
|
+
|
|
88
|
+
had_self, resolved_result = _resolveBinaryPathDLLsMacOS(
|
|
89
|
+
original_dir=original_dir,
|
|
90
|
+
binary_filename=binary_filename,
|
|
91
|
+
paths=paths,
|
|
92
|
+
package_specific_dirs=package_specific_dirs,
|
|
93
|
+
package_name=package_name,
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
if recursive:
|
|
97
|
+
merged_result = OrderedDict(resolved_result)
|
|
98
|
+
|
|
99
|
+
# For recursive DLL detection, cycle may exist, so we keep track of what
|
|
100
|
+
# was seen so far.
|
|
101
|
+
if recursive_dlls is None:
|
|
102
|
+
recursive_dlls = set([binary_filename])
|
|
103
|
+
else:
|
|
104
|
+
recursive_dlls = set(recursive_dlls)
|
|
105
|
+
recursive_dlls.add(binary_filename)
|
|
106
|
+
|
|
107
|
+
for sub_dll_filename in resolved_result:
|
|
108
|
+
if sub_dll_filename in recursive_dlls:
|
|
109
|
+
continue
|
|
110
|
+
|
|
111
|
+
_, sub_result = detectBinaryPathDLLsMacOS(
|
|
112
|
+
original_dir=os.path.dirname(sub_dll_filename),
|
|
113
|
+
binary_filename=sub_dll_filename,
|
|
114
|
+
package_name=package_name,
|
|
115
|
+
keep_unresolved=True,
|
|
116
|
+
recursive=True,
|
|
117
|
+
recursive_dlls=recursive_dlls,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
merged_result.update(sub_result)
|
|
121
|
+
|
|
122
|
+
resolved_result = merged_result
|
|
123
|
+
|
|
124
|
+
if keep_unresolved:
|
|
125
|
+
return had_self, resolved_result
|
|
126
|
+
else:
|
|
127
|
+
return OrderedSet(resolved_result)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _parseOtoolListingOutput(output):
|
|
131
|
+
result = OrderedSet()
|
|
132
|
+
|
|
133
|
+
for filename in parseOtoolListingOutput(output):
|
|
134
|
+
# Ignore dependency from system paths.
|
|
135
|
+
if not isFilenameBelowPath(
|
|
136
|
+
path=(
|
|
137
|
+
"/usr/lib/",
|
|
138
|
+
"/System/Library/Frameworks/",
|
|
139
|
+
"/System/Library/PrivateFrameworks/",
|
|
140
|
+
),
|
|
141
|
+
filename=filename,
|
|
142
|
+
):
|
|
143
|
+
result.add(filename)
|
|
144
|
+
|
|
145
|
+
return result
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _getNonVersionedDllFilenames2(filename):
|
|
149
|
+
yield filename
|
|
150
|
+
|
|
151
|
+
if filename.endswith(".dylib"):
|
|
152
|
+
if getArchitecture() == "arm64":
|
|
153
|
+
yield filename[:-6] + "_arm64.dylib"
|
|
154
|
+
else:
|
|
155
|
+
yield filename[:-6] + "_x86_64.dylib"
|
|
156
|
+
|
|
157
|
+
match = re.match(r"^(.*?)(\.\d+)+\.dylib$", filename)
|
|
158
|
+
|
|
159
|
+
if match:
|
|
160
|
+
yield match.group(1) + ".dylib"
|
|
161
|
+
|
|
162
|
+
# TODO: The versioned filename, might do the same, and so could the
|
|
163
|
+
# "x86_64" specific DLL be a thing too, but we should have actual
|
|
164
|
+
# examples to be sure they are covered with tests.
|
|
165
|
+
if getArchitecture() == "arm64":
|
|
166
|
+
yield match.group(1) + "_arm64.dylib"
|
|
167
|
+
else:
|
|
168
|
+
yield match.group(1) + "_x86_64.dylib"
|
|
169
|
+
|
|
170
|
+
if filename.endswith(".so"):
|
|
171
|
+
yield changeFilenameExtension(filename, ".dylib")
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def _getNonVersionedDllFilenames(dll_filename, package_name):
|
|
175
|
+
for filename in _getNonVersionedDllFilenames2(dll_filename):
|
|
176
|
+
yield filename
|
|
177
|
+
|
|
178
|
+
# Some build systems, internally prefix DLLs with package names, attempt
|
|
179
|
+
# those removed as well.
|
|
180
|
+
if package_name is not None:
|
|
181
|
+
package_prefix = package_name.asString() + "."
|
|
182
|
+
|
|
183
|
+
if os.path.basename(dll_filename).startswith(package_prefix):
|
|
184
|
+
dll_filename = os.path.join(
|
|
185
|
+
os.path.dirname(dll_filename),
|
|
186
|
+
os.path.basename(dll_filename)[len(package_prefix) :],
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
for filename in _getNonVersionedDllFilenames2(dll_filename):
|
|
190
|
+
yield filename
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def _resolveBinaryPathDLLsMacOS(
|
|
194
|
+
original_dir, binary_filename, paths, package_specific_dirs, package_name
|
|
195
|
+
):
|
|
196
|
+
# Quite a few variations to consider
|
|
197
|
+
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
198
|
+
|
|
199
|
+
had_self = False
|
|
200
|
+
|
|
201
|
+
result = OrderedDict()
|
|
202
|
+
|
|
203
|
+
rpaths = _detectBinaryRPathsMacOS(original_dir, binary_filename)
|
|
204
|
+
rpaths.update(package_specific_dirs)
|
|
205
|
+
|
|
206
|
+
for path in paths:
|
|
207
|
+
if path.startswith("@rpath/"):
|
|
208
|
+
# Resolve rpath to just the ones given, first match.
|
|
209
|
+
library_name = path[7:]
|
|
210
|
+
|
|
211
|
+
for rpath in rpaths:
|
|
212
|
+
if os.path.exists(os.path.join(rpath, library_name)):
|
|
213
|
+
resolved_path = os.path.normpath(os.path.join(rpath, path[7:]))
|
|
214
|
+
break
|
|
215
|
+
else:
|
|
216
|
+
# These have become virtual in later macOS, spell-checker: ignore libz
|
|
217
|
+
if library_name in ("libc++.1.dylib", "libz.1.dylib"):
|
|
218
|
+
continue
|
|
219
|
+
|
|
220
|
+
# This is only a guess, might be missing package specific directories.
|
|
221
|
+
resolved_path = os.path.normpath(os.path.join(original_dir, path[7:]))
|
|
222
|
+
elif path.startswith("@loader_path/"):
|
|
223
|
+
resolved_path = os.path.normpath(os.path.join(original_dir, path[13:]))
|
|
224
|
+
elif os.path.basename(path) == os.path.basename(binary_filename):
|
|
225
|
+
# We ignore the references to itself coming from the library id.
|
|
226
|
+
continue
|
|
227
|
+
elif isNuitkaPython() and not os.path.isabs(path) and not os.path.exists(path):
|
|
228
|
+
# Although Nuitka Python statically links all packages, some of them
|
|
229
|
+
# have proprietary dependencies that cannot be statically built and
|
|
230
|
+
# must instead be linked to the python executable. Due to how the
|
|
231
|
+
# python executable is linked, we end up with relative paths to
|
|
232
|
+
# dependencies, so we need to scan the Nuitka Python library
|
|
233
|
+
# directories for a matching dll.
|
|
234
|
+
link_data = loadJsonFromFilename(os.path.join(sys.prefix, "link.json"))
|
|
235
|
+
for library_dir in link_data["library_dirs"]:
|
|
236
|
+
candidate = os.path.join(library_dir, path)
|
|
237
|
+
if os.path.exists(candidate):
|
|
238
|
+
resolved_path = os.path.normpath(candidate)
|
|
239
|
+
break
|
|
240
|
+
else:
|
|
241
|
+
resolved_path = path
|
|
242
|
+
|
|
243
|
+
# Some extension modules seem to reference themselves a wrong name,
|
|
244
|
+
# duplicating their module name into the filename, but that does
|
|
245
|
+
# not exist.
|
|
246
|
+
if not os.path.exists(resolved_path) and package_name is not None:
|
|
247
|
+
parts = os.path.basename(resolved_path).split(".")
|
|
248
|
+
|
|
249
|
+
if parts[0] == package_name.asString():
|
|
250
|
+
resolved_path = os.path.join(
|
|
251
|
+
os.path.dirname(resolved_path), ".".join(parts[1:])
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
# Some extension modules seem to reference themselves by a different
|
|
255
|
+
# extension module name, so use that if it exists, and some versioned
|
|
256
|
+
# DLL dependencies do not matter.
|
|
257
|
+
if python_version >= 0x300:
|
|
258
|
+
so_suffixes = getExtensionModuleSuffixes()[:-1]
|
|
259
|
+
|
|
260
|
+
specific_suffix = so_suffixes[0]
|
|
261
|
+
abi_suffix = so_suffixes[1]
|
|
262
|
+
|
|
263
|
+
for resolved_path_candidate in _getNonVersionedDllFilenames(
|
|
264
|
+
dll_filename=resolved_path, package_name=package_name
|
|
265
|
+
):
|
|
266
|
+
if os.path.exists(resolved_path_candidate):
|
|
267
|
+
resolved_path = resolved_path_candidate
|
|
268
|
+
break
|
|
269
|
+
|
|
270
|
+
if resolved_path_candidate.endswith(specific_suffix):
|
|
271
|
+
candidate = (
|
|
272
|
+
resolved_path_candidate[: -len(specific_suffix)] + abi_suffix
|
|
273
|
+
)
|
|
274
|
+
elif resolved_path_candidate.endswith(abi_suffix):
|
|
275
|
+
candidate = (
|
|
276
|
+
resolved_path_candidate[: -len(specific_suffix)] + abi_suffix
|
|
277
|
+
)
|
|
278
|
+
else:
|
|
279
|
+
candidate = None
|
|
280
|
+
|
|
281
|
+
if candidate is not None and os.path.exists(candidate):
|
|
282
|
+
resolved_path = candidate
|
|
283
|
+
break
|
|
284
|
+
|
|
285
|
+
# Sometimes self-dependencies are on a numbered version, but deployed is
|
|
286
|
+
# one version without it. Also be tolerant about changing suffixes
|
|
287
|
+
# internally. The macOS just ignores that, and so we do.
|
|
288
|
+
if not os.path.exists(resolved_path):
|
|
289
|
+
if os.path.basename(resolved_path) == os.path.basename(binary_filename):
|
|
290
|
+
resolved_path = binary_filename
|
|
291
|
+
else:
|
|
292
|
+
for suffix1, suffix2 in (
|
|
293
|
+
(".dylib", ".dylib"),
|
|
294
|
+
(".so", ".so"),
|
|
295
|
+
(".dylib", ".so"),
|
|
296
|
+
(".so", ".dylib"),
|
|
297
|
+
):
|
|
298
|
+
pattern = r"^(.*?)(\.\d+)*%s$" % re.escape(suffix1)
|
|
299
|
+
|
|
300
|
+
match = re.match(pattern, resolved_path)
|
|
301
|
+
|
|
302
|
+
if match:
|
|
303
|
+
candidate = match.group(1) + suffix2
|
|
304
|
+
|
|
305
|
+
if os.path.exists(candidate):
|
|
306
|
+
resolved_path = candidate
|
|
307
|
+
else:
|
|
308
|
+
candidate = os.path.join(
|
|
309
|
+
original_dir, os.path.basename(candidate)
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
if os.path.exists(candidate):
|
|
313
|
+
resolved_path = candidate
|
|
314
|
+
elif os.path.basename(candidate) == os.path.basename(
|
|
315
|
+
binary_filename
|
|
316
|
+
):
|
|
317
|
+
# Versioned dependency on itself in non-existent path.
|
|
318
|
+
resolved_path = binary_filename
|
|
319
|
+
|
|
320
|
+
if not os.path.exists(resolved_path):
|
|
321
|
+
acceptable, plugin_name = Plugins.isAcceptableMissingDLL(
|
|
322
|
+
package_name=package_name,
|
|
323
|
+
filename=binary_filename,
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
# TODO: Missing DLLs that are accepted, are not really forbidden, we
|
|
327
|
+
# should instead acknowledge them as missing, and treat that properly
|
|
328
|
+
# in using code.
|
|
329
|
+
if acceptable is True:
|
|
330
|
+
raise NuitkaForbiddenDLLEncounter(binary_filename, plugin_name)
|
|
331
|
+
|
|
332
|
+
# We check both the user and the used DLL if they are listed. This
|
|
333
|
+
# might be a form of bug hiding, that the later is not sufficient,
|
|
334
|
+
# that we should address later.
|
|
335
|
+
acceptable, plugin_name = Plugins.isAcceptableMissingDLL(
|
|
336
|
+
package_name=package_name,
|
|
337
|
+
filename=resolved_path,
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
if acceptable is True:
|
|
341
|
+
raise NuitkaForbiddenDLLEncounter(binary_filename, plugin_name)
|
|
342
|
+
|
|
343
|
+
if not path.startswith(("@", "/")):
|
|
344
|
+
continue
|
|
345
|
+
|
|
346
|
+
inclusion_logger.sysexit(
|
|
347
|
+
"Error, failed to find path %s (resolved DLL to %s) for %s from '%s', please report the bug."
|
|
348
|
+
% (path, resolved_path, binary_filename, package_name)
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
# Some libraries depend on themselves.
|
|
352
|
+
if areSamePaths(binary_filename, resolved_path):
|
|
353
|
+
had_self = True
|
|
354
|
+
continue
|
|
355
|
+
|
|
356
|
+
result[resolved_path] = path
|
|
357
|
+
|
|
358
|
+
return had_self, result
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def _detectBinaryRPathsMacOS(original_dir, binary_filename):
|
|
362
|
+
stdout = getOtoolListing(filename=binary_filename, cached=True)
|
|
363
|
+
|
|
364
|
+
lines = stdout.split(b"\n")
|
|
365
|
+
|
|
366
|
+
result = OrderedSet()
|
|
367
|
+
result.add(original_dir)
|
|
368
|
+
|
|
369
|
+
for i, line in enumerate(lines):
|
|
370
|
+
if line.endswith(b"cmd LC_RPATH"):
|
|
371
|
+
line = lines[i + 2]
|
|
372
|
+
if str is not bytes:
|
|
373
|
+
line = line.decode("utf8")
|
|
374
|
+
|
|
375
|
+
line = line.split("path ", 1)[1]
|
|
376
|
+
line = line.split(" (offset", 1)[0]
|
|
377
|
+
|
|
378
|
+
if line.startswith("@loader_path"):
|
|
379
|
+
line = os.path.join(original_dir, line[13:])
|
|
380
|
+
elif line.startswith("@executable_path"):
|
|
381
|
+
continue
|
|
382
|
+
|
|
383
|
+
result.add(line)
|
|
384
|
+
|
|
385
|
+
return result
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def fixupBinaryDLLPathsMacOS(
|
|
389
|
+
binary_filename, package_name, original_location, standalone_entry_points
|
|
390
|
+
):
|
|
391
|
+
"""For macOS, the binary needs to be told to use relative DLL paths"""
|
|
392
|
+
try:
|
|
393
|
+
had_self, rpath_map = detectBinaryPathDLLsMacOS(
|
|
394
|
+
original_dir=os.path.dirname(original_location),
|
|
395
|
+
binary_filename=original_location,
|
|
396
|
+
package_name=package_name,
|
|
397
|
+
keep_unresolved=True,
|
|
398
|
+
recursive=False,
|
|
399
|
+
)
|
|
400
|
+
except NuitkaForbiddenDLLEncounter:
|
|
401
|
+
inclusion_logger.info("Not copying forbidden DLL '%s'." % binary_filename)
|
|
402
|
+
else:
|
|
403
|
+
mapping = []
|
|
404
|
+
|
|
405
|
+
for resolved_filename, rpath_filename in rpath_map.items():
|
|
406
|
+
for standalone_entry_point in standalone_entry_points:
|
|
407
|
+
if resolved_filename == standalone_entry_point.source_path:
|
|
408
|
+
dist_path = standalone_entry_point.dest_path
|
|
409
|
+
break
|
|
410
|
+
else:
|
|
411
|
+
dist_path = None
|
|
412
|
+
|
|
413
|
+
if dist_path is None:
|
|
414
|
+
inclusion_logger.sysexit(
|
|
415
|
+
"""\
|
|
416
|
+
Error, problem with dependency scan of '%s' with '%s' please report the bug."""
|
|
417
|
+
% (getReportPath(original_location), rpath_filename)
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
mapping.append((rpath_filename, "@executable_path/" + dist_path))
|
|
421
|
+
|
|
422
|
+
if mapping or had_self:
|
|
423
|
+
callInstallNameTool(
|
|
424
|
+
filename=binary_filename,
|
|
425
|
+
mapping=mapping,
|
|
426
|
+
id_path=os.path.basename(binary_filename) if had_self else None,
|
|
427
|
+
rpath=None,
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
432
|
+
# integrates with CPython, but also works on its own.
|
|
433
|
+
#
|
|
434
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
435
|
+
# you may not use this file except in compliance with the License.
|
|
436
|
+
# You may obtain a copy of the License at
|
|
437
|
+
#
|
|
438
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
439
|
+
#
|
|
440
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
441
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
442
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
443
|
+
# See the License for the specific language governing permissions and
|
|
444
|
+
# limitations under the License.
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
"""DLL dependency scan methods for POSIX (Linux, *BSD, MSYS2).
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
from nuitka.containers.OrderedSets import OrderedSet
|
|
12
|
+
from nuitka.PythonFlavors import isAnacondaPython
|
|
13
|
+
from nuitka.Tracing import inclusion_logger
|
|
14
|
+
from nuitka.utils.Execution import executeProcess, withEnvironmentPathAdded
|
|
15
|
+
from nuitka.utils.SharedLibraries import getSharedLibraryRPATHs
|
|
16
|
+
from nuitka.utils.Utils import (
|
|
17
|
+
isAlpineLinux,
|
|
18
|
+
isAndroidBasedLinux,
|
|
19
|
+
isPosixWindows,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
from .DllDependenciesCommon import getLdLibraryPath
|
|
23
|
+
|
|
24
|
+
# Detected Python rpath is cached.
|
|
25
|
+
_detected_python_rpaths = None
|
|
26
|
+
|
|
27
|
+
# Cached ldd results.
|
|
28
|
+
ldd_result_cache = {}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _resolveOriginValue(rpath, origin):
|
|
32
|
+
rpath = rpath.replace("$ORIGIN", origin)
|
|
33
|
+
rpath = os.path.normpath(os.path.join(origin, rpath))
|
|
34
|
+
|
|
35
|
+
return rpath
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def detectBinaryPathDLLsPosix(dll_filename, package_name, original_dir):
|
|
39
|
+
# This is complex, as it also includes the caching mechanism
|
|
40
|
+
# pylint: disable=too-many-branches,too-many-locals
|
|
41
|
+
|
|
42
|
+
if ldd_result_cache.get(dll_filename):
|
|
43
|
+
return ldd_result_cache[dll_filename]
|
|
44
|
+
|
|
45
|
+
# Ask "ldd" about the libraries being used by the created binary, these
|
|
46
|
+
# are the ones that interest us.
|
|
47
|
+
|
|
48
|
+
# This is the rpath of the Python binary, which will be effective when
|
|
49
|
+
# loading the other DLLs too. This happens at least for Python installs
|
|
50
|
+
# on Travis. pylint: disable=global-statement
|
|
51
|
+
global _detected_python_rpaths
|
|
52
|
+
if _detected_python_rpaths is None and not isPosixWindows():
|
|
53
|
+
_detected_python_rpaths = getSharedLibraryRPATHs(
|
|
54
|
+
sys.executable,
|
|
55
|
+
elements=True,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
if os.path.islink(sys.executable):
|
|
59
|
+
sys_executable = os.readlink(sys.executable)
|
|
60
|
+
else:
|
|
61
|
+
sys_executable = sys.executable
|
|
62
|
+
|
|
63
|
+
sys_executable_dir = os.path.dirname(sys_executable)
|
|
64
|
+
|
|
65
|
+
_detected_python_rpaths = [
|
|
66
|
+
_resolveOriginValue(rpath=detected_python_rpath, origin=sys_executable_dir)
|
|
67
|
+
for detected_python_rpath in _detected_python_rpaths
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
python_rpaths = _detected_python_rpaths[:]
|
|
71
|
+
|
|
72
|
+
if os.path.islink(dll_filename):
|
|
73
|
+
link_target_path = os.path.dirname(os.path.realpath(dll_filename))
|
|
74
|
+
python_rpaths.append(link_target_path)
|
|
75
|
+
|
|
76
|
+
# TODO: Actually would be better to pass it as env to the created process instead.
|
|
77
|
+
with withEnvironmentPathAdded(
|
|
78
|
+
"LD_LIBRARY_PATH",
|
|
79
|
+
*getLdLibraryPath(
|
|
80
|
+
package_name=package_name,
|
|
81
|
+
python_rpaths=python_rpaths,
|
|
82
|
+
original_dir=original_dir,
|
|
83
|
+
)
|
|
84
|
+
):
|
|
85
|
+
# TODO: Check exit code, should never fail.
|
|
86
|
+
stdout, stderr, _exit_code = executeProcess(command=("ldd", dll_filename))
|
|
87
|
+
|
|
88
|
+
stderr = b"\n".join(
|
|
89
|
+
line
|
|
90
|
+
for line in stderr.splitlines()
|
|
91
|
+
if not line.startswith(
|
|
92
|
+
b"ldd: warning: you do not have execution permission for"
|
|
93
|
+
)
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
inclusion_logger.debug("ldd output for %s is:\n%s" % (dll_filename, stdout))
|
|
97
|
+
|
|
98
|
+
if stderr:
|
|
99
|
+
inclusion_logger.debug("ldd error for %s is:\n%s" % (dll_filename, stderr))
|
|
100
|
+
|
|
101
|
+
result = OrderedSet()
|
|
102
|
+
|
|
103
|
+
for line in stdout.split(b"\n"):
|
|
104
|
+
if not line:
|
|
105
|
+
continue
|
|
106
|
+
|
|
107
|
+
if b"=>" not in line:
|
|
108
|
+
continue
|
|
109
|
+
|
|
110
|
+
part = line.split(b" => ", 2)[1]
|
|
111
|
+
|
|
112
|
+
if b"(" in part:
|
|
113
|
+
filename = part[: part.rfind(b"(") - 1]
|
|
114
|
+
else:
|
|
115
|
+
filename = part
|
|
116
|
+
|
|
117
|
+
if not filename:
|
|
118
|
+
continue
|
|
119
|
+
|
|
120
|
+
if str is not bytes:
|
|
121
|
+
filename = filename.decode("utf8")
|
|
122
|
+
|
|
123
|
+
# Sometimes might use stuff not found or supplied by ldd itself.
|
|
124
|
+
if filename in ("not found", "ldd"):
|
|
125
|
+
continue
|
|
126
|
+
|
|
127
|
+
# Normalize, sometimes the DLLs produce "something/../", this has
|
|
128
|
+
# been seen with Qt at least.
|
|
129
|
+
filename = os.path.normpath(filename)
|
|
130
|
+
|
|
131
|
+
# Do not include kernel DLLs on the ignore list.
|
|
132
|
+
filename_base = os.path.basename(filename)
|
|
133
|
+
if any(
|
|
134
|
+
filename_base == entry or filename_base.startswith(entry + ".")
|
|
135
|
+
for entry in _linux_dll_ignore_list
|
|
136
|
+
):
|
|
137
|
+
continue
|
|
138
|
+
|
|
139
|
+
# Do not allow relative paths for shared libraries
|
|
140
|
+
if not os.path.isabs(filename):
|
|
141
|
+
inclusion_logger.sysexit(
|
|
142
|
+
"Error: Found a dependency with a relative path. Was a dependency copied to dist early? "
|
|
143
|
+
+ filename
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
result.add(filename)
|
|
147
|
+
|
|
148
|
+
ldd_result_cache[dll_filename] = result
|
|
149
|
+
|
|
150
|
+
sub_result = OrderedSet(result)
|
|
151
|
+
|
|
152
|
+
for sub_dll_filename in result:
|
|
153
|
+
sub_result.update(
|
|
154
|
+
detectBinaryPathDLLsPosix(
|
|
155
|
+
dll_filename=sub_dll_filename,
|
|
156
|
+
package_name=package_name,
|
|
157
|
+
original_dir=original_dir,
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
return sub_result
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
_linux_dll_ignore_list = [
|
|
165
|
+
# Do not include kernel / glibc specific libraries. This list has been
|
|
166
|
+
# assembled by looking what are the most common .so files provided by
|
|
167
|
+
# glibc packages from ArchLinux, Debian Stretch and CentOS.
|
|
168
|
+
#
|
|
169
|
+
# Online sources:
|
|
170
|
+
# - https://centos.pkgs.org/7/puias-computational-x86_64/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm.html
|
|
171
|
+
# - https://centos.pkgs.org/7/centos-x86_64/glibc-2.17-222.el7.x86_64.rpm.html
|
|
172
|
+
# - https://archlinux.pkgs.org/rolling/archlinux-core-x86_64/glibc-2.28-5-x86_64.pkg.tar.xz.html
|
|
173
|
+
# - https://packages.debian.org/stretch/amd64/libc6/filelist
|
|
174
|
+
#
|
|
175
|
+
# Note: This list may still be incomplete. Some additional libraries
|
|
176
|
+
# might be provided by glibc - it may vary between the package versions
|
|
177
|
+
# and between Linux distros. It might or might not be a problem in the
|
|
178
|
+
# future, but it should be enough for now.
|
|
179
|
+
"linux-vdso.so.1",
|
|
180
|
+
"ld-linux-x86-64.so",
|
|
181
|
+
"libc.so",
|
|
182
|
+
"libpthread.so",
|
|
183
|
+
"libm.so",
|
|
184
|
+
"libdl.so",
|
|
185
|
+
"libBrokenLocale.so",
|
|
186
|
+
"libSegFault.so",
|
|
187
|
+
"libanl.so",
|
|
188
|
+
"libcidn.so",
|
|
189
|
+
"libcrypt.so",
|
|
190
|
+
"libmemusage.so",
|
|
191
|
+
"libmvec.so",
|
|
192
|
+
"libnsl.so",
|
|
193
|
+
"libnss3.so",
|
|
194
|
+
"libnssutil3.so",
|
|
195
|
+
"libnss_compat.so",
|
|
196
|
+
"libnss_db.so",
|
|
197
|
+
"libnss_dns.so",
|
|
198
|
+
"libnss_files.so",
|
|
199
|
+
"libnss_hesiod.so",
|
|
200
|
+
"libnss_nis.so",
|
|
201
|
+
"libnss_nisplus.so",
|
|
202
|
+
"libpcprofile.so",
|
|
203
|
+
"libresolv.so",
|
|
204
|
+
"librt.so",
|
|
205
|
+
"libthread_db-1.0.so",
|
|
206
|
+
"libthread_db.so",
|
|
207
|
+
"libutil.so",
|
|
208
|
+
# The C++ standard library can also be ABI specific, and can cause system
|
|
209
|
+
# libraries like MESA to not load any drivers, so we exclude it too, and
|
|
210
|
+
# it can be assumed to be installed everywhere anyway.
|
|
211
|
+
"libstdc++.so",
|
|
212
|
+
# The DRM layer should also be taken from the OS in question and won't
|
|
213
|
+
# allow loading native drivers otherwise.
|
|
214
|
+
"libdrm.so",
|
|
215
|
+
# The zlib can be assumed to be everywhere, and outside dependencies
|
|
216
|
+
# may actually load it.
|
|
217
|
+
"libz.so",
|
|
218
|
+
]
|
|
219
|
+
|
|
220
|
+
if isAnacondaPython() or isAlpineLinux():
|
|
221
|
+
# Anaconda has these with e.g. torchvision, and insists on them being very new,
|
|
222
|
+
# so they have to be included.
|
|
223
|
+
# Alpine linux does not include `libstdc++.so` by default.
|
|
224
|
+
_linux_dll_ignore_list.remove("libstdc++.so")
|
|
225
|
+
|
|
226
|
+
if isAndroidBasedLinux():
|
|
227
|
+
_linux_dll_ignore_list.remove("libz.so")
|
|
228
|
+
|
|
229
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
230
|
+
# integrates with CPython, but also works on its own.
|
|
231
|
+
#
|
|
232
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
233
|
+
# you may not use this file except in compliance with the License.
|
|
234
|
+
# You may obtain a copy of the License at
|
|
235
|
+
#
|
|
236
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
237
|
+
#
|
|
238
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
239
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
240
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
241
|
+
# See the License for the specific language governing permissions and
|
|
242
|
+
# limitations under the License.
|