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,1248 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Code generation contexts.
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import collections
|
|
9
|
+
from abc import abstractmethod
|
|
10
|
+
from contextlib import contextmanager
|
|
11
|
+
|
|
12
|
+
from nuitka import Options
|
|
13
|
+
from nuitka.__past__ import iterItems
|
|
14
|
+
from nuitka.Constants import isMutable
|
|
15
|
+
from nuitka.PythonVersions import python_version
|
|
16
|
+
from nuitka.Serialization import ConstantAccessor
|
|
17
|
+
from nuitka.utils.Hashing import getStringHash
|
|
18
|
+
from nuitka.utils.InstanceCounters import (
|
|
19
|
+
counted_del,
|
|
20
|
+
counted_init,
|
|
21
|
+
isCountingInstances,
|
|
22
|
+
)
|
|
23
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
24
|
+
|
|
25
|
+
from .VariableDeclarations import VariableDeclaration, VariableStorage
|
|
26
|
+
|
|
27
|
+
# Many methods won't use self, but it's the interface. pylint: disable=no-self-use
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TempMixin(object):
|
|
31
|
+
# Lots of details, everything gets to store bits here, to indicate
|
|
32
|
+
# code generation states, and there are many, pylint: disable=too-many-instance-attributes
|
|
33
|
+
|
|
34
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
35
|
+
__slots__ = ()
|
|
36
|
+
|
|
37
|
+
def __init__(self):
|
|
38
|
+
self.tmp_names = {}
|
|
39
|
+
|
|
40
|
+
self.labels = {}
|
|
41
|
+
|
|
42
|
+
# For exception and loop handling
|
|
43
|
+
self.exception_escape = None
|
|
44
|
+
self.loop_continue = None
|
|
45
|
+
self.loop_break = None
|
|
46
|
+
|
|
47
|
+
# For branches
|
|
48
|
+
self.true_target = None
|
|
49
|
+
self.false_target = None
|
|
50
|
+
|
|
51
|
+
self.keeper_variable_count = 0
|
|
52
|
+
self.exception_keepers = (None, None)
|
|
53
|
+
|
|
54
|
+
self.preserver_variable_declaration = {}
|
|
55
|
+
|
|
56
|
+
self.cleanup_names = []
|
|
57
|
+
|
|
58
|
+
def _formatTempName(self, base_name, number):
|
|
59
|
+
if number is None:
|
|
60
|
+
return "tmp_{name}".format(name=base_name)
|
|
61
|
+
else:
|
|
62
|
+
return "tmp_{name}_{number:d}".format(name=base_name, number=number)
|
|
63
|
+
|
|
64
|
+
def allocateTempName(self, base_name, type_name="PyObject *", unique=False):
|
|
65
|
+
# We might be hard coding too many details for special temps
|
|
66
|
+
# here, pylint: disable=too-many-branches
|
|
67
|
+
|
|
68
|
+
# TODO: This should be achieved.
|
|
69
|
+
# assert not base_name.startswith("tmp_"), base_name
|
|
70
|
+
|
|
71
|
+
if unique:
|
|
72
|
+
number = None
|
|
73
|
+
else:
|
|
74
|
+
number = self.tmp_names.get(base_name, 0)
|
|
75
|
+
number += 1
|
|
76
|
+
|
|
77
|
+
self.tmp_names[base_name] = number
|
|
78
|
+
|
|
79
|
+
formatted_name = self._formatTempName(base_name=base_name, number=number)
|
|
80
|
+
|
|
81
|
+
if unique:
|
|
82
|
+
result = self.variable_storage.getVariableDeclarationTop(formatted_name)
|
|
83
|
+
|
|
84
|
+
if result is None:
|
|
85
|
+
if base_name == "outline_return_value":
|
|
86
|
+
init_value = "NULL"
|
|
87
|
+
elif base_name == "return_value":
|
|
88
|
+
init_value = "NULL"
|
|
89
|
+
elif base_name == "generator_return":
|
|
90
|
+
init_value = "false"
|
|
91
|
+
else:
|
|
92
|
+
init_value = None
|
|
93
|
+
|
|
94
|
+
if base_name == "unused":
|
|
95
|
+
result = self.variable_storage.addVariableDeclarationFunction(
|
|
96
|
+
c_type=type_name,
|
|
97
|
+
code_name=formatted_name,
|
|
98
|
+
init_value=init_value,
|
|
99
|
+
)
|
|
100
|
+
else:
|
|
101
|
+
result = self.variable_storage.addVariableDeclarationTop(
|
|
102
|
+
c_type=type_name,
|
|
103
|
+
code_name=formatted_name,
|
|
104
|
+
init_value=init_value,
|
|
105
|
+
)
|
|
106
|
+
else:
|
|
107
|
+
if type_name.startswith("NUITKA_MAY_BE_UNUSED"):
|
|
108
|
+
type_name = type_name[21:]
|
|
109
|
+
|
|
110
|
+
assert result.c_type == type_name
|
|
111
|
+
|
|
112
|
+
else:
|
|
113
|
+
result = self.variable_storage.addVariableDeclarationLocal(
|
|
114
|
+
c_type=type_name, code_name=formatted_name
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
return result
|
|
118
|
+
|
|
119
|
+
def skipTempName(self, base_name):
|
|
120
|
+
number = self.tmp_names.get(base_name, 0)
|
|
121
|
+
number += 1
|
|
122
|
+
self.tmp_names[base_name] = number
|
|
123
|
+
|
|
124
|
+
def getIntResName(self):
|
|
125
|
+
return self.allocateTempName("res", "int", unique=True)
|
|
126
|
+
|
|
127
|
+
def getBoolResName(self):
|
|
128
|
+
return self.allocateTempName("result", "bool", unique=True)
|
|
129
|
+
|
|
130
|
+
def hasTempName(self, base_name):
|
|
131
|
+
return base_name in self.tmp_names
|
|
132
|
+
|
|
133
|
+
def getExceptionEscape(self):
|
|
134
|
+
return self.exception_escape
|
|
135
|
+
|
|
136
|
+
def setExceptionEscape(self, label):
|
|
137
|
+
result = self.exception_escape
|
|
138
|
+
self.exception_escape = label
|
|
139
|
+
return result
|
|
140
|
+
|
|
141
|
+
def getLoopBreakTarget(self):
|
|
142
|
+
return self.loop_break
|
|
143
|
+
|
|
144
|
+
def setLoopBreakTarget(self, label):
|
|
145
|
+
result = self.loop_break
|
|
146
|
+
self.loop_break = label
|
|
147
|
+
return result
|
|
148
|
+
|
|
149
|
+
def getLoopContinueTarget(self):
|
|
150
|
+
return self.loop_continue
|
|
151
|
+
|
|
152
|
+
def setLoopContinueTarget(self, label):
|
|
153
|
+
result = self.loop_continue
|
|
154
|
+
self.loop_continue = label
|
|
155
|
+
return result
|
|
156
|
+
|
|
157
|
+
def allocateLabel(self, label):
|
|
158
|
+
result = self.labels.get(label, 0)
|
|
159
|
+
result += 1
|
|
160
|
+
self.labels[label] = result
|
|
161
|
+
|
|
162
|
+
return "{name}_{number:d}".format(name=label, number=result)
|
|
163
|
+
|
|
164
|
+
def getLabelCount(self, label):
|
|
165
|
+
return self.labels.get(label, 0)
|
|
166
|
+
|
|
167
|
+
def allocateExceptionKeeperVariables(self):
|
|
168
|
+
self.keeper_variable_count += 1
|
|
169
|
+
|
|
170
|
+
# For finally handlers of Python3, which have conditions on assign and
|
|
171
|
+
# use, the NULL init is needed.
|
|
172
|
+
debug = Options.is_debug and python_version >= 0x300
|
|
173
|
+
|
|
174
|
+
if debug:
|
|
175
|
+
keeper_obj_init = "Empty_Nuitka_ExceptionPreservationItem"
|
|
176
|
+
else:
|
|
177
|
+
keeper_obj_init = None
|
|
178
|
+
|
|
179
|
+
return (
|
|
180
|
+
self.variable_storage.addVariableDeclarationTop(
|
|
181
|
+
"struct Nuitka_ExceptionPreservationItem",
|
|
182
|
+
"exception_keeper_name_%d" % self.keeper_variable_count,
|
|
183
|
+
keeper_obj_init,
|
|
184
|
+
),
|
|
185
|
+
self.variable_storage.addVariableDeclarationTop(
|
|
186
|
+
"NUITKA_MAY_BE_UNUSED int",
|
|
187
|
+
"exception_keeper_lineno_%d" % self.keeper_variable_count,
|
|
188
|
+
"0" if debug else None,
|
|
189
|
+
),
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
def getExceptionKeeperVariables(self):
|
|
193
|
+
return self.exception_keepers
|
|
194
|
+
|
|
195
|
+
def setExceptionKeeperVariables(self, keeper_vars):
|
|
196
|
+
result = self.exception_keepers
|
|
197
|
+
self.exception_keepers = tuple(keeper_vars)
|
|
198
|
+
assert len(self.exception_keepers) == 2
|
|
199
|
+
return result
|
|
200
|
+
|
|
201
|
+
def addExceptionPreserverVariables(self, preserver_id):
|
|
202
|
+
# For finally handlers of Python3, which have conditions on assign and
|
|
203
|
+
# use.
|
|
204
|
+
if preserver_id not in self.preserver_variable_declaration:
|
|
205
|
+
needs_init = Options.is_debug and python_version >= 0x300
|
|
206
|
+
|
|
207
|
+
if needs_init:
|
|
208
|
+
preserver_obj_init = "Nuitka_ExceptionStackItem_Empty"
|
|
209
|
+
else:
|
|
210
|
+
preserver_obj_init = None
|
|
211
|
+
|
|
212
|
+
self.preserver_variable_declaration[preserver_id] = (
|
|
213
|
+
self.variable_storage.addVariableDeclarationTop(
|
|
214
|
+
"struct Nuitka_ExceptionStackItem",
|
|
215
|
+
"exception_preserved_%d" % preserver_id,
|
|
216
|
+
preserver_obj_init,
|
|
217
|
+
)
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
return self.preserver_variable_declaration[preserver_id]
|
|
221
|
+
|
|
222
|
+
def getTrueBranchTarget(self):
|
|
223
|
+
return self.true_target
|
|
224
|
+
|
|
225
|
+
def getFalseBranchTarget(self):
|
|
226
|
+
return self.false_target
|
|
227
|
+
|
|
228
|
+
def setTrueBranchTarget(self, label):
|
|
229
|
+
self.true_target = label
|
|
230
|
+
|
|
231
|
+
def setFalseBranchTarget(self, label):
|
|
232
|
+
self.false_target = label
|
|
233
|
+
|
|
234
|
+
def getCleanupTempNames(self):
|
|
235
|
+
return self.cleanup_names[-1]
|
|
236
|
+
|
|
237
|
+
def addCleanupTempName(self, tmp_name):
|
|
238
|
+
assert tmp_name not in self.cleanup_names[-1], tmp_name
|
|
239
|
+
assert (
|
|
240
|
+
tmp_name.c_type != "nuitka_void" or tmp_name.code_name == "tmp_unused"
|
|
241
|
+
), tmp_name
|
|
242
|
+
|
|
243
|
+
self.cleanup_names[-1].append(tmp_name)
|
|
244
|
+
|
|
245
|
+
def removeCleanupTempName(self, tmp_name):
|
|
246
|
+
assert tmp_name in self.cleanup_names[-1], tmp_name
|
|
247
|
+
self.cleanup_names[-1].remove(tmp_name)
|
|
248
|
+
|
|
249
|
+
def transferCleanupTempName(self, tmp_source, tmp_dest):
|
|
250
|
+
if self.needsCleanup(tmp_source):
|
|
251
|
+
self.addCleanupTempName(tmp_dest)
|
|
252
|
+
self.removeCleanupTempName(tmp_source)
|
|
253
|
+
|
|
254
|
+
def needsCleanup(self, tmp_name):
|
|
255
|
+
return tmp_name in self.cleanup_names[-1]
|
|
256
|
+
|
|
257
|
+
def pushCleanupScope(self):
|
|
258
|
+
self.cleanup_names.append([])
|
|
259
|
+
|
|
260
|
+
def popCleanupScope(self):
|
|
261
|
+
assert not self.cleanup_names[-1]
|
|
262
|
+
del self.cleanup_names[-1]
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
# TODO: Remove when isExperimental("new-code-objects") is becoming the
|
|
266
|
+
# standard.
|
|
267
|
+
CodeObjectHandle = collections.namedtuple(
|
|
268
|
+
"CodeObjectHandle",
|
|
269
|
+
(
|
|
270
|
+
"co_name",
|
|
271
|
+
"co_qualname",
|
|
272
|
+
"co_kind",
|
|
273
|
+
"co_varnames",
|
|
274
|
+
"co_argcount",
|
|
275
|
+
"co_posonlyargcount",
|
|
276
|
+
"co_kwonlyargcount",
|
|
277
|
+
"co_has_starlist",
|
|
278
|
+
"co_has_stardict",
|
|
279
|
+
"co_filename",
|
|
280
|
+
"line_number",
|
|
281
|
+
"future_flags",
|
|
282
|
+
"co_new_locals",
|
|
283
|
+
"co_freevars",
|
|
284
|
+
"is_optimized",
|
|
285
|
+
),
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
if Options.isExperimental("new-code-objects"):
|
|
290
|
+
|
|
291
|
+
class CodeObjectsMixin(object):
|
|
292
|
+
__slots__ = ()
|
|
293
|
+
|
|
294
|
+
else:
|
|
295
|
+
|
|
296
|
+
class CodeObjectsMixin(object):
|
|
297
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
298
|
+
__slots__ = ()
|
|
299
|
+
|
|
300
|
+
def __init__(self):
|
|
301
|
+
# Code objects needed made unique by a key.
|
|
302
|
+
self.code_objects = {}
|
|
303
|
+
|
|
304
|
+
def getCodeObjects(self):
|
|
305
|
+
return sorted(iterItems(self.code_objects))
|
|
306
|
+
|
|
307
|
+
def getCodeObjectHandle(self, code_object):
|
|
308
|
+
key = CodeObjectHandle(
|
|
309
|
+
co_filename=code_object.getFilename(),
|
|
310
|
+
co_name=code_object.getCodeObjectName(),
|
|
311
|
+
co_qualname=code_object.getCodeObjectQualname(),
|
|
312
|
+
line_number=code_object.getLineNumber(),
|
|
313
|
+
co_varnames=code_object.getVarNames(),
|
|
314
|
+
co_argcount=code_object.getArgumentCount(),
|
|
315
|
+
co_freevars=code_object.getFreeVarNames(),
|
|
316
|
+
co_posonlyargcount=code_object.getPosOnlyParameterCount(),
|
|
317
|
+
co_kwonlyargcount=code_object.getKwOnlyParameterCount(),
|
|
318
|
+
co_kind=code_object.getCodeObjectKind(),
|
|
319
|
+
is_optimized=code_object.getFlagIsOptimizedValue(),
|
|
320
|
+
co_new_locals=code_object.getFlagNewLocalsValue(),
|
|
321
|
+
co_has_starlist=code_object.hasStarListArg(),
|
|
322
|
+
co_has_stardict=code_object.hasStarDictArg(),
|
|
323
|
+
future_flags=code_object.getFutureSpec().asFlags(),
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
if key not in self.code_objects:
|
|
327
|
+
self.code_objects[key] = "code_objects_%s" % self._calcHash(key)
|
|
328
|
+
|
|
329
|
+
return self.code_objects[key]
|
|
330
|
+
|
|
331
|
+
def _calcHash(self, key):
|
|
332
|
+
return getStringHash("-".join(str(s) for s in key))
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
class PythonContextBase(getMetaClassBase("Context", require_slots=True)):
|
|
336
|
+
__slots__ = ("source_ref", "current_source_ref")
|
|
337
|
+
|
|
338
|
+
@counted_init
|
|
339
|
+
def __init__(self):
|
|
340
|
+
self.source_ref = None
|
|
341
|
+
|
|
342
|
+
self.current_source_ref = None
|
|
343
|
+
|
|
344
|
+
if isCountingInstances():
|
|
345
|
+
__del__ = counted_del()
|
|
346
|
+
|
|
347
|
+
def getCurrentSourceCodeReference(self):
|
|
348
|
+
return self.current_source_ref
|
|
349
|
+
|
|
350
|
+
def setCurrentSourceCodeReference(self, value):
|
|
351
|
+
result = self.current_source_ref
|
|
352
|
+
self.current_source_ref = value
|
|
353
|
+
|
|
354
|
+
return result
|
|
355
|
+
|
|
356
|
+
@contextmanager
|
|
357
|
+
def withCurrentSourceCodeReference(self, value):
|
|
358
|
+
old_source_ref = self.setCurrentSourceCodeReference(value)
|
|
359
|
+
|
|
360
|
+
yield old_source_ref
|
|
361
|
+
|
|
362
|
+
self.setCurrentSourceCodeReference(value)
|
|
363
|
+
|
|
364
|
+
def getInplaceLeftName(self):
|
|
365
|
+
return self.allocateTempName("inplace_orig", "PyObject *", True)
|
|
366
|
+
|
|
367
|
+
@abstractmethod
|
|
368
|
+
def getConstantCode(self, constant, deep_check=False):
|
|
369
|
+
pass
|
|
370
|
+
|
|
371
|
+
@abstractmethod
|
|
372
|
+
def addModuleInitCode(self, code):
|
|
373
|
+
pass
|
|
374
|
+
|
|
375
|
+
@abstractmethod
|
|
376
|
+
def getModuleCodeName(self):
|
|
377
|
+
pass
|
|
378
|
+
|
|
379
|
+
@abstractmethod
|
|
380
|
+
def getModuleName(self):
|
|
381
|
+
pass
|
|
382
|
+
|
|
383
|
+
@abstractmethod
|
|
384
|
+
def addHelperCode(self, key, code):
|
|
385
|
+
pass
|
|
386
|
+
|
|
387
|
+
@abstractmethod
|
|
388
|
+
def hasHelperCode(self, key):
|
|
389
|
+
pass
|
|
390
|
+
|
|
391
|
+
@abstractmethod
|
|
392
|
+
def addDeclaration(self, key, code):
|
|
393
|
+
pass
|
|
394
|
+
|
|
395
|
+
@abstractmethod
|
|
396
|
+
def pushFrameVariables(self, frame_variables):
|
|
397
|
+
pass
|
|
398
|
+
|
|
399
|
+
@abstractmethod
|
|
400
|
+
def popFrameVariables(self):
|
|
401
|
+
pass
|
|
402
|
+
|
|
403
|
+
@abstractmethod
|
|
404
|
+
def getFrameVariableTypeDescriptions(self):
|
|
405
|
+
pass
|
|
406
|
+
|
|
407
|
+
@abstractmethod
|
|
408
|
+
def getFrameVariableTypeDescription(self):
|
|
409
|
+
pass
|
|
410
|
+
|
|
411
|
+
@abstractmethod
|
|
412
|
+
def getFrameTypeDescriptionDeclaration(self):
|
|
413
|
+
pass
|
|
414
|
+
|
|
415
|
+
@abstractmethod
|
|
416
|
+
def getFrameVariableCodeNames(self):
|
|
417
|
+
pass
|
|
418
|
+
|
|
419
|
+
@abstractmethod
|
|
420
|
+
def allocateTempName(self, base_name, type_name="PyObject *", unique=False):
|
|
421
|
+
pass
|
|
422
|
+
|
|
423
|
+
@abstractmethod
|
|
424
|
+
def skipTempName(self, base_name):
|
|
425
|
+
pass
|
|
426
|
+
|
|
427
|
+
@abstractmethod
|
|
428
|
+
def getIntResName(self):
|
|
429
|
+
pass
|
|
430
|
+
|
|
431
|
+
@abstractmethod
|
|
432
|
+
def getBoolResName(self):
|
|
433
|
+
pass
|
|
434
|
+
|
|
435
|
+
@abstractmethod
|
|
436
|
+
def hasTempName(self, base_name):
|
|
437
|
+
pass
|
|
438
|
+
|
|
439
|
+
@abstractmethod
|
|
440
|
+
def getExceptionEscape(self):
|
|
441
|
+
pass
|
|
442
|
+
|
|
443
|
+
@abstractmethod
|
|
444
|
+
def setExceptionEscape(self, label):
|
|
445
|
+
pass
|
|
446
|
+
|
|
447
|
+
@abstractmethod
|
|
448
|
+
def getLoopBreakTarget(self):
|
|
449
|
+
pass
|
|
450
|
+
|
|
451
|
+
@abstractmethod
|
|
452
|
+
def setLoopBreakTarget(self, label):
|
|
453
|
+
pass
|
|
454
|
+
|
|
455
|
+
@abstractmethod
|
|
456
|
+
def getLoopContinueTarget(self):
|
|
457
|
+
pass
|
|
458
|
+
|
|
459
|
+
@abstractmethod
|
|
460
|
+
def setLoopContinueTarget(self, label):
|
|
461
|
+
pass
|
|
462
|
+
|
|
463
|
+
@abstractmethod
|
|
464
|
+
def allocateLabel(self, label):
|
|
465
|
+
pass
|
|
466
|
+
|
|
467
|
+
@abstractmethod
|
|
468
|
+
def allocateExceptionKeeperVariables(self):
|
|
469
|
+
pass
|
|
470
|
+
|
|
471
|
+
@abstractmethod
|
|
472
|
+
def getExceptionKeeperVariables(self):
|
|
473
|
+
pass
|
|
474
|
+
|
|
475
|
+
@abstractmethod
|
|
476
|
+
def setExceptionKeeperVariables(self, keeper_vars):
|
|
477
|
+
pass
|
|
478
|
+
|
|
479
|
+
@abstractmethod
|
|
480
|
+
def addExceptionPreserverVariables(self, count):
|
|
481
|
+
pass
|
|
482
|
+
|
|
483
|
+
@abstractmethod
|
|
484
|
+
def getTrueBranchTarget(self):
|
|
485
|
+
pass
|
|
486
|
+
|
|
487
|
+
@abstractmethod
|
|
488
|
+
def getFalseBranchTarget(self):
|
|
489
|
+
pass
|
|
490
|
+
|
|
491
|
+
@abstractmethod
|
|
492
|
+
def setTrueBranchTarget(self, label):
|
|
493
|
+
pass
|
|
494
|
+
|
|
495
|
+
@abstractmethod
|
|
496
|
+
def setFalseBranchTarget(self, label):
|
|
497
|
+
pass
|
|
498
|
+
|
|
499
|
+
@abstractmethod
|
|
500
|
+
def getCleanupTempNames(self):
|
|
501
|
+
pass
|
|
502
|
+
|
|
503
|
+
@abstractmethod
|
|
504
|
+
def addCleanupTempName(self, tmp_name):
|
|
505
|
+
pass
|
|
506
|
+
|
|
507
|
+
@abstractmethod
|
|
508
|
+
def removeCleanupTempName(self, tmp_name):
|
|
509
|
+
pass
|
|
510
|
+
|
|
511
|
+
@abstractmethod
|
|
512
|
+
def needsCleanup(self, tmp_name):
|
|
513
|
+
pass
|
|
514
|
+
|
|
515
|
+
@abstractmethod
|
|
516
|
+
def pushCleanupScope(self):
|
|
517
|
+
pass
|
|
518
|
+
|
|
519
|
+
@abstractmethod
|
|
520
|
+
def popCleanupScope(self):
|
|
521
|
+
pass
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
class PythonChildContextBase(PythonContextBase):
|
|
525
|
+
# Base classes can be abstract, pylint: disable=I0021,abstract-method
|
|
526
|
+
|
|
527
|
+
__slots__ = ("parent",)
|
|
528
|
+
|
|
529
|
+
def __init__(self, parent):
|
|
530
|
+
PythonContextBase.__init__(self)
|
|
531
|
+
|
|
532
|
+
self.parent = parent
|
|
533
|
+
|
|
534
|
+
def getConstantCode(self, constant, deep_check=False):
|
|
535
|
+
return self.parent.getConstantCode(constant, deep_check=deep_check)
|
|
536
|
+
|
|
537
|
+
def addModuleInitCode(self, code):
|
|
538
|
+
self.parent.addModuleInitCode(code)
|
|
539
|
+
|
|
540
|
+
def getModuleCodeName(self):
|
|
541
|
+
return self.parent.getModuleCodeName()
|
|
542
|
+
|
|
543
|
+
def getModuleName(self):
|
|
544
|
+
return self.parent.getModuleName()
|
|
545
|
+
|
|
546
|
+
def addHelperCode(self, key, code):
|
|
547
|
+
return self.parent.addHelperCode(key, code)
|
|
548
|
+
|
|
549
|
+
def hasHelperCode(self, key):
|
|
550
|
+
return self.parent.hasHelperCode(key)
|
|
551
|
+
|
|
552
|
+
def addDeclaration(self, key, code):
|
|
553
|
+
self.parent.addDeclaration(key, code)
|
|
554
|
+
|
|
555
|
+
def pushFrameVariables(self, frame_variables):
|
|
556
|
+
return self.parent.pushFrameVariables(frame_variables)
|
|
557
|
+
|
|
558
|
+
def popFrameVariables(self):
|
|
559
|
+
return self.parent.popFrameVariables()
|
|
560
|
+
|
|
561
|
+
def getFrameVariableTypeDescriptions(self):
|
|
562
|
+
return self.parent.getFrameVariableTypeDescriptions()
|
|
563
|
+
|
|
564
|
+
def getFrameVariableTypeDescription(self):
|
|
565
|
+
return self.parent.getFrameVariableTypeDescription()
|
|
566
|
+
|
|
567
|
+
def getFrameTypeDescriptionDeclaration(self):
|
|
568
|
+
return self.parent.getFrameTypeDescriptionDeclaration()
|
|
569
|
+
|
|
570
|
+
def getFrameVariableCodeNames(self):
|
|
571
|
+
return self.parent.getFrameVariableCodeNames()
|
|
572
|
+
|
|
573
|
+
def addFunctionCreationInfo(self, creation_info):
|
|
574
|
+
return self.parent.addFunctionCreationInfo(creation_info)
|
|
575
|
+
|
|
576
|
+
def setModuleVariableAccessorCaching(self, variable_name, caching):
|
|
577
|
+
self.parent.setModuleVariableAccessorCaching(variable_name, caching)
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
class FrameDeclarationsMixin(object):
|
|
581
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
582
|
+
__slots__ = ()
|
|
583
|
+
|
|
584
|
+
def __init__(self):
|
|
585
|
+
# Frame is active or not, default not.
|
|
586
|
+
self.frame_variables_stack = [""]
|
|
587
|
+
# Type descriptions of the current frame.
|
|
588
|
+
self.frame_type_descriptions = [()]
|
|
589
|
+
|
|
590
|
+
# Types of variables for current frame.
|
|
591
|
+
self.frame_variable_types = {}
|
|
592
|
+
|
|
593
|
+
self.frames_used = 0
|
|
594
|
+
|
|
595
|
+
# Currently active frame stack inside the context.
|
|
596
|
+
self.frame_stack = [None]
|
|
597
|
+
|
|
598
|
+
self.locals_dict_names = None
|
|
599
|
+
|
|
600
|
+
def getFrameHandle(self):
|
|
601
|
+
return self.frame_stack[-1]
|
|
602
|
+
|
|
603
|
+
def pushFrameHandle(self, frame_code_name, is_light):
|
|
604
|
+
self.frames_used += 1
|
|
605
|
+
|
|
606
|
+
if is_light:
|
|
607
|
+
frame_identifier = VariableDeclaration(
|
|
608
|
+
"struct Nuitka_FrameObject *",
|
|
609
|
+
"m_frame",
|
|
610
|
+
None,
|
|
611
|
+
self.getContextObjectName(),
|
|
612
|
+
)
|
|
613
|
+
|
|
614
|
+
else:
|
|
615
|
+
frame_handle = "frame_" + frame_code_name
|
|
616
|
+
|
|
617
|
+
if self.frames_used > 1:
|
|
618
|
+
frame_handle += "_%d" % self.frames_used
|
|
619
|
+
|
|
620
|
+
frame_identifier = self.variable_storage.addVariableDeclarationTop(
|
|
621
|
+
"struct Nuitka_FrameObject *", frame_handle, None
|
|
622
|
+
)
|
|
623
|
+
|
|
624
|
+
self.variable_storage.addVariableDeclarationTop(
|
|
625
|
+
"NUITKA_MAY_BE_UNUSED char const *",
|
|
626
|
+
"type_description_%d" % self.frames_used,
|
|
627
|
+
"NULL",
|
|
628
|
+
)
|
|
629
|
+
|
|
630
|
+
self.frame_stack.append(frame_identifier)
|
|
631
|
+
return frame_identifier
|
|
632
|
+
|
|
633
|
+
def popFrameHandle(self):
|
|
634
|
+
result = self.frame_stack[-1]
|
|
635
|
+
del self.frame_stack[-1]
|
|
636
|
+
|
|
637
|
+
return result
|
|
638
|
+
|
|
639
|
+
def getFramesCount(self):
|
|
640
|
+
return self.frames_used
|
|
641
|
+
|
|
642
|
+
def pushFrameVariables(self, frame_variables):
|
|
643
|
+
"""Set current the frame variables."""
|
|
644
|
+
self.frame_variables_stack.append(frame_variables)
|
|
645
|
+
self.frame_type_descriptions.append(set())
|
|
646
|
+
|
|
647
|
+
def popFrameVariables(self):
|
|
648
|
+
"""End of frame, restore previous ones."""
|
|
649
|
+
del self.frame_variables_stack[-1]
|
|
650
|
+
del self.frame_type_descriptions[-1]
|
|
651
|
+
|
|
652
|
+
def setVariableType(self, variable, variable_declaration):
|
|
653
|
+
assert variable.isLocalVariable(), variable
|
|
654
|
+
|
|
655
|
+
# TODO: Change value of that dict to take advantage of declaration.
|
|
656
|
+
self.frame_variable_types[variable] = (
|
|
657
|
+
str(variable_declaration),
|
|
658
|
+
variable_declaration.getCType().getTypeIndicator(),
|
|
659
|
+
)
|
|
660
|
+
|
|
661
|
+
def getFrameVariableTypeDescriptions(self):
|
|
662
|
+
return self.frame_type_descriptions[-1]
|
|
663
|
+
|
|
664
|
+
def getFrameTypeDescriptionDeclaration(self):
|
|
665
|
+
return self.variable_storage.getVariableDeclarationTop(
|
|
666
|
+
"type_description_%d" % (len(self.frame_stack) - 1)
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
def getFrameVariableTypeDescription(self):
|
|
670
|
+
result = "".join(
|
|
671
|
+
self.frame_variable_types.get(variable, ("NULL", "N"))[1]
|
|
672
|
+
for variable in self.frame_variables_stack[-1]
|
|
673
|
+
)
|
|
674
|
+
|
|
675
|
+
if result:
|
|
676
|
+
self.frame_type_descriptions[-1].add(result)
|
|
677
|
+
|
|
678
|
+
return result
|
|
679
|
+
|
|
680
|
+
def getFrameVariableCodeNames(self):
|
|
681
|
+
result = []
|
|
682
|
+
|
|
683
|
+
for variable in self.frame_variables_stack[-1]:
|
|
684
|
+
variable_code_name, variable_code_type = self.frame_variable_types.get(
|
|
685
|
+
variable, ("NULL", "N")
|
|
686
|
+
)
|
|
687
|
+
|
|
688
|
+
if variable_code_type in ("b",):
|
|
689
|
+
result.append("(int)" + variable_code_name)
|
|
690
|
+
else:
|
|
691
|
+
result.append(variable_code_name)
|
|
692
|
+
|
|
693
|
+
return result
|
|
694
|
+
|
|
695
|
+
def getLocalsDictNames(self):
|
|
696
|
+
return self.locals_dict_names or ()
|
|
697
|
+
|
|
698
|
+
def addLocalsDictName(self, locals_dict_name):
|
|
699
|
+
result = self.variable_storage.getVariableDeclarationTop(locals_dict_name)
|
|
700
|
+
|
|
701
|
+
if result is None:
|
|
702
|
+
result = self.variable_storage.addVariableDeclarationTop(
|
|
703
|
+
"PyObject *", locals_dict_name, "NULL"
|
|
704
|
+
)
|
|
705
|
+
|
|
706
|
+
if self.locals_dict_names is None:
|
|
707
|
+
self.locals_dict_names = set()
|
|
708
|
+
|
|
709
|
+
self.locals_dict_names.add(result)
|
|
710
|
+
|
|
711
|
+
return result
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
class ReturnReleaseModeMixin(object):
|
|
715
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
716
|
+
__slots__ = ()
|
|
717
|
+
|
|
718
|
+
def __init__(self):
|
|
719
|
+
self.return_release_mode = False
|
|
720
|
+
|
|
721
|
+
self.return_exit = None
|
|
722
|
+
|
|
723
|
+
def setReturnReleaseMode(self, value):
|
|
724
|
+
result = self.return_release_mode
|
|
725
|
+
self.return_release_mode = value
|
|
726
|
+
return result
|
|
727
|
+
|
|
728
|
+
def getReturnReleaseMode(self):
|
|
729
|
+
return self.return_release_mode
|
|
730
|
+
|
|
731
|
+
def setReturnTarget(self, label):
|
|
732
|
+
result = self.return_exit
|
|
733
|
+
self.return_exit = label
|
|
734
|
+
return result
|
|
735
|
+
|
|
736
|
+
def getReturnTarget(self):
|
|
737
|
+
return self.return_exit
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
class ReturnValueNameMixin(object):
|
|
741
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
742
|
+
__slots__ = ()
|
|
743
|
+
|
|
744
|
+
def __init__(self):
|
|
745
|
+
self.return_name = None
|
|
746
|
+
|
|
747
|
+
def getReturnValueName(self):
|
|
748
|
+
if self.return_name is None:
|
|
749
|
+
self.return_name = self.allocateTempName("return_value", unique=True)
|
|
750
|
+
|
|
751
|
+
return self.return_name
|
|
752
|
+
|
|
753
|
+
def setReturnValueName(self, value):
|
|
754
|
+
result = self.return_name
|
|
755
|
+
self.return_name = value
|
|
756
|
+
return result
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
class PythonModuleContext(
|
|
760
|
+
FrameDeclarationsMixin,
|
|
761
|
+
TempMixin,
|
|
762
|
+
CodeObjectsMixin,
|
|
763
|
+
ReturnReleaseModeMixin,
|
|
764
|
+
ReturnValueNameMixin,
|
|
765
|
+
PythonContextBase,
|
|
766
|
+
):
|
|
767
|
+
# Plenty of attributes, because it's storing so many different things.
|
|
768
|
+
# pylint: disable=too-many-instance-attributes
|
|
769
|
+
|
|
770
|
+
__slots__ = (
|
|
771
|
+
"module",
|
|
772
|
+
"name",
|
|
773
|
+
"code_name",
|
|
774
|
+
"declaration_codes",
|
|
775
|
+
"helper_codes",
|
|
776
|
+
"frame_handle",
|
|
777
|
+
"variable_storage",
|
|
778
|
+
"function_table_entries",
|
|
779
|
+
"constant_accessor",
|
|
780
|
+
"module_init_codes",
|
|
781
|
+
"module_variable_caching",
|
|
782
|
+
# FrameDeclarationsMixin
|
|
783
|
+
"frame_variables_stack",
|
|
784
|
+
"frame_type_descriptions",
|
|
785
|
+
"frame_variable_types",
|
|
786
|
+
"frames_used",
|
|
787
|
+
"frame_stack",
|
|
788
|
+
"locals_dict_names",
|
|
789
|
+
# TempMixin:
|
|
790
|
+
"tmp_names",
|
|
791
|
+
"labels",
|
|
792
|
+
"exception_escape",
|
|
793
|
+
"loop_continue",
|
|
794
|
+
"loop_break",
|
|
795
|
+
"true_target",
|
|
796
|
+
"false_target",
|
|
797
|
+
"keeper_variable_count",
|
|
798
|
+
"exception_keepers",
|
|
799
|
+
"preserver_variable_declaration",
|
|
800
|
+
"cleanup_names",
|
|
801
|
+
# TODO: Remove when isExperimental("new-code-objects") is becoming the
|
|
802
|
+
# standard.
|
|
803
|
+
# CodeObjectsMixin
|
|
804
|
+
"code_objects",
|
|
805
|
+
# ReturnReleaseModeMixin
|
|
806
|
+
"return_release_mode",
|
|
807
|
+
"return_exit",
|
|
808
|
+
# ReturnValueNameMixin
|
|
809
|
+
"return_name",
|
|
810
|
+
)
|
|
811
|
+
|
|
812
|
+
def __init__(self, module, data_filename):
|
|
813
|
+
PythonContextBase.__init__(self)
|
|
814
|
+
|
|
815
|
+
TempMixin.__init__(self)
|
|
816
|
+
CodeObjectsMixin.__init__(self)
|
|
817
|
+
FrameDeclarationsMixin.__init__(self)
|
|
818
|
+
ReturnReleaseModeMixin.__init__(self)
|
|
819
|
+
|
|
820
|
+
# TODO: For outlines bodies.
|
|
821
|
+
ReturnValueNameMixin.__init__(self)
|
|
822
|
+
|
|
823
|
+
self.module = module
|
|
824
|
+
self.name = module.getFullName()
|
|
825
|
+
self.code_name = module.getCodeName()
|
|
826
|
+
|
|
827
|
+
self.declaration_codes = {}
|
|
828
|
+
self.helper_codes = {}
|
|
829
|
+
|
|
830
|
+
self.frame_handle = None
|
|
831
|
+
|
|
832
|
+
self.variable_storage = VariableStorage(heap_name=None)
|
|
833
|
+
|
|
834
|
+
self.function_table_entries = []
|
|
835
|
+
|
|
836
|
+
self.constant_accessor = ConstantAccessor(
|
|
837
|
+
top_level_name="mod_consts", data_filename=data_filename
|
|
838
|
+
)
|
|
839
|
+
|
|
840
|
+
self.module_init_codes = []
|
|
841
|
+
|
|
842
|
+
self.module_variable_caching = {}
|
|
843
|
+
|
|
844
|
+
def __repr__(self):
|
|
845
|
+
return "<PythonModuleContext instance for module %s>" % self.name
|
|
846
|
+
|
|
847
|
+
def getOwner(self):
|
|
848
|
+
return self.module
|
|
849
|
+
|
|
850
|
+
def getEntryPoint(self):
|
|
851
|
+
return self.module
|
|
852
|
+
|
|
853
|
+
def setModuleVariableAccessorCaching(self, variable_name, caching):
|
|
854
|
+
if caching:
|
|
855
|
+
self.module_variable_caching[variable_name] = True
|
|
856
|
+
elif variable_name not in self.module_variable_caching:
|
|
857
|
+
self.module_variable_caching[variable_name] = False
|
|
858
|
+
|
|
859
|
+
def isModuleVariableAccessorCaching(self, variable_name):
|
|
860
|
+
return self.module_variable_caching.get(variable_name, False)
|
|
861
|
+
|
|
862
|
+
def getModuleVariableAccessors(self):
|
|
863
|
+
return self.module_variable_caching
|
|
864
|
+
|
|
865
|
+
def isCompiledPythonModule(self):
|
|
866
|
+
return True
|
|
867
|
+
|
|
868
|
+
def getName(self):
|
|
869
|
+
return self.name
|
|
870
|
+
|
|
871
|
+
def mayRaiseException(self):
|
|
872
|
+
body = self.module.subnode_body
|
|
873
|
+
|
|
874
|
+
return body is not None and body.mayRaiseException(BaseException)
|
|
875
|
+
|
|
876
|
+
getModuleName = getName
|
|
877
|
+
|
|
878
|
+
def getModuleCodeName(self):
|
|
879
|
+
return self.code_name
|
|
880
|
+
|
|
881
|
+
def setFrameGuardMode(self, guard_mode):
|
|
882
|
+
assert guard_mode == "once"
|
|
883
|
+
|
|
884
|
+
def addHelperCode(self, key, code):
|
|
885
|
+
assert key not in self.helper_codes, key
|
|
886
|
+
|
|
887
|
+
self.helper_codes[key] = code
|
|
888
|
+
|
|
889
|
+
def hasHelperCode(self, key):
|
|
890
|
+
return key in self.helper_codes
|
|
891
|
+
|
|
892
|
+
def getHelperCodes(self):
|
|
893
|
+
return self.helper_codes
|
|
894
|
+
|
|
895
|
+
def addDeclaration(self, key, code):
|
|
896
|
+
assert key not in self.declaration_codes
|
|
897
|
+
|
|
898
|
+
self.declaration_codes[key] = code
|
|
899
|
+
|
|
900
|
+
def getDeclarations(self):
|
|
901
|
+
return self.declaration_codes
|
|
902
|
+
|
|
903
|
+
def mayRecurse(self):
|
|
904
|
+
return False
|
|
905
|
+
|
|
906
|
+
def getConstantCode(self, constant, deep_check=False):
|
|
907
|
+
if deep_check and Options.is_debug:
|
|
908
|
+
assert not isMutable(constant)
|
|
909
|
+
|
|
910
|
+
return self.constant_accessor.getConstantCode(constant)
|
|
911
|
+
|
|
912
|
+
def getConstantsCount(self):
|
|
913
|
+
return self.constant_accessor.getConstantsCount()
|
|
914
|
+
|
|
915
|
+
def getModuleInitCodes(self):
|
|
916
|
+
return self.module_init_codes
|
|
917
|
+
|
|
918
|
+
def addModuleInitCode(self, code):
|
|
919
|
+
self.module_init_codes.append(code)
|
|
920
|
+
|
|
921
|
+
def addFunctionCreationInfo(self, creation_info):
|
|
922
|
+
self.function_table_entries.append(creation_info)
|
|
923
|
+
|
|
924
|
+
def getFunctionCreationInfos(self):
|
|
925
|
+
result = self.function_table_entries
|
|
926
|
+
|
|
927
|
+
# Release the memory once possible.
|
|
928
|
+
del self.function_table_entries
|
|
929
|
+
return result
|
|
930
|
+
|
|
931
|
+
@staticmethod
|
|
932
|
+
def getContextObjectName():
|
|
933
|
+
return None
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
class PythonFunctionContext(
|
|
937
|
+
FrameDeclarationsMixin,
|
|
938
|
+
TempMixin,
|
|
939
|
+
ReturnReleaseModeMixin,
|
|
940
|
+
ReturnValueNameMixin,
|
|
941
|
+
PythonChildContextBase,
|
|
942
|
+
):
|
|
943
|
+
__slots__ = (
|
|
944
|
+
"function",
|
|
945
|
+
"frame_handle",
|
|
946
|
+
"variable_storage",
|
|
947
|
+
# FrameDeclarationsMixin
|
|
948
|
+
"frame_variables_stack",
|
|
949
|
+
"frame_type_descriptions",
|
|
950
|
+
"frame_variable_types",
|
|
951
|
+
"frames_used",
|
|
952
|
+
"frame_stack",
|
|
953
|
+
"locals_dict_names",
|
|
954
|
+
# TempMixin:
|
|
955
|
+
"tmp_names",
|
|
956
|
+
"labels",
|
|
957
|
+
"exception_escape",
|
|
958
|
+
"loop_continue",
|
|
959
|
+
"loop_break",
|
|
960
|
+
"true_target",
|
|
961
|
+
"false_target",
|
|
962
|
+
"keeper_variable_count",
|
|
963
|
+
"exception_keepers",
|
|
964
|
+
"preserver_variable_declaration",
|
|
965
|
+
"cleanup_names",
|
|
966
|
+
# ReturnReleaseModeMixin
|
|
967
|
+
"return_release_mode",
|
|
968
|
+
"return_exit",
|
|
969
|
+
# ReturnValueNameMixin
|
|
970
|
+
"return_name",
|
|
971
|
+
)
|
|
972
|
+
|
|
973
|
+
def __init__(self, parent, function):
|
|
974
|
+
PythonChildContextBase.__init__(self, parent=parent)
|
|
975
|
+
|
|
976
|
+
TempMixin.__init__(self)
|
|
977
|
+
FrameDeclarationsMixin.__init__(self)
|
|
978
|
+
ReturnReleaseModeMixin.__init__(self)
|
|
979
|
+
ReturnValueNameMixin.__init__(self)
|
|
980
|
+
|
|
981
|
+
self.function = function
|
|
982
|
+
|
|
983
|
+
self.setExceptionEscape("function_exception_exit")
|
|
984
|
+
self.setReturnTarget("function_return_exit")
|
|
985
|
+
|
|
986
|
+
self.frame_handle = None
|
|
987
|
+
|
|
988
|
+
self.variable_storage = self._makeVariableStorage()
|
|
989
|
+
|
|
990
|
+
def _makeVariableStorage(self):
|
|
991
|
+
return VariableStorage(heap_name=None)
|
|
992
|
+
|
|
993
|
+
def __repr__(self):
|
|
994
|
+
return "<%s for %s '%s'>" % (
|
|
995
|
+
self.__class__.__name__,
|
|
996
|
+
"function" if not self.function.isExpressionClassBodyBase() else "class",
|
|
997
|
+
self.function.getName(),
|
|
998
|
+
)
|
|
999
|
+
|
|
1000
|
+
def getFunction(self):
|
|
1001
|
+
return self.function
|
|
1002
|
+
|
|
1003
|
+
def getOwner(self):
|
|
1004
|
+
return self.function
|
|
1005
|
+
|
|
1006
|
+
def getEntryPoint(self):
|
|
1007
|
+
return self.function
|
|
1008
|
+
|
|
1009
|
+
def mayRecurse(self):
|
|
1010
|
+
# TODO: Determine this at compile time for enhanced optimizations.
|
|
1011
|
+
return True
|
|
1012
|
+
|
|
1013
|
+
def getCodeObjectHandle(self, code_object):
|
|
1014
|
+
return self.parent.getCodeObjectHandle(code_object)
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
class PythonFunctionDirectContext(PythonFunctionContext):
|
|
1018
|
+
__slots__ = ()
|
|
1019
|
+
|
|
1020
|
+
@staticmethod
|
|
1021
|
+
def getContextObjectName():
|
|
1022
|
+
return None
|
|
1023
|
+
|
|
1024
|
+
@staticmethod
|
|
1025
|
+
def isForDirectCall():
|
|
1026
|
+
return True
|
|
1027
|
+
|
|
1028
|
+
@staticmethod
|
|
1029
|
+
def isForCreatedFunction():
|
|
1030
|
+
return False
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
class PythonGeneratorObjectContext(PythonFunctionContext):
|
|
1034
|
+
__slots__ = ()
|
|
1035
|
+
|
|
1036
|
+
def _makeVariableStorage(self):
|
|
1037
|
+
return VariableStorage(heap_name="%s_heap" % self.getContextObjectName())
|
|
1038
|
+
|
|
1039
|
+
@staticmethod
|
|
1040
|
+
def isForDirectCall():
|
|
1041
|
+
return False
|
|
1042
|
+
|
|
1043
|
+
@staticmethod
|
|
1044
|
+
def isForCreatedFunction():
|
|
1045
|
+
return False
|
|
1046
|
+
|
|
1047
|
+
@staticmethod
|
|
1048
|
+
def getContextObjectName():
|
|
1049
|
+
return "generator"
|
|
1050
|
+
|
|
1051
|
+
def getGeneratorReturnValueName(self):
|
|
1052
|
+
if python_version >= 0x300:
|
|
1053
|
+
return self.allocateTempName("return_value", "PyObject *", unique=True)
|
|
1054
|
+
else:
|
|
1055
|
+
return self.allocateTempName("generator_return", "bool", unique=True)
|
|
1056
|
+
|
|
1057
|
+
|
|
1058
|
+
class PythonCoroutineObjectContext(PythonGeneratorObjectContext):
|
|
1059
|
+
__slots__ = ()
|
|
1060
|
+
|
|
1061
|
+
@staticmethod
|
|
1062
|
+
def getContextObjectName():
|
|
1063
|
+
return "coroutine"
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
class PythonAsyncgenObjectContext(PythonGeneratorObjectContext):
|
|
1067
|
+
__slots__ = ()
|
|
1068
|
+
|
|
1069
|
+
@staticmethod
|
|
1070
|
+
def getContextObjectName():
|
|
1071
|
+
return "asyncgen"
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
class PythonFunctionCreatedContext(PythonFunctionContext):
|
|
1075
|
+
__slots__ = ()
|
|
1076
|
+
|
|
1077
|
+
@staticmethod
|
|
1078
|
+
def getContextObjectName():
|
|
1079
|
+
return None
|
|
1080
|
+
|
|
1081
|
+
@staticmethod
|
|
1082
|
+
def isForDirectCall():
|
|
1083
|
+
return False
|
|
1084
|
+
|
|
1085
|
+
@staticmethod
|
|
1086
|
+
def isForCreatedFunction():
|
|
1087
|
+
return True
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
class PythonFunctionOutlineContext(
|
|
1091
|
+
ReturnReleaseModeMixin, ReturnValueNameMixin, PythonChildContextBase
|
|
1092
|
+
):
|
|
1093
|
+
__slots__ = (
|
|
1094
|
+
"outline",
|
|
1095
|
+
"variable_storage",
|
|
1096
|
+
# ReturnReleaseModeMixin
|
|
1097
|
+
"return_release_mode",
|
|
1098
|
+
"return_exit",
|
|
1099
|
+
# ReturnValueNameMixin
|
|
1100
|
+
"return_name",
|
|
1101
|
+
)
|
|
1102
|
+
|
|
1103
|
+
def __init__(self, parent, outline):
|
|
1104
|
+
PythonChildContextBase.__init__(self, parent=parent)
|
|
1105
|
+
|
|
1106
|
+
ReturnReleaseModeMixin.__init__(self)
|
|
1107
|
+
ReturnValueNameMixin.__init__(self)
|
|
1108
|
+
|
|
1109
|
+
self.outline = outline
|
|
1110
|
+
|
|
1111
|
+
self.variable_storage = parent.variable_storage
|
|
1112
|
+
|
|
1113
|
+
def getOwner(self):
|
|
1114
|
+
return self.outline
|
|
1115
|
+
|
|
1116
|
+
def getEntryPoint(self):
|
|
1117
|
+
return self.outline.getEntryPoint()
|
|
1118
|
+
|
|
1119
|
+
def allocateLabel(self, label):
|
|
1120
|
+
return self.parent.allocateLabel(label)
|
|
1121
|
+
|
|
1122
|
+
def allocateTempName(self, base_name, type_name="PyObject *", unique=False):
|
|
1123
|
+
return self.parent.allocateTempName(base_name, type_name, unique)
|
|
1124
|
+
|
|
1125
|
+
def skipTempName(self, base_name):
|
|
1126
|
+
return self.parent.skipTempName(base_name)
|
|
1127
|
+
|
|
1128
|
+
def hasTempName(self, base_name):
|
|
1129
|
+
return self.parent.hasTempName(base_name)
|
|
1130
|
+
|
|
1131
|
+
def getCleanupTempNames(self):
|
|
1132
|
+
return self.parent.getCleanupTempNames()
|
|
1133
|
+
|
|
1134
|
+
# TODO: Make this work on shared data instead.
|
|
1135
|
+
def addCleanupTempName(self, tmp_name):
|
|
1136
|
+
self.parent.addCleanupTempName(tmp_name)
|
|
1137
|
+
|
|
1138
|
+
def transferCleanupTempName(self, tmp_source, tmp_dest):
|
|
1139
|
+
self.parent.transferCleanupTempName(tmp_source, tmp_dest)
|
|
1140
|
+
|
|
1141
|
+
def removeCleanupTempName(self, tmp_name):
|
|
1142
|
+
self.parent.removeCleanupTempName(tmp_name)
|
|
1143
|
+
|
|
1144
|
+
def needsCleanup(self, tmp_name):
|
|
1145
|
+
return self.parent.needsCleanup(tmp_name)
|
|
1146
|
+
|
|
1147
|
+
def pushCleanupScope(self):
|
|
1148
|
+
return self.parent.pushCleanupScope()
|
|
1149
|
+
|
|
1150
|
+
def popCleanupScope(self):
|
|
1151
|
+
self.parent.popCleanupScope()
|
|
1152
|
+
|
|
1153
|
+
# TODO: Remove when isExperimental("new-code-objects") is becoming the
|
|
1154
|
+
# standard.
|
|
1155
|
+
def getCodeObjectHandle(self, code_object):
|
|
1156
|
+
return self.parent.getCodeObjectHandle(code_object)
|
|
1157
|
+
|
|
1158
|
+
def getExceptionEscape(self):
|
|
1159
|
+
return self.parent.getExceptionEscape()
|
|
1160
|
+
|
|
1161
|
+
def setExceptionEscape(self, label):
|
|
1162
|
+
return self.parent.setExceptionEscape(label)
|
|
1163
|
+
|
|
1164
|
+
def getLoopBreakTarget(self):
|
|
1165
|
+
return self.parent.getLoopBreakTarget()
|
|
1166
|
+
|
|
1167
|
+
def setLoopBreakTarget(self, label):
|
|
1168
|
+
return self.parent.setLoopBreakTarget(label)
|
|
1169
|
+
|
|
1170
|
+
def getLoopContinueTarget(self):
|
|
1171
|
+
return self.parent.getLoopContinueTarget()
|
|
1172
|
+
|
|
1173
|
+
def setLoopContinueTarget(self, label):
|
|
1174
|
+
return self.parent.setLoopContinueTarget(label)
|
|
1175
|
+
|
|
1176
|
+
def getTrueBranchTarget(self):
|
|
1177
|
+
return self.parent.getTrueBranchTarget()
|
|
1178
|
+
|
|
1179
|
+
def getFalseBranchTarget(self):
|
|
1180
|
+
return self.parent.getFalseBranchTarget()
|
|
1181
|
+
|
|
1182
|
+
def setTrueBranchTarget(self, label):
|
|
1183
|
+
self.parent.setTrueBranchTarget(label)
|
|
1184
|
+
|
|
1185
|
+
def setFalseBranchTarget(self, label):
|
|
1186
|
+
self.parent.setFalseBranchTarget(label)
|
|
1187
|
+
|
|
1188
|
+
def getFrameHandle(self):
|
|
1189
|
+
return self.parent.getFrameHandle()
|
|
1190
|
+
|
|
1191
|
+
def pushFrameHandle(self, code_object_access_code, is_light):
|
|
1192
|
+
return self.parent.pushFrameHandle(code_object_access_code, is_light)
|
|
1193
|
+
|
|
1194
|
+
def popFrameHandle(self):
|
|
1195
|
+
return self.parent.popFrameHandle()
|
|
1196
|
+
|
|
1197
|
+
def getExceptionKeeperVariables(self):
|
|
1198
|
+
return self.parent.getExceptionKeeperVariables()
|
|
1199
|
+
|
|
1200
|
+
def setExceptionKeeperVariables(self, keeper_vars):
|
|
1201
|
+
return self.parent.setExceptionKeeperVariables(keeper_vars)
|
|
1202
|
+
|
|
1203
|
+
def setVariableType(self, variable, variable_declaration):
|
|
1204
|
+
self.parent.setVariableType(variable, variable_declaration)
|
|
1205
|
+
|
|
1206
|
+
def getIntResName(self):
|
|
1207
|
+
return self.parent.getIntResName()
|
|
1208
|
+
|
|
1209
|
+
def getBoolResName(self):
|
|
1210
|
+
return self.parent.getBoolResName()
|
|
1211
|
+
|
|
1212
|
+
def allocateExceptionKeeperVariables(self):
|
|
1213
|
+
return self.parent.allocateExceptionKeeperVariables()
|
|
1214
|
+
|
|
1215
|
+
def isForDirectCall(self):
|
|
1216
|
+
return self.parent.isForDirectCall()
|
|
1217
|
+
|
|
1218
|
+
def mayRecurse(self):
|
|
1219
|
+
# The outline is only accessible via its parent.
|
|
1220
|
+
return self.parent.mayRecurse()
|
|
1221
|
+
|
|
1222
|
+
def getLocalsDictNames(self):
|
|
1223
|
+
return self.parent.getLocalsDictNames()
|
|
1224
|
+
|
|
1225
|
+
def addLocalsDictName(self, locals_dict_name):
|
|
1226
|
+
return self.parent.addLocalsDictName(locals_dict_name)
|
|
1227
|
+
|
|
1228
|
+
def addExceptionPreserverVariables(self, count):
|
|
1229
|
+
return self.parent.addExceptionPreserverVariables(count)
|
|
1230
|
+
|
|
1231
|
+
def getContextObjectName(self):
|
|
1232
|
+
return self.parent.getContextObjectName()
|
|
1233
|
+
|
|
1234
|
+
|
|
1235
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1236
|
+
# integrates with CPython, but also works on its own.
|
|
1237
|
+
#
|
|
1238
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1239
|
+
# you may not use this file except in compliance with the License.
|
|
1240
|
+
# You may obtain a copy of the License at
|
|
1241
|
+
#
|
|
1242
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1243
|
+
#
|
|
1244
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1245
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1246
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1247
|
+
# See the License for the specific language governing permissions and
|
|
1248
|
+
# limitations under the License.
|