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,980 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Value trace objects.
|
|
5
|
+
|
|
6
|
+
Value traces indicate the flow of values and merges their versions for
|
|
7
|
+
the SSA (Single State Assignment) form being used in Nuitka.
|
|
8
|
+
|
|
9
|
+
Values can be seen as:
|
|
10
|
+
|
|
11
|
+
* Unknown (maybe initialized, maybe not, we cannot know)
|
|
12
|
+
* Uninitialized (definitely not initialized, first version)
|
|
13
|
+
* Init (definitely initialized, e.g. parameter variables)
|
|
14
|
+
* Assign (assignment was done)
|
|
15
|
+
* Deleted (del was done, now unassigned, uninitialized)
|
|
16
|
+
* Merge (result of diverged code paths, loop potentially)
|
|
17
|
+
* LoopIncomplete (aggregation during loops, not yet fully known)
|
|
18
|
+
* LoopComplete (complete knowledge of loop types)
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from nuitka.nodes.shapes.BuiltinTypeShapes import (
|
|
22
|
+
tshape_bool,
|
|
23
|
+
tshape_bytes,
|
|
24
|
+
tshape_dict,
|
|
25
|
+
tshape_list,
|
|
26
|
+
tshape_str,
|
|
27
|
+
tshape_tuple,
|
|
28
|
+
tshape_unicode,
|
|
29
|
+
)
|
|
30
|
+
from nuitka.nodes.shapes.ControlFlowDescriptions import (
|
|
31
|
+
ControlFlowDescriptionElementBasedEscape,
|
|
32
|
+
ControlFlowDescriptionFullEscape,
|
|
33
|
+
ControlFlowDescriptionNoEscape,
|
|
34
|
+
)
|
|
35
|
+
from nuitka.nodes.shapes.StandardShapes import (
|
|
36
|
+
ShapeLoopCompleteAlternative,
|
|
37
|
+
ShapeLoopInitialAlternative,
|
|
38
|
+
tshape_uninitialized,
|
|
39
|
+
tshape_unknown,
|
|
40
|
+
)
|
|
41
|
+
from nuitka.Tracing import my_print
|
|
42
|
+
from nuitka.utils.InstanceCounters import (
|
|
43
|
+
counted_del,
|
|
44
|
+
counted_init,
|
|
45
|
+
isCountingInstances,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class ValueTraceBase(object):
|
|
50
|
+
# We are going to have many instance attributes, but should strive to minimize, as
|
|
51
|
+
# there is going to be a lot of fluctuation in these objects.
|
|
52
|
+
|
|
53
|
+
__slots__ = (
|
|
54
|
+
"owner",
|
|
55
|
+
"usage_count",
|
|
56
|
+
"name_usage_count",
|
|
57
|
+
"merge_usage_count",
|
|
58
|
+
"closure_usages",
|
|
59
|
+
"previous",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
@counted_init
|
|
63
|
+
def __init__(self, owner, previous):
|
|
64
|
+
self.owner = owner
|
|
65
|
+
|
|
66
|
+
# Definite usage indicator.
|
|
67
|
+
self.usage_count = 0
|
|
68
|
+
|
|
69
|
+
# If 0, this indicates, the variable name needs to be assigned as name.
|
|
70
|
+
self.name_usage_count = 0
|
|
71
|
+
|
|
72
|
+
# If 0, this indicates no value merges happened on the value.
|
|
73
|
+
self.merge_usage_count = 0
|
|
74
|
+
|
|
75
|
+
self.closure_usages = False
|
|
76
|
+
|
|
77
|
+
# Previous trace this is replacing.
|
|
78
|
+
self.previous = previous
|
|
79
|
+
|
|
80
|
+
if isCountingInstances():
|
|
81
|
+
__del__ = counted_del()
|
|
82
|
+
|
|
83
|
+
def __repr__(self):
|
|
84
|
+
return "<%s of %s>" % (self.__class__.__name__, self.owner.getCodeName())
|
|
85
|
+
|
|
86
|
+
def dump(self, indent=" "):
|
|
87
|
+
my_print("%s%s %s:" % (indent, self.__class__.__name__, id(self)))
|
|
88
|
+
|
|
89
|
+
if type(self.previous) is tuple:
|
|
90
|
+
for trace in self.previous:
|
|
91
|
+
trace.dump(indent + " ")
|
|
92
|
+
elif self.previous is not None:
|
|
93
|
+
self.previous.dump(indent + " ")
|
|
94
|
+
|
|
95
|
+
def getOwner(self):
|
|
96
|
+
return self.owner
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def isLoopTrace():
|
|
100
|
+
return False
|
|
101
|
+
|
|
102
|
+
def addUsage(self):
|
|
103
|
+
self.usage_count += 1
|
|
104
|
+
|
|
105
|
+
def addNameUsage(self):
|
|
106
|
+
self.usage_count += 1
|
|
107
|
+
self.name_usage_count += 1
|
|
108
|
+
|
|
109
|
+
if self.name_usage_count <= 2 and self.previous is not None:
|
|
110
|
+
self.previous.addNameUsage()
|
|
111
|
+
|
|
112
|
+
def addMergeUsage(self):
|
|
113
|
+
self.usage_count += 1
|
|
114
|
+
self.merge_usage_count += 1
|
|
115
|
+
|
|
116
|
+
def getUsageCount(self):
|
|
117
|
+
return self.usage_count
|
|
118
|
+
|
|
119
|
+
def getNameUsageCount(self):
|
|
120
|
+
return self.name_usage_count
|
|
121
|
+
|
|
122
|
+
def getMergeUsageCount(self):
|
|
123
|
+
return self.merge_usage_count
|
|
124
|
+
|
|
125
|
+
def getMergeOrNameUsageCount(self):
|
|
126
|
+
return self.merge_usage_count + self.name_usage_count
|
|
127
|
+
|
|
128
|
+
def getPrevious(self):
|
|
129
|
+
return self.previous
|
|
130
|
+
|
|
131
|
+
@staticmethod
|
|
132
|
+
def isAssignTrace():
|
|
133
|
+
return False
|
|
134
|
+
|
|
135
|
+
@staticmethod
|
|
136
|
+
def isUnassignedTrace():
|
|
137
|
+
return False
|
|
138
|
+
|
|
139
|
+
@staticmethod
|
|
140
|
+
def isDeletedTrace():
|
|
141
|
+
return False
|
|
142
|
+
|
|
143
|
+
@staticmethod
|
|
144
|
+
def isUninitializedTrace():
|
|
145
|
+
return False
|
|
146
|
+
|
|
147
|
+
@staticmethod
|
|
148
|
+
def isInitTrace():
|
|
149
|
+
return False
|
|
150
|
+
|
|
151
|
+
@staticmethod
|
|
152
|
+
def isUnknownTrace():
|
|
153
|
+
return False
|
|
154
|
+
|
|
155
|
+
@staticmethod
|
|
156
|
+
def isAssignTraceVeryTrusted():
|
|
157
|
+
return False
|
|
158
|
+
|
|
159
|
+
@staticmethod
|
|
160
|
+
def isUnknownOrVeryTrustedTrace():
|
|
161
|
+
return False
|
|
162
|
+
|
|
163
|
+
@staticmethod
|
|
164
|
+
def isEscapeTrace():
|
|
165
|
+
return False
|
|
166
|
+
|
|
167
|
+
@staticmethod
|
|
168
|
+
def isTraceThatNeedsEscape():
|
|
169
|
+
return True
|
|
170
|
+
|
|
171
|
+
@staticmethod
|
|
172
|
+
def isMergeTrace():
|
|
173
|
+
return False
|
|
174
|
+
|
|
175
|
+
def mustHaveValue(self):
|
|
176
|
+
"""Will this definitely have a value.
|
|
177
|
+
|
|
178
|
+
Every trace has this overloaded.
|
|
179
|
+
"""
|
|
180
|
+
assert False, self
|
|
181
|
+
|
|
182
|
+
def mustNotHaveValue(self):
|
|
183
|
+
"""Will this definitely have a value.
|
|
184
|
+
|
|
185
|
+
Every trace has this overloaded.
|
|
186
|
+
"""
|
|
187
|
+
assert False, self
|
|
188
|
+
|
|
189
|
+
def getReplacementNode(self, usage):
|
|
190
|
+
# Virtual method, pylint: disable=no-self-use,unused-argument
|
|
191
|
+
|
|
192
|
+
return None
|
|
193
|
+
|
|
194
|
+
@staticmethod
|
|
195
|
+
def hasShapeListExact():
|
|
196
|
+
return False
|
|
197
|
+
|
|
198
|
+
@staticmethod
|
|
199
|
+
def hasShapeDictionaryExact():
|
|
200
|
+
return False
|
|
201
|
+
|
|
202
|
+
@staticmethod
|
|
203
|
+
def hasShapeStrExact():
|
|
204
|
+
return False
|
|
205
|
+
|
|
206
|
+
@staticmethod
|
|
207
|
+
def hasShapeUnicodeExact():
|
|
208
|
+
return False
|
|
209
|
+
|
|
210
|
+
@staticmethod
|
|
211
|
+
def hasShapeTupleExact():
|
|
212
|
+
return False
|
|
213
|
+
|
|
214
|
+
@staticmethod
|
|
215
|
+
def hasShapeBoolExact():
|
|
216
|
+
return False
|
|
217
|
+
|
|
218
|
+
@staticmethod
|
|
219
|
+
def getTruthValue():
|
|
220
|
+
return None
|
|
221
|
+
|
|
222
|
+
@staticmethod
|
|
223
|
+
def getComparisonValue():
|
|
224
|
+
return False, None
|
|
225
|
+
|
|
226
|
+
@staticmethod
|
|
227
|
+
def getAttributeNode():
|
|
228
|
+
"""Node to use for attribute lookups."""
|
|
229
|
+
return None
|
|
230
|
+
|
|
231
|
+
@staticmethod
|
|
232
|
+
def getAttributeNodeTrusted():
|
|
233
|
+
"""Node to use for attribute lookups, with increased trust.
|
|
234
|
+
|
|
235
|
+
Used with hard imports mainly.
|
|
236
|
+
"""
|
|
237
|
+
return None
|
|
238
|
+
|
|
239
|
+
@staticmethod
|
|
240
|
+
def getAttributeNodeVeryTrusted():
|
|
241
|
+
"""Node to use for attribute lookups, with highest trust.
|
|
242
|
+
|
|
243
|
+
Used for hard imports mainly.
|
|
244
|
+
"""
|
|
245
|
+
return None
|
|
246
|
+
|
|
247
|
+
@staticmethod
|
|
248
|
+
def getIterationSourceNode():
|
|
249
|
+
"""Node to use for iteration decisions."""
|
|
250
|
+
return None
|
|
251
|
+
|
|
252
|
+
@staticmethod
|
|
253
|
+
def getDictInValue(key):
|
|
254
|
+
"""Value to use for dict in decisions."""
|
|
255
|
+
|
|
256
|
+
# virtual method, pylint: disable=unused-argument
|
|
257
|
+
return None
|
|
258
|
+
|
|
259
|
+
@staticmethod
|
|
260
|
+
def inhibitsClassScopeForwardPropagation():
|
|
261
|
+
return True
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
class ValueTraceUnassignedBase(ValueTraceBase):
|
|
265
|
+
__slots__ = ()
|
|
266
|
+
|
|
267
|
+
@staticmethod
|
|
268
|
+
def isUnassignedTrace():
|
|
269
|
+
return True
|
|
270
|
+
|
|
271
|
+
@staticmethod
|
|
272
|
+
def getTypeShape():
|
|
273
|
+
return tshape_uninitialized
|
|
274
|
+
|
|
275
|
+
@staticmethod
|
|
276
|
+
def getReleaseEscape():
|
|
277
|
+
return ControlFlowDescriptionNoEscape
|
|
278
|
+
|
|
279
|
+
def compareValueTrace(self, other):
|
|
280
|
+
# We are unassigned, just need to know if the other one is, pylint: disable=no-self-use
|
|
281
|
+
return other.isUnassignedTrace()
|
|
282
|
+
|
|
283
|
+
@staticmethod
|
|
284
|
+
def mustHaveValue():
|
|
285
|
+
return False
|
|
286
|
+
|
|
287
|
+
@staticmethod
|
|
288
|
+
def mustNotHaveValue():
|
|
289
|
+
return True
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class ValueTraceUninitialized(ValueTraceUnassignedBase):
|
|
293
|
+
__slots__ = ()
|
|
294
|
+
|
|
295
|
+
def __init__(self, owner, previous):
|
|
296
|
+
ValueTraceUnassignedBase.__init__(self, owner=owner, previous=previous)
|
|
297
|
+
|
|
298
|
+
@staticmethod
|
|
299
|
+
def isUninitializedTrace():
|
|
300
|
+
return True
|
|
301
|
+
|
|
302
|
+
@staticmethod
|
|
303
|
+
def isTraceThatNeedsEscape():
|
|
304
|
+
return False
|
|
305
|
+
|
|
306
|
+
def inhibitsClassScopeForwardPropagation(self):
|
|
307
|
+
return False
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
class ValueTraceDeleted(ValueTraceUnassignedBase):
|
|
311
|
+
"""Trace caused by a deletion."""
|
|
312
|
+
|
|
313
|
+
__slots__ = ("del_node",)
|
|
314
|
+
|
|
315
|
+
def __init__(self, owner, previous, del_node):
|
|
316
|
+
ValueTraceUnassignedBase.__init__(self, owner=owner, previous=previous)
|
|
317
|
+
|
|
318
|
+
self.del_node = del_node
|
|
319
|
+
|
|
320
|
+
@staticmethod
|
|
321
|
+
def isDeletedTrace():
|
|
322
|
+
return True
|
|
323
|
+
|
|
324
|
+
def getDelNode(self):
|
|
325
|
+
return self.del_node
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
class ValueTraceInit(ValueTraceBase):
|
|
329
|
+
__slots__ = ()
|
|
330
|
+
|
|
331
|
+
def __init__(self, owner):
|
|
332
|
+
ValueTraceBase.__init__(self, owner=owner, previous=None)
|
|
333
|
+
|
|
334
|
+
@staticmethod
|
|
335
|
+
def getTypeShape():
|
|
336
|
+
return tshape_unknown
|
|
337
|
+
|
|
338
|
+
@staticmethod
|
|
339
|
+
def getReleaseEscape():
|
|
340
|
+
return ControlFlowDescriptionFullEscape
|
|
341
|
+
|
|
342
|
+
def compareValueTrace(self, other):
|
|
343
|
+
# We are initialized, just need to know if the other one is, pylint: disable=no-self-use
|
|
344
|
+
return other.isInitTrace()
|
|
345
|
+
|
|
346
|
+
@staticmethod
|
|
347
|
+
def isInitTrace():
|
|
348
|
+
return True
|
|
349
|
+
|
|
350
|
+
@staticmethod
|
|
351
|
+
def mustHaveValue():
|
|
352
|
+
return True
|
|
353
|
+
|
|
354
|
+
@staticmethod
|
|
355
|
+
def mustNotHaveValue():
|
|
356
|
+
return False
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
class ValueTraceInitStarArgs(ValueTraceInit):
|
|
360
|
+
@staticmethod
|
|
361
|
+
def getTypeShape():
|
|
362
|
+
return tshape_tuple
|
|
363
|
+
|
|
364
|
+
@staticmethod
|
|
365
|
+
def getReleaseEscape():
|
|
366
|
+
return ControlFlowDescriptionElementBasedEscape
|
|
367
|
+
|
|
368
|
+
@staticmethod
|
|
369
|
+
def hasShapeTupleExact():
|
|
370
|
+
return True
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
class ValueTraceInitStarDict(ValueTraceInit):
|
|
374
|
+
@staticmethod
|
|
375
|
+
def getTypeShape():
|
|
376
|
+
return tshape_dict
|
|
377
|
+
|
|
378
|
+
@staticmethod
|
|
379
|
+
def getReleaseEscape():
|
|
380
|
+
return ControlFlowDescriptionElementBasedEscape
|
|
381
|
+
|
|
382
|
+
@staticmethod
|
|
383
|
+
def hasShapeDictionaryExact():
|
|
384
|
+
return True
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
class ValueTraceUnknown(ValueTraceBase):
|
|
388
|
+
__slots__ = ()
|
|
389
|
+
|
|
390
|
+
@staticmethod
|
|
391
|
+
def getTypeShape():
|
|
392
|
+
return tshape_unknown
|
|
393
|
+
|
|
394
|
+
@staticmethod
|
|
395
|
+
def getReleaseEscape():
|
|
396
|
+
return ControlFlowDescriptionFullEscape
|
|
397
|
+
|
|
398
|
+
def addUsage(self):
|
|
399
|
+
self.usage_count += 1
|
|
400
|
+
|
|
401
|
+
if self.previous:
|
|
402
|
+
self.previous.addUsage()
|
|
403
|
+
|
|
404
|
+
def addMergeUsage(self):
|
|
405
|
+
self.usage_count += 1
|
|
406
|
+
self.merge_usage_count += 1
|
|
407
|
+
|
|
408
|
+
if self.previous:
|
|
409
|
+
self.previous.addMergeUsage()
|
|
410
|
+
|
|
411
|
+
def compareValueTrace(self, other):
|
|
412
|
+
# We are unknown, just need to know if the other one is, pylint: disable=no-self-use
|
|
413
|
+
return other.isUnknownTrace()
|
|
414
|
+
|
|
415
|
+
@staticmethod
|
|
416
|
+
def isUnknownTrace():
|
|
417
|
+
return True
|
|
418
|
+
|
|
419
|
+
@staticmethod
|
|
420
|
+
def isUnknownOrVeryTrustedTrace():
|
|
421
|
+
return True
|
|
422
|
+
|
|
423
|
+
@staticmethod
|
|
424
|
+
def isTraceThatNeedsEscape():
|
|
425
|
+
return False
|
|
426
|
+
|
|
427
|
+
@staticmethod
|
|
428
|
+
def mustHaveValue():
|
|
429
|
+
return False
|
|
430
|
+
|
|
431
|
+
@staticmethod
|
|
432
|
+
def mustNotHaveValue():
|
|
433
|
+
return False
|
|
434
|
+
|
|
435
|
+
def getAttributeNode(self):
|
|
436
|
+
# TODO: Differentiate unknown with not previous node from ones with for performance and
|
|
437
|
+
# clarity.
|
|
438
|
+
if self.previous is not None:
|
|
439
|
+
return self.previous.getAttributeNodeVeryTrusted()
|
|
440
|
+
|
|
441
|
+
def getAttributeNodeTrusted(self):
|
|
442
|
+
if self.previous is not None:
|
|
443
|
+
return self.previous.getAttributeNodeVeryTrusted()
|
|
444
|
+
|
|
445
|
+
def getAttributeNodeVeryTrusted(self):
|
|
446
|
+
if self.previous is not None:
|
|
447
|
+
return self.previous.getAttributeNodeVeryTrusted()
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
class ValueTraceEscaped(ValueTraceUnknown):
|
|
451
|
+
__slots__ = ()
|
|
452
|
+
|
|
453
|
+
def __init__(self, owner, previous):
|
|
454
|
+
if previous.isMergeTrace():
|
|
455
|
+
assert self not in previous.previous
|
|
456
|
+
|
|
457
|
+
ValueTraceUnknown.__init__(self, owner=owner, previous=previous)
|
|
458
|
+
|
|
459
|
+
def addUsage(self):
|
|
460
|
+
self.usage_count += 1
|
|
461
|
+
|
|
462
|
+
# The previous must be prevented from optimization if still used afterwards.
|
|
463
|
+
if self.usage_count <= 2:
|
|
464
|
+
self.previous.addNameUsage()
|
|
465
|
+
|
|
466
|
+
def addMergeUsage(self):
|
|
467
|
+
self.usage_count += 1
|
|
468
|
+
if self.usage_count <= 2:
|
|
469
|
+
self.previous.addNameUsage()
|
|
470
|
+
|
|
471
|
+
self.merge_usage_count += 1
|
|
472
|
+
if self.merge_usage_count <= 2:
|
|
473
|
+
self.previous.addMergeUsage()
|
|
474
|
+
|
|
475
|
+
def getTypeShape(self):
|
|
476
|
+
return self.previous.getTypeShape()
|
|
477
|
+
|
|
478
|
+
def mustHaveValue(self):
|
|
479
|
+
return self.previous.mustHaveValue()
|
|
480
|
+
|
|
481
|
+
def mustNotHaveValue(self):
|
|
482
|
+
return self.previous.mustNotHaveValue()
|
|
483
|
+
|
|
484
|
+
def getReplacementNode(self, usage):
|
|
485
|
+
return self.previous.getReplacementNode(usage)
|
|
486
|
+
|
|
487
|
+
@staticmethod
|
|
488
|
+
def isUnknownTrace():
|
|
489
|
+
return False
|
|
490
|
+
|
|
491
|
+
@staticmethod
|
|
492
|
+
def isUnknownOrVeryTrustedTrace():
|
|
493
|
+
return False
|
|
494
|
+
|
|
495
|
+
@staticmethod
|
|
496
|
+
def isEscapeTrace():
|
|
497
|
+
return True
|
|
498
|
+
|
|
499
|
+
@staticmethod
|
|
500
|
+
def isTraceThatNeedsEscape():
|
|
501
|
+
return False
|
|
502
|
+
|
|
503
|
+
def getAttributeNode(self):
|
|
504
|
+
return self.previous.getAttributeNodeTrusted()
|
|
505
|
+
|
|
506
|
+
def getAttributeNodeTrusted(self):
|
|
507
|
+
return self.previous.getAttributeNodeTrusted()
|
|
508
|
+
|
|
509
|
+
def getAttributeNodeVeryTrusted(self):
|
|
510
|
+
return self.previous.getAttributeNodeVeryTrusted()
|
|
511
|
+
|
|
512
|
+
# For escaped values, these do not have to forget their shape, the mutable ones
|
|
513
|
+
# and the only ones affected.
|
|
514
|
+
def hasShapeListExact(self):
|
|
515
|
+
trusted_node = self.previous.getAttributeNodeTrusted()
|
|
516
|
+
return trusted_node is not None and trusted_node.hasShapeListExact()
|
|
517
|
+
|
|
518
|
+
def hasShapeDictionaryExact(self):
|
|
519
|
+
trusted_node = self.previous.getAttributeNodeTrusted()
|
|
520
|
+
return trusted_node is not None and trusted_node.hasShapeDictionaryExact()
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
class ValueTraceAssign(ValueTraceBase):
|
|
524
|
+
__slots__ = ("assign_node",)
|
|
525
|
+
|
|
526
|
+
def __init__(self, owner, assign_node, previous):
|
|
527
|
+
ValueTraceBase.__init__(self, owner=owner, previous=previous)
|
|
528
|
+
|
|
529
|
+
self.assign_node = assign_node
|
|
530
|
+
|
|
531
|
+
def __repr__(self):
|
|
532
|
+
return "<%s at %s of %s>" % (
|
|
533
|
+
self.__class__.__name__,
|
|
534
|
+
self.assign_node.getSourceReference().getAsString(),
|
|
535
|
+
self.assign_node.subnode_source,
|
|
536
|
+
)
|
|
537
|
+
|
|
538
|
+
@staticmethod
|
|
539
|
+
def isAssignTrace():
|
|
540
|
+
return True
|
|
541
|
+
|
|
542
|
+
def compareValueTrace(self, other):
|
|
543
|
+
return other.isAssignTrace() and self.assign_node is other.assign_node
|
|
544
|
+
|
|
545
|
+
@staticmethod
|
|
546
|
+
def mustHaveValue():
|
|
547
|
+
return True
|
|
548
|
+
|
|
549
|
+
@staticmethod
|
|
550
|
+
def mustNotHaveValue():
|
|
551
|
+
return False
|
|
552
|
+
|
|
553
|
+
def getTypeShape(self):
|
|
554
|
+
return self.assign_node.getTypeShape()
|
|
555
|
+
|
|
556
|
+
def getReleaseEscape(self):
|
|
557
|
+
return self.assign_node.getReleaseEscape()
|
|
558
|
+
|
|
559
|
+
def getAssignNode(self):
|
|
560
|
+
return self.assign_node
|
|
561
|
+
|
|
562
|
+
def hasShapeListExact(self):
|
|
563
|
+
return self.assign_node.subnode_source.hasShapeListExact()
|
|
564
|
+
|
|
565
|
+
def hasShapeDictionaryExact(self):
|
|
566
|
+
return self.assign_node.subnode_source.hasShapeDictionaryExact()
|
|
567
|
+
|
|
568
|
+
def hasShapeStrExact(self):
|
|
569
|
+
return self.assign_node.subnode_source.hasShapeStrExact()
|
|
570
|
+
|
|
571
|
+
def hasShapeUnicodeExact(self):
|
|
572
|
+
return self.assign_node.subnode_source.hasShapeUnicodeExact()
|
|
573
|
+
|
|
574
|
+
def hasShapeBoolExact(self):
|
|
575
|
+
return self.assign_node.subnode_source.hasShapeBoolExact()
|
|
576
|
+
|
|
577
|
+
def getTruthValue(self):
|
|
578
|
+
return self.assign_node.subnode_source.getTruthValue()
|
|
579
|
+
|
|
580
|
+
def getComparisonValue(self):
|
|
581
|
+
return self.assign_node.subnode_source.getComparisonValue()
|
|
582
|
+
|
|
583
|
+
def getAttributeNode(self):
|
|
584
|
+
return self.assign_node.subnode_source
|
|
585
|
+
|
|
586
|
+
def getAttributeNodeTrusted(self):
|
|
587
|
+
source_node = self.assign_node.subnode_source
|
|
588
|
+
|
|
589
|
+
if source_node.hasShapeTrustedAttributes():
|
|
590
|
+
return source_node
|
|
591
|
+
else:
|
|
592
|
+
return None
|
|
593
|
+
|
|
594
|
+
def getAttributeNodeVeryTrusted(self):
|
|
595
|
+
# Hard imports typically.
|
|
596
|
+
if self.assign_node.hasVeryTrustedValue():
|
|
597
|
+
return self.assign_node.subnode_source
|
|
598
|
+
else:
|
|
599
|
+
return None
|
|
600
|
+
|
|
601
|
+
def getIterationSourceNode(self):
|
|
602
|
+
return self.assign_node.subnode_source
|
|
603
|
+
|
|
604
|
+
def getDictInValue(self, key):
|
|
605
|
+
"""Value to use for dict in decisions."""
|
|
606
|
+
return self.assign_node.subnode_source.getExpressionDictInConstant(key)
|
|
607
|
+
|
|
608
|
+
def inhibitsClassScopeForwardPropagation(self):
|
|
609
|
+
return self.assign_node.subnode_source.mayHaveSideEffects()
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
class ValueTraceAssignUnescapable(ValueTraceAssign):
|
|
613
|
+
@staticmethod
|
|
614
|
+
def isTraceThatNeedsEscape():
|
|
615
|
+
return False
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
class ValueTraceAssignVeryTrusted(ValueTraceAssignUnescapable):
|
|
619
|
+
@staticmethod
|
|
620
|
+
def isAssignTraceVeryTrusted():
|
|
621
|
+
return True
|
|
622
|
+
|
|
623
|
+
@staticmethod
|
|
624
|
+
def isUnknownOrVeryTrustedTrace():
|
|
625
|
+
return True
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
class ValueTraceAssignUnescapablePropagated(ValueTraceAssignUnescapable):
|
|
629
|
+
"""Assignment from value where it is not that escaping doesn't matter."""
|
|
630
|
+
|
|
631
|
+
__slots__ = ("replacement",)
|
|
632
|
+
|
|
633
|
+
def __init__(self, owner, assign_node, previous, replacement):
|
|
634
|
+
ValueTraceAssignUnescapable.__init__(
|
|
635
|
+
self, owner=owner, assign_node=assign_node, previous=previous
|
|
636
|
+
)
|
|
637
|
+
|
|
638
|
+
self.replacement = replacement
|
|
639
|
+
|
|
640
|
+
def getReplacementNode(self, usage):
|
|
641
|
+
return self.replacement(usage)
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
class ValueTraceMergeBase(ValueTraceBase):
|
|
645
|
+
"""Merge of two or more traces or start of loops."""
|
|
646
|
+
|
|
647
|
+
__slots__ = ()
|
|
648
|
+
|
|
649
|
+
def addNameUsage(self):
|
|
650
|
+
self.usage_count += 1
|
|
651
|
+
self.name_usage_count += 1
|
|
652
|
+
|
|
653
|
+
if self.name_usage_count <= 2 and self.previous is not None:
|
|
654
|
+
for previous in self.previous:
|
|
655
|
+
previous.addNameUsage()
|
|
656
|
+
|
|
657
|
+
def addUsage(self):
|
|
658
|
+
self.usage_count += 1
|
|
659
|
+
|
|
660
|
+
# Only do it once.
|
|
661
|
+
if self.usage_count == 1:
|
|
662
|
+
for trace in self.previous:
|
|
663
|
+
trace.addMergeUsage()
|
|
664
|
+
|
|
665
|
+
def addMergeUsage(self):
|
|
666
|
+
self.addUsage()
|
|
667
|
+
self.merge_usage_count += 1
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
class ValueTraceMerge(ValueTraceMergeBase):
|
|
671
|
+
"""Merge of two or more traces.
|
|
672
|
+
|
|
673
|
+
Happens at the end of conditional blocks. This is "phi" in
|
|
674
|
+
SSA theory. Also used for merging multiple "return", "break" or
|
|
675
|
+
"continue" exits.
|
|
676
|
+
"""
|
|
677
|
+
|
|
678
|
+
__slots__ = ()
|
|
679
|
+
|
|
680
|
+
def __init__(self, traces):
|
|
681
|
+
shorted = []
|
|
682
|
+
|
|
683
|
+
for trace in traces:
|
|
684
|
+
if type(trace) is ValueTraceMerge:
|
|
685
|
+
for trace2 in trace.previous:
|
|
686
|
+
if trace2 not in shorted:
|
|
687
|
+
shorted.append(trace2)
|
|
688
|
+
else:
|
|
689
|
+
if trace not in shorted:
|
|
690
|
+
shorted.append(trace)
|
|
691
|
+
|
|
692
|
+
traces = tuple(shorted)
|
|
693
|
+
|
|
694
|
+
assert len(traces) > 1
|
|
695
|
+
|
|
696
|
+
# assert len(set(traces)) == len(traces), [(v) for v in traces]
|
|
697
|
+
|
|
698
|
+
ValueTraceMergeBase.__init__(self, owner=traces[0].owner, previous=traces)
|
|
699
|
+
|
|
700
|
+
def __repr__(self):
|
|
701
|
+
return "<ValueTraceMerge of {previous}>".format(previous=self.previous)
|
|
702
|
+
|
|
703
|
+
def getTypeShape(self):
|
|
704
|
+
type_shape_found = None
|
|
705
|
+
|
|
706
|
+
for trace in self.previous:
|
|
707
|
+
type_shape = trace.getTypeShape()
|
|
708
|
+
|
|
709
|
+
if type_shape is tshape_unknown:
|
|
710
|
+
return tshape_unknown
|
|
711
|
+
|
|
712
|
+
if type_shape_found is None:
|
|
713
|
+
type_shape_found = type_shape
|
|
714
|
+
elif type_shape is not type_shape_found:
|
|
715
|
+
# TODO: Find the lowest common denominator.
|
|
716
|
+
return tshape_unknown
|
|
717
|
+
|
|
718
|
+
return type_shape_found
|
|
719
|
+
|
|
720
|
+
def getReleaseEscape(self):
|
|
721
|
+
release_escape_found = None
|
|
722
|
+
|
|
723
|
+
for trace in self.previous:
|
|
724
|
+
release_escape = trace.getReleaseEscape()
|
|
725
|
+
|
|
726
|
+
if release_escape is ControlFlowDescriptionFullEscape:
|
|
727
|
+
return ControlFlowDescriptionFullEscape
|
|
728
|
+
|
|
729
|
+
if release_escape_found is None:
|
|
730
|
+
release_escape_found = release_escape
|
|
731
|
+
elif release_escape is not release_escape_found:
|
|
732
|
+
# TODO: Find the lowest common denominator.
|
|
733
|
+
return ControlFlowDescriptionFullEscape
|
|
734
|
+
|
|
735
|
+
return release_escape_found
|
|
736
|
+
|
|
737
|
+
@staticmethod
|
|
738
|
+
def isMergeTrace():
|
|
739
|
+
return True
|
|
740
|
+
|
|
741
|
+
def compareValueTrace(self, other):
|
|
742
|
+
if not other.isMergeTrace():
|
|
743
|
+
return False
|
|
744
|
+
|
|
745
|
+
if len(self.previous) != len(other.previous):
|
|
746
|
+
return False
|
|
747
|
+
|
|
748
|
+
for a, b in zip(self.previous, other.previous):
|
|
749
|
+
if not a.compareValueTrace(b):
|
|
750
|
+
return False
|
|
751
|
+
|
|
752
|
+
return True
|
|
753
|
+
|
|
754
|
+
def mustHaveValue(self):
|
|
755
|
+
for previous in self.previous:
|
|
756
|
+
if not previous.isInitTrace() and not previous.isAssignTrace():
|
|
757
|
+
return False
|
|
758
|
+
|
|
759
|
+
return True
|
|
760
|
+
|
|
761
|
+
def mustNotHaveValue(self):
|
|
762
|
+
for previous in self.previous:
|
|
763
|
+
if not previous.mustNotHaveValue():
|
|
764
|
+
return False
|
|
765
|
+
|
|
766
|
+
return True
|
|
767
|
+
|
|
768
|
+
def hasShapeListExact(self):
|
|
769
|
+
return all(previous.hasShapeListExact() for previous in self.previous)
|
|
770
|
+
|
|
771
|
+
def hasShapeDictionaryExact(self):
|
|
772
|
+
return all(previous.hasShapeDictionaryExact() for previous in self.previous)
|
|
773
|
+
|
|
774
|
+
def getTruthValue(self):
|
|
775
|
+
any_false = False
|
|
776
|
+
any_true = False
|
|
777
|
+
|
|
778
|
+
for previous in self.previous:
|
|
779
|
+
truth_value = previous.getTruthValue()
|
|
780
|
+
|
|
781
|
+
# One unknown kills it.
|
|
782
|
+
if truth_value is None:
|
|
783
|
+
return None
|
|
784
|
+
elif truth_value is True:
|
|
785
|
+
# True and false values resembled unknown.
|
|
786
|
+
if any_false:
|
|
787
|
+
return None
|
|
788
|
+
any_true = True
|
|
789
|
+
else:
|
|
790
|
+
# True and false values resembled unknown.
|
|
791
|
+
if any_true:
|
|
792
|
+
return None
|
|
793
|
+
any_false = True
|
|
794
|
+
|
|
795
|
+
# Now all agreed and were not unknown, so we can conclude all false or all true.
|
|
796
|
+
return any_true
|
|
797
|
+
|
|
798
|
+
def getComparisonValue(self):
|
|
799
|
+
# TODO: Support multiple values as candidates, e.g. both 1, 3 could be compared to 2, for
|
|
800
|
+
# now we are delaying that.
|
|
801
|
+
return False, None
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
class ValueTraceLoopBase(ValueTraceMergeBase):
|
|
805
|
+
__slots__ = ("loop_node", "type_shapes", "type_shape", "recursion")
|
|
806
|
+
|
|
807
|
+
def __init__(self, loop_node, previous, type_shapes):
|
|
808
|
+
# Note: That previous is being added to later.
|
|
809
|
+
ValueTraceMergeBase.__init__(self, owner=previous.owner, previous=(previous,))
|
|
810
|
+
|
|
811
|
+
self.loop_node = loop_node
|
|
812
|
+
self.type_shapes = type_shapes
|
|
813
|
+
self.type_shape = None
|
|
814
|
+
|
|
815
|
+
self.recursion = False
|
|
816
|
+
|
|
817
|
+
def __repr__(self):
|
|
818
|
+
return "<%s shapes %s of %s>" % (
|
|
819
|
+
self.__class__.__name__,
|
|
820
|
+
self.type_shapes,
|
|
821
|
+
self.owner.getCodeName(),
|
|
822
|
+
)
|
|
823
|
+
|
|
824
|
+
@staticmethod
|
|
825
|
+
def isLoopTrace():
|
|
826
|
+
return True
|
|
827
|
+
|
|
828
|
+
def getTypeShape(self):
|
|
829
|
+
if self.type_shape is None:
|
|
830
|
+
if len(self.type_shapes) > 1:
|
|
831
|
+
self.type_shape = ShapeLoopCompleteAlternative(self.type_shapes)
|
|
832
|
+
else:
|
|
833
|
+
self.type_shape = next(iter(self.type_shapes))
|
|
834
|
+
|
|
835
|
+
return self.type_shape
|
|
836
|
+
|
|
837
|
+
def addLoopContinueTraces(self, continue_traces):
|
|
838
|
+
self.previous += tuple(continue_traces)
|
|
839
|
+
|
|
840
|
+
for previous in continue_traces:
|
|
841
|
+
previous.addMergeUsage()
|
|
842
|
+
|
|
843
|
+
def mustHaveValue(self):
|
|
844
|
+
# To handle recursion, we lie to ourselves.
|
|
845
|
+
if self.recursion:
|
|
846
|
+
return True
|
|
847
|
+
|
|
848
|
+
self.recursion = True
|
|
849
|
+
|
|
850
|
+
for previous in self.previous:
|
|
851
|
+
if not previous.mustHaveValue():
|
|
852
|
+
self.recursion = False
|
|
853
|
+
return False
|
|
854
|
+
|
|
855
|
+
self.recursion = False
|
|
856
|
+
return True
|
|
857
|
+
|
|
858
|
+
def hasShapeListExact(self):
|
|
859
|
+
return self.type_shapes == _only_list_shape
|
|
860
|
+
|
|
861
|
+
def hasShapeDictionaryExact(self):
|
|
862
|
+
return self.type_shapes == _only_dict_shape
|
|
863
|
+
|
|
864
|
+
def hasShapeStrExact(self):
|
|
865
|
+
return self.type_shapes == _only_str_shape
|
|
866
|
+
|
|
867
|
+
def hasShapeUnicodeExact(self):
|
|
868
|
+
return self.type_shapes == _only_unicode_shape
|
|
869
|
+
|
|
870
|
+
if str is bytes:
|
|
871
|
+
|
|
872
|
+
def hasShapeStrOrUnicodeExact(self):
|
|
873
|
+
return (
|
|
874
|
+
self.hasShapeStrExact()
|
|
875
|
+
or self.hasShapeUnicodeExact()
|
|
876
|
+
or self.type_shapes == _str_plus_unicode_shape
|
|
877
|
+
)
|
|
878
|
+
|
|
879
|
+
else:
|
|
880
|
+
|
|
881
|
+
hasShapeStrOrUnicodeExact = hasShapeUnicodeExact
|
|
882
|
+
|
|
883
|
+
def hasShapeBytesExact(self):
|
|
884
|
+
return self.type_shapes == _only_bytes_shape
|
|
885
|
+
|
|
886
|
+
def hasShapeBoolExact(self):
|
|
887
|
+
return self.type_shapes == _only_bool_shape
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
_only_list_shape = frozenset((tshape_list,))
|
|
891
|
+
_only_dict_shape = frozenset((tshape_dict,))
|
|
892
|
+
_only_str_shape = frozenset((tshape_str,))
|
|
893
|
+
_only_unicode_shape = frozenset((tshape_unicode,))
|
|
894
|
+
_str_plus_unicode_shape = frozenset((tshape_unicode, tshape_str))
|
|
895
|
+
_only_bytes_shape = frozenset((tshape_bytes,))
|
|
896
|
+
_only_bool_shape = frozenset((tshape_bool,))
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
class ValueTraceLoopComplete(ValueTraceLoopBase):
|
|
900
|
+
__slots__ = ()
|
|
901
|
+
|
|
902
|
+
@staticmethod
|
|
903
|
+
def getReleaseEscape():
|
|
904
|
+
# TODO: May consider the shapes for better result
|
|
905
|
+
return ControlFlowDescriptionFullEscape
|
|
906
|
+
|
|
907
|
+
def compareValueTrace(self, other):
|
|
908
|
+
# Incomplete loop value traces behave the same.
|
|
909
|
+
return (
|
|
910
|
+
self.__class__ is other.__class__
|
|
911
|
+
and self.loop_node == other.loop_node
|
|
912
|
+
and self.type_shapes == other.type_shapes
|
|
913
|
+
)
|
|
914
|
+
|
|
915
|
+
# TODO: These could be better
|
|
916
|
+
@staticmethod
|
|
917
|
+
def mustHaveValue():
|
|
918
|
+
return False
|
|
919
|
+
|
|
920
|
+
@staticmethod
|
|
921
|
+
def mustNotHaveValue():
|
|
922
|
+
return False
|
|
923
|
+
|
|
924
|
+
@staticmethod
|
|
925
|
+
def getTruthValue():
|
|
926
|
+
return None
|
|
927
|
+
|
|
928
|
+
@staticmethod
|
|
929
|
+
def getComparisonValue():
|
|
930
|
+
return False, None
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
class ValueTraceLoopIncomplete(ValueTraceLoopBase):
|
|
934
|
+
__slots__ = ()
|
|
935
|
+
|
|
936
|
+
def getTypeShape(self):
|
|
937
|
+
if self.type_shape is None:
|
|
938
|
+
self.type_shape = ShapeLoopInitialAlternative(self.type_shapes)
|
|
939
|
+
|
|
940
|
+
return self.type_shape
|
|
941
|
+
|
|
942
|
+
@staticmethod
|
|
943
|
+
def getReleaseEscape():
|
|
944
|
+
return ControlFlowDescriptionFullEscape
|
|
945
|
+
|
|
946
|
+
def compareValueTrace(self, other):
|
|
947
|
+
# Incomplete loop value traces behave the same.
|
|
948
|
+
return self.__class__ is other.__class__ and self.loop_node == other.loop_node
|
|
949
|
+
|
|
950
|
+
@staticmethod
|
|
951
|
+
def mustHaveValue():
|
|
952
|
+
return False
|
|
953
|
+
|
|
954
|
+
@staticmethod
|
|
955
|
+
def mustNotHaveValue():
|
|
956
|
+
return False
|
|
957
|
+
|
|
958
|
+
@staticmethod
|
|
959
|
+
def getTruthValue():
|
|
960
|
+
return None
|
|
961
|
+
|
|
962
|
+
@staticmethod
|
|
963
|
+
def getComparisonValue():
|
|
964
|
+
return False, None
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
968
|
+
# integrates with CPython, but also works on its own.
|
|
969
|
+
#
|
|
970
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
971
|
+
# you may not use this file except in compliance with the License.
|
|
972
|
+
# You may obtain a copy of the License at
|
|
973
|
+
#
|
|
974
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
975
|
+
#
|
|
976
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
977
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
978
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
979
|
+
# See the License for the specific language governing permissions and
|
|
980
|
+
# limitations under the License.
|