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,1384 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Standard shapes that commonly appear. """
|
|
5
|
+
|
|
6
|
+
from abc import abstractmethod
|
|
7
|
+
|
|
8
|
+
from nuitka.code_generation.c_types.CTypePyObjectPointers import (
|
|
9
|
+
CTypePyObjectPtr,
|
|
10
|
+
)
|
|
11
|
+
from nuitka.code_generation.Reports import (
|
|
12
|
+
onMissingOperation,
|
|
13
|
+
onMissingUnaryOperation,
|
|
14
|
+
)
|
|
15
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
16
|
+
|
|
17
|
+
from .ControlFlowDescriptions import ControlFlowDescriptionFullEscape
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ShapeBase(getMetaClassBase("Shape", require_slots=True)):
|
|
21
|
+
__slots__ = ()
|
|
22
|
+
|
|
23
|
+
def __repr__(self):
|
|
24
|
+
return "<%s %s %s>" % (
|
|
25
|
+
self.__class__.__name__,
|
|
26
|
+
self.getTypeName(),
|
|
27
|
+
self.helper_code,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def getTypeName():
|
|
32
|
+
return None
|
|
33
|
+
|
|
34
|
+
helper_code = "OBJECT"
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def getCType():
|
|
38
|
+
return CTypePyObjectPtr
|
|
39
|
+
|
|
40
|
+
@staticmethod
|
|
41
|
+
def getShapeIter():
|
|
42
|
+
return tshape_unknown
|
|
43
|
+
|
|
44
|
+
@staticmethod
|
|
45
|
+
def hasShapeIndexLookup():
|
|
46
|
+
return None
|
|
47
|
+
|
|
48
|
+
@staticmethod
|
|
49
|
+
def hasShapeModule():
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
def hasShapeSlotBytes():
|
|
54
|
+
return None
|
|
55
|
+
|
|
56
|
+
@staticmethod
|
|
57
|
+
def hasShapeSlotComplex():
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
@staticmethod
|
|
61
|
+
def hasShapeSlotBool():
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
@staticmethod
|
|
65
|
+
def hasShapeSlotAbs():
|
|
66
|
+
return None
|
|
67
|
+
|
|
68
|
+
@staticmethod
|
|
69
|
+
def hasShapeSlotLen():
|
|
70
|
+
return None
|
|
71
|
+
|
|
72
|
+
@staticmethod
|
|
73
|
+
def hasShapeSlotInt():
|
|
74
|
+
return None
|
|
75
|
+
|
|
76
|
+
@staticmethod
|
|
77
|
+
def hasShapeSlotLong():
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
@staticmethod
|
|
81
|
+
def hasShapeSlotFloat():
|
|
82
|
+
return None
|
|
83
|
+
|
|
84
|
+
@staticmethod
|
|
85
|
+
def hasShapeSlotIter():
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
@staticmethod
|
|
89
|
+
def hasShapeSlotNext():
|
|
90
|
+
return None
|
|
91
|
+
|
|
92
|
+
@staticmethod
|
|
93
|
+
def hasShapeSlotNextCode():
|
|
94
|
+
return None
|
|
95
|
+
|
|
96
|
+
@staticmethod
|
|
97
|
+
def hasShapeSlotContains():
|
|
98
|
+
return None
|
|
99
|
+
|
|
100
|
+
@staticmethod
|
|
101
|
+
def hasShapeSlotHash():
|
|
102
|
+
return None
|
|
103
|
+
|
|
104
|
+
@staticmethod
|
|
105
|
+
def hasShapeTrustedAttributes():
|
|
106
|
+
return None
|
|
107
|
+
|
|
108
|
+
@staticmethod
|
|
109
|
+
def isShapeIterator():
|
|
110
|
+
return None
|
|
111
|
+
|
|
112
|
+
add_shapes = {}
|
|
113
|
+
|
|
114
|
+
def getOperationBinaryAddShape(self, right_shape):
|
|
115
|
+
result = self.add_shapes.get(right_shape)
|
|
116
|
+
|
|
117
|
+
if result is not None:
|
|
118
|
+
return result
|
|
119
|
+
else:
|
|
120
|
+
right_shape_type = type(right_shape)
|
|
121
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
122
|
+
return right_shape.getOperationBinaryAddLShape(self)
|
|
123
|
+
|
|
124
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
125
|
+
return operation_result_unknown
|
|
126
|
+
|
|
127
|
+
onMissingOperation("Add", self, right_shape)
|
|
128
|
+
|
|
129
|
+
return operation_result_unknown
|
|
130
|
+
|
|
131
|
+
# TODO: Change defaults to be "None" for easier catching of
|
|
132
|
+
# non-overloading cases.
|
|
133
|
+
iadd_shapes = {}
|
|
134
|
+
|
|
135
|
+
def getOperationInplaceAddShape(self, right_shape):
|
|
136
|
+
"""Inplace add operation shape, for overload."""
|
|
137
|
+
if self.iadd_shapes:
|
|
138
|
+
result = self.iadd_shapes.get(right_shape)
|
|
139
|
+
|
|
140
|
+
if result is not None:
|
|
141
|
+
return result
|
|
142
|
+
else:
|
|
143
|
+
right_shape_type = type(right_shape)
|
|
144
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
145
|
+
return right_shape.getOperationBinaryAddLShape(self)
|
|
146
|
+
|
|
147
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
148
|
+
return operation_result_unknown
|
|
149
|
+
|
|
150
|
+
onMissingOperation("IAdd", self, right_shape)
|
|
151
|
+
|
|
152
|
+
return operation_result_unknown
|
|
153
|
+
else:
|
|
154
|
+
# By default, inplace add is the same as plain add, the
|
|
155
|
+
# only exception known right now is list, which extend
|
|
156
|
+
# from all iterables, but don't add with them.
|
|
157
|
+
return self.getOperationBinaryAddShape(right_shape)
|
|
158
|
+
|
|
159
|
+
sub_shapes = {}
|
|
160
|
+
|
|
161
|
+
def getOperationBinarySubShape(self, right_shape):
|
|
162
|
+
result = self.sub_shapes.get(right_shape)
|
|
163
|
+
|
|
164
|
+
if result is not None:
|
|
165
|
+
return result
|
|
166
|
+
else:
|
|
167
|
+
right_shape_type = type(right_shape)
|
|
168
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
169
|
+
return right_shape.getOperationBinarySubLShape(self)
|
|
170
|
+
|
|
171
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
172
|
+
return operation_result_unknown
|
|
173
|
+
|
|
174
|
+
onMissingOperation("Sub", self, right_shape)
|
|
175
|
+
|
|
176
|
+
return operation_result_unknown
|
|
177
|
+
|
|
178
|
+
mult_shapes = {}
|
|
179
|
+
|
|
180
|
+
def getOperationBinaryMultShape(self, right_shape):
|
|
181
|
+
result = self.mult_shapes.get(right_shape)
|
|
182
|
+
|
|
183
|
+
if result is not None:
|
|
184
|
+
return result
|
|
185
|
+
else:
|
|
186
|
+
right_shape_type = type(right_shape)
|
|
187
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
188
|
+
return right_shape.getOperationBinaryMultLShape(self)
|
|
189
|
+
|
|
190
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
191
|
+
return operation_result_unknown
|
|
192
|
+
|
|
193
|
+
onMissingOperation("Mult", self, right_shape)
|
|
194
|
+
|
|
195
|
+
return operation_result_unknown
|
|
196
|
+
|
|
197
|
+
floordiv_shapes = {}
|
|
198
|
+
|
|
199
|
+
def getOperationBinaryFloorDivShape(self, right_shape):
|
|
200
|
+
result = self.floordiv_shapes.get(right_shape)
|
|
201
|
+
|
|
202
|
+
if result is not None:
|
|
203
|
+
return result
|
|
204
|
+
else:
|
|
205
|
+
right_shape_type = type(right_shape)
|
|
206
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
207
|
+
return right_shape.getOperationBinaryFloorDivLShape(self)
|
|
208
|
+
|
|
209
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
210
|
+
return operation_result_unknown
|
|
211
|
+
|
|
212
|
+
onMissingOperation("FloorDiv", self, right_shape)
|
|
213
|
+
|
|
214
|
+
return operation_result_unknown
|
|
215
|
+
|
|
216
|
+
olddiv_shapes = {}
|
|
217
|
+
|
|
218
|
+
def getOperationBinaryOldDivShape(self, right_shape):
|
|
219
|
+
result = self.olddiv_shapes.get(right_shape)
|
|
220
|
+
|
|
221
|
+
if result is not None:
|
|
222
|
+
return result
|
|
223
|
+
else:
|
|
224
|
+
right_shape_type = type(right_shape)
|
|
225
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
226
|
+
return right_shape.getOperationBinaryOldDivLShape(self)
|
|
227
|
+
|
|
228
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
229
|
+
return operation_result_unknown
|
|
230
|
+
|
|
231
|
+
onMissingOperation("OldDiv", self, right_shape)
|
|
232
|
+
|
|
233
|
+
return operation_result_unknown
|
|
234
|
+
|
|
235
|
+
truediv_shapes = {}
|
|
236
|
+
|
|
237
|
+
def getOperationBinaryTrueDivShape(self, right_shape):
|
|
238
|
+
result = self.truediv_shapes.get(right_shape)
|
|
239
|
+
|
|
240
|
+
if result is not None:
|
|
241
|
+
return result
|
|
242
|
+
else:
|
|
243
|
+
right_shape_type = type(right_shape)
|
|
244
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
245
|
+
return right_shape.getOperationBinaryTrueDivLShape(self)
|
|
246
|
+
|
|
247
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
248
|
+
return operation_result_unknown
|
|
249
|
+
|
|
250
|
+
onMissingOperation("TrueDiv", self, right_shape)
|
|
251
|
+
|
|
252
|
+
return operation_result_unknown
|
|
253
|
+
|
|
254
|
+
mod_shapes = {}
|
|
255
|
+
|
|
256
|
+
def getOperationBinaryModShape(self, right_shape):
|
|
257
|
+
result = self.mod_shapes.get(right_shape)
|
|
258
|
+
|
|
259
|
+
if result is not None:
|
|
260
|
+
return result
|
|
261
|
+
else:
|
|
262
|
+
right_shape_type = type(right_shape)
|
|
263
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
264
|
+
return right_shape.getOperationBinaryModLShape(self)
|
|
265
|
+
|
|
266
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
267
|
+
return operation_result_unknown
|
|
268
|
+
|
|
269
|
+
onMissingOperation("Mod", self, right_shape)
|
|
270
|
+
|
|
271
|
+
return operation_result_unknown
|
|
272
|
+
|
|
273
|
+
divmod_shapes = {}
|
|
274
|
+
|
|
275
|
+
def getOperationBinaryDivmodShape(self, right_shape):
|
|
276
|
+
result = self.divmod_shapes.get(right_shape)
|
|
277
|
+
|
|
278
|
+
if result is not None:
|
|
279
|
+
return result
|
|
280
|
+
else:
|
|
281
|
+
right_shape_type = type(right_shape)
|
|
282
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
283
|
+
return right_shape.getOperationBinaryDivmodLShape(self)
|
|
284
|
+
|
|
285
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
286
|
+
return operation_result_unknown
|
|
287
|
+
|
|
288
|
+
onMissingOperation("Divmod", self, right_shape)
|
|
289
|
+
|
|
290
|
+
return operation_result_unknown
|
|
291
|
+
|
|
292
|
+
pow_shapes = {}
|
|
293
|
+
|
|
294
|
+
def getOperationBinaryPowShape(self, right_shape):
|
|
295
|
+
result = self.pow_shapes.get(right_shape)
|
|
296
|
+
|
|
297
|
+
if result is not None:
|
|
298
|
+
return result
|
|
299
|
+
else:
|
|
300
|
+
right_shape_type = type(right_shape)
|
|
301
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
302
|
+
return right_shape.getOperationBinaryPowLShape(self)
|
|
303
|
+
|
|
304
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
305
|
+
return operation_result_unknown
|
|
306
|
+
|
|
307
|
+
onMissingOperation("Pow", self, right_shape)
|
|
308
|
+
|
|
309
|
+
return operation_result_unknown
|
|
310
|
+
|
|
311
|
+
lshift_shapes = {}
|
|
312
|
+
|
|
313
|
+
def getOperationBinaryLShiftShape(self, right_shape):
|
|
314
|
+
result = self.lshift_shapes.get(right_shape)
|
|
315
|
+
|
|
316
|
+
if result is not None:
|
|
317
|
+
return result
|
|
318
|
+
else:
|
|
319
|
+
right_shape_type = type(right_shape)
|
|
320
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
321
|
+
return right_shape.getOperationBinaryLShiftLShape(self)
|
|
322
|
+
|
|
323
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
324
|
+
return operation_result_unknown
|
|
325
|
+
|
|
326
|
+
onMissingOperation("LShift", self, right_shape)
|
|
327
|
+
|
|
328
|
+
return operation_result_unknown
|
|
329
|
+
|
|
330
|
+
rshift_shapes = {}
|
|
331
|
+
|
|
332
|
+
def getOperationBinaryRShiftShape(self, right_shape):
|
|
333
|
+
result = self.rshift_shapes.get(right_shape)
|
|
334
|
+
|
|
335
|
+
if result is not None:
|
|
336
|
+
return result
|
|
337
|
+
else:
|
|
338
|
+
right_shape_type = type(right_shape)
|
|
339
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
340
|
+
return right_shape.getOperationBinaryRShiftLShape(self)
|
|
341
|
+
|
|
342
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
343
|
+
return operation_result_unknown
|
|
344
|
+
|
|
345
|
+
onMissingOperation("RShift", self, right_shape)
|
|
346
|
+
|
|
347
|
+
return operation_result_unknown
|
|
348
|
+
|
|
349
|
+
bitor_shapes = {}
|
|
350
|
+
|
|
351
|
+
def getOperationBinaryBitOrShape(self, right_shape):
|
|
352
|
+
result = self.bitor_shapes.get(right_shape)
|
|
353
|
+
|
|
354
|
+
if result is not None:
|
|
355
|
+
return result
|
|
356
|
+
else:
|
|
357
|
+
right_shape_type = type(right_shape)
|
|
358
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
359
|
+
return right_shape.getOperationBinaryBitOrLShape(self)
|
|
360
|
+
|
|
361
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
362
|
+
return operation_result_unknown
|
|
363
|
+
|
|
364
|
+
onMissingOperation("BitOr", self, right_shape)
|
|
365
|
+
|
|
366
|
+
return operation_result_unknown
|
|
367
|
+
|
|
368
|
+
bitand_shapes = {}
|
|
369
|
+
|
|
370
|
+
def getOperationBinaryBitAndShape(self, right_shape):
|
|
371
|
+
result = self.bitand_shapes.get(right_shape)
|
|
372
|
+
|
|
373
|
+
if result is not None:
|
|
374
|
+
return result
|
|
375
|
+
else:
|
|
376
|
+
right_shape_type = type(right_shape)
|
|
377
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
378
|
+
return right_shape.getOperationBinaryBitAndLShape(self)
|
|
379
|
+
|
|
380
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
381
|
+
return operation_result_unknown
|
|
382
|
+
|
|
383
|
+
onMissingOperation("BitAnd", self, right_shape)
|
|
384
|
+
|
|
385
|
+
return operation_result_unknown
|
|
386
|
+
|
|
387
|
+
bitxor_shapes = {}
|
|
388
|
+
|
|
389
|
+
def getOperationBinaryBitXorShape(self, right_shape):
|
|
390
|
+
result = self.bitxor_shapes.get(right_shape)
|
|
391
|
+
|
|
392
|
+
if result is not None:
|
|
393
|
+
return result
|
|
394
|
+
else:
|
|
395
|
+
right_shape_type = type(right_shape)
|
|
396
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
397
|
+
return right_shape.getOperationBinaryBitXorLShape(self)
|
|
398
|
+
|
|
399
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
400
|
+
return operation_result_unknown
|
|
401
|
+
|
|
402
|
+
onMissingOperation("BitXor", self, right_shape)
|
|
403
|
+
|
|
404
|
+
return operation_result_unknown
|
|
405
|
+
|
|
406
|
+
ibitor_shapes = {}
|
|
407
|
+
|
|
408
|
+
def getOperationInplaceBitOrShape(self, right_shape):
|
|
409
|
+
"""Inplace bitor operation shape, for overload."""
|
|
410
|
+
if self.ibitor_shapes:
|
|
411
|
+
result = self.ibitor_shapes.get(right_shape)
|
|
412
|
+
|
|
413
|
+
if result is not None:
|
|
414
|
+
return result
|
|
415
|
+
else:
|
|
416
|
+
right_shape_type = type(right_shape)
|
|
417
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
418
|
+
return right_shape.getOperationBinaryBitOrLShape(self)
|
|
419
|
+
|
|
420
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
421
|
+
return operation_result_unknown
|
|
422
|
+
|
|
423
|
+
onMissingOperation("IBitOr", self, right_shape)
|
|
424
|
+
|
|
425
|
+
return operation_result_unknown
|
|
426
|
+
else:
|
|
427
|
+
# By default, inplace add is the same as plain add, the
|
|
428
|
+
# only exception known right now is list, which extend
|
|
429
|
+
# from all iterables, but don't add with them.
|
|
430
|
+
return self.getOperationBinaryBitOrShape(right_shape)
|
|
431
|
+
|
|
432
|
+
matmult_shapes = {}
|
|
433
|
+
|
|
434
|
+
def getOperationBinaryMatMultShape(self, right_shape):
|
|
435
|
+
result = self.matmult_shapes.get(right_shape)
|
|
436
|
+
|
|
437
|
+
if result is not None:
|
|
438
|
+
return result
|
|
439
|
+
else:
|
|
440
|
+
right_shape_type = type(right_shape)
|
|
441
|
+
if right_shape_type is ShapeLoopCompleteAlternative:
|
|
442
|
+
return right_shape.getOperationBinaryBitMatMultLShape(self)
|
|
443
|
+
|
|
444
|
+
if right_shape_type is ShapeLoopInitialAlternative:
|
|
445
|
+
return operation_result_unknown
|
|
446
|
+
|
|
447
|
+
onMissingOperation("MatMult", self, right_shape)
|
|
448
|
+
|
|
449
|
+
return operation_result_unknown
|
|
450
|
+
|
|
451
|
+
def getOperationUnaryAddShape(self):
|
|
452
|
+
onMissingUnaryOperation("+", self)
|
|
453
|
+
|
|
454
|
+
return operation_result_unknown
|
|
455
|
+
|
|
456
|
+
def getOperationUnarySubShape(self):
|
|
457
|
+
onMissingUnaryOperation("-", self)
|
|
458
|
+
|
|
459
|
+
return operation_result_unknown
|
|
460
|
+
|
|
461
|
+
def getComparisonLtShape(self, right_shape):
|
|
462
|
+
onMissingOperation("Lt", self, right_shape)
|
|
463
|
+
|
|
464
|
+
return operation_result_unknown
|
|
465
|
+
|
|
466
|
+
def getComparisonLteShape(self, right_shape):
|
|
467
|
+
return self.getComparisonLtShape(right_shape)
|
|
468
|
+
|
|
469
|
+
def getComparisonGtShape(self, right_shape):
|
|
470
|
+
return self.getComparisonLtShape(right_shape)
|
|
471
|
+
|
|
472
|
+
def getComparisonGteShape(self, right_shape):
|
|
473
|
+
return self.getComparisonLtShape(right_shape)
|
|
474
|
+
|
|
475
|
+
def getComparisonEqShape(self, right_shape):
|
|
476
|
+
return self.getComparisonLtShape(right_shape)
|
|
477
|
+
|
|
478
|
+
def getComparisonNeqShape(self, right_shape):
|
|
479
|
+
return self.getComparisonLtShape(right_shape)
|
|
480
|
+
|
|
481
|
+
@abstractmethod
|
|
482
|
+
def getOperationUnaryReprEscape(self):
|
|
483
|
+
pass
|
|
484
|
+
|
|
485
|
+
@staticmethod
|
|
486
|
+
def isKnownToHaveAttribute(attribute_name):
|
|
487
|
+
# Virtual method, pylint: disable=unused-argument
|
|
488
|
+
|
|
489
|
+
return None
|
|
490
|
+
|
|
491
|
+
def emitAlternatives(self, emit):
|
|
492
|
+
emit(self)
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
class ShapeTypeUnknown(ShapeBase):
|
|
496
|
+
__slots__ = ()
|
|
497
|
+
|
|
498
|
+
@staticmethod
|
|
499
|
+
def getOperationBinaryAddShape(right_shape):
|
|
500
|
+
return operation_result_unknown
|
|
501
|
+
|
|
502
|
+
@staticmethod
|
|
503
|
+
def getOperationBinarySubShape(right_shape):
|
|
504
|
+
return operation_result_unknown
|
|
505
|
+
|
|
506
|
+
@staticmethod
|
|
507
|
+
def getOperationBinaryMultShape(right_shape):
|
|
508
|
+
return operation_result_unknown
|
|
509
|
+
|
|
510
|
+
@staticmethod
|
|
511
|
+
def getOperationBinaryFloorDivShape(right_shape):
|
|
512
|
+
return operation_result_unknown
|
|
513
|
+
|
|
514
|
+
@staticmethod
|
|
515
|
+
def getOperationBinaryOldDivShape(right_shape):
|
|
516
|
+
return operation_result_unknown
|
|
517
|
+
|
|
518
|
+
@staticmethod
|
|
519
|
+
def getOperationBinaryTrueDivShape(right_shape):
|
|
520
|
+
return operation_result_unknown
|
|
521
|
+
|
|
522
|
+
@staticmethod
|
|
523
|
+
def getOperationBinaryModShape(right_shape):
|
|
524
|
+
return operation_result_unknown
|
|
525
|
+
|
|
526
|
+
@staticmethod
|
|
527
|
+
def getOperationBinaryDivmodShape(right_shape):
|
|
528
|
+
return operation_result_unknown
|
|
529
|
+
|
|
530
|
+
@staticmethod
|
|
531
|
+
def getOperationBinaryPowShape(right_shape):
|
|
532
|
+
return operation_result_unknown
|
|
533
|
+
|
|
534
|
+
@staticmethod
|
|
535
|
+
def getOperationBinaryLShiftShape(right_shape):
|
|
536
|
+
return operation_result_unknown
|
|
537
|
+
|
|
538
|
+
@staticmethod
|
|
539
|
+
def getOperationBinaryRShiftShape(right_shape):
|
|
540
|
+
return operation_result_unknown
|
|
541
|
+
|
|
542
|
+
@staticmethod
|
|
543
|
+
def getOperationBinaryBitOrShape(right_shape):
|
|
544
|
+
return operation_result_unknown
|
|
545
|
+
|
|
546
|
+
@staticmethod
|
|
547
|
+
def getOperationBinaryBitAndShape(right_shape):
|
|
548
|
+
return operation_result_unknown
|
|
549
|
+
|
|
550
|
+
@staticmethod
|
|
551
|
+
def getOperationBinaryBitXorShape(right_shape):
|
|
552
|
+
return operation_result_unknown
|
|
553
|
+
|
|
554
|
+
@staticmethod
|
|
555
|
+
def getOperationBinaryMatMultShape(right_shape):
|
|
556
|
+
return operation_result_unknown
|
|
557
|
+
|
|
558
|
+
def getOperationUnaryAddShape(self):
|
|
559
|
+
return operation_result_unknown
|
|
560
|
+
|
|
561
|
+
def getOperationUnarySubShape(self):
|
|
562
|
+
return operation_result_unknown
|
|
563
|
+
|
|
564
|
+
@staticmethod
|
|
565
|
+
def getComparisonLtShape(right_shape):
|
|
566
|
+
return operation_result_unknown
|
|
567
|
+
|
|
568
|
+
@staticmethod
|
|
569
|
+
def getOperationUnaryReprEscape():
|
|
570
|
+
return ControlFlowDescriptionFullEscape
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
tshape_unknown = ShapeTypeUnknown()
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
class ShapeTypeUninitialized(ShapeTypeUnknown):
|
|
577
|
+
__slots__ = ()
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
tshape_uninitialized = ShapeTypeUninitialized()
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
class ValueShapeBase(object):
|
|
584
|
+
__slots__ = ()
|
|
585
|
+
|
|
586
|
+
def hasShapeSlotLen(self):
|
|
587
|
+
return self.getTypeShape().hasShapeSlotLen()
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
class ValueShapeUnknown(ValueShapeBase):
|
|
591
|
+
__slots__ = ()
|
|
592
|
+
|
|
593
|
+
@staticmethod
|
|
594
|
+
def getTypeShape():
|
|
595
|
+
return tshape_unknown
|
|
596
|
+
|
|
597
|
+
@staticmethod
|
|
598
|
+
def isConstant():
|
|
599
|
+
"""Can't say if it's constant, we don't know anything."""
|
|
600
|
+
return None
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
# Singleton value for sharing.
|
|
604
|
+
vshape_unknown = ValueShapeUnknown()
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
class ShapeLargeConstantValue(object):
|
|
608
|
+
__slots__ = "shape", "size"
|
|
609
|
+
|
|
610
|
+
def __init__(self, size, shape):
|
|
611
|
+
self.size = size
|
|
612
|
+
self.shape = shape
|
|
613
|
+
|
|
614
|
+
def getTypeShape(self):
|
|
615
|
+
return self.shape
|
|
616
|
+
|
|
617
|
+
@staticmethod
|
|
618
|
+
def isConstant():
|
|
619
|
+
return True
|
|
620
|
+
|
|
621
|
+
def hasShapeSlotLen(self):
|
|
622
|
+
return self.shape.hasShapeSlotLen()
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
class ShapeLargeConstantValuePredictable(ShapeLargeConstantValue):
|
|
626
|
+
__slots__ = ("predictor",)
|
|
627
|
+
|
|
628
|
+
def __init__(self, size, predictor, shape):
|
|
629
|
+
ShapeLargeConstantValue.__init__(self, size, shape)
|
|
630
|
+
|
|
631
|
+
self.predictor = predictor
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
class ShapeLoopInitialAlternative(ShapeBase):
|
|
635
|
+
"""Merge of loop wrap around with loop start value.
|
|
636
|
+
|
|
637
|
+
Happens at the start of loop blocks. This is for loop closed SSA, to
|
|
638
|
+
make it clear, that the entered value, can be anything really, and
|
|
639
|
+
will only later be clarified.
|
|
640
|
+
|
|
641
|
+
They will start out with just one previous, and later be updated with
|
|
642
|
+
all of the variable versions at loop continue times.
|
|
643
|
+
"""
|
|
644
|
+
|
|
645
|
+
__slots__ = ("type_shapes",)
|
|
646
|
+
|
|
647
|
+
def __init__(self, shapes):
|
|
648
|
+
self.type_shapes = shapes
|
|
649
|
+
|
|
650
|
+
def emitAlternatives(self, emit):
|
|
651
|
+
for type_shape in self.type_shapes:
|
|
652
|
+
type_shape.emitAlternatives(emit)
|
|
653
|
+
|
|
654
|
+
def _collectInitialShape(self, operation):
|
|
655
|
+
result = set()
|
|
656
|
+
|
|
657
|
+
for type_shape in self.type_shapes:
|
|
658
|
+
try:
|
|
659
|
+
entry, _description = operation(type_shape)
|
|
660
|
+
except TypeError:
|
|
661
|
+
assert False, type_shape
|
|
662
|
+
|
|
663
|
+
if entry is tshape_unknown:
|
|
664
|
+
return tshape_unknown
|
|
665
|
+
|
|
666
|
+
result.add(entry)
|
|
667
|
+
|
|
668
|
+
return ShapeLoopInitialAlternative(result)
|
|
669
|
+
|
|
670
|
+
def getOperationBinaryAddShape(self, right_shape):
|
|
671
|
+
if right_shape is tshape_unknown:
|
|
672
|
+
return operation_result_unknown
|
|
673
|
+
else:
|
|
674
|
+
return (
|
|
675
|
+
self._collectInitialShape(
|
|
676
|
+
operation=lambda left_shape: left_shape.getOperationBinaryAddShape(
|
|
677
|
+
right_shape
|
|
678
|
+
)
|
|
679
|
+
),
|
|
680
|
+
ControlFlowDescriptionFullEscape,
|
|
681
|
+
)
|
|
682
|
+
|
|
683
|
+
def getOperationInplaceAddShape(self, right_shape):
|
|
684
|
+
if right_shape is tshape_unknown:
|
|
685
|
+
return operation_result_unknown
|
|
686
|
+
else:
|
|
687
|
+
return (
|
|
688
|
+
self._collectInitialShape(
|
|
689
|
+
operation=lambda left_shape: left_shape.getOperationInplaceAddShape(
|
|
690
|
+
right_shape
|
|
691
|
+
)
|
|
692
|
+
),
|
|
693
|
+
ControlFlowDescriptionFullEscape,
|
|
694
|
+
)
|
|
695
|
+
|
|
696
|
+
def getOperationBinarySubShape(self, right_shape):
|
|
697
|
+
if right_shape is tshape_unknown:
|
|
698
|
+
return operation_result_unknown
|
|
699
|
+
else:
|
|
700
|
+
return (
|
|
701
|
+
self._collectInitialShape(
|
|
702
|
+
operation=lambda left_shape: left_shape.getOperationBinarySubShape(
|
|
703
|
+
right_shape
|
|
704
|
+
)
|
|
705
|
+
),
|
|
706
|
+
ControlFlowDescriptionFullEscape,
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
def getOperationBinaryMultShape(self, right_shape):
|
|
710
|
+
if right_shape is tshape_unknown:
|
|
711
|
+
return operation_result_unknown
|
|
712
|
+
else:
|
|
713
|
+
return (
|
|
714
|
+
self._collectInitialShape(
|
|
715
|
+
operation=lambda left_shape: left_shape.getOperationBinaryMultShape(
|
|
716
|
+
right_shape
|
|
717
|
+
)
|
|
718
|
+
),
|
|
719
|
+
ControlFlowDescriptionFullEscape,
|
|
720
|
+
)
|
|
721
|
+
|
|
722
|
+
def getOperationBinaryFloorDivShape(self, right_shape):
|
|
723
|
+
if right_shape is tshape_unknown:
|
|
724
|
+
return operation_result_unknown
|
|
725
|
+
else:
|
|
726
|
+
return (
|
|
727
|
+
self._collectInitialShape(
|
|
728
|
+
operation=lambda left_shape: left_shape.getOperationBinaryFloorDivShape(
|
|
729
|
+
right_shape
|
|
730
|
+
)
|
|
731
|
+
),
|
|
732
|
+
ControlFlowDescriptionFullEscape,
|
|
733
|
+
)
|
|
734
|
+
|
|
735
|
+
def getOperationBinaryOldDivShape(self, right_shape):
|
|
736
|
+
if right_shape is tshape_unknown:
|
|
737
|
+
return operation_result_unknown
|
|
738
|
+
else:
|
|
739
|
+
return (
|
|
740
|
+
self._collectInitialShape(
|
|
741
|
+
operation=lambda left_shape: left_shape.getOperationBinaryOldDivShape(
|
|
742
|
+
right_shape
|
|
743
|
+
)
|
|
744
|
+
),
|
|
745
|
+
ControlFlowDescriptionFullEscape,
|
|
746
|
+
)
|
|
747
|
+
|
|
748
|
+
def getOperationBinaryTrueDivShape(self, right_shape):
|
|
749
|
+
if right_shape is tshape_unknown:
|
|
750
|
+
return operation_result_unknown
|
|
751
|
+
else:
|
|
752
|
+
return (
|
|
753
|
+
self._collectInitialShape(
|
|
754
|
+
operation=lambda left_shape: left_shape.getOperationBinaryTrueDivShape(
|
|
755
|
+
right_shape
|
|
756
|
+
)
|
|
757
|
+
),
|
|
758
|
+
ControlFlowDescriptionFullEscape,
|
|
759
|
+
)
|
|
760
|
+
|
|
761
|
+
def getOperationBinaryModShape(self, right_shape):
|
|
762
|
+
if right_shape is tshape_unknown:
|
|
763
|
+
return operation_result_unknown
|
|
764
|
+
else:
|
|
765
|
+
return (
|
|
766
|
+
self._collectInitialShape(
|
|
767
|
+
operation=lambda left_shape: left_shape.getOperationBinaryModShape(
|
|
768
|
+
right_shape
|
|
769
|
+
)
|
|
770
|
+
),
|
|
771
|
+
ControlFlowDescriptionFullEscape,
|
|
772
|
+
)
|
|
773
|
+
|
|
774
|
+
def getOperationBinaryDivmodShape(self, right_shape):
|
|
775
|
+
if right_shape is tshape_unknown:
|
|
776
|
+
return operation_result_unknown
|
|
777
|
+
else:
|
|
778
|
+
return (
|
|
779
|
+
self._collectInitialShape(
|
|
780
|
+
operation=lambda left_shape: left_shape.getOperationBinaryDivmodShape(
|
|
781
|
+
right_shape
|
|
782
|
+
)
|
|
783
|
+
),
|
|
784
|
+
ControlFlowDescriptionFullEscape,
|
|
785
|
+
)
|
|
786
|
+
|
|
787
|
+
def getOperationBinaryPowShape(self, right_shape):
|
|
788
|
+
if right_shape is tshape_unknown:
|
|
789
|
+
return operation_result_unknown
|
|
790
|
+
else:
|
|
791
|
+
return (
|
|
792
|
+
self._collectInitialShape(
|
|
793
|
+
operation=lambda left_shape: left_shape.getOperationBinaryPowShape(
|
|
794
|
+
right_shape
|
|
795
|
+
)
|
|
796
|
+
),
|
|
797
|
+
ControlFlowDescriptionFullEscape,
|
|
798
|
+
)
|
|
799
|
+
|
|
800
|
+
def getOperationBinaryLShiftShape(self, right_shape):
|
|
801
|
+
if right_shape is tshape_unknown:
|
|
802
|
+
return operation_result_unknown
|
|
803
|
+
else:
|
|
804
|
+
return (
|
|
805
|
+
self._collectInitialShape(
|
|
806
|
+
operation=lambda left_shape: left_shape.getOperationBinaryLShiftShape(
|
|
807
|
+
right_shape
|
|
808
|
+
)
|
|
809
|
+
),
|
|
810
|
+
ControlFlowDescriptionFullEscape,
|
|
811
|
+
)
|
|
812
|
+
|
|
813
|
+
def getOperationBinaryRShiftShape(self, right_shape):
|
|
814
|
+
if right_shape is tshape_unknown:
|
|
815
|
+
return operation_result_unknown
|
|
816
|
+
else:
|
|
817
|
+
return (
|
|
818
|
+
self._collectInitialShape(
|
|
819
|
+
operation=lambda left_shape: left_shape.getOperationBinaryRShiftShape(
|
|
820
|
+
right_shape
|
|
821
|
+
)
|
|
822
|
+
),
|
|
823
|
+
ControlFlowDescriptionFullEscape,
|
|
824
|
+
)
|
|
825
|
+
|
|
826
|
+
def getOperationBinaryBitOrShape(self, right_shape):
|
|
827
|
+
if right_shape is tshape_unknown:
|
|
828
|
+
return operation_result_unknown
|
|
829
|
+
else:
|
|
830
|
+
return (
|
|
831
|
+
self._collectInitialShape(
|
|
832
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitOrShape(
|
|
833
|
+
right_shape
|
|
834
|
+
)
|
|
835
|
+
),
|
|
836
|
+
ControlFlowDescriptionFullEscape,
|
|
837
|
+
)
|
|
838
|
+
|
|
839
|
+
def getOperationBinaryBitAndShape(self, right_shape):
|
|
840
|
+
if right_shape is tshape_unknown:
|
|
841
|
+
return operation_result_unknown
|
|
842
|
+
else:
|
|
843
|
+
return (
|
|
844
|
+
self._collectInitialShape(
|
|
845
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitAndShape(
|
|
846
|
+
right_shape
|
|
847
|
+
)
|
|
848
|
+
),
|
|
849
|
+
ControlFlowDescriptionFullEscape,
|
|
850
|
+
)
|
|
851
|
+
|
|
852
|
+
def getOperationBinaryBitXorShape(self, right_shape):
|
|
853
|
+
if right_shape is tshape_unknown:
|
|
854
|
+
return operation_result_unknown
|
|
855
|
+
else:
|
|
856
|
+
return (
|
|
857
|
+
self._collectInitialShape(
|
|
858
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitXorShape(
|
|
859
|
+
right_shape
|
|
860
|
+
)
|
|
861
|
+
),
|
|
862
|
+
ControlFlowDescriptionFullEscape,
|
|
863
|
+
)
|
|
864
|
+
|
|
865
|
+
def getOperationBinaryMatMultShape(self, right_shape):
|
|
866
|
+
if right_shape is tshape_unknown:
|
|
867
|
+
return operation_result_unknown
|
|
868
|
+
else:
|
|
869
|
+
return (
|
|
870
|
+
self._collectInitialShape(
|
|
871
|
+
operation=lambda left_shape: left_shape.getOperationBinaryMatMultShape(
|
|
872
|
+
right_shape
|
|
873
|
+
)
|
|
874
|
+
),
|
|
875
|
+
ControlFlowDescriptionFullEscape,
|
|
876
|
+
)
|
|
877
|
+
|
|
878
|
+
def getOperationUnaryAddShape(self):
|
|
879
|
+
return (
|
|
880
|
+
self._collectInitialShape(
|
|
881
|
+
operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
|
|
882
|
+
),
|
|
883
|
+
ControlFlowDescriptionFullEscape,
|
|
884
|
+
)
|
|
885
|
+
|
|
886
|
+
def getOperationUnarySubShape(self):
|
|
887
|
+
return (
|
|
888
|
+
self._collectInitialShape(
|
|
889
|
+
operation=lambda left_shape: left_shape.getOperationUnarySubShape()
|
|
890
|
+
),
|
|
891
|
+
ControlFlowDescriptionFullEscape,
|
|
892
|
+
)
|
|
893
|
+
|
|
894
|
+
def getComparisonLtShape(self, right_shape):
|
|
895
|
+
if right_shape is tshape_unknown:
|
|
896
|
+
return operation_result_unknown
|
|
897
|
+
else:
|
|
898
|
+
return (
|
|
899
|
+
self._collectInitialShape(
|
|
900
|
+
operation=lambda left_shape: left_shape.getComparisonLtShape(
|
|
901
|
+
right_shape
|
|
902
|
+
)
|
|
903
|
+
),
|
|
904
|
+
ControlFlowDescriptionFullEscape,
|
|
905
|
+
)
|
|
906
|
+
|
|
907
|
+
def getComparisonLteShape(self, right_shape):
|
|
908
|
+
return self.getComparisonLtShape(right_shape)
|
|
909
|
+
|
|
910
|
+
def getComparisonGtShape(self, right_shape):
|
|
911
|
+
return self.getComparisonLtShape(right_shape)
|
|
912
|
+
|
|
913
|
+
def getComparisonGteShape(self, right_shape):
|
|
914
|
+
return self.getComparisonLtShape(right_shape)
|
|
915
|
+
|
|
916
|
+
def getComparisonEqShape(self, right_shape):
|
|
917
|
+
return self.getComparisonLtShape(right_shape)
|
|
918
|
+
|
|
919
|
+
def getComparisonNeqShape(self, right_shape):
|
|
920
|
+
return self.getComparisonLtShape(right_shape)
|
|
921
|
+
|
|
922
|
+
@staticmethod
|
|
923
|
+
def getOperationUnaryReprEscape():
|
|
924
|
+
return ControlFlowDescriptionFullEscape
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
class ShapeLoopCompleteAlternative(ShapeBase):
|
|
928
|
+
"""Merge of loop wrap around with loop start value.
|
|
929
|
+
|
|
930
|
+
Happens at the start of loop blocks. This is for loop closed SSA, to
|
|
931
|
+
make it clear, that the entered value, can be one of multiple types,
|
|
932
|
+
but only those.
|
|
933
|
+
|
|
934
|
+
They will start out with just one previous, and later be updated with
|
|
935
|
+
all of the variable versions at loop continue times.
|
|
936
|
+
"""
|
|
937
|
+
|
|
938
|
+
__slots__ = ("type_shapes",)
|
|
939
|
+
|
|
940
|
+
def __init__(self, shapes):
|
|
941
|
+
self.type_shapes = shapes
|
|
942
|
+
|
|
943
|
+
def __hash__(self):
|
|
944
|
+
# We are unhashable set, and need deep comparison.
|
|
945
|
+
return 27
|
|
946
|
+
|
|
947
|
+
def __eq__(self, other):
|
|
948
|
+
if self.__class__ is not other.__class__:
|
|
949
|
+
return False
|
|
950
|
+
|
|
951
|
+
return self.type_shapes == other.type_shapes
|
|
952
|
+
|
|
953
|
+
def emitAlternatives(self, emit):
|
|
954
|
+
for type_shape in self.type_shapes:
|
|
955
|
+
type_shape.emitAlternatives(emit)
|
|
956
|
+
|
|
957
|
+
def _collectShapeOperation(self, operation):
|
|
958
|
+
result = None
|
|
959
|
+
escape_description = None
|
|
960
|
+
single = True
|
|
961
|
+
|
|
962
|
+
for type_shape in self.type_shapes:
|
|
963
|
+
entry, description = operation(type_shape)
|
|
964
|
+
|
|
965
|
+
if entry is tshape_unknown:
|
|
966
|
+
return operation_result_unknown
|
|
967
|
+
|
|
968
|
+
if single:
|
|
969
|
+
if result is None:
|
|
970
|
+
# First entry, fine.
|
|
971
|
+
result = entry
|
|
972
|
+
escape_description = description
|
|
973
|
+
else:
|
|
974
|
+
# Second entry, not the same, convert to set.
|
|
975
|
+
if result is not entry:
|
|
976
|
+
single = False
|
|
977
|
+
result = set((result, entry))
|
|
978
|
+
|
|
979
|
+
escape_description = set((escape_description, description))
|
|
980
|
+
else:
|
|
981
|
+
result.add(entry)
|
|
982
|
+
escape_description.add(description)
|
|
983
|
+
|
|
984
|
+
if single:
|
|
985
|
+
assert result is not None
|
|
986
|
+
return result, escape_description
|
|
987
|
+
else:
|
|
988
|
+
if len(escape_description) > 1:
|
|
989
|
+
if ControlFlowDescriptionFullEscape in escape_description:
|
|
990
|
+
escape_description = ControlFlowDescriptionFullEscape
|
|
991
|
+
else:
|
|
992
|
+
assert False
|
|
993
|
+
else:
|
|
994
|
+
(escape_description,) = escape_description
|
|
995
|
+
|
|
996
|
+
return ShapeLoopCompleteAlternative(result), escape_description
|
|
997
|
+
|
|
998
|
+
def getOperationBinaryAddShape(self, right_shape):
|
|
999
|
+
if right_shape is tshape_unknown:
|
|
1000
|
+
return operation_result_unknown
|
|
1001
|
+
|
|
1002
|
+
return self._collectShapeOperation(
|
|
1003
|
+
operation=lambda left_shape: left_shape.getOperationBinaryAddShape(
|
|
1004
|
+
right_shape
|
|
1005
|
+
)
|
|
1006
|
+
)
|
|
1007
|
+
|
|
1008
|
+
def getOperationInplaceAddShape(self, right_shape):
|
|
1009
|
+
if right_shape is tshape_unknown:
|
|
1010
|
+
return operation_result_unknown
|
|
1011
|
+
|
|
1012
|
+
return self._collectShapeOperation(
|
|
1013
|
+
operation=lambda left_shape: left_shape.getOperationInplaceAddShape(
|
|
1014
|
+
right_shape
|
|
1015
|
+
)
|
|
1016
|
+
)
|
|
1017
|
+
|
|
1018
|
+
def getOperationBinarySubShape(self, right_shape):
|
|
1019
|
+
if right_shape is tshape_unknown:
|
|
1020
|
+
return operation_result_unknown
|
|
1021
|
+
|
|
1022
|
+
return self._collectShapeOperation(
|
|
1023
|
+
operation=lambda left_shape: left_shape.getOperationBinarySubShape(
|
|
1024
|
+
right_shape
|
|
1025
|
+
)
|
|
1026
|
+
)
|
|
1027
|
+
|
|
1028
|
+
def getOperationBinaryMultShape(self, right_shape):
|
|
1029
|
+
if right_shape is tshape_unknown:
|
|
1030
|
+
return operation_result_unknown
|
|
1031
|
+
|
|
1032
|
+
return self._collectShapeOperation(
|
|
1033
|
+
operation=lambda left_shape: left_shape.getOperationBinaryMultShape(
|
|
1034
|
+
right_shape
|
|
1035
|
+
)
|
|
1036
|
+
)
|
|
1037
|
+
|
|
1038
|
+
def getOperationBinaryFloorDivShape(self, right_shape):
|
|
1039
|
+
if right_shape is tshape_unknown:
|
|
1040
|
+
return operation_result_unknown
|
|
1041
|
+
|
|
1042
|
+
return self._collectShapeOperation(
|
|
1043
|
+
operation=lambda left_shape: left_shape.getOperationBinaryFloorDivShape(
|
|
1044
|
+
right_shape
|
|
1045
|
+
)
|
|
1046
|
+
)
|
|
1047
|
+
|
|
1048
|
+
def getOperationBinaryOldDivShape(self, right_shape):
|
|
1049
|
+
if right_shape is tshape_unknown:
|
|
1050
|
+
return operation_result_unknown
|
|
1051
|
+
|
|
1052
|
+
return self._collectShapeOperation(
|
|
1053
|
+
operation=lambda left_shape: left_shape.getOperationBinaryOldDivShape(
|
|
1054
|
+
right_shape
|
|
1055
|
+
)
|
|
1056
|
+
)
|
|
1057
|
+
|
|
1058
|
+
def getOperationBinaryTrueDivShape(self, right_shape):
|
|
1059
|
+
if right_shape is tshape_unknown:
|
|
1060
|
+
return operation_result_unknown
|
|
1061
|
+
|
|
1062
|
+
return self._collectShapeOperation(
|
|
1063
|
+
operation=lambda left_shape: left_shape.getOperationBinaryTrueDivShape(
|
|
1064
|
+
right_shape
|
|
1065
|
+
)
|
|
1066
|
+
)
|
|
1067
|
+
|
|
1068
|
+
def getOperationBinaryModShape(self, right_shape):
|
|
1069
|
+
if right_shape is tshape_unknown:
|
|
1070
|
+
return operation_result_unknown
|
|
1071
|
+
|
|
1072
|
+
return self._collectShapeOperation(
|
|
1073
|
+
operation=lambda left_shape: left_shape.getOperationBinaryModShape(
|
|
1074
|
+
right_shape
|
|
1075
|
+
)
|
|
1076
|
+
)
|
|
1077
|
+
|
|
1078
|
+
def getOperationBinaryDivmodShape(self, right_shape):
|
|
1079
|
+
if right_shape is tshape_unknown:
|
|
1080
|
+
return operation_result_unknown
|
|
1081
|
+
|
|
1082
|
+
return self._collectShapeOperation(
|
|
1083
|
+
operation=lambda left_shape: left_shape.getOperationBinaryDivmodShape(
|
|
1084
|
+
right_shape
|
|
1085
|
+
)
|
|
1086
|
+
)
|
|
1087
|
+
|
|
1088
|
+
def getOperationBinaryPowShape(self, right_shape):
|
|
1089
|
+
if right_shape is tshape_unknown:
|
|
1090
|
+
return operation_result_unknown
|
|
1091
|
+
|
|
1092
|
+
return self._collectShapeOperation(
|
|
1093
|
+
operation=lambda left_shape: left_shape.getOperationBinaryPowShape(
|
|
1094
|
+
right_shape
|
|
1095
|
+
)
|
|
1096
|
+
)
|
|
1097
|
+
|
|
1098
|
+
def getOperationBinaryLShiftShape(self, right_shape):
|
|
1099
|
+
if right_shape is tshape_unknown:
|
|
1100
|
+
return operation_result_unknown
|
|
1101
|
+
|
|
1102
|
+
return self._collectShapeOperation(
|
|
1103
|
+
operation=lambda left_shape: left_shape.getOperationBinaryLShiftShape(
|
|
1104
|
+
right_shape
|
|
1105
|
+
)
|
|
1106
|
+
)
|
|
1107
|
+
|
|
1108
|
+
def getOperationBinaryRShiftShape(self, right_shape):
|
|
1109
|
+
if right_shape is tshape_unknown:
|
|
1110
|
+
return operation_result_unknown
|
|
1111
|
+
|
|
1112
|
+
return self._collectShapeOperation(
|
|
1113
|
+
operation=lambda left_shape: left_shape.getOperationBinaryRShiftShape(
|
|
1114
|
+
right_shape
|
|
1115
|
+
)
|
|
1116
|
+
)
|
|
1117
|
+
|
|
1118
|
+
def getOperationBinaryBitOrShape(self, right_shape):
|
|
1119
|
+
if right_shape is tshape_unknown:
|
|
1120
|
+
return operation_result_unknown
|
|
1121
|
+
|
|
1122
|
+
return self._collectShapeOperation(
|
|
1123
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitOrShape(
|
|
1124
|
+
right_shape
|
|
1125
|
+
)
|
|
1126
|
+
)
|
|
1127
|
+
|
|
1128
|
+
def getOperationBinaryBitAndShape(self, right_shape):
|
|
1129
|
+
if right_shape is tshape_unknown:
|
|
1130
|
+
return operation_result_unknown
|
|
1131
|
+
|
|
1132
|
+
return self._collectShapeOperation(
|
|
1133
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitAndShape(
|
|
1134
|
+
right_shape
|
|
1135
|
+
)
|
|
1136
|
+
)
|
|
1137
|
+
|
|
1138
|
+
def getOperationBinaryBitXorShape(self, right_shape):
|
|
1139
|
+
if right_shape is tshape_unknown:
|
|
1140
|
+
return operation_result_unknown
|
|
1141
|
+
|
|
1142
|
+
return self._collectShapeOperation(
|
|
1143
|
+
operation=lambda left_shape: left_shape.getOperationBinaryBitXorShape(
|
|
1144
|
+
right_shape
|
|
1145
|
+
)
|
|
1146
|
+
)
|
|
1147
|
+
|
|
1148
|
+
def getOperationBinaryMatMultShape(self, right_shape):
|
|
1149
|
+
if right_shape is tshape_unknown:
|
|
1150
|
+
return operation_result_unknown
|
|
1151
|
+
|
|
1152
|
+
return self._collectShapeOperation(
|
|
1153
|
+
operation=lambda left_shape: left_shape.getOperationBinaryMatMultShape(
|
|
1154
|
+
right_shape
|
|
1155
|
+
)
|
|
1156
|
+
)
|
|
1157
|
+
|
|
1158
|
+
def getOperationUnaryAddShape(self):
|
|
1159
|
+
return self._collectShapeOperation(
|
|
1160
|
+
operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
|
|
1161
|
+
)
|
|
1162
|
+
|
|
1163
|
+
def getOperationUnarySubShape(self):
|
|
1164
|
+
return self._collectShapeOperation(
|
|
1165
|
+
operation=lambda left_shape: left_shape.getOperationUnarySubShape()
|
|
1166
|
+
)
|
|
1167
|
+
|
|
1168
|
+
# Special method to be called by other shapes encountering this type on
|
|
1169
|
+
# the right side.
|
|
1170
|
+
def getOperationBinaryAddLShape(self, left_shape):
|
|
1171
|
+
assert left_shape is not tshape_unknown
|
|
1172
|
+
|
|
1173
|
+
return self._collectShapeOperation(
|
|
1174
|
+
operation=left_shape.getOperationBinaryAddShape
|
|
1175
|
+
)
|
|
1176
|
+
|
|
1177
|
+
# Special method to be called by other shapes encountering this type on
|
|
1178
|
+
# the right side.
|
|
1179
|
+
def getOperationBinarySubLShape(self, left_shape):
|
|
1180
|
+
assert left_shape is not tshape_unknown
|
|
1181
|
+
|
|
1182
|
+
return self._collectShapeOperation(
|
|
1183
|
+
operation=left_shape.getOperationBinarySubShape
|
|
1184
|
+
)
|
|
1185
|
+
|
|
1186
|
+
def getOperationBinaryMultLShape(self, left_shape):
|
|
1187
|
+
assert left_shape is not tshape_unknown
|
|
1188
|
+
|
|
1189
|
+
return self._collectShapeOperation(
|
|
1190
|
+
operation=left_shape.getOperationBinaryMultShape
|
|
1191
|
+
)
|
|
1192
|
+
|
|
1193
|
+
def getOperationBinaryFloorDivLShape(self, left_shape):
|
|
1194
|
+
assert left_shape is not tshape_unknown
|
|
1195
|
+
|
|
1196
|
+
return self._collectShapeOperation(
|
|
1197
|
+
operation=left_shape.getOperationBinaryFloorDivShape
|
|
1198
|
+
)
|
|
1199
|
+
|
|
1200
|
+
def getOperationBinaryOldDivLShape(self, left_shape):
|
|
1201
|
+
assert left_shape is not tshape_unknown
|
|
1202
|
+
|
|
1203
|
+
return self._collectShapeOperation(
|
|
1204
|
+
operation=left_shape.getOperationBinaryOldDivShape
|
|
1205
|
+
)
|
|
1206
|
+
|
|
1207
|
+
def getOperationBinaryTrueDivLShape(self, left_shape):
|
|
1208
|
+
assert left_shape is not tshape_unknown
|
|
1209
|
+
|
|
1210
|
+
return self._collectShapeOperation(
|
|
1211
|
+
operation=left_shape.getOperationBinaryTrueDivShape
|
|
1212
|
+
)
|
|
1213
|
+
|
|
1214
|
+
def getOperationBinaryModLShape(self, left_shape):
|
|
1215
|
+
assert left_shape is not tshape_unknown
|
|
1216
|
+
|
|
1217
|
+
return self._collectShapeOperation(
|
|
1218
|
+
operation=left_shape.getOperationBinaryModShape
|
|
1219
|
+
)
|
|
1220
|
+
|
|
1221
|
+
def getOperationBinaryDivmodLShape(self, left_shape):
|
|
1222
|
+
assert left_shape is not tshape_unknown
|
|
1223
|
+
|
|
1224
|
+
return self._collectShapeOperation(
|
|
1225
|
+
operation=left_shape.getOperationBinaryDivmodShape
|
|
1226
|
+
)
|
|
1227
|
+
|
|
1228
|
+
def getOperationBinaryPowLShape(self, left_shape):
|
|
1229
|
+
assert left_shape is not tshape_unknown
|
|
1230
|
+
|
|
1231
|
+
return self._collectShapeOperation(
|
|
1232
|
+
operation=left_shape.getOperationBinaryPowShape
|
|
1233
|
+
)
|
|
1234
|
+
|
|
1235
|
+
def getOperationBinaryLShiftLShape(self, left_shape):
|
|
1236
|
+
assert left_shape is not tshape_unknown
|
|
1237
|
+
|
|
1238
|
+
return self._collectShapeOperation(
|
|
1239
|
+
operation=left_shape.getOperationBinaryLShiftShape
|
|
1240
|
+
)
|
|
1241
|
+
|
|
1242
|
+
def getOperationBinaryRShiftLShape(self, left_shape):
|
|
1243
|
+
assert left_shape is not tshape_unknown
|
|
1244
|
+
|
|
1245
|
+
return self._collectShapeOperation(
|
|
1246
|
+
operation=left_shape.getOperationBinaryRShiftShape
|
|
1247
|
+
)
|
|
1248
|
+
|
|
1249
|
+
def getOperationBinaryBitOrLShape(self, left_shape):
|
|
1250
|
+
assert left_shape is not tshape_unknown
|
|
1251
|
+
|
|
1252
|
+
return self._collectShapeOperation(
|
|
1253
|
+
operation=left_shape.getOperationBinaryBitOrShape
|
|
1254
|
+
)
|
|
1255
|
+
|
|
1256
|
+
def getOperationBinaryBitAndLShape(self, left_shape):
|
|
1257
|
+
assert left_shape is not tshape_unknown
|
|
1258
|
+
|
|
1259
|
+
return self._collectShapeOperation(
|
|
1260
|
+
operation=left_shape.getOperationBinaryBitAndShape
|
|
1261
|
+
)
|
|
1262
|
+
|
|
1263
|
+
def getOperationBinaryBitXorLShape(self, left_shape):
|
|
1264
|
+
assert left_shape is not tshape_unknown
|
|
1265
|
+
|
|
1266
|
+
return self._collectShapeOperation(
|
|
1267
|
+
operation=left_shape.getOperationBinaryBitXorShape
|
|
1268
|
+
)
|
|
1269
|
+
|
|
1270
|
+
def getOperationBinaryMatMultLShape(self, left_shape):
|
|
1271
|
+
assert left_shape is not tshape_unknown
|
|
1272
|
+
|
|
1273
|
+
return self._collectShapeOperation(
|
|
1274
|
+
operation=left_shape.getOperationBinaryMatMultShape
|
|
1275
|
+
)
|
|
1276
|
+
|
|
1277
|
+
def getComparisonLtShape(self, right_shape):
|
|
1278
|
+
if right_shape is tshape_unknown:
|
|
1279
|
+
return operation_result_unknown
|
|
1280
|
+
|
|
1281
|
+
return self._collectShapeOperation(
|
|
1282
|
+
operation=lambda left_shape: left_shape.getComparisonLtShape(right_shape)
|
|
1283
|
+
)
|
|
1284
|
+
|
|
1285
|
+
# Special method to be called by other shapes encountering this type on
|
|
1286
|
+
# the right side.
|
|
1287
|
+
def getComparisonLtLShape(self, left_shape):
|
|
1288
|
+
assert left_shape is not tshape_unknown
|
|
1289
|
+
|
|
1290
|
+
return self._collectShapeOperation(operation=left_shape.getComparisonLtShape)
|
|
1291
|
+
|
|
1292
|
+
def getComparisonLteShape(self, right_shape):
|
|
1293
|
+
return self.getComparisonLtShape(right_shape)
|
|
1294
|
+
|
|
1295
|
+
def getComparisonGtShape(self, right_shape):
|
|
1296
|
+
return self.getComparisonLtShape(right_shape)
|
|
1297
|
+
|
|
1298
|
+
def getComparisonGteShape(self, right_shape):
|
|
1299
|
+
return self.getComparisonLtShape(right_shape)
|
|
1300
|
+
|
|
1301
|
+
def getComparisonEqShape(self, right_shape):
|
|
1302
|
+
return self.getComparisonLtShape(right_shape)
|
|
1303
|
+
|
|
1304
|
+
def getComparisonNeqShape(self, right_shape):
|
|
1305
|
+
return self.getComparisonLtShape(right_shape)
|
|
1306
|
+
|
|
1307
|
+
@staticmethod
|
|
1308
|
+
def getOperationUnaryReprEscape():
|
|
1309
|
+
# TODO: We could collect information.
|
|
1310
|
+
return ControlFlowDescriptionFullEscape
|
|
1311
|
+
|
|
1312
|
+
def _delegatedCheck(self, check):
|
|
1313
|
+
result = None
|
|
1314
|
+
|
|
1315
|
+
for type_shape in self.type_shapes:
|
|
1316
|
+
r = check(type_shape)
|
|
1317
|
+
|
|
1318
|
+
if r is None:
|
|
1319
|
+
return None
|
|
1320
|
+
elif r is True:
|
|
1321
|
+
if result is False:
|
|
1322
|
+
return None
|
|
1323
|
+
elif result is None:
|
|
1324
|
+
result = True
|
|
1325
|
+
elif r is False:
|
|
1326
|
+
if result is True:
|
|
1327
|
+
return None
|
|
1328
|
+
elif result is None:
|
|
1329
|
+
result = False
|
|
1330
|
+
|
|
1331
|
+
return result
|
|
1332
|
+
|
|
1333
|
+
def hasShapeSlotBool(self):
|
|
1334
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotBool())
|
|
1335
|
+
|
|
1336
|
+
def hasShapeSlotLen(self):
|
|
1337
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotLen())
|
|
1338
|
+
|
|
1339
|
+
def hasShapeSlotIter(self):
|
|
1340
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotIter())
|
|
1341
|
+
|
|
1342
|
+
def hasShapeSlotNext(self):
|
|
1343
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotNext())
|
|
1344
|
+
|
|
1345
|
+
def hasShapeSlotContains(self):
|
|
1346
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotContains())
|
|
1347
|
+
|
|
1348
|
+
def hasShapeSlotInt(self):
|
|
1349
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotInt())
|
|
1350
|
+
|
|
1351
|
+
def hasShapeSlotLong(self):
|
|
1352
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotLong())
|
|
1353
|
+
|
|
1354
|
+
def hasShapeSlotFloat(self):
|
|
1355
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotFloat())
|
|
1356
|
+
|
|
1357
|
+
def hasShapeSlotComplex(self):
|
|
1358
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotComplex())
|
|
1359
|
+
|
|
1360
|
+
def hasShapeSlotBytes(self):
|
|
1361
|
+
return self._delegatedCheck(lambda x: x.hasShapeSlotBytes())
|
|
1362
|
+
|
|
1363
|
+
def hasShapeModule(self):
|
|
1364
|
+
return self._delegatedCheck(lambda x: x.hasShapeModule())
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
tshape_unknown_loop = ShapeLoopCompleteAlternative(shapes=(tshape_unknown,))
|
|
1368
|
+
|
|
1369
|
+
operation_result_unknown = tshape_unknown, ControlFlowDescriptionFullEscape
|
|
1370
|
+
|
|
1371
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1372
|
+
# integrates with CPython, but also works on its own.
|
|
1373
|
+
#
|
|
1374
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1375
|
+
# you may not use this file except in compliance with the License.
|
|
1376
|
+
# You may obtain a copy of the License at
|
|
1377
|
+
#
|
|
1378
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1379
|
+
#
|
|
1380
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1381
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1382
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1383
|
+
# See the License for the specific language governing permissions and
|
|
1384
|
+
# limitations under the License.
|