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,890 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Node base classes.
|
|
5
|
+
|
|
6
|
+
These classes provide the generic base classes available for nodes,
|
|
7
|
+
statements or expressions alike. There is a dedicated module for
|
|
8
|
+
expression only stuff.
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
# from abc import abstractmethod
|
|
13
|
+
|
|
14
|
+
import ast
|
|
15
|
+
from abc import abstractmethod
|
|
16
|
+
|
|
17
|
+
from nuitka import Options, Tracing, TreeXML
|
|
18
|
+
from nuitka.__past__ import iterItems
|
|
19
|
+
from nuitka.Errors import NuitkaNodeError
|
|
20
|
+
from nuitka.PythonVersions import python_version
|
|
21
|
+
from nuitka.SourceCodeReferences import SourceCodeReference
|
|
22
|
+
from nuitka.utils.CStrings import encodePythonIdentifierToC
|
|
23
|
+
from nuitka.utils.InstanceCounters import (
|
|
24
|
+
counted_del,
|
|
25
|
+
counted_init,
|
|
26
|
+
isCountingInstances,
|
|
27
|
+
)
|
|
28
|
+
from nuitka.Variables import TempVariable
|
|
29
|
+
|
|
30
|
+
from .FutureSpecs import fromFlags
|
|
31
|
+
from .NodeMakingHelpers import makeStatementOnlyNodesFromExpressions
|
|
32
|
+
from .NodeMetaClasses import NodeCheckMetaClass, NodeMetaClassBase
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class NodeBase(NodeMetaClassBase):
|
|
36
|
+
__slots__ = "parent", "source_ref"
|
|
37
|
+
|
|
38
|
+
# This can trigger if this is included to early.
|
|
39
|
+
assert Options.is_full_compat is not None
|
|
40
|
+
|
|
41
|
+
# Avoid the attribute unless it's really necessary.
|
|
42
|
+
if Options.is_full_compat:
|
|
43
|
+
__slots__ += ("effective_source_ref",)
|
|
44
|
+
|
|
45
|
+
# String to identify the node class, to be consistent with its name.
|
|
46
|
+
kind = None
|
|
47
|
+
|
|
48
|
+
@counted_init
|
|
49
|
+
def __init__(self, source_ref):
|
|
50
|
+
# The base class has no __init__ worth calling.
|
|
51
|
+
|
|
52
|
+
# Check source reference to meet basic standards, so we note errors
|
|
53
|
+
# when they occur.
|
|
54
|
+
assert source_ref is not None
|
|
55
|
+
assert source_ref.line is not None
|
|
56
|
+
|
|
57
|
+
self.parent = None
|
|
58
|
+
|
|
59
|
+
self.source_ref = source_ref
|
|
60
|
+
|
|
61
|
+
if isCountingInstances():
|
|
62
|
+
__del__ = counted_del()
|
|
63
|
+
|
|
64
|
+
@abstractmethod
|
|
65
|
+
def finalize(self):
|
|
66
|
+
pass
|
|
67
|
+
|
|
68
|
+
def __repr__(self):
|
|
69
|
+
return "<Node %s>" % (self.getDescription())
|
|
70
|
+
|
|
71
|
+
def getDescription(self):
|
|
72
|
+
"""Description of the node, intended for use in __repr__ and
|
|
73
|
+
graphical display.
|
|
74
|
+
|
|
75
|
+
"""
|
|
76
|
+
details = self.getDetailsForDisplay()
|
|
77
|
+
|
|
78
|
+
if details:
|
|
79
|
+
return "'%s' with %s" % (self.kind, details)
|
|
80
|
+
else:
|
|
81
|
+
return "'%s'" % self.kind
|
|
82
|
+
|
|
83
|
+
def getDetails(self):
|
|
84
|
+
"""Details of the node, intended for re-creation.
|
|
85
|
+
|
|
86
|
+
We are not using the pickle mechanisms, but this is basically
|
|
87
|
+
part of what the constructor call needs. Real children will
|
|
88
|
+
also be added.
|
|
89
|
+
|
|
90
|
+
"""
|
|
91
|
+
# Virtual method, pylint: disable=no-self-use
|
|
92
|
+
return {}
|
|
93
|
+
|
|
94
|
+
def getDetailsForDisplay(self):
|
|
95
|
+
"""Details of the node, intended for use in __repr__ and dumps.
|
|
96
|
+
|
|
97
|
+
This is also used for XML.
|
|
98
|
+
"""
|
|
99
|
+
return self.getDetails()
|
|
100
|
+
|
|
101
|
+
def getCloneArgs(self):
|
|
102
|
+
return self.getDetails()
|
|
103
|
+
|
|
104
|
+
def makeClone(self):
|
|
105
|
+
try:
|
|
106
|
+
# Using star dictionary arguments here for generic use.
|
|
107
|
+
result = self.__class__(source_ref=self.source_ref, **self.getCloneArgs())
|
|
108
|
+
except TypeError as e:
|
|
109
|
+
raise NuitkaNodeError("Problem cloning node", self, e)
|
|
110
|
+
|
|
111
|
+
effective_source_ref = self.getCompatibleSourceReference()
|
|
112
|
+
|
|
113
|
+
if effective_source_ref is not self.source_ref:
|
|
114
|
+
result.setCompatibleSourceReference(effective_source_ref)
|
|
115
|
+
|
|
116
|
+
return result
|
|
117
|
+
|
|
118
|
+
def makeCloneShallow(self):
|
|
119
|
+
args = self.getDetails()
|
|
120
|
+
args.update(self.getVisitableNodesNamed())
|
|
121
|
+
|
|
122
|
+
try:
|
|
123
|
+
# Using star dictionary arguments here for generic use.
|
|
124
|
+
result = self.__class__(source_ref=self.source_ref, **args)
|
|
125
|
+
except TypeError as e:
|
|
126
|
+
raise NuitkaNodeError("Problem cloning node", self, e)
|
|
127
|
+
|
|
128
|
+
effective_source_ref = self.getCompatibleSourceReference()
|
|
129
|
+
|
|
130
|
+
if effective_source_ref is not self.source_ref:
|
|
131
|
+
result.setCompatibleSourceReference(effective_source_ref)
|
|
132
|
+
|
|
133
|
+
return result
|
|
134
|
+
|
|
135
|
+
def getParent(self):
|
|
136
|
+
"""Parent of the node. Every node except modules has to have a parent."""
|
|
137
|
+
|
|
138
|
+
if self.parent is None and not self.isCompiledPythonModule():
|
|
139
|
+
assert False, (self, self.source_ref)
|
|
140
|
+
|
|
141
|
+
return self.parent
|
|
142
|
+
|
|
143
|
+
def getChildName(self):
|
|
144
|
+
"""Return the role in the current parent, subject to changes."""
|
|
145
|
+
parent = self.getParent()
|
|
146
|
+
|
|
147
|
+
for key, value in parent.getVisitableNodesNamed():
|
|
148
|
+
if self is value:
|
|
149
|
+
return key
|
|
150
|
+
|
|
151
|
+
if type(value) is tuple:
|
|
152
|
+
if self in value:
|
|
153
|
+
return key, value.index(self)
|
|
154
|
+
|
|
155
|
+
return None
|
|
156
|
+
|
|
157
|
+
def getChildNameNice(self):
|
|
158
|
+
child_name = self.getChildName()
|
|
159
|
+
|
|
160
|
+
if hasattr(self.parent, "nice_children_dict"):
|
|
161
|
+
return self.parent.nice_children_dict[child_name]
|
|
162
|
+
else:
|
|
163
|
+
return child_name
|
|
164
|
+
|
|
165
|
+
def getParentFunction(self):
|
|
166
|
+
"""Return the parent that is a function."""
|
|
167
|
+
|
|
168
|
+
parent = self.getParent()
|
|
169
|
+
|
|
170
|
+
while parent is not None and not parent.isExpressionFunctionBodyBase():
|
|
171
|
+
parent = parent.getParent()
|
|
172
|
+
|
|
173
|
+
return parent
|
|
174
|
+
|
|
175
|
+
def getParentModule(self):
|
|
176
|
+
"""Return the parent that is module."""
|
|
177
|
+
parent = self
|
|
178
|
+
|
|
179
|
+
while not parent.isCompiledPythonModule():
|
|
180
|
+
if hasattr(parent, "provider"):
|
|
181
|
+
# After we checked, we can use it, will be much faster route
|
|
182
|
+
# to take.
|
|
183
|
+
parent = parent.provider
|
|
184
|
+
else:
|
|
185
|
+
parent = parent.getParent()
|
|
186
|
+
|
|
187
|
+
return parent
|
|
188
|
+
|
|
189
|
+
def getContainingLoopNode(self):
|
|
190
|
+
"""Return the parent that is module."""
|
|
191
|
+
parent = self.parent
|
|
192
|
+
|
|
193
|
+
while parent is not None and not parent.isExpressionFunctionBodyBase():
|
|
194
|
+
|
|
195
|
+
if parent.isStatementLoop():
|
|
196
|
+
return parent
|
|
197
|
+
|
|
198
|
+
parent = parent.getParent()
|
|
199
|
+
|
|
200
|
+
return parent
|
|
201
|
+
|
|
202
|
+
def isParentVariableProvider(self):
|
|
203
|
+
# Check if it's a closure giver, in which cases it can provide variables,
|
|
204
|
+
return isinstance(self, ClosureGiverNodeMixin)
|
|
205
|
+
|
|
206
|
+
def getParentVariableProvider(self):
|
|
207
|
+
parent = self.getParent()
|
|
208
|
+
|
|
209
|
+
while not parent.isParentVariableProvider():
|
|
210
|
+
parent = parent.getParent()
|
|
211
|
+
|
|
212
|
+
return parent
|
|
213
|
+
|
|
214
|
+
def getParentReturnConsumer(self):
|
|
215
|
+
parent = self.getParent()
|
|
216
|
+
|
|
217
|
+
while (
|
|
218
|
+
not parent.isParentVariableProvider()
|
|
219
|
+
and not parent.isExpressionOutlineBody()
|
|
220
|
+
):
|
|
221
|
+
parent = parent.getParent()
|
|
222
|
+
|
|
223
|
+
return parent
|
|
224
|
+
|
|
225
|
+
def getParentStatementsFrame(self):
|
|
226
|
+
current = self.getParent()
|
|
227
|
+
|
|
228
|
+
while True:
|
|
229
|
+
if current.isStatementsFrame():
|
|
230
|
+
return current
|
|
231
|
+
|
|
232
|
+
if current.isParentVariableProvider():
|
|
233
|
+
return None
|
|
234
|
+
|
|
235
|
+
if current.isExpressionOutlineBody():
|
|
236
|
+
return None
|
|
237
|
+
|
|
238
|
+
current = current.getParent()
|
|
239
|
+
|
|
240
|
+
def getSourceReference(self):
|
|
241
|
+
return self.source_ref
|
|
242
|
+
|
|
243
|
+
def setCompatibleSourceReference(self, source_ref):
|
|
244
|
+
"""Bug compatible line numbers information.
|
|
245
|
+
|
|
246
|
+
As CPython outputs the last bit of bytecode executed, and not the
|
|
247
|
+
line of the operation. For example calls, output the line of the
|
|
248
|
+
last argument, as opposed to the line of the operation start.
|
|
249
|
+
|
|
250
|
+
For tests, we wants to be compatible. In improved more, we are
|
|
251
|
+
not being fully compatible, and just drop it altogether.
|
|
252
|
+
"""
|
|
253
|
+
|
|
254
|
+
# Getting the same source reference can be dealt with quickly, so do
|
|
255
|
+
# this first.
|
|
256
|
+
if (
|
|
257
|
+
self.source_ref is not source_ref
|
|
258
|
+
and Options.is_full_compat
|
|
259
|
+
and self.source_ref != source_ref
|
|
260
|
+
):
|
|
261
|
+
# An attribute outside of "__init__", so we save one memory for the
|
|
262
|
+
# most cases. Very few cases involve splitting across lines.
|
|
263
|
+
# false alarm for non-slot:
|
|
264
|
+
# pylint: disable=I0021,assigning-non-slot,attribute-defined-outside-init
|
|
265
|
+
self.effective_source_ref = source_ref
|
|
266
|
+
|
|
267
|
+
def getCompatibleSourceReference(self):
|
|
268
|
+
"""Bug compatible line numbers information.
|
|
269
|
+
|
|
270
|
+
See above.
|
|
271
|
+
"""
|
|
272
|
+
return getattr(self, "effective_source_ref", self.source_ref)
|
|
273
|
+
|
|
274
|
+
def asXml(self):
|
|
275
|
+
line = self.source_ref.getLineNumber()
|
|
276
|
+
|
|
277
|
+
result = TreeXML.Element("node", kind=self.__class__.__name__, line=str(line))
|
|
278
|
+
|
|
279
|
+
compat_line = self.getCompatibleSourceReference().getLineNumber()
|
|
280
|
+
|
|
281
|
+
if compat_line != line:
|
|
282
|
+
result.attrib["compat_line"] = str(compat_line)
|
|
283
|
+
|
|
284
|
+
for key, value in iterItems(self.getDetailsForDisplay()):
|
|
285
|
+
result.set(key, str(value))
|
|
286
|
+
|
|
287
|
+
for name, children in self.getVisitableNodesNamed():
|
|
288
|
+
role = TreeXML.Element("role", name=name)
|
|
289
|
+
|
|
290
|
+
result.append(role)
|
|
291
|
+
|
|
292
|
+
if children is None:
|
|
293
|
+
role.attrib["type"] = "none"
|
|
294
|
+
elif type(children) not in (list, tuple):
|
|
295
|
+
role.append(children.asXml())
|
|
296
|
+
else:
|
|
297
|
+
role.attrib["type"] = "list"
|
|
298
|
+
|
|
299
|
+
for child in children:
|
|
300
|
+
role.append(child.asXml())
|
|
301
|
+
|
|
302
|
+
return result
|
|
303
|
+
|
|
304
|
+
@classmethod
|
|
305
|
+
def fromXML(cls, provider, source_ref, **args):
|
|
306
|
+
# Only some things need a provider, pylint: disable=unused-argument
|
|
307
|
+
return cls(source_ref=source_ref, **args)
|
|
308
|
+
|
|
309
|
+
def asXmlText(self):
|
|
310
|
+
xml = self.asXml()
|
|
311
|
+
|
|
312
|
+
return TreeXML.toString(xml)
|
|
313
|
+
|
|
314
|
+
def dump(self, level=0):
|
|
315
|
+
Tracing.printIndented(level, self)
|
|
316
|
+
Tracing.printSeparator(level)
|
|
317
|
+
|
|
318
|
+
for visitable in self.getVisitableNodes():
|
|
319
|
+
visitable.dump(level + 1)
|
|
320
|
+
|
|
321
|
+
Tracing.printSeparator(level)
|
|
322
|
+
|
|
323
|
+
@staticmethod
|
|
324
|
+
def isStatementsSequence():
|
|
325
|
+
return False
|
|
326
|
+
|
|
327
|
+
@staticmethod
|
|
328
|
+
def isStatementsFrame():
|
|
329
|
+
return False
|
|
330
|
+
|
|
331
|
+
@staticmethod
|
|
332
|
+
def isStatementsSequenceButNotFrame():
|
|
333
|
+
return False
|
|
334
|
+
|
|
335
|
+
@staticmethod
|
|
336
|
+
def isCompiledPythonModule():
|
|
337
|
+
# For overload by module nodes
|
|
338
|
+
return False
|
|
339
|
+
|
|
340
|
+
@staticmethod
|
|
341
|
+
def isExpressionBuiltin():
|
|
342
|
+
return False
|
|
343
|
+
|
|
344
|
+
@staticmethod
|
|
345
|
+
def isStatementAssignmentVariable():
|
|
346
|
+
return False
|
|
347
|
+
|
|
348
|
+
@staticmethod
|
|
349
|
+
def isStatementDelVariable():
|
|
350
|
+
return False
|
|
351
|
+
|
|
352
|
+
@staticmethod
|
|
353
|
+
def isStatementReleaseVariable():
|
|
354
|
+
return False
|
|
355
|
+
|
|
356
|
+
@staticmethod
|
|
357
|
+
def isExpressionConstantRef():
|
|
358
|
+
return False
|
|
359
|
+
|
|
360
|
+
@staticmethod
|
|
361
|
+
def isExpressionConstantBoolRef():
|
|
362
|
+
return False
|
|
363
|
+
|
|
364
|
+
@staticmethod
|
|
365
|
+
def isExpressionOperationUnary():
|
|
366
|
+
return False
|
|
367
|
+
|
|
368
|
+
@staticmethod
|
|
369
|
+
def isExpressionOperationBinary():
|
|
370
|
+
return False
|
|
371
|
+
|
|
372
|
+
@staticmethod
|
|
373
|
+
def isExpressionOperationInplace():
|
|
374
|
+
return False
|
|
375
|
+
|
|
376
|
+
@staticmethod
|
|
377
|
+
def isExpressionComparison():
|
|
378
|
+
return False
|
|
379
|
+
|
|
380
|
+
@staticmethod
|
|
381
|
+
def isExpressionSideEffects():
|
|
382
|
+
return False
|
|
383
|
+
|
|
384
|
+
@staticmethod
|
|
385
|
+
def isExpressionMakeSequence():
|
|
386
|
+
return False
|
|
387
|
+
|
|
388
|
+
@staticmethod
|
|
389
|
+
def isExpressionVariableRefOrTempVariableRef():
|
|
390
|
+
return False
|
|
391
|
+
|
|
392
|
+
@staticmethod
|
|
393
|
+
def isNumberConstant():
|
|
394
|
+
return False
|
|
395
|
+
|
|
396
|
+
@staticmethod
|
|
397
|
+
def isExpressionCall():
|
|
398
|
+
return False
|
|
399
|
+
|
|
400
|
+
@staticmethod
|
|
401
|
+
def isExpressionFunctionBodyBase():
|
|
402
|
+
return False
|
|
403
|
+
|
|
404
|
+
@staticmethod
|
|
405
|
+
def isExpressionOutlineFunctionBase():
|
|
406
|
+
return False
|
|
407
|
+
|
|
408
|
+
@staticmethod
|
|
409
|
+
def isExpressionClassBodyBase():
|
|
410
|
+
return False
|
|
411
|
+
|
|
412
|
+
@staticmethod
|
|
413
|
+
def isExpressionFunctionCreation():
|
|
414
|
+
return False
|
|
415
|
+
|
|
416
|
+
def visit(self, context, visitor):
|
|
417
|
+
visitor(self)
|
|
418
|
+
|
|
419
|
+
for visitable in self.getVisitableNodes():
|
|
420
|
+
visitable.visit(context, visitor)
|
|
421
|
+
|
|
422
|
+
@staticmethod
|
|
423
|
+
def getVisitableNodes():
|
|
424
|
+
return ()
|
|
425
|
+
|
|
426
|
+
def checkChildren(self):
|
|
427
|
+
for c in self.getVisitableNodes():
|
|
428
|
+
assert c.parent is self, (c, "parent", self, "!=", c.parent)
|
|
429
|
+
c.checkChildren()
|
|
430
|
+
|
|
431
|
+
@staticmethod
|
|
432
|
+
def getVisitableNodesNamed():
|
|
433
|
+
"""Named children dictionary.
|
|
434
|
+
|
|
435
|
+
For use in debugging and XML output.
|
|
436
|
+
"""
|
|
437
|
+
|
|
438
|
+
return ()
|
|
439
|
+
|
|
440
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
441
|
+
"""Collect variable reads and writes of child nodes."""
|
|
442
|
+
|
|
443
|
+
@staticmethod
|
|
444
|
+
def getName():
|
|
445
|
+
"""Name of the node if any."""
|
|
446
|
+
|
|
447
|
+
return None
|
|
448
|
+
|
|
449
|
+
@staticmethod
|
|
450
|
+
def mayHaveSideEffects():
|
|
451
|
+
"""Unless we are told otherwise, everything may have a side effect."""
|
|
452
|
+
|
|
453
|
+
return True
|
|
454
|
+
|
|
455
|
+
def isOrderRelevant(self):
|
|
456
|
+
return self.mayHaveSideEffects()
|
|
457
|
+
|
|
458
|
+
def extractSideEffects(self):
|
|
459
|
+
"""Unless defined otherwise, the expression is the side effect."""
|
|
460
|
+
|
|
461
|
+
return (self,)
|
|
462
|
+
|
|
463
|
+
@staticmethod
|
|
464
|
+
def mayRaiseException(exception_type):
|
|
465
|
+
"""Unless we are told otherwise, everything may raise everything."""
|
|
466
|
+
# Virtual method, pylint: disable=unused-argument
|
|
467
|
+
|
|
468
|
+
return True
|
|
469
|
+
|
|
470
|
+
@staticmethod
|
|
471
|
+
def mayReturn():
|
|
472
|
+
"""May this node do a return exit, to be overloaded for things that might."""
|
|
473
|
+
return False
|
|
474
|
+
|
|
475
|
+
@staticmethod
|
|
476
|
+
def mayBreak():
|
|
477
|
+
return False
|
|
478
|
+
|
|
479
|
+
@staticmethod
|
|
480
|
+
def mayContinue():
|
|
481
|
+
return False
|
|
482
|
+
|
|
483
|
+
def needsFrame(self):
|
|
484
|
+
"""Unless we are told otherwise, this depends on exception raise."""
|
|
485
|
+
|
|
486
|
+
return self.mayRaiseException(BaseException)
|
|
487
|
+
|
|
488
|
+
@staticmethod
|
|
489
|
+
def willRaiseAnyException():
|
|
490
|
+
return False
|
|
491
|
+
|
|
492
|
+
@staticmethod
|
|
493
|
+
def isStatementAborting():
|
|
494
|
+
"""Is the node aborting, control flow doesn't continue after this node."""
|
|
495
|
+
return False
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
class CodeNodeMixin(object):
|
|
499
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
500
|
+
__slots__ = ()
|
|
501
|
+
|
|
502
|
+
def __init__(self, name, code_prefix):
|
|
503
|
+
assert name is not None
|
|
504
|
+
|
|
505
|
+
self.name = name
|
|
506
|
+
self.code_prefix = code_prefix
|
|
507
|
+
|
|
508
|
+
# The code name is determined on demand only.
|
|
509
|
+
self.code_name = None
|
|
510
|
+
|
|
511
|
+
# The "UID" values of children kinds are kept here.
|
|
512
|
+
self.uids = {}
|
|
513
|
+
|
|
514
|
+
def getName(self):
|
|
515
|
+
return self.name
|
|
516
|
+
|
|
517
|
+
def getCodeName(self):
|
|
518
|
+
if self.code_name is None:
|
|
519
|
+
provider = self.getParentVariableProvider().getEntryPoint()
|
|
520
|
+
parent_name = provider.getCodeName()
|
|
521
|
+
|
|
522
|
+
if self.code_prefix == "helper_function":
|
|
523
|
+
name = self.name
|
|
524
|
+
else:
|
|
525
|
+
uid = "_%d" % provider.getChildUID(self)
|
|
526
|
+
|
|
527
|
+
if self.name:
|
|
528
|
+
name = uid + "_" + self.name.strip("<>")
|
|
529
|
+
else:
|
|
530
|
+
name = uid
|
|
531
|
+
|
|
532
|
+
self.code_name = "%s$$$%s" % (
|
|
533
|
+
parent_name,
|
|
534
|
+
encodePythonIdentifierToC("%s_%s" % (self.code_prefix, name)),
|
|
535
|
+
)
|
|
536
|
+
|
|
537
|
+
return self.code_name
|
|
538
|
+
|
|
539
|
+
def getChildUID(self, node):
|
|
540
|
+
if node.kind not in self.uids:
|
|
541
|
+
self.uids[node.kind] = 0
|
|
542
|
+
|
|
543
|
+
self.uids[node.kind] += 1
|
|
544
|
+
|
|
545
|
+
return self.uids[node.kind]
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
class ClosureGiverNodeMixin(CodeNodeMixin):
|
|
549
|
+
"""Base class for nodes that provide variables for closure takers."""
|
|
550
|
+
|
|
551
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
552
|
+
__slots__ = ()
|
|
553
|
+
|
|
554
|
+
def __init__(self, name, code_prefix):
|
|
555
|
+
CodeNodeMixin.__init__(self, name=name, code_prefix=code_prefix)
|
|
556
|
+
|
|
557
|
+
self.temp_variables = {}
|
|
558
|
+
|
|
559
|
+
self.temp_scopes = {}
|
|
560
|
+
|
|
561
|
+
self.preserver_id = 0
|
|
562
|
+
|
|
563
|
+
def hasProvidedVariable(self, variable_name):
|
|
564
|
+
return self.locals_scope.hasProvidedVariable(variable_name)
|
|
565
|
+
|
|
566
|
+
def getProvidedVariable(self, variable_name):
|
|
567
|
+
if not self.locals_scope.hasProvidedVariable(variable_name):
|
|
568
|
+
variable = self.createProvidedVariable(variable_name=variable_name)
|
|
569
|
+
self.locals_scope.registerProvidedVariable(variable)
|
|
570
|
+
|
|
571
|
+
return self.locals_scope.getProvidedVariable(variable_name)
|
|
572
|
+
|
|
573
|
+
@abstractmethod
|
|
574
|
+
def createProvidedVariable(self, variable_name):
|
|
575
|
+
"""Create a variable provided by this function."""
|
|
576
|
+
|
|
577
|
+
def allocateTempScope(self, name):
|
|
578
|
+
self.temp_scopes[name] = self.temp_scopes.get(name, 0) + 1
|
|
579
|
+
|
|
580
|
+
return "%s_%d" % (name, self.temp_scopes[name])
|
|
581
|
+
|
|
582
|
+
def allocateTempVariable(self, temp_scope, name, temp_type):
|
|
583
|
+
if temp_scope is not None:
|
|
584
|
+
full_name = "%s__%s" % (temp_scope, name)
|
|
585
|
+
else:
|
|
586
|
+
assert name != "result"
|
|
587
|
+
|
|
588
|
+
full_name = name
|
|
589
|
+
|
|
590
|
+
# No duplicates please.
|
|
591
|
+
assert full_name not in self.temp_variables, full_name
|
|
592
|
+
|
|
593
|
+
result = self.createTempVariable(temp_name=full_name, temp_type=temp_type)
|
|
594
|
+
|
|
595
|
+
# Late added temp variables should be treated with care for the
|
|
596
|
+
# remaining trace.
|
|
597
|
+
if self.trace_collection is not None:
|
|
598
|
+
self.trace_collection.initVariableUnknown(result).addUsage()
|
|
599
|
+
|
|
600
|
+
return result
|
|
601
|
+
|
|
602
|
+
def createTempVariable(self, temp_name, temp_type):
|
|
603
|
+
if temp_name in self.temp_variables:
|
|
604
|
+
return self.temp_variables[temp_name]
|
|
605
|
+
|
|
606
|
+
result = TempVariable(
|
|
607
|
+
owner=self,
|
|
608
|
+
variable_name=temp_name,
|
|
609
|
+
variable_type=temp_type,
|
|
610
|
+
)
|
|
611
|
+
|
|
612
|
+
self.temp_variables[temp_name] = result
|
|
613
|
+
|
|
614
|
+
return result
|
|
615
|
+
|
|
616
|
+
def getTempVariable(self, temp_scope, name):
|
|
617
|
+
if temp_scope is not None:
|
|
618
|
+
full_name = "%s__%s" % (temp_scope, name)
|
|
619
|
+
else:
|
|
620
|
+
full_name = name
|
|
621
|
+
|
|
622
|
+
return self.temp_variables[full_name]
|
|
623
|
+
|
|
624
|
+
def getTempVariables(self):
|
|
625
|
+
return self.temp_variables.values()
|
|
626
|
+
|
|
627
|
+
def _removeTempVariable(self, variable):
|
|
628
|
+
del self.temp_variables[variable.getName()]
|
|
629
|
+
|
|
630
|
+
def optimizeUnusedTempVariables(self):
|
|
631
|
+
remove = []
|
|
632
|
+
|
|
633
|
+
for temp_variable in self.getTempVariables():
|
|
634
|
+
empty = self.trace_collection.hasEmptyTraces(variable=temp_variable)
|
|
635
|
+
|
|
636
|
+
if empty:
|
|
637
|
+
remove.append(temp_variable)
|
|
638
|
+
|
|
639
|
+
for temp_variable in remove:
|
|
640
|
+
self._removeTempVariable(temp_variable)
|
|
641
|
+
|
|
642
|
+
def allocatePreserverId(self):
|
|
643
|
+
if python_version >= 0x300:
|
|
644
|
+
self.preserver_id += 1
|
|
645
|
+
|
|
646
|
+
return self.preserver_id
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
class ClosureTakerMixin(object):
|
|
650
|
+
"""Mixin for nodes that accept variables from closure givers."""
|
|
651
|
+
|
|
652
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
653
|
+
__slots__ = ()
|
|
654
|
+
|
|
655
|
+
def __init__(self, provider):
|
|
656
|
+
self.provider = provider
|
|
657
|
+
|
|
658
|
+
self.taken = set()
|
|
659
|
+
|
|
660
|
+
def getParentVariableProvider(self):
|
|
661
|
+
return self.provider
|
|
662
|
+
|
|
663
|
+
def getClosureVariable(self, variable_name):
|
|
664
|
+
result = self.provider.getVariableForClosure(variable_name=variable_name)
|
|
665
|
+
assert result is not None, variable_name
|
|
666
|
+
|
|
667
|
+
if not result.isModuleVariable():
|
|
668
|
+
self.addClosureVariable(result)
|
|
669
|
+
|
|
670
|
+
return result
|
|
671
|
+
|
|
672
|
+
def addClosureVariable(self, variable):
|
|
673
|
+
self.taken.add(variable)
|
|
674
|
+
|
|
675
|
+
return variable
|
|
676
|
+
|
|
677
|
+
def getClosureVariables(self):
|
|
678
|
+
return tuple(
|
|
679
|
+
sorted(
|
|
680
|
+
[take for take in self.taken if not take.isModuleVariable()],
|
|
681
|
+
key=lambda x: x.getName(),
|
|
682
|
+
)
|
|
683
|
+
)
|
|
684
|
+
|
|
685
|
+
def getClosureVariableIndex(self, variable):
|
|
686
|
+
closure_variables = self.getClosureVariables()
|
|
687
|
+
|
|
688
|
+
for count, closure_variable in enumerate(closure_variables):
|
|
689
|
+
if variable is closure_variable:
|
|
690
|
+
return count
|
|
691
|
+
|
|
692
|
+
raise IndexError(variable)
|
|
693
|
+
|
|
694
|
+
def hasTakenVariable(self, variable_name):
|
|
695
|
+
for variable in self.taken:
|
|
696
|
+
if variable.getName() == variable_name:
|
|
697
|
+
return True
|
|
698
|
+
|
|
699
|
+
return False
|
|
700
|
+
|
|
701
|
+
def getTakenVariable(self, variable_name):
|
|
702
|
+
for variable in self.taken:
|
|
703
|
+
if variable.getName() == variable_name:
|
|
704
|
+
return variable
|
|
705
|
+
|
|
706
|
+
return None
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
class StatementBase(NodeBase):
|
|
710
|
+
"""Base class for all statement nodes."""
|
|
711
|
+
|
|
712
|
+
# Base classes can be abstract, pylint: disable=abstract-method
|
|
713
|
+
|
|
714
|
+
# TODO: Have them all.
|
|
715
|
+
# @abstractmethod
|
|
716
|
+
@staticmethod
|
|
717
|
+
def getStatementNiceName():
|
|
718
|
+
return "un-described statement"
|
|
719
|
+
|
|
720
|
+
def computeStatementSubExpressions(self, trace_collection):
|
|
721
|
+
"""Compute a statement.
|
|
722
|
+
|
|
723
|
+
Default behavior is to just visit the child expressions first, and
|
|
724
|
+
then the node "computeStatement". For a few cases this needs to
|
|
725
|
+
be overloaded.
|
|
726
|
+
"""
|
|
727
|
+
expressions = self.getVisitableNodes()
|
|
728
|
+
|
|
729
|
+
for count, expression in enumerate(expressions):
|
|
730
|
+
expression = trace_collection.onExpression(expression)
|
|
731
|
+
|
|
732
|
+
if expression.willRaiseAnyException():
|
|
733
|
+
# They probably have changed.
|
|
734
|
+
expressions = self.getVisitableNodes()
|
|
735
|
+
|
|
736
|
+
child_name = expression.getChildNameNice()
|
|
737
|
+
|
|
738
|
+
wrapped_expression = makeStatementOnlyNodesFromExpressions(
|
|
739
|
+
expressions[: count + 1]
|
|
740
|
+
)
|
|
741
|
+
|
|
742
|
+
assert wrapped_expression is not None
|
|
743
|
+
|
|
744
|
+
return (
|
|
745
|
+
wrapped_expression,
|
|
746
|
+
"new_raise",
|
|
747
|
+
lambda: "For %s the child expression '%s' will raise."
|
|
748
|
+
% (self.getStatementNiceName(), child_name),
|
|
749
|
+
)
|
|
750
|
+
|
|
751
|
+
return self, None, None
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
class SideEffectsFromChildrenMixin(object):
|
|
755
|
+
# Mixins are not allowed to specify slots.
|
|
756
|
+
__slots__ = ()
|
|
757
|
+
|
|
758
|
+
def mayHaveSideEffects(self):
|
|
759
|
+
for child in self.getVisitableNodes():
|
|
760
|
+
if child.mayHaveSideEffects():
|
|
761
|
+
return True
|
|
762
|
+
return False
|
|
763
|
+
|
|
764
|
+
def extractSideEffects(self):
|
|
765
|
+
# No side effects at all but from the children.
|
|
766
|
+
result = []
|
|
767
|
+
|
|
768
|
+
for child in self.getVisitableNodes():
|
|
769
|
+
result.extend(child.extractSideEffects())
|
|
770
|
+
|
|
771
|
+
return tuple(result)
|
|
772
|
+
|
|
773
|
+
def computeExpressionDrop(self, statement, trace_collection):
|
|
774
|
+
# Expression only statement plays no role, pylint: disable=unused-argument
|
|
775
|
+
|
|
776
|
+
side_effects = self.extractSideEffects()
|
|
777
|
+
|
|
778
|
+
# TODO: Have a method for nicer output and remove existing overloads
|
|
779
|
+
# by using classes and prefer generic implementation here.
|
|
780
|
+
if side_effects:
|
|
781
|
+
return (
|
|
782
|
+
makeStatementOnlyNodesFromExpressions(side_effects),
|
|
783
|
+
"new_statements",
|
|
784
|
+
"Lowered unused expression %s to its side effects." % self.kind,
|
|
785
|
+
)
|
|
786
|
+
else:
|
|
787
|
+
return (
|
|
788
|
+
None,
|
|
789
|
+
"new_statements",
|
|
790
|
+
"Removed %s without side effects." % self.kind,
|
|
791
|
+
)
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
def makeChild(provider, child, source_ref):
|
|
795
|
+
child_type = child.attrib.get("type")
|
|
796
|
+
|
|
797
|
+
if child_type == "list":
|
|
798
|
+
return [
|
|
799
|
+
fromXML(provider=provider, xml=sub_child, source_ref=source_ref)
|
|
800
|
+
for sub_child in child
|
|
801
|
+
]
|
|
802
|
+
elif child_type == "none":
|
|
803
|
+
return None
|
|
804
|
+
else:
|
|
805
|
+
return fromXML(provider=provider, xml=child[0], source_ref=source_ref)
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
def getNodeClassFromKind(kind):
|
|
809
|
+
return NodeCheckMetaClass.kinds[kind]
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
def extractKindAndArgsFromXML(xml, source_ref):
|
|
813
|
+
kind = xml.attrib["kind"]
|
|
814
|
+
|
|
815
|
+
args = dict(xml.attrib)
|
|
816
|
+
del args["kind"]
|
|
817
|
+
|
|
818
|
+
if source_ref is None:
|
|
819
|
+
source_ref = SourceCodeReference.fromFilenameAndLine(
|
|
820
|
+
args["filename"], int(args["line"])
|
|
821
|
+
)
|
|
822
|
+
|
|
823
|
+
del args["filename"]
|
|
824
|
+
del args["line"]
|
|
825
|
+
|
|
826
|
+
else:
|
|
827
|
+
source_ref = source_ref.atLineNumber(int(args["line"]))
|
|
828
|
+
del args["line"]
|
|
829
|
+
|
|
830
|
+
node_class = getNodeClassFromKind(kind)
|
|
831
|
+
|
|
832
|
+
return kind, node_class, args, source_ref
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
def fromXML(provider, xml, source_ref=None):
|
|
836
|
+
assert xml.tag == "node", xml
|
|
837
|
+
|
|
838
|
+
kind, node_class, args, source_ref = extractKindAndArgsFromXML(xml, source_ref)
|
|
839
|
+
|
|
840
|
+
if "constant" in args:
|
|
841
|
+
args["constant"] = ast.literal_eval(args["constant"])
|
|
842
|
+
|
|
843
|
+
if kind in (
|
|
844
|
+
"ExpressionFunctionBody",
|
|
845
|
+
"PythonMainModule",
|
|
846
|
+
"PythonCompiledModule",
|
|
847
|
+
"PythonCompiledPackage",
|
|
848
|
+
"PythonInternalModule",
|
|
849
|
+
):
|
|
850
|
+
delayed = node_class.named_children
|
|
851
|
+
|
|
852
|
+
if "code_flags" in args:
|
|
853
|
+
args["future_spec"] = fromFlags(args["code_flags"])
|
|
854
|
+
else:
|
|
855
|
+
delayed = ()
|
|
856
|
+
|
|
857
|
+
for child in xml:
|
|
858
|
+
assert child.tag == "role", child.tag
|
|
859
|
+
|
|
860
|
+
child_name = child.attrib["name"]
|
|
861
|
+
|
|
862
|
+
# Might want to want until provider is updated with some
|
|
863
|
+
# children. In these cases, we pass the XML node, rather
|
|
864
|
+
# than a Nuitka node.
|
|
865
|
+
if child_name not in delayed:
|
|
866
|
+
args[child_name] = makeChild(provider, child, source_ref)
|
|
867
|
+
else:
|
|
868
|
+
args[child_name] = child
|
|
869
|
+
|
|
870
|
+
try:
|
|
871
|
+
return node_class.fromXML(provider=provider, source_ref=source_ref, **args)
|
|
872
|
+
except (TypeError, AttributeError):
|
|
873
|
+
Tracing.printLine(node_class, args, source_ref)
|
|
874
|
+
raise
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
878
|
+
# integrates with CPython, but also works on its own.
|
|
879
|
+
#
|
|
880
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
881
|
+
# you may not use this file except in compliance with the License.
|
|
882
|
+
# You may obtain a copy of the License at
|
|
883
|
+
#
|
|
884
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
885
|
+
#
|
|
886
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
887
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
888
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
889
|
+
# See the License for the specific language governing permissions and
|
|
890
|
+
# limitations under the License.
|