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,1137 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Module/Package nodes
|
|
5
|
+
|
|
6
|
+
The top of the tree. Packages are also modules. Modules are what hold a program
|
|
7
|
+
together and cross-module optimizations are the most difficult to tackle.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
|
|
12
|
+
from nuitka import Options, Variables
|
|
13
|
+
from nuitka.containers.OrderedSets import OrderedSet
|
|
14
|
+
from nuitka.importing.Importing import locateModule, makeModuleUsageAttempt
|
|
15
|
+
from nuitka.importing.Recursion import decideRecursion, recurseTo
|
|
16
|
+
from nuitka.ModuleRegistry import getModuleByName, getOwnerFromCodeName
|
|
17
|
+
from nuitka.optimizations.TraceCollections import TraceCollectionModule
|
|
18
|
+
from nuitka.Options import hasPythonFlagIsolated
|
|
19
|
+
from nuitka.PythonVersions import python_version
|
|
20
|
+
from nuitka.SourceCodeReferences import fromFilename
|
|
21
|
+
from nuitka.tree.SourceHandling import parsePyIFile, readSourceCodeFromFilename
|
|
22
|
+
from nuitka.utils.CStrings import encodePythonIdentifierToC
|
|
23
|
+
from nuitka.utils.FileOperations import switchFilenameExtension
|
|
24
|
+
from nuitka.utils.Importing import (
|
|
25
|
+
getExtensionModuleSuffixes,
|
|
26
|
+
getPackageDirFilename,
|
|
27
|
+
)
|
|
28
|
+
from nuitka.utils.ModuleNames import ModuleName
|
|
29
|
+
|
|
30
|
+
from .ChildrenHavingMixins import (
|
|
31
|
+
ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin,
|
|
32
|
+
)
|
|
33
|
+
from .FutureSpecs import fromFlags
|
|
34
|
+
from .IndicatorMixins import EntryPointMixin, MarkNeedsAnnotationsMixin
|
|
35
|
+
from .LocalsScopes import getLocalsDictHandle
|
|
36
|
+
from .NodeBases import (
|
|
37
|
+
ClosureGiverNodeMixin,
|
|
38
|
+
NodeBase,
|
|
39
|
+
extractKindAndArgsFromXML,
|
|
40
|
+
fromXML,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class PythonModuleBase(NodeBase):
|
|
45
|
+
# Base classes can be abstract, pylint: disable=abstract-method
|
|
46
|
+
|
|
47
|
+
__slots__ = ("module_name", "reason")
|
|
48
|
+
|
|
49
|
+
def __init__(self, module_name, reason, source_ref):
|
|
50
|
+
assert type(module_name) is ModuleName, module_name
|
|
51
|
+
assert module_name != "", source_ref
|
|
52
|
+
|
|
53
|
+
NodeBase.__init__(self, source_ref=source_ref)
|
|
54
|
+
|
|
55
|
+
self.module_name = module_name
|
|
56
|
+
self.reason = reason
|
|
57
|
+
|
|
58
|
+
def getDetails(self):
|
|
59
|
+
return {"module_name": self.module_name}
|
|
60
|
+
|
|
61
|
+
def getFullName(self):
|
|
62
|
+
return self.module_name
|
|
63
|
+
|
|
64
|
+
@staticmethod
|
|
65
|
+
def isMainModule():
|
|
66
|
+
return False
|
|
67
|
+
|
|
68
|
+
@staticmethod
|
|
69
|
+
def isTopModule():
|
|
70
|
+
return False
|
|
71
|
+
|
|
72
|
+
def attemptRecursion(self):
|
|
73
|
+
# Make sure the package is recursed to if any
|
|
74
|
+
package_name = self.module_name.getPackageName()
|
|
75
|
+
if package_name is None:
|
|
76
|
+
return ()
|
|
77
|
+
|
|
78
|
+
# Return the list of newly added modules.
|
|
79
|
+
|
|
80
|
+
package = getModuleByName(package_name)
|
|
81
|
+
|
|
82
|
+
if package_name is not None and package is None:
|
|
83
|
+
(
|
|
84
|
+
_package_name,
|
|
85
|
+
package_filename,
|
|
86
|
+
package_module_kind,
|
|
87
|
+
finding,
|
|
88
|
+
) = locateModule(
|
|
89
|
+
module_name=package_name,
|
|
90
|
+
parent_package=None,
|
|
91
|
+
level=0,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
# If we can't find the package for Python3 that is semi-OK, it might be in a
|
|
95
|
+
# namespace package, these have no init code.
|
|
96
|
+
if python_version >= 0x300 and not package_filename:
|
|
97
|
+
return ()
|
|
98
|
+
|
|
99
|
+
if package_name == "uniconvertor.app.modules":
|
|
100
|
+
return ()
|
|
101
|
+
|
|
102
|
+
assert package_filename is not None, (package_name, finding)
|
|
103
|
+
|
|
104
|
+
assert _package_name == package_name, (
|
|
105
|
+
package_filename,
|
|
106
|
+
_package_name,
|
|
107
|
+
package_name,
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
decision, _reason = decideRecursion(
|
|
111
|
+
using_module_name=self.getFullName(),
|
|
112
|
+
module_filename=package_filename,
|
|
113
|
+
module_name=package_name,
|
|
114
|
+
module_kind=package_module_kind,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
if decision is not None:
|
|
118
|
+
package = recurseTo(
|
|
119
|
+
module_name=package_name,
|
|
120
|
+
module_filename=package_filename,
|
|
121
|
+
module_kind=package_module_kind,
|
|
122
|
+
source_ref=self.source_ref,
|
|
123
|
+
reason="parent package",
|
|
124
|
+
using_module_name=self.module_name,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
if package:
|
|
128
|
+
from nuitka.ModuleRegistry import addUsedModule
|
|
129
|
+
|
|
130
|
+
addUsedModule(
|
|
131
|
+
package,
|
|
132
|
+
using_module=self,
|
|
133
|
+
usage_tag="package",
|
|
134
|
+
reason="Containing package of '%s'." % self.getFullName(),
|
|
135
|
+
source_ref=self.source_ref,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
def getCodeName(self):
|
|
139
|
+
# Virtual method, pylint: disable=no-self-use
|
|
140
|
+
return None
|
|
141
|
+
|
|
142
|
+
def getCompileTimeFilename(self):
|
|
143
|
+
"""The compile time filename for the module.
|
|
144
|
+
|
|
145
|
+
Returns:
|
|
146
|
+
Full path to module file at compile time.
|
|
147
|
+
Notes:
|
|
148
|
+
We are getting the absolute path here, since we do
|
|
149
|
+
not want to have to deal with resolving paths at
|
|
150
|
+
all.
|
|
151
|
+
|
|
152
|
+
"""
|
|
153
|
+
return os.path.abspath(self.source_ref.getFilename())
|
|
154
|
+
|
|
155
|
+
def getCompileTimeDirectory(self):
|
|
156
|
+
"""The compile time directory for the module.
|
|
157
|
+
|
|
158
|
+
Returns:
|
|
159
|
+
Full path to module directory at compile time.
|
|
160
|
+
Notes:
|
|
161
|
+
For packages, we let the package directory be
|
|
162
|
+
the result, otherwise the containing directory
|
|
163
|
+
is the result.
|
|
164
|
+
Notes:
|
|
165
|
+
Use this to find files nearby a module, mainly
|
|
166
|
+
in plugin code.
|
|
167
|
+
"""
|
|
168
|
+
result = self.getCompileTimeFilename()
|
|
169
|
+
if not os.path.isdir(result):
|
|
170
|
+
result = os.path.dirname(result)
|
|
171
|
+
return result
|
|
172
|
+
|
|
173
|
+
def getRunTimeFilename(self):
|
|
174
|
+
reference_mode = Options.getFileReferenceMode()
|
|
175
|
+
|
|
176
|
+
if reference_mode == "original":
|
|
177
|
+
return self.getCompileTimeFilename()
|
|
178
|
+
elif reference_mode == "frozen":
|
|
179
|
+
return "<frozen %s>" % self.getFullName()
|
|
180
|
+
else:
|
|
181
|
+
filename = self.getCompileTimeFilename()
|
|
182
|
+
|
|
183
|
+
full_name = self.getFullName()
|
|
184
|
+
|
|
185
|
+
result = os.path.basename(filename)
|
|
186
|
+
current = filename
|
|
187
|
+
|
|
188
|
+
levels = full_name.count(".")
|
|
189
|
+
if (
|
|
190
|
+
self.isCompiledPythonPackage()
|
|
191
|
+
and not self.isCompiledPythonNamespacePackage()
|
|
192
|
+
):
|
|
193
|
+
levels += 1
|
|
194
|
+
|
|
195
|
+
for _i in range(levels):
|
|
196
|
+
current = os.path.dirname(current)
|
|
197
|
+
|
|
198
|
+
result = os.path.join(os.path.basename(current), result)
|
|
199
|
+
|
|
200
|
+
# Avoid unnecessary unicode path values
|
|
201
|
+
if str is not bytes:
|
|
202
|
+
try:
|
|
203
|
+
result = str(result)
|
|
204
|
+
except UnicodeDecodeError:
|
|
205
|
+
pass
|
|
206
|
+
|
|
207
|
+
return result
|
|
208
|
+
|
|
209
|
+
@staticmethod
|
|
210
|
+
def isExtensionModulePackage():
|
|
211
|
+
return False
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class CompiledPythonModule(
|
|
215
|
+
ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin,
|
|
216
|
+
ClosureGiverNodeMixin,
|
|
217
|
+
MarkNeedsAnnotationsMixin,
|
|
218
|
+
EntryPointMixin,
|
|
219
|
+
PythonModuleBase,
|
|
220
|
+
):
|
|
221
|
+
"""Compiled Python Module"""
|
|
222
|
+
|
|
223
|
+
# This one has a few indicators, pylint: disable=too-many-instance-attributes
|
|
224
|
+
|
|
225
|
+
kind = "COMPILED_PYTHON_MODULE"
|
|
226
|
+
|
|
227
|
+
__slots__ = (
|
|
228
|
+
"is_top",
|
|
229
|
+
"name",
|
|
230
|
+
"code_prefix",
|
|
231
|
+
"code_name",
|
|
232
|
+
"uids",
|
|
233
|
+
"temp_variables",
|
|
234
|
+
"temp_scopes",
|
|
235
|
+
"preserver_id",
|
|
236
|
+
"needs_annotations_dict",
|
|
237
|
+
"trace_collection",
|
|
238
|
+
"mode",
|
|
239
|
+
"variables",
|
|
240
|
+
"active_functions",
|
|
241
|
+
"visited_functions",
|
|
242
|
+
"cross_used_functions",
|
|
243
|
+
"used_modules",
|
|
244
|
+
"future_spec",
|
|
245
|
+
"source_code",
|
|
246
|
+
"module_dict_name",
|
|
247
|
+
"locals_scope",
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
named_children = ("body|statements_or_none+setter", "functions|tuple+setter")
|
|
251
|
+
|
|
252
|
+
def __init__(self, module_name, reason, is_top, mode, future_spec, source_ref):
|
|
253
|
+
PythonModuleBase.__init__(
|
|
254
|
+
self,
|
|
255
|
+
module_name=module_name,
|
|
256
|
+
reason=reason,
|
|
257
|
+
source_ref=source_ref,
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
ClosureGiverNodeMixin.__init__(
|
|
261
|
+
self, name=module_name.getBasename(), code_prefix="module"
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin.__init__(
|
|
265
|
+
self,
|
|
266
|
+
body=None, # delayed
|
|
267
|
+
functions=(),
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
MarkNeedsAnnotationsMixin.__init__(self)
|
|
271
|
+
|
|
272
|
+
EntryPointMixin.__init__(self)
|
|
273
|
+
|
|
274
|
+
self.is_top = is_top
|
|
275
|
+
|
|
276
|
+
self.mode = mode
|
|
277
|
+
|
|
278
|
+
self.variables = {}
|
|
279
|
+
|
|
280
|
+
# Functions that have been used.
|
|
281
|
+
self.active_functions = OrderedSet()
|
|
282
|
+
|
|
283
|
+
# Functions that should be visited again.
|
|
284
|
+
self.visited_functions = set()
|
|
285
|
+
|
|
286
|
+
self.cross_used_functions = OrderedSet()
|
|
287
|
+
|
|
288
|
+
self.used_modules = OrderedSet()
|
|
289
|
+
|
|
290
|
+
# Often "None" until tree building finishes its part.
|
|
291
|
+
self.future_spec = future_spec
|
|
292
|
+
|
|
293
|
+
# The source code of the module if changed or not from disk.
|
|
294
|
+
self.source_code = None
|
|
295
|
+
|
|
296
|
+
self.module_dict_name = "globals_%s" % (self.getCodeName(),)
|
|
297
|
+
|
|
298
|
+
self.locals_scope = getLocalsDictHandle(
|
|
299
|
+
self.module_dict_name, "module_dict", self
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
self.used_modules = OrderedSet()
|
|
303
|
+
|
|
304
|
+
@staticmethod
|
|
305
|
+
def isCompiledPythonModule():
|
|
306
|
+
return True
|
|
307
|
+
|
|
308
|
+
def getDetails(self):
|
|
309
|
+
return {
|
|
310
|
+
"filename": self.source_ref.getFilename(),
|
|
311
|
+
"module_name": self.module_name,
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
def getDetailsForDisplay(self):
|
|
315
|
+
result = self.getDetails()
|
|
316
|
+
|
|
317
|
+
if self.future_spec is not None:
|
|
318
|
+
result["code_flags"] = ",".join(self.future_spec.asFlags())
|
|
319
|
+
|
|
320
|
+
return result
|
|
321
|
+
|
|
322
|
+
def getCompilationMode(self):
|
|
323
|
+
return self.mode
|
|
324
|
+
|
|
325
|
+
@classmethod
|
|
326
|
+
def fromXML(cls, provider, source_ref, **args):
|
|
327
|
+
# Modules are not having any provider, must not be used,
|
|
328
|
+
assert False
|
|
329
|
+
|
|
330
|
+
def getFutureSpec(self):
|
|
331
|
+
return self.future_spec
|
|
332
|
+
|
|
333
|
+
def setFutureSpec(self, future_spec):
|
|
334
|
+
self.future_spec = future_spec
|
|
335
|
+
|
|
336
|
+
def isTopModule(self):
|
|
337
|
+
return self.is_top
|
|
338
|
+
|
|
339
|
+
def asGraph(self, graph, desc):
|
|
340
|
+
graph = graph.add_subgraph(
|
|
341
|
+
name="cluster_%s" % desc, comment="Graph for %s" % self.getName()
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
# graph.body.append("style=filled")
|
|
345
|
+
# graph.body.append("color=lightgrey")
|
|
346
|
+
# graph.body.append("label=Iteration_%d" % desc)
|
|
347
|
+
|
|
348
|
+
def makeTraceNodeName(variable, version, variable_trace):
|
|
349
|
+
return "%s/ %s %s %s" % (
|
|
350
|
+
desc,
|
|
351
|
+
variable.getName(),
|
|
352
|
+
version,
|
|
353
|
+
variable_trace.__class__.__name__,
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
for function_body in self.active_functions:
|
|
357
|
+
trace_collection = function_body.trace_collection
|
|
358
|
+
|
|
359
|
+
node_names = {}
|
|
360
|
+
|
|
361
|
+
for (
|
|
362
|
+
(variable, version),
|
|
363
|
+
variable_trace,
|
|
364
|
+
) in trace_collection.getVariableTracesAll().items():
|
|
365
|
+
node_name = makeTraceNodeName(variable, version, variable_trace)
|
|
366
|
+
|
|
367
|
+
node_names[variable_trace] = node_name
|
|
368
|
+
|
|
369
|
+
for (
|
|
370
|
+
(variable, version),
|
|
371
|
+
variable_trace,
|
|
372
|
+
) in trace_collection.getVariableTracesAll().items():
|
|
373
|
+
node_name = node_names[variable_trace]
|
|
374
|
+
|
|
375
|
+
previous = variable_trace.getPrevious()
|
|
376
|
+
|
|
377
|
+
attrs = {"style": "filled"}
|
|
378
|
+
|
|
379
|
+
if variable_trace.getUsageCount():
|
|
380
|
+
attrs["color"] = "blue"
|
|
381
|
+
else:
|
|
382
|
+
attrs["color"] = "red"
|
|
383
|
+
|
|
384
|
+
graph.add_node(node_name, **attrs)
|
|
385
|
+
|
|
386
|
+
if type(previous) is tuple:
|
|
387
|
+
for prev_trace in previous:
|
|
388
|
+
graph.add_edge(node_names[prev_trace], node_name)
|
|
389
|
+
|
|
390
|
+
assert prev_trace is not variable_trace
|
|
391
|
+
|
|
392
|
+
elif previous is not None:
|
|
393
|
+
assert previous is not variable_trace
|
|
394
|
+
graph.add_edge(node_names[previous], node_name)
|
|
395
|
+
|
|
396
|
+
return graph
|
|
397
|
+
|
|
398
|
+
def getSourceCode(self):
|
|
399
|
+
if self.source_code is not None:
|
|
400
|
+
return self.source_code
|
|
401
|
+
else:
|
|
402
|
+
# This should of course give same result as before.
|
|
403
|
+
return readSourceCodeFromFilename(
|
|
404
|
+
module_name=self.getFullName(),
|
|
405
|
+
source_filename=self.getCompileTimeFilename(),
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
def setSourceCode(self, code):
|
|
409
|
+
self.source_code = code
|
|
410
|
+
|
|
411
|
+
def getParent(self):
|
|
412
|
+
# We have never have a parent
|
|
413
|
+
return None
|
|
414
|
+
|
|
415
|
+
def getParentVariableProvider(self):
|
|
416
|
+
# We have never have a provider
|
|
417
|
+
return None
|
|
418
|
+
|
|
419
|
+
def hasVariableName(self, variable_name):
|
|
420
|
+
return variable_name in self.variables or variable_name in self.temp_variables
|
|
421
|
+
|
|
422
|
+
def getProvidedVariables(self):
|
|
423
|
+
return self.variables.values()
|
|
424
|
+
|
|
425
|
+
def getFilename(self):
|
|
426
|
+
return self.source_ref.getFilename()
|
|
427
|
+
|
|
428
|
+
def getVariableForAssignment(self, variable_name):
|
|
429
|
+
return self.getProvidedVariable(variable_name)
|
|
430
|
+
|
|
431
|
+
def getVariableForReference(self, variable_name):
|
|
432
|
+
return self.getProvidedVariable(variable_name)
|
|
433
|
+
|
|
434
|
+
def getVariableForClosure(self, variable_name):
|
|
435
|
+
return self.getProvidedVariable(variable_name=variable_name)
|
|
436
|
+
|
|
437
|
+
def createProvidedVariable(self, variable_name):
|
|
438
|
+
assert variable_name not in self.variables
|
|
439
|
+
|
|
440
|
+
result = Variables.ModuleVariable(module=self, variable_name=variable_name)
|
|
441
|
+
|
|
442
|
+
self.variables[variable_name] = result
|
|
443
|
+
|
|
444
|
+
return result
|
|
445
|
+
|
|
446
|
+
@staticmethod
|
|
447
|
+
def getContainingClassDictCreation():
|
|
448
|
+
return None
|
|
449
|
+
|
|
450
|
+
@staticmethod
|
|
451
|
+
def isEarlyClosure():
|
|
452
|
+
# Modules should immediately closure variables on use.
|
|
453
|
+
return True
|
|
454
|
+
|
|
455
|
+
def getEntryPoint(self):
|
|
456
|
+
return self
|
|
457
|
+
|
|
458
|
+
def getCodeName(self):
|
|
459
|
+
# For code name of modules, we need to translate to C identifiers,
|
|
460
|
+
# removing characters illegal for that.
|
|
461
|
+
|
|
462
|
+
if self.code_name is None:
|
|
463
|
+
self.code_name = encodePythonIdentifierToC(self.module_name)
|
|
464
|
+
|
|
465
|
+
return self.code_name
|
|
466
|
+
|
|
467
|
+
@staticmethod
|
|
468
|
+
def getChildQualname(function_name):
|
|
469
|
+
return function_name
|
|
470
|
+
|
|
471
|
+
def addFunction(self, function_body):
|
|
472
|
+
functions = self.subnode_functions
|
|
473
|
+
assert function_body not in functions
|
|
474
|
+
functions += (function_body,)
|
|
475
|
+
self.setChildFunctions(functions)
|
|
476
|
+
|
|
477
|
+
def startTraversal(self):
|
|
478
|
+
self.used_modules = None
|
|
479
|
+
self.active_functions = OrderedSet()
|
|
480
|
+
|
|
481
|
+
def restartTraversal(self):
|
|
482
|
+
self.visited_functions = set()
|
|
483
|
+
self.used_modules = None
|
|
484
|
+
|
|
485
|
+
def getUsedModules(self):
|
|
486
|
+
if self.trace_collection is None:
|
|
487
|
+
# Optimization is not yet done at all, but report writing for error
|
|
488
|
+
# exit may happen.
|
|
489
|
+
return ()
|
|
490
|
+
|
|
491
|
+
return self.trace_collection.getModuleUsageAttempts()
|
|
492
|
+
|
|
493
|
+
def getUsedDistributions(self):
|
|
494
|
+
return self.trace_collection.getUsedDistributions()
|
|
495
|
+
|
|
496
|
+
def addUsedFunction(self, function_body):
|
|
497
|
+
assert function_body in self.subnode_functions, function_body
|
|
498
|
+
|
|
499
|
+
assert (
|
|
500
|
+
function_body.isExpressionFunctionBody()
|
|
501
|
+
or function_body.isExpressionClassBodyBase()
|
|
502
|
+
or function_body.isExpressionGeneratorObjectBody()
|
|
503
|
+
or function_body.isExpressionCoroutineObjectBody()
|
|
504
|
+
or function_body.isExpressionAsyncgenObjectBody()
|
|
505
|
+
)
|
|
506
|
+
|
|
507
|
+
self.active_functions.add(function_body)
|
|
508
|
+
|
|
509
|
+
result = function_body not in self.visited_functions
|
|
510
|
+
self.visited_functions.add(function_body)
|
|
511
|
+
|
|
512
|
+
return result
|
|
513
|
+
|
|
514
|
+
def getUsedFunctions(self):
|
|
515
|
+
return self.active_functions
|
|
516
|
+
|
|
517
|
+
def getUnusedFunctions(self):
|
|
518
|
+
for function in self.subnode_functions:
|
|
519
|
+
if function not in self.active_functions:
|
|
520
|
+
yield function
|
|
521
|
+
|
|
522
|
+
def addCrossUsedFunction(self, function_body):
|
|
523
|
+
if function_body not in self.cross_used_functions:
|
|
524
|
+
self.cross_used_functions.add(function_body)
|
|
525
|
+
|
|
526
|
+
def getCrossUsedFunctions(self):
|
|
527
|
+
return self.cross_used_functions
|
|
528
|
+
|
|
529
|
+
def getFunctionFromCodeName(self, code_name):
|
|
530
|
+
for function in self.subnode_functions:
|
|
531
|
+
if function.getCodeName() == code_name:
|
|
532
|
+
return function
|
|
533
|
+
|
|
534
|
+
def getOutputFilename(self):
|
|
535
|
+
main_filename = self.getFilename()
|
|
536
|
+
|
|
537
|
+
if main_filename.endswith(".py"):
|
|
538
|
+
result = main_filename[:-3]
|
|
539
|
+
elif main_filename.endswith(".pyw"):
|
|
540
|
+
result = main_filename[:-4]
|
|
541
|
+
else:
|
|
542
|
+
result = main_filename
|
|
543
|
+
|
|
544
|
+
# There are some characters that somehow are passed to shell, by
|
|
545
|
+
# Scons or unknown, so lets avoid them for now.
|
|
546
|
+
return result.replace(")", "").replace("(", "")
|
|
547
|
+
|
|
548
|
+
def computeModule(self):
|
|
549
|
+
self.restartTraversal()
|
|
550
|
+
|
|
551
|
+
old_collection = self.trace_collection
|
|
552
|
+
|
|
553
|
+
self.trace_collection = TraceCollectionModule(
|
|
554
|
+
self,
|
|
555
|
+
very_trusted_module_variables=(
|
|
556
|
+
old_collection.getVeryTrustedModuleVariables()
|
|
557
|
+
if old_collection is not None
|
|
558
|
+
else {}
|
|
559
|
+
),
|
|
560
|
+
)
|
|
561
|
+
|
|
562
|
+
module_body = self.subnode_body
|
|
563
|
+
|
|
564
|
+
if module_body is not None:
|
|
565
|
+
result = module_body.computeStatementsSequence(
|
|
566
|
+
trace_collection=self.trace_collection
|
|
567
|
+
)
|
|
568
|
+
|
|
569
|
+
if result is not module_body:
|
|
570
|
+
self.setChildBody(result)
|
|
571
|
+
|
|
572
|
+
self.attemptRecursion()
|
|
573
|
+
|
|
574
|
+
# We determine the trusted module variable for use on next turnaround to provide functions with traces for them.
|
|
575
|
+
very_trusted_module_variables = {}
|
|
576
|
+
for module_variable in self.locals_scope.getLocalsRelevantVariables():
|
|
577
|
+
very_trusted_node = self.trace_collection.getVariableCurrentTrace(
|
|
578
|
+
module_variable
|
|
579
|
+
).getAttributeNodeVeryTrusted()
|
|
580
|
+
if very_trusted_node is not None:
|
|
581
|
+
very_trusted_module_variables[module_variable] = very_trusted_node
|
|
582
|
+
|
|
583
|
+
if self.trace_collection.updateVeryTrustedModuleVariables(
|
|
584
|
+
very_trusted_module_variables
|
|
585
|
+
):
|
|
586
|
+
self.trace_collection.signalChange(
|
|
587
|
+
tags="trusted_module_variables",
|
|
588
|
+
message="Trusting module variable(s) '%s'"
|
|
589
|
+
% ",".join(
|
|
590
|
+
variable.getName()
|
|
591
|
+
for variable in self.trace_collection.getVeryTrustedModuleVariables()
|
|
592
|
+
),
|
|
593
|
+
source_ref=self.source_ref,
|
|
594
|
+
)
|
|
595
|
+
|
|
596
|
+
# Finalize locals scopes previously determined for removal in last pass.
|
|
597
|
+
self.trace_collection.updateVariablesFromCollection(
|
|
598
|
+
old_collection=old_collection, source_ref=self.source_ref
|
|
599
|
+
)
|
|
600
|
+
|
|
601
|
+
# Indicate if this is pass 1 for the module as return value.
|
|
602
|
+
was_complete = not self.locals_scope.complete
|
|
603
|
+
|
|
604
|
+
def markAsComplete(body, trace_collection):
|
|
605
|
+
if body.locals_scope is not None:
|
|
606
|
+
# Make sure the propagated stuff releases memory.
|
|
607
|
+
if body.locals_scope.isMarkedForPropagation():
|
|
608
|
+
body.locals_scope.onPropagationComplete()
|
|
609
|
+
|
|
610
|
+
body.locals_scope.markAsComplete(trace_collection)
|
|
611
|
+
|
|
612
|
+
def markEntryPointAsComplete(body):
|
|
613
|
+
markAsComplete(body, body.trace_collection)
|
|
614
|
+
|
|
615
|
+
outline_bodies = body.trace_collection.getOutlineFunctions()
|
|
616
|
+
|
|
617
|
+
if outline_bodies is not None:
|
|
618
|
+
for outline_body in outline_bodies:
|
|
619
|
+
markAsComplete(outline_body, body.trace_collection)
|
|
620
|
+
|
|
621
|
+
body.optimizeUnusedTempVariables()
|
|
622
|
+
|
|
623
|
+
markEntryPointAsComplete(self)
|
|
624
|
+
|
|
625
|
+
for function_body in self.getUsedFunctions():
|
|
626
|
+
markEntryPointAsComplete(function_body)
|
|
627
|
+
|
|
628
|
+
function_body.optimizeUnusedClosureVariables()
|
|
629
|
+
function_body.optimizeVariableReleases()
|
|
630
|
+
|
|
631
|
+
return was_complete
|
|
632
|
+
|
|
633
|
+
def getTraceCollections(self):
|
|
634
|
+
yield self.trace_collection
|
|
635
|
+
|
|
636
|
+
for function in self.getUsedFunctions():
|
|
637
|
+
yield function.trace_collection
|
|
638
|
+
|
|
639
|
+
def isUnoptimized(self):
|
|
640
|
+
# Modules don't do this, pylint: disable=no-self-use
|
|
641
|
+
return False
|
|
642
|
+
|
|
643
|
+
def getLocalVariables(self):
|
|
644
|
+
# Modules don't do this, pylint: disable=no-self-use
|
|
645
|
+
return ()
|
|
646
|
+
|
|
647
|
+
def getUserLocalVariables(self):
|
|
648
|
+
# Modules don't do this, pylint: disable=no-self-use
|
|
649
|
+
return ()
|
|
650
|
+
|
|
651
|
+
@staticmethod
|
|
652
|
+
def getFunctionVariablesWithAutoReleases():
|
|
653
|
+
"""Return the list of function variables that should be released at exit."""
|
|
654
|
+
return ()
|
|
655
|
+
|
|
656
|
+
def getOutlineLocalVariables(self):
|
|
657
|
+
outlines = self.getTraceCollection().getOutlineFunctions()
|
|
658
|
+
|
|
659
|
+
if outlines is None:
|
|
660
|
+
return ()
|
|
661
|
+
|
|
662
|
+
result = []
|
|
663
|
+
|
|
664
|
+
for outline in outlines:
|
|
665
|
+
result.extend(outline.getUserLocalVariables())
|
|
666
|
+
|
|
667
|
+
return result
|
|
668
|
+
|
|
669
|
+
def hasClosureVariable(self, variable):
|
|
670
|
+
# Modules don't do this, pylint: disable=no-self-use,unused-argument
|
|
671
|
+
return False
|
|
672
|
+
|
|
673
|
+
def removeUserVariable(self, variable):
|
|
674
|
+
outlines = self.getTraceCollection().getOutlineFunctions()
|
|
675
|
+
|
|
676
|
+
for outline in outlines:
|
|
677
|
+
user_locals = outline.getUserLocalVariables()
|
|
678
|
+
|
|
679
|
+
if variable in user_locals:
|
|
680
|
+
outline.removeUserVariable(variable)
|
|
681
|
+
break
|
|
682
|
+
|
|
683
|
+
def getLocalsScope(self):
|
|
684
|
+
return self.locals_scope
|
|
685
|
+
|
|
686
|
+
def getRuntimePackageValue(self):
|
|
687
|
+
if self.isCompiledPythonPackage():
|
|
688
|
+
return self.getFullName().asString()
|
|
689
|
+
|
|
690
|
+
value = self.getFullName().getPackageName()
|
|
691
|
+
|
|
692
|
+
if value is not None:
|
|
693
|
+
return value.asString()
|
|
694
|
+
|
|
695
|
+
if self.isMainModule():
|
|
696
|
+
if self.main_added:
|
|
697
|
+
return ""
|
|
698
|
+
else:
|
|
699
|
+
return None
|
|
700
|
+
else:
|
|
701
|
+
return None
|
|
702
|
+
|
|
703
|
+
def getRuntimeNameValue(self):
|
|
704
|
+
if self.isMainModule() and Options.hasPythonFlagPackageMode():
|
|
705
|
+
return "__main__"
|
|
706
|
+
elif self.module_name.isMultidistModuleName():
|
|
707
|
+
return "__main__"
|
|
708
|
+
else:
|
|
709
|
+
return self.getFullName().asString()
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
class CompiledPythonPackage(CompiledPythonModule):
|
|
713
|
+
kind = "COMPILED_PYTHON_PACKAGE"
|
|
714
|
+
|
|
715
|
+
def __init__(self, module_name, reason, is_top, mode, future_spec, source_ref):
|
|
716
|
+
CompiledPythonModule.__init__(
|
|
717
|
+
self,
|
|
718
|
+
module_name=module_name,
|
|
719
|
+
reason=reason,
|
|
720
|
+
is_top=is_top,
|
|
721
|
+
mode=mode,
|
|
722
|
+
future_spec=future_spec,
|
|
723
|
+
source_ref=source_ref,
|
|
724
|
+
)
|
|
725
|
+
|
|
726
|
+
@staticmethod
|
|
727
|
+
def isCompiledPythonPackage():
|
|
728
|
+
return True
|
|
729
|
+
|
|
730
|
+
def getOutputFilename(self):
|
|
731
|
+
result = self.getFilename()
|
|
732
|
+
|
|
733
|
+
if os.path.isdir(result):
|
|
734
|
+
return result
|
|
735
|
+
else:
|
|
736
|
+
return os.path.dirname(result)
|
|
737
|
+
|
|
738
|
+
@staticmethod
|
|
739
|
+
def canHaveExternalImports():
|
|
740
|
+
return not hasPythonFlagIsolated()
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
class CompiledPythonNamespacePackage(CompiledPythonPackage):
|
|
744
|
+
kind = "COMPILED_PYTHON_NAMESPACE_PACKAGE"
|
|
745
|
+
|
|
746
|
+
@staticmethod
|
|
747
|
+
def isCompiledPythonNamespacePackage():
|
|
748
|
+
return True
|
|
749
|
+
|
|
750
|
+
# These have no source code obviously.
|
|
751
|
+
@staticmethod
|
|
752
|
+
def getSourceCode():
|
|
753
|
+
return None
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
def makeUncompiledPythonModule(
|
|
757
|
+
module_name, reason, filename, bytecode, is_package, technical
|
|
758
|
+
):
|
|
759
|
+
source_ref = fromFilename(filename)
|
|
760
|
+
|
|
761
|
+
if is_package:
|
|
762
|
+
return UncompiledPythonPackage(
|
|
763
|
+
module_name=module_name,
|
|
764
|
+
reason=reason,
|
|
765
|
+
bytecode=bytecode,
|
|
766
|
+
filename=filename,
|
|
767
|
+
technical=technical,
|
|
768
|
+
source_ref=source_ref,
|
|
769
|
+
)
|
|
770
|
+
else:
|
|
771
|
+
return UncompiledPythonModule(
|
|
772
|
+
module_name=module_name,
|
|
773
|
+
reason=reason,
|
|
774
|
+
bytecode=bytecode,
|
|
775
|
+
filename=filename,
|
|
776
|
+
technical=technical,
|
|
777
|
+
source_ref=source_ref,
|
|
778
|
+
)
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
class UncompiledPythonModule(PythonModuleBase):
|
|
782
|
+
"""Uncompiled Python Module"""
|
|
783
|
+
|
|
784
|
+
kind = "UNCOMPILED_PYTHON_MODULE"
|
|
785
|
+
|
|
786
|
+
__slots__ = (
|
|
787
|
+
"bytecode",
|
|
788
|
+
"filename",
|
|
789
|
+
"technical",
|
|
790
|
+
"used_modules",
|
|
791
|
+
"distribution_names",
|
|
792
|
+
)
|
|
793
|
+
|
|
794
|
+
def __init__(
|
|
795
|
+
self,
|
|
796
|
+
module_name,
|
|
797
|
+
reason,
|
|
798
|
+
bytecode,
|
|
799
|
+
filename,
|
|
800
|
+
technical,
|
|
801
|
+
source_ref,
|
|
802
|
+
):
|
|
803
|
+
PythonModuleBase.__init__(
|
|
804
|
+
self,
|
|
805
|
+
module_name=module_name,
|
|
806
|
+
reason=reason,
|
|
807
|
+
source_ref=source_ref,
|
|
808
|
+
)
|
|
809
|
+
|
|
810
|
+
self.bytecode = bytecode
|
|
811
|
+
self.filename = filename
|
|
812
|
+
|
|
813
|
+
self.technical = technical
|
|
814
|
+
|
|
815
|
+
self.used_modules = ()
|
|
816
|
+
self.distribution_names = ()
|
|
817
|
+
|
|
818
|
+
def finalize(self):
|
|
819
|
+
del self.used_modules
|
|
820
|
+
del self.bytecode
|
|
821
|
+
|
|
822
|
+
@staticmethod
|
|
823
|
+
def isUncompiledPythonModule():
|
|
824
|
+
return True
|
|
825
|
+
|
|
826
|
+
def isTechnical(self):
|
|
827
|
+
"""Must be bytecode as it's used in CPython library initialization."""
|
|
828
|
+
return self.technical
|
|
829
|
+
|
|
830
|
+
def getByteCode(self):
|
|
831
|
+
return self.bytecode
|
|
832
|
+
|
|
833
|
+
def getFilename(self):
|
|
834
|
+
return self.filename
|
|
835
|
+
|
|
836
|
+
def getUsedModules(self):
|
|
837
|
+
return self.used_modules
|
|
838
|
+
|
|
839
|
+
def setUsedModules(self, used_modules):
|
|
840
|
+
self.used_modules = used_modules
|
|
841
|
+
|
|
842
|
+
def getUsedDistributions(self):
|
|
843
|
+
return self.distribution_names
|
|
844
|
+
|
|
845
|
+
def setUsedDistributions(self, distribution_names):
|
|
846
|
+
self.distribution_names = distribution_names
|
|
847
|
+
|
|
848
|
+
@staticmethod
|
|
849
|
+
def startTraversal():
|
|
850
|
+
pass
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
class UncompiledPythonPackage(UncompiledPythonModule):
|
|
854
|
+
kind = "UNCOMPILED_PYTHON_PACKAGE"
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
class PythonMainModule(CompiledPythonModule):
|
|
858
|
+
"""Main module of a program, typically "__main__" but can be inside a package too."""
|
|
859
|
+
|
|
860
|
+
kind = "PYTHON_MAIN_MODULE"
|
|
861
|
+
|
|
862
|
+
__slots__ = ("main_added", "standard_library_modules")
|
|
863
|
+
|
|
864
|
+
def __init__(self, module_name, main_added, mode, future_spec, source_ref):
|
|
865
|
+
assert not Options.shallMakeModule()
|
|
866
|
+
|
|
867
|
+
# Is this one from a "__main__.py" file
|
|
868
|
+
self.main_added = main_added
|
|
869
|
+
|
|
870
|
+
CompiledPythonModule.__init__(
|
|
871
|
+
self,
|
|
872
|
+
module_name=module_name,
|
|
873
|
+
reason="main",
|
|
874
|
+
is_top=True,
|
|
875
|
+
mode=mode,
|
|
876
|
+
future_spec=future_spec,
|
|
877
|
+
source_ref=source_ref,
|
|
878
|
+
)
|
|
879
|
+
|
|
880
|
+
self.standard_library_modules = ()
|
|
881
|
+
|
|
882
|
+
def getDetails(self):
|
|
883
|
+
return {
|
|
884
|
+
"filename": self.source_ref.getFilename(),
|
|
885
|
+
"module_name": self.module_name,
|
|
886
|
+
"main_added": self.main_added,
|
|
887
|
+
"mode": self.mode,
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
@classmethod
|
|
891
|
+
def fromXML(cls, provider, source_ref, **args):
|
|
892
|
+
future_spec = fromFlags(args["code_flags"])
|
|
893
|
+
|
|
894
|
+
result = cls(
|
|
895
|
+
main_added=args["main_added"] == "True",
|
|
896
|
+
mode=args["mode"],
|
|
897
|
+
module_name=ModuleName(args["module_name"]),
|
|
898
|
+
future_spec=future_spec,
|
|
899
|
+
source_ref=source_ref,
|
|
900
|
+
)
|
|
901
|
+
|
|
902
|
+
from nuitka.ModuleRegistry import addRootModule
|
|
903
|
+
|
|
904
|
+
addRootModule(result)
|
|
905
|
+
|
|
906
|
+
function_work = []
|
|
907
|
+
|
|
908
|
+
for xml in args["functions"]:
|
|
909
|
+
_kind, node_class, func_args, source_ref = extractKindAndArgsFromXML(
|
|
910
|
+
xml, source_ref
|
|
911
|
+
)
|
|
912
|
+
|
|
913
|
+
if "provider" in func_args:
|
|
914
|
+
func_args["provider"] = getOwnerFromCodeName(func_args["provider"])
|
|
915
|
+
else:
|
|
916
|
+
func_args["provider"] = result
|
|
917
|
+
|
|
918
|
+
if "flags" in args:
|
|
919
|
+
func_args["flags"] = set(func_args["flags"].split(","))
|
|
920
|
+
|
|
921
|
+
if "doc" not in args:
|
|
922
|
+
func_args["doc"] = None
|
|
923
|
+
|
|
924
|
+
function = node_class.fromXML(source_ref=source_ref, **func_args)
|
|
925
|
+
|
|
926
|
+
# Could do more checks for look up of body here, but so what...
|
|
927
|
+
function_work.append((function, iter(iter(xml).next()).next()))
|
|
928
|
+
|
|
929
|
+
for function, xml in function_work:
|
|
930
|
+
function.setChildBody(
|
|
931
|
+
fromXML(
|
|
932
|
+
provider=function, xml=xml, source_ref=function.getSourceReference()
|
|
933
|
+
)
|
|
934
|
+
)
|
|
935
|
+
|
|
936
|
+
result.setChildBody(
|
|
937
|
+
fromXML(provider=result, xml=args["body"][0], source_ref=source_ref)
|
|
938
|
+
)
|
|
939
|
+
|
|
940
|
+
return result
|
|
941
|
+
|
|
942
|
+
@staticmethod
|
|
943
|
+
def isMainModule():
|
|
944
|
+
return True
|
|
945
|
+
|
|
946
|
+
def getOutputFilename(self):
|
|
947
|
+
if self.main_added:
|
|
948
|
+
return os.path.dirname(self.getFilename())
|
|
949
|
+
else:
|
|
950
|
+
return CompiledPythonModule.getOutputFilename(self)
|
|
951
|
+
|
|
952
|
+
def getUsedModules(self):
|
|
953
|
+
for used_module in CompiledPythonModule.getUsedModules(self):
|
|
954
|
+
yield used_module
|
|
955
|
+
|
|
956
|
+
for used_module in self.standard_library_modules:
|
|
957
|
+
yield used_module
|
|
958
|
+
|
|
959
|
+
def setStandardLibraryModules(self, early_module_names, stdlib_modules_names):
|
|
960
|
+
self.standard_library_modules = OrderedSet()
|
|
961
|
+
|
|
962
|
+
for early_module_name in early_module_names + stdlib_modules_names:
|
|
963
|
+
_early_module_name, module_filename, module_kind, finding = locateModule(
|
|
964
|
+
module_name=early_module_name,
|
|
965
|
+
parent_package=None,
|
|
966
|
+
level=0,
|
|
967
|
+
)
|
|
968
|
+
|
|
969
|
+
# Technically required, but not found must not happen
|
|
970
|
+
assert finding != "not-found", early_module_name
|
|
971
|
+
|
|
972
|
+
self.standard_library_modules.add(
|
|
973
|
+
makeModuleUsageAttempt(
|
|
974
|
+
module_name=early_module_name,
|
|
975
|
+
filename=module_filename,
|
|
976
|
+
module_kind=module_kind,
|
|
977
|
+
finding=finding,
|
|
978
|
+
level=0,
|
|
979
|
+
source_ref=self.source_ref,
|
|
980
|
+
reason="stdlib",
|
|
981
|
+
)
|
|
982
|
+
)
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class PythonExtensionModule(PythonModuleBase):
|
|
986
|
+
kind = "PYTHON_EXTENSION_MODULE"
|
|
987
|
+
|
|
988
|
+
__slots__ = ("used_modules", "module_filename", "technical", "is_package")
|
|
989
|
+
|
|
990
|
+
avoid_duplicates = set()
|
|
991
|
+
|
|
992
|
+
def __init__(
|
|
993
|
+
self,
|
|
994
|
+
module_name,
|
|
995
|
+
module_filename,
|
|
996
|
+
reason,
|
|
997
|
+
technical,
|
|
998
|
+
source_ref,
|
|
999
|
+
):
|
|
1000
|
+
PythonModuleBase.__init__(
|
|
1001
|
+
self,
|
|
1002
|
+
module_name=module_name,
|
|
1003
|
+
reason=reason,
|
|
1004
|
+
source_ref=source_ref,
|
|
1005
|
+
)
|
|
1006
|
+
|
|
1007
|
+
# That would be a mistake we just made.
|
|
1008
|
+
assert os.path.basename(source_ref.getFilename()) != "<frozen>"
|
|
1009
|
+
|
|
1010
|
+
# That is too likely a bug.
|
|
1011
|
+
assert module_name != "__main__"
|
|
1012
|
+
|
|
1013
|
+
# Duplicates should be avoided by us caching elsewhere before creating
|
|
1014
|
+
# the object.
|
|
1015
|
+
assert self.getFullName() not in self.avoid_duplicates, self.getFullName()
|
|
1016
|
+
self.avoid_duplicates.add(self.getFullName())
|
|
1017
|
+
|
|
1018
|
+
# Required to startup
|
|
1019
|
+
self.technical = technical
|
|
1020
|
+
|
|
1021
|
+
self.used_modules = None
|
|
1022
|
+
|
|
1023
|
+
if os.path.isdir(module_filename):
|
|
1024
|
+
module_filename = getPackageDirFilename(module_filename)
|
|
1025
|
+
self.is_package = True
|
|
1026
|
+
else:
|
|
1027
|
+
self.is_package = False
|
|
1028
|
+
|
|
1029
|
+
self.module_filename = module_filename
|
|
1030
|
+
|
|
1031
|
+
def isExtensionModulePackage(self):
|
|
1032
|
+
return self.is_package
|
|
1033
|
+
|
|
1034
|
+
def finalize(self):
|
|
1035
|
+
del self.used_modules
|
|
1036
|
+
|
|
1037
|
+
def getFilename(self):
|
|
1038
|
+
return self.module_filename
|
|
1039
|
+
|
|
1040
|
+
@staticmethod
|
|
1041
|
+
def startTraversal():
|
|
1042
|
+
pass
|
|
1043
|
+
|
|
1044
|
+
def isTechnical(self):
|
|
1045
|
+
"""Must be present as it's used in CPython library initialization."""
|
|
1046
|
+
return self.technical
|
|
1047
|
+
|
|
1048
|
+
def _getPyIFilename(self):
|
|
1049
|
+
"""Get Python type description filename."""
|
|
1050
|
+
|
|
1051
|
+
path = self.getFilename()
|
|
1052
|
+
|
|
1053
|
+
for extension_module_suffix in getExtensionModuleSuffixes():
|
|
1054
|
+
if path.endswith(extension_module_suffix):
|
|
1055
|
+
for pyi_suffix in (".pyi", ".py"):
|
|
1056
|
+
candidate = switchFilenameExtension(
|
|
1057
|
+
path=path,
|
|
1058
|
+
old_extension=extension_module_suffix,
|
|
1059
|
+
new_extension=pyi_suffix,
|
|
1060
|
+
)
|
|
1061
|
+
|
|
1062
|
+
if os.path.exists(candidate):
|
|
1063
|
+
return candidate
|
|
1064
|
+
|
|
1065
|
+
return None
|
|
1066
|
+
|
|
1067
|
+
def _readPyIFile(self):
|
|
1068
|
+
"""Read the .pyi file if present and scan for dependencies."""
|
|
1069
|
+
|
|
1070
|
+
if self.used_modules is None:
|
|
1071
|
+
# TODO: Make this a locatePyIFilename function instead.
|
|
1072
|
+
pyi_filename = self._getPyIFilename()
|
|
1073
|
+
|
|
1074
|
+
if pyi_filename is not None:
|
|
1075
|
+
pyi_deps = parsePyIFile(
|
|
1076
|
+
module_name=self.getFullName(),
|
|
1077
|
+
package_name=(
|
|
1078
|
+
self.getFullName()
|
|
1079
|
+
if self.is_package
|
|
1080
|
+
else self.getFullName().getPackageName()
|
|
1081
|
+
),
|
|
1082
|
+
pyi_filename=pyi_filename,
|
|
1083
|
+
)
|
|
1084
|
+
|
|
1085
|
+
# These are not to be taken serious.
|
|
1086
|
+
if "typing" in pyi_deps:
|
|
1087
|
+
pyi_deps.discard("typing")
|
|
1088
|
+
if "__future__" in pyi_deps:
|
|
1089
|
+
pyi_deps.discard("__future__")
|
|
1090
|
+
|
|
1091
|
+
# Dependency on itself makes no sense.
|
|
1092
|
+
if self.getFullName() in pyi_deps:
|
|
1093
|
+
pyi_deps.discard(self.getFullName())
|
|
1094
|
+
|
|
1095
|
+
# Dependency on containing package makes no sense.
|
|
1096
|
+
if self.getFullName().getPackageName() in pyi_deps:
|
|
1097
|
+
pyi_deps.discard(self.getFullName().getPackageName())
|
|
1098
|
+
|
|
1099
|
+
self.used_modules = tuple(pyi_deps)
|
|
1100
|
+
else:
|
|
1101
|
+
self.used_modules = ()
|
|
1102
|
+
|
|
1103
|
+
def getPyIModuleImportedNames(self):
|
|
1104
|
+
self._readPyIFile()
|
|
1105
|
+
|
|
1106
|
+
assert "." not in self.used_modules, self
|
|
1107
|
+
|
|
1108
|
+
return self.used_modules
|
|
1109
|
+
|
|
1110
|
+
@staticmethod
|
|
1111
|
+
def getUsedModules():
|
|
1112
|
+
# The PyI contents is currently delivered via implicit imports
|
|
1113
|
+
# plugin.
|
|
1114
|
+
return ()
|
|
1115
|
+
|
|
1116
|
+
@staticmethod
|
|
1117
|
+
def getUsedDistributions():
|
|
1118
|
+
return {}
|
|
1119
|
+
|
|
1120
|
+
def getParentModule(self):
|
|
1121
|
+
return self
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1125
|
+
# integrates with CPython, but also works on its own.
|
|
1126
|
+
#
|
|
1127
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1128
|
+
# you may not use this file except in compliance with the License.
|
|
1129
|
+
# You may obtain a copy of the License at
|
|
1130
|
+
#
|
|
1131
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1132
|
+
#
|
|
1133
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1134
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1135
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1136
|
+
# See the License for the specific language governing permissions and
|
|
1137
|
+
# limitations under the License.
|