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,1200 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Locating modules and package source on disk.
|
|
5
|
+
|
|
6
|
+
The actual import of a module would already execute code that changes things.
|
|
7
|
+
Imagine a module that does ``os.system()``, it would be done during
|
|
8
|
+
compilation. People often connect to databases, and these kind of things, at
|
|
9
|
+
import time.
|
|
10
|
+
|
|
11
|
+
Therefore CPython exhibits the interfaces in an ``imp`` module in standard
|
|
12
|
+
library, which one can use those to know ahead of time, what file import would
|
|
13
|
+
load. For us unfortunately there is nothing in CPython that is easily
|
|
14
|
+
accessible and gives us this functionality for packages and search paths
|
|
15
|
+
exactly like CPython does, so we implement here a multi step search process
|
|
16
|
+
that is compatible.
|
|
17
|
+
|
|
18
|
+
This approach is much safer of course and there is no loss. To determine if
|
|
19
|
+
it's from the standard library, one can abuse the attribute ``__file__`` of the
|
|
20
|
+
``os`` module like it's done in ``isStandardLibraryPath`` of this module.
|
|
21
|
+
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
import collections
|
|
25
|
+
import os
|
|
26
|
+
import sys
|
|
27
|
+
import zipfile
|
|
28
|
+
|
|
29
|
+
from nuitka import SourceCodeReferences
|
|
30
|
+
from nuitka.__past__ import iter_modules
|
|
31
|
+
from nuitka.containers.Namedtuples import makeNamedtupleClass
|
|
32
|
+
from nuitka.containers.OrderedSets import OrderedSet
|
|
33
|
+
from nuitka.Errors import NuitkaCodeDeficit
|
|
34
|
+
from nuitka.plugins.Plugins import Plugins
|
|
35
|
+
from nuitka.PythonFlavors import isNuitkaPython
|
|
36
|
+
from nuitka.PythonVersions import python_version
|
|
37
|
+
from nuitka.Tracing import recursion_logger
|
|
38
|
+
from nuitka.tree.ReformulationMultidist import locateMultidistModule
|
|
39
|
+
from nuitka.utils.AppDirs import getCacheDir
|
|
40
|
+
from nuitka.utils.FileOperations import (
|
|
41
|
+
getNormalizedPath,
|
|
42
|
+
listDir,
|
|
43
|
+
removeDirectory,
|
|
44
|
+
)
|
|
45
|
+
from nuitka.utils.Hashing import getFileContentsHash
|
|
46
|
+
from nuitka.utils.Importing import (
|
|
47
|
+
builtin_module_names,
|
|
48
|
+
getExtensionModuleSuffixes,
|
|
49
|
+
getModuleFilenameSuffixes,
|
|
50
|
+
getPackageDirFilename,
|
|
51
|
+
isBuiltinModuleName,
|
|
52
|
+
)
|
|
53
|
+
from nuitka.utils.ModuleNames import ModuleName
|
|
54
|
+
from nuitka.utils.SharedLibraries import (
|
|
55
|
+
hasUniversalOrMatchingMacOSArchitecture,
|
|
56
|
+
)
|
|
57
|
+
from nuitka.utils.Utils import (
|
|
58
|
+
getLaunchingNuitkaProcessEnvironmentValue,
|
|
59
|
+
isMacOS,
|
|
60
|
+
isWin32OrPosixWindows,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
from .IgnoreListing import isIgnoreListedNotExistingModule
|
|
64
|
+
from .PreloadedPackages import getPreloadedPackagePath, isPreloadedPackagePath
|
|
65
|
+
from .StandardLibrary import isStandardLibraryPath
|
|
66
|
+
|
|
67
|
+
# Debug traces, enabled via --explain-imports
|
|
68
|
+
_debug_module_finding = None
|
|
69
|
+
|
|
70
|
+
# Preference as expressed via --prefer-source-code
|
|
71
|
+
_prefer_source_code_over_extension_modules = None
|
|
72
|
+
|
|
73
|
+
# Do not add current directory to search path.
|
|
74
|
+
_safe_path = None
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def setupImportingFromOptions():
|
|
78
|
+
"""Set up the importing layer from giving options."""
|
|
79
|
+
|
|
80
|
+
# Should only be used inside of here.
|
|
81
|
+
from nuitka import Options
|
|
82
|
+
|
|
83
|
+
# singleton, pylint: disable=global-statement
|
|
84
|
+
global _debug_module_finding
|
|
85
|
+
_debug_module_finding = Options.shallExplainImports()
|
|
86
|
+
|
|
87
|
+
global _prefer_source_code_over_extension_modules
|
|
88
|
+
_prefer_source_code_over_extension_modules = (
|
|
89
|
+
Options.shallPreferSourceCodeOverExtensionModules()
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
global _safe_path
|
|
93
|
+
_safe_path = Options.hasPythonFlagNoCurrentDirectoryInPath()
|
|
94
|
+
|
|
95
|
+
# Lets try and have this complete, please report failures.
|
|
96
|
+
if Options.is_debug and not isNuitkaPython():
|
|
97
|
+
_checkRaisingBuiltinComplete()
|
|
98
|
+
|
|
99
|
+
main_filenames = Options.getMainEntryPointFilenames()
|
|
100
|
+
for filename in main_filenames:
|
|
101
|
+
# Inform the importing layer about the main script directory, so it can use
|
|
102
|
+
# it when attempting to follow imports.
|
|
103
|
+
addMainScriptDirectory(main_dir=os.path.dirname(os.path.abspath(filename)))
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _checkRaisingBuiltinComplete():
|
|
107
|
+
for module_name in builtin_module_names:
|
|
108
|
+
assert module_name in _stdlib_module_raises, module_name
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
warned_about = set()
|
|
112
|
+
|
|
113
|
+
# Directory where the main script lives. Should attempt to import from there.
|
|
114
|
+
_main_paths = OrderedSet()
|
|
115
|
+
|
|
116
|
+
# Additions to sys.paths from plugins.
|
|
117
|
+
_extra_paths = OrderedSet()
|
|
118
|
+
|
|
119
|
+
ModuleUsageAttempt = makeNamedtupleClass(
|
|
120
|
+
"ModuleUsageAttempt",
|
|
121
|
+
(
|
|
122
|
+
"module_name",
|
|
123
|
+
"filename",
|
|
124
|
+
"module_kind",
|
|
125
|
+
"finding",
|
|
126
|
+
"level",
|
|
127
|
+
"source_ref",
|
|
128
|
+
"reason",
|
|
129
|
+
),
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def makeModuleUsageAttempt(
|
|
134
|
+
module_name, filename, module_kind, finding, level, source_ref, reason
|
|
135
|
+
):
|
|
136
|
+
assert source_ref is not None
|
|
137
|
+
|
|
138
|
+
return ModuleUsageAttempt(
|
|
139
|
+
module_name=module_name,
|
|
140
|
+
filename=filename,
|
|
141
|
+
module_kind=module_kind,
|
|
142
|
+
finding=finding,
|
|
143
|
+
level=level,
|
|
144
|
+
source_ref=source_ref,
|
|
145
|
+
reason=reason,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def makeParentModuleUsagesAttempts(module_usage_attempt):
|
|
150
|
+
result = []
|
|
151
|
+
|
|
152
|
+
for parent_package_name in module_usage_attempt.module_name.getParentPackageNames():
|
|
153
|
+
(
|
|
154
|
+
_parent_package_name,
|
|
155
|
+
parent_module_filename,
|
|
156
|
+
parent_module_kind,
|
|
157
|
+
parent_module_finding,
|
|
158
|
+
) = locateModule(
|
|
159
|
+
module_name=parent_package_name,
|
|
160
|
+
parent_package=None,
|
|
161
|
+
level=0,
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
result.append(
|
|
165
|
+
makeModuleUsageAttempt(
|
|
166
|
+
module_name=parent_package_name,
|
|
167
|
+
filename=parent_module_filename,
|
|
168
|
+
finding=parent_module_finding,
|
|
169
|
+
module_kind=parent_module_kind,
|
|
170
|
+
level=0,
|
|
171
|
+
source_ref=module_usage_attempt.source_ref,
|
|
172
|
+
reason="import path parent",
|
|
173
|
+
)
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
result.append(module_usage_attempt)
|
|
177
|
+
|
|
178
|
+
return tuple(result)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def addMainScriptDirectory(main_dir):
|
|
182
|
+
"""Initialize the main script directory.
|
|
183
|
+
|
|
184
|
+
We use this as part of the search path for modules.
|
|
185
|
+
"""
|
|
186
|
+
_main_paths.add(main_dir)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def addExtraSysPaths(directories):
|
|
190
|
+
for directory in directories:
|
|
191
|
+
assert os.path.isdir(directory), directory
|
|
192
|
+
|
|
193
|
+
_extra_paths.add(directory)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def hasMainScriptDirectory():
|
|
197
|
+
return bool(_main_paths)
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def isPackageDir(dirname):
|
|
201
|
+
"""Decide if a directory is a package.
|
|
202
|
+
|
|
203
|
+
Before Python3 it's required to have a "__init__.py" file, but then
|
|
204
|
+
it became impossible to decide, and for extra fun, there is also the
|
|
205
|
+
extra packages provided via "*.pth" file tricks by "site.py" loading.
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
return (
|
|
209
|
+
"." not in os.path.basename(dirname)
|
|
210
|
+
and os.path.isdir(dirname)
|
|
211
|
+
and (
|
|
212
|
+
python_version >= 0x300
|
|
213
|
+
or isPreloadedPackagePath(dirname)
|
|
214
|
+
or getPackageDirFilename(dirname) is not None
|
|
215
|
+
)
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
_package_module_name_cache = {}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def isPackageModuleName(module_name):
|
|
223
|
+
"""Decide if the give n module name is a package or not.
|
|
224
|
+
|
|
225
|
+
module, Cached as it involves disk access."""
|
|
226
|
+
|
|
227
|
+
if module_name not in _package_module_name_cache:
|
|
228
|
+
_module_name, module_filename, _module_kind, _finding = locateModule(
|
|
229
|
+
module_name=module_name,
|
|
230
|
+
parent_package=None,
|
|
231
|
+
level=0,
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
(
|
|
235
|
+
_main_added,
|
|
236
|
+
is_package,
|
|
237
|
+
_is_namespace,
|
|
238
|
+
_source_ref,
|
|
239
|
+
_source_filename,
|
|
240
|
+
) = decideModuleSourceRef(
|
|
241
|
+
filename=module_filename,
|
|
242
|
+
module_name=module_name,
|
|
243
|
+
is_main=False,
|
|
244
|
+
is_fake=False,
|
|
245
|
+
logger=None,
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
_package_module_name_cache[module_name] = is_package
|
|
249
|
+
|
|
250
|
+
return _package_module_name_cache[module_name]
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def getModuleNameAndKindFromFilename(module_filename):
|
|
254
|
+
"""Given a filename, decide the module name and kind.
|
|
255
|
+
|
|
256
|
+
Args:
|
|
257
|
+
module_name - file path of the module
|
|
258
|
+
Returns:
|
|
259
|
+
Tuple with the name of the module basename, and the kind of the
|
|
260
|
+
module derived from the file suffix. Can be None, None if is is not a
|
|
261
|
+
known file suffix.
|
|
262
|
+
Notes:
|
|
263
|
+
This doesn't concern itself with packages, that needs to be tracked
|
|
264
|
+
by the using code. It cannot be decided from the filename at all.
|
|
265
|
+
"""
|
|
266
|
+
|
|
267
|
+
if module_filename.endswith(".py"):
|
|
268
|
+
return ModuleName(os.path.basename(module_filename)[:-3]), "py"
|
|
269
|
+
|
|
270
|
+
if module_filename.endswith(".pyc"):
|
|
271
|
+
return ModuleName(os.path.basename(module_filename)[:-4]), "pyc"
|
|
272
|
+
|
|
273
|
+
# TODO: This sorting is necessary for at least Python2, but probably
|
|
274
|
+
# elsewhere too, need to be sure we follow the scan order of core Python
|
|
275
|
+
# here.
|
|
276
|
+
for suffix in sorted(getExtensionModuleSuffixes(), key=lambda suffix: -len(suffix)):
|
|
277
|
+
if module_filename.endswith(suffix):
|
|
278
|
+
return (
|
|
279
|
+
ModuleName(os.path.basename(module_filename)[: -len(suffix)]),
|
|
280
|
+
"extension",
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
if os.path.isdir(module_filename):
|
|
284
|
+
package_filename = getPackageDirFilename(module_filename)
|
|
285
|
+
|
|
286
|
+
if package_filename is not None:
|
|
287
|
+
for suffix in getExtensionModuleSuffixes():
|
|
288
|
+
if package_filename.endswith(suffix):
|
|
289
|
+
return (
|
|
290
|
+
ModuleName(os.path.basename(module_filename)),
|
|
291
|
+
"extension",
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
return ModuleName(os.path.basename(module_filename)), "py"
|
|
295
|
+
|
|
296
|
+
return None, None
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
def isIgnoreListedImportMaker(source_ref):
|
|
300
|
+
if isNuitkaPython():
|
|
301
|
+
return True
|
|
302
|
+
|
|
303
|
+
return isStandardLibraryPath(source_ref.getFilename())
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
def warnAboutNotFoundImport(importing, module_name, level, source_ref):
|
|
307
|
+
# This probably should not be dealt with here
|
|
308
|
+
if module_name == "":
|
|
309
|
+
return
|
|
310
|
+
|
|
311
|
+
if not isIgnoreListedNotExistingModule(
|
|
312
|
+
module_name
|
|
313
|
+
) and not isIgnoreListedImportMaker(source_ref):
|
|
314
|
+
key = module_name, level
|
|
315
|
+
|
|
316
|
+
if key not in warned_about:
|
|
317
|
+
warned_about.add(key)
|
|
318
|
+
|
|
319
|
+
if Plugins.suppressUnknownImportWarning(
|
|
320
|
+
importing=importing, source_ref=source_ref, module_name=module_name
|
|
321
|
+
):
|
|
322
|
+
return
|
|
323
|
+
|
|
324
|
+
if level == 0:
|
|
325
|
+
level_desc = "as absolute import"
|
|
326
|
+
elif level == -1:
|
|
327
|
+
level_desc = "as relative or absolute import"
|
|
328
|
+
elif level == 1:
|
|
329
|
+
level_desc = "%d package level up" % level
|
|
330
|
+
else:
|
|
331
|
+
level_desc = "%d package levels up" % level
|
|
332
|
+
|
|
333
|
+
if _debug_module_finding:
|
|
334
|
+
if importing.getFullName().getPackageName() is not None:
|
|
335
|
+
recursion_logger.warning(
|
|
336
|
+
"%s: Cannot find '%s' in package '%s' %s."
|
|
337
|
+
% (
|
|
338
|
+
importing.getSourceReference().getAsString(),
|
|
339
|
+
module_name,
|
|
340
|
+
importing.getFullName().getPackageName().asString(),
|
|
341
|
+
level_desc,
|
|
342
|
+
)
|
|
343
|
+
)
|
|
344
|
+
else:
|
|
345
|
+
recursion_logger.warning(
|
|
346
|
+
"%s: Cannot find '%s' %s."
|
|
347
|
+
% (
|
|
348
|
+
importing.getSourceReference().getAsString(),
|
|
349
|
+
module_name,
|
|
350
|
+
level_desc,
|
|
351
|
+
)
|
|
352
|
+
)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
def normalizePackageName(module_name):
|
|
356
|
+
# The "os.path" is strangely hacked into the "os" module, dispatching per
|
|
357
|
+
# platform, we either cannot look into it, or we require that we resolve it
|
|
358
|
+
# here correctly.
|
|
359
|
+
if module_name == "os.path":
|
|
360
|
+
module_name = ModuleName(os.path.basename(os.path.__name__))
|
|
361
|
+
|
|
362
|
+
return module_name
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
def findModule(module_name, parent_package, level, logger):
|
|
366
|
+
"""Find a module with given package name as parent.
|
|
367
|
+
|
|
368
|
+
The package name can be None of course. Level is the same
|
|
369
|
+
as with "__import__" built-in. Warnings are optional.
|
|
370
|
+
|
|
371
|
+
Returns:
|
|
372
|
+
Returns a triple of package name the module is in, filename of
|
|
373
|
+
it, which can be a directory for packages, and the location
|
|
374
|
+
method used.
|
|
375
|
+
"""
|
|
376
|
+
# We have many branches here, because there are a lot of cases to try.
|
|
377
|
+
# pylint: disable=too-many-branches,too-many-return-statements
|
|
378
|
+
|
|
379
|
+
assert type(module_name) is ModuleName, module_name
|
|
380
|
+
|
|
381
|
+
if logger is not None:
|
|
382
|
+
logger.info(
|
|
383
|
+
"findModule: Enter to search %r in package %r level %s."
|
|
384
|
+
% (module_name, parent_package, level)
|
|
385
|
+
)
|
|
386
|
+
|
|
387
|
+
# Do not allow star imports to get here. We just won't find modules with
|
|
388
|
+
# that name, but it would be wasteful.
|
|
389
|
+
assert module_name != "*"
|
|
390
|
+
|
|
391
|
+
if level > 1:
|
|
392
|
+
# TODO: Should give a warning and return not found if the levels
|
|
393
|
+
# exceed the package name.
|
|
394
|
+
if parent_package is not None:
|
|
395
|
+
parent_package = parent_package.getRelativePackageName(level - 1)
|
|
396
|
+
else:
|
|
397
|
+
return None, None, None, "not-found"
|
|
398
|
+
|
|
399
|
+
if level == 1 and not module_name:
|
|
400
|
+
# Not actually allowed, but we only catch that at run-time.
|
|
401
|
+
if parent_package is None:
|
|
402
|
+
return None, None, None, "not-found"
|
|
403
|
+
|
|
404
|
+
module_name = parent_package
|
|
405
|
+
parent_package = None
|
|
406
|
+
level = 0
|
|
407
|
+
|
|
408
|
+
# Try relative imports first if we have a parent package.
|
|
409
|
+
if level != 0 and parent_package is not None:
|
|
410
|
+
if module_name:
|
|
411
|
+
full_name = ModuleName(parent_package + "." + module_name)
|
|
412
|
+
else:
|
|
413
|
+
full_name = ModuleName(parent_package)
|
|
414
|
+
|
|
415
|
+
full_name = normalizePackageName(full_name)
|
|
416
|
+
|
|
417
|
+
preloaded_path = getPreloadedPackagePath(module_name)
|
|
418
|
+
|
|
419
|
+
if preloaded_path is not None:
|
|
420
|
+
for module_filename in preloaded_path:
|
|
421
|
+
if os.path.exists(module_filename):
|
|
422
|
+
break
|
|
423
|
+
else:
|
|
424
|
+
module_filename = None
|
|
425
|
+
|
|
426
|
+
return full_name.getPackageName(), module_filename, "py", "pth"
|
|
427
|
+
|
|
428
|
+
try:
|
|
429
|
+
module_filename, module_kind = _findModule(
|
|
430
|
+
module_name=full_name,
|
|
431
|
+
logger=logger,
|
|
432
|
+
)
|
|
433
|
+
except ImportError:
|
|
434
|
+
# For relative import, that is OK, we will still try absolute.
|
|
435
|
+
pass
|
|
436
|
+
else:
|
|
437
|
+
if logger is not None:
|
|
438
|
+
logger.info(
|
|
439
|
+
"findModule: Relative imported module '%s' as '%s' in filename '%s':"
|
|
440
|
+
% (module_name, full_name, module_filename)
|
|
441
|
+
)
|
|
442
|
+
|
|
443
|
+
return full_name.getPackageName(), module_filename, module_kind, "relative"
|
|
444
|
+
|
|
445
|
+
if level < 1 and module_name:
|
|
446
|
+
module_name = normalizePackageName(module_name)
|
|
447
|
+
|
|
448
|
+
package_name = module_name.getPackageName()
|
|
449
|
+
|
|
450
|
+
preloaded_path = getPreloadedPackagePath(module_name)
|
|
451
|
+
|
|
452
|
+
if preloaded_path is not None:
|
|
453
|
+
for module_filename in preloaded_path:
|
|
454
|
+
if os.path.exists(module_filename):
|
|
455
|
+
break
|
|
456
|
+
else:
|
|
457
|
+
module_filename = None
|
|
458
|
+
|
|
459
|
+
return package_name, module_filename, "py", "pth"
|
|
460
|
+
|
|
461
|
+
try:
|
|
462
|
+
module_filename, module_kind = _findModule(
|
|
463
|
+
module_name=module_name,
|
|
464
|
+
logger=logger,
|
|
465
|
+
)
|
|
466
|
+
except ImportError:
|
|
467
|
+
# For relative import, that is OK, we will still try absolute.
|
|
468
|
+
pass
|
|
469
|
+
else:
|
|
470
|
+
if logger is not None:
|
|
471
|
+
logger.info(
|
|
472
|
+
"findModule: Found absolute imported module '%s' in filename '%s':"
|
|
473
|
+
% (module_name, module_filename)
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
return package_name, module_filename, module_kind, "absolute"
|
|
477
|
+
|
|
478
|
+
return None, None, None, "not-found"
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
# Some platforms are case insensitive.
|
|
482
|
+
case_sensitive = not isMacOS() and not isWin32OrPosixWindows()
|
|
483
|
+
|
|
484
|
+
ImportScanFinding = collections.namedtuple(
|
|
485
|
+
"ImportScanFinding",
|
|
486
|
+
("found_in", "module_type", "priority", "full_path", "search_order"),
|
|
487
|
+
)
|
|
488
|
+
|
|
489
|
+
# We put here things that are not worth it (Cython is not really used by
|
|
490
|
+
# anything really, or where it's know to not have a big # impact, e.g. lxml.
|
|
491
|
+
|
|
492
|
+
# TODO: Do we really want this warning to persist?
|
|
493
|
+
unworthy_namespaces = ("Cython", "lxml", "black", "tomli")
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
def _reportCandidates(package_name, module_name, candidate, candidates):
|
|
497
|
+
module_name = (
|
|
498
|
+
package_name.getChildNamed(module_name)
|
|
499
|
+
if package_name is not None
|
|
500
|
+
else module_name
|
|
501
|
+
)
|
|
502
|
+
|
|
503
|
+
if candidate.priority == 1 and _prefer_source_code_over_extension_modules is None:
|
|
504
|
+
for c in candidates:
|
|
505
|
+
# Don't compare to itself and don't consider unused bytecode a problem.
|
|
506
|
+
if c is candidate or c.priority == 3:
|
|
507
|
+
continue
|
|
508
|
+
|
|
509
|
+
if c.search_order == candidate.search_order:
|
|
510
|
+
if not module_name.hasOneOfNamespaces(unworthy_namespaces):
|
|
511
|
+
recursion_logger.info(
|
|
512
|
+
"""\
|
|
513
|
+
Should decide '--prefer-source-code' vs. '--no-prefer-source-code', using \
|
|
514
|
+
existing '%s' extension module by default. Candidates were: %s <-> %s."""
|
|
515
|
+
% (module_name, candidate, c)
|
|
516
|
+
)
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
_list_dir_cache = {}
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
def listDirCached(path):
|
|
523
|
+
"""Cached listing of a directory."""
|
|
524
|
+
|
|
525
|
+
if path not in _list_dir_cache:
|
|
526
|
+
_list_dir_cache[path] = tuple(listDir(path))
|
|
527
|
+
|
|
528
|
+
return _list_dir_cache[path]
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
def flushImportCache():
|
|
532
|
+
"""Clear import related caches.
|
|
533
|
+
|
|
534
|
+
In some situations, e.g. during package rebuild, we scan and then decide to remove
|
|
535
|
+
files and scan again. This allows that. Nothing in standard Nuitka should do it,
|
|
536
|
+
as it throws away so much.
|
|
537
|
+
"""
|
|
538
|
+
_list_dir_cache.clear()
|
|
539
|
+
module_search_cache.clear()
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
def _findModuleInPath2(package_name, module_name, search_path, logger):
|
|
543
|
+
"""This is out own module finding low level implementation.
|
|
544
|
+
|
|
545
|
+
Just the full module name and search path are given. This is then
|
|
546
|
+
tasked to raise "ImportError" or return a path if it finds it, or
|
|
547
|
+
None, if it is a built-in.
|
|
548
|
+
"""
|
|
549
|
+
# We have many branches here, because there are a lot of cases to try.
|
|
550
|
+
# pylint: disable=too-many-branches,too-many-locals
|
|
551
|
+
|
|
552
|
+
# We may have to decide between package and module, therefore build
|
|
553
|
+
# a list of candidates.
|
|
554
|
+
candidates = OrderedSet()
|
|
555
|
+
|
|
556
|
+
considered = set()
|
|
557
|
+
|
|
558
|
+
# Higher values are lower priority.
|
|
559
|
+
priority_map = {
|
|
560
|
+
"PY_COMPILED": 3,
|
|
561
|
+
"PY_SOURCE": 0 if _prefer_source_code_over_extension_modules else 2,
|
|
562
|
+
"C_EXTENSION": 1,
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
for count, entry in enumerate(search_path):
|
|
566
|
+
# Don't try again, just with an entry of different casing or complete
|
|
567
|
+
# duplicate.
|
|
568
|
+
if os.path.normcase(entry) in considered:
|
|
569
|
+
continue
|
|
570
|
+
considered.add(os.path.normcase(entry))
|
|
571
|
+
|
|
572
|
+
package_directory = os.path.join(entry, module_name.asPath())
|
|
573
|
+
|
|
574
|
+
# First, check for a package with an init file, that would be the
|
|
575
|
+
# first choice.
|
|
576
|
+
if os.path.isdir(package_directory):
|
|
577
|
+
found = False
|
|
578
|
+
|
|
579
|
+
for suffix, module_type in getModuleFilenameSuffixes():
|
|
580
|
+
package_file_name = "__init__" + suffix
|
|
581
|
+
|
|
582
|
+
file_path = os.path.join(package_directory, package_file_name)
|
|
583
|
+
|
|
584
|
+
if os.path.isfile(file_path):
|
|
585
|
+
candidates.add(
|
|
586
|
+
ImportScanFinding(
|
|
587
|
+
found_in=entry,
|
|
588
|
+
module_type=module_type,
|
|
589
|
+
priority=priority_map[module_type],
|
|
590
|
+
full_path=package_directory,
|
|
591
|
+
search_order=count,
|
|
592
|
+
)
|
|
593
|
+
)
|
|
594
|
+
found = True
|
|
595
|
+
|
|
596
|
+
if not found and python_version >= 0x300:
|
|
597
|
+
candidates.add(
|
|
598
|
+
ImportScanFinding(
|
|
599
|
+
found_in=entry,
|
|
600
|
+
module_type=10,
|
|
601
|
+
priority=10,
|
|
602
|
+
full_path=package_directory,
|
|
603
|
+
search_order=count + len(search_path),
|
|
604
|
+
)
|
|
605
|
+
)
|
|
606
|
+
|
|
607
|
+
# Then, check out suffixes of all kinds, but only for one directory.
|
|
608
|
+
last_module_type = 0
|
|
609
|
+
for suffix, module_type in getModuleFilenameSuffixes():
|
|
610
|
+
# Use first match per kind only.
|
|
611
|
+
if module_type == last_module_type:
|
|
612
|
+
continue
|
|
613
|
+
|
|
614
|
+
full_path = os.path.join(entry, module_name + suffix)
|
|
615
|
+
|
|
616
|
+
if os.path.isfile(full_path):
|
|
617
|
+
candidates.add(
|
|
618
|
+
ImportScanFinding(
|
|
619
|
+
found_in=entry,
|
|
620
|
+
module_type=module_type,
|
|
621
|
+
priority=4 + priority_map[module_type],
|
|
622
|
+
full_path=full_path,
|
|
623
|
+
search_order=count,
|
|
624
|
+
)
|
|
625
|
+
)
|
|
626
|
+
last_module_type = module_type
|
|
627
|
+
|
|
628
|
+
if logger is not None:
|
|
629
|
+
logger.info("Candidates: %r" % candidates)
|
|
630
|
+
|
|
631
|
+
found_candidate = None
|
|
632
|
+
|
|
633
|
+
if candidates:
|
|
634
|
+
# Sort by priority, with entries from same path element coming first, then desired type.
|
|
635
|
+
candidates = tuple(
|
|
636
|
+
sorted(candidates, key=lambda c: (c.search_order, c.priority))
|
|
637
|
+
)
|
|
638
|
+
|
|
639
|
+
# On case sensitive systems, no resolution needed.
|
|
640
|
+
if case_sensitive:
|
|
641
|
+
found_candidate = candidates[0]
|
|
642
|
+
else:
|
|
643
|
+
for candidate in candidates:
|
|
644
|
+
for fullname, _filename in listDirCached(candidate.found_in):
|
|
645
|
+
if fullname == candidate.full_path:
|
|
646
|
+
found_candidate = candidate
|
|
647
|
+
break
|
|
648
|
+
|
|
649
|
+
if found_candidate:
|
|
650
|
+
break
|
|
651
|
+
|
|
652
|
+
# Only exact case matches matter, all candidates were ignored,
|
|
653
|
+
# lets just fall through to raising the import error.
|
|
654
|
+
|
|
655
|
+
if found_candidate is None:
|
|
656
|
+
# Nothing found.
|
|
657
|
+
raise ImportError
|
|
658
|
+
if (
|
|
659
|
+
found_candidate.module_type == "C_EXTENSION"
|
|
660
|
+
and isMacOS()
|
|
661
|
+
and not hasUniversalOrMatchingMacOSArchitecture(
|
|
662
|
+
getPackageDirFilename(found_candidate.full_path)
|
|
663
|
+
if os.path.isdir(found_candidate.full_path)
|
|
664
|
+
else found_candidate.full_path
|
|
665
|
+
)
|
|
666
|
+
):
|
|
667
|
+
# Not usable for target architecture.
|
|
668
|
+
raise ImportError
|
|
669
|
+
|
|
670
|
+
_reportCandidates(
|
|
671
|
+
package_name=package_name,
|
|
672
|
+
module_name=module_name,
|
|
673
|
+
candidate=found_candidate,
|
|
674
|
+
candidates=candidates,
|
|
675
|
+
)
|
|
676
|
+
|
|
677
|
+
return (
|
|
678
|
+
found_candidate.full_path,
|
|
679
|
+
"extension" if found_candidate.module_type == "C_EXTENSION" else "py",
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
_egg_files = {}
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
def _unpackPathElement(path_entry):
|
|
687
|
+
if not path_entry:
|
|
688
|
+
return "." # empty means current directory
|
|
689
|
+
|
|
690
|
+
if os.path.isfile(path_entry):
|
|
691
|
+
if path_entry.lower().endswith((".egg", ".zip")):
|
|
692
|
+
if path_entry not in _egg_files:
|
|
693
|
+
checksum = getFileContentsHash(path_entry)
|
|
694
|
+
|
|
695
|
+
target_dir = os.path.join(getCacheDir("egg-content"), checksum)
|
|
696
|
+
|
|
697
|
+
if not os.path.exists(target_dir):
|
|
698
|
+
try:
|
|
699
|
+
# Not all Python versions allow using with here, pylint: disable=consider-using-with
|
|
700
|
+
zip_ref = zipfile.ZipFile(path_entry, "r")
|
|
701
|
+
zip_ref.extractall(target_dir)
|
|
702
|
+
zip_ref.close()
|
|
703
|
+
except BaseException:
|
|
704
|
+
removeDirectory(
|
|
705
|
+
target_dir,
|
|
706
|
+
logger=recursion_logger,
|
|
707
|
+
ignore_errors=True,
|
|
708
|
+
extra_recommendation=None,
|
|
709
|
+
)
|
|
710
|
+
raise
|
|
711
|
+
|
|
712
|
+
_egg_files[path_entry] = target_dir
|
|
713
|
+
|
|
714
|
+
return _egg_files[path_entry]
|
|
715
|
+
|
|
716
|
+
return path_entry
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
def getPythonUnpackedSearchPath():
|
|
720
|
+
"""Python search path with with eggs unpacked."""
|
|
721
|
+
|
|
722
|
+
# TODO: Maybe cache this for a given "sys.path" as we do IO checks each time.
|
|
723
|
+
return [_unpackPathElement(path_element) for path_element in sys.path]
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
def getPackageSearchPath(package_name):
|
|
727
|
+
if not _main_paths:
|
|
728
|
+
return None
|
|
729
|
+
|
|
730
|
+
if package_name is None:
|
|
731
|
+
result = []
|
|
732
|
+
|
|
733
|
+
if not _safe_path:
|
|
734
|
+
result.append(os.getcwd())
|
|
735
|
+
|
|
736
|
+
result += list(_main_paths) + getPythonUnpackedSearchPath() + list(_extra_paths)
|
|
737
|
+
elif "." in package_name:
|
|
738
|
+
parent_package_name, child_package_name = package_name.splitModuleBasename()
|
|
739
|
+
|
|
740
|
+
result = []
|
|
741
|
+
for element in getPackageSearchPath(parent_package_name):
|
|
742
|
+
package_dir = os.path.join(element, child_package_name.asPath())
|
|
743
|
+
|
|
744
|
+
if isPackageDir(package_dir):
|
|
745
|
+
result.append(package_dir)
|
|
746
|
+
# Hack for "uniconvertor". TODO: Move this to plug-in decision. This
|
|
747
|
+
# fails the above test, but at run time should be a package.
|
|
748
|
+
# spell-checker: ignore uniconvertor
|
|
749
|
+
elif package_name == "uniconvertor.app.modules":
|
|
750
|
+
result.append(package_dir)
|
|
751
|
+
|
|
752
|
+
return result
|
|
753
|
+
|
|
754
|
+
else:
|
|
755
|
+
preloaded_path = getPreloadedPackagePath(package_name)
|
|
756
|
+
|
|
757
|
+
if preloaded_path is not None:
|
|
758
|
+
return preloaded_path
|
|
759
|
+
|
|
760
|
+
def getPackageDirCandidates(element):
|
|
761
|
+
yield os.path.join(element, package_name.asPath()), False
|
|
762
|
+
|
|
763
|
+
for extra_path in Plugins.getPackageExtraScanPaths(package_name, element):
|
|
764
|
+
yield extra_path, True
|
|
765
|
+
|
|
766
|
+
result = []
|
|
767
|
+
for element in getPackageSearchPath(None):
|
|
768
|
+
for package_dir, force_package in getPackageDirCandidates(element):
|
|
769
|
+
if isPackageDir(package_dir) or force_package:
|
|
770
|
+
result.append(package_dir)
|
|
771
|
+
|
|
772
|
+
return OrderedSet(
|
|
773
|
+
element for element in OrderedSet(result) if os.path.exists(element)
|
|
774
|
+
)
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
def _findModuleInPath(module_name, logger):
|
|
778
|
+
package_name, module_name = module_name.splitModuleBasename()
|
|
779
|
+
|
|
780
|
+
if logger is not None:
|
|
781
|
+
logger.info(
|
|
782
|
+
"_findModuleInPath: Enter for %s in %s" % (module_name, package_name)
|
|
783
|
+
)
|
|
784
|
+
|
|
785
|
+
# The "site" module must be located based on PYTHONPATH before it was
|
|
786
|
+
# executed, while we normally search in PYTHONPATH after it was executed,
|
|
787
|
+
# and on some systems, that fails.
|
|
788
|
+
if package_name is None and module_name == "site":
|
|
789
|
+
candidate = getLaunchingNuitkaProcessEnvironmentValue("NUITKA_SITE_FILENAME")
|
|
790
|
+
|
|
791
|
+
if candidate:
|
|
792
|
+
return candidate, "py"
|
|
793
|
+
|
|
794
|
+
# Free pass for built-in modules, they need not exist.
|
|
795
|
+
if package_name is None and isBuiltinModuleName(module_name):
|
|
796
|
+
return None, "built-in"
|
|
797
|
+
|
|
798
|
+
search_path = getPackageSearchPath(package_name)
|
|
799
|
+
|
|
800
|
+
if logger is not None:
|
|
801
|
+
logger.info(
|
|
802
|
+
"_findModuleInPath: Using search path %s for %s"
|
|
803
|
+
% (search_path, package_name)
|
|
804
|
+
)
|
|
805
|
+
|
|
806
|
+
try:
|
|
807
|
+
module_filename, module_kind = _findModuleInPath2(
|
|
808
|
+
package_name=package_name,
|
|
809
|
+
module_name=module_name,
|
|
810
|
+
search_path=search_path,
|
|
811
|
+
logger=logger,
|
|
812
|
+
)
|
|
813
|
+
except SyntaxError:
|
|
814
|
+
# Warn user, as this is kind of unusual.
|
|
815
|
+
recursion_logger.warning(
|
|
816
|
+
"%s: Module cannot be imported due to syntax errors.",
|
|
817
|
+
module_name if package_name is None else package_name + "." + module_name,
|
|
818
|
+
)
|
|
819
|
+
|
|
820
|
+
return None, None
|
|
821
|
+
|
|
822
|
+
if logger is not None:
|
|
823
|
+
logger.info(
|
|
824
|
+
"_findModuleInPath: _findModuleInPath2 gave %s %s"
|
|
825
|
+
% (module_filename, module_kind)
|
|
826
|
+
)
|
|
827
|
+
|
|
828
|
+
return module_filename, module_kind
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
module_search_cache = {}
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
def _findModule(module_name, logger):
|
|
835
|
+
# Not a good module name. TODO: Push this to ModuleName() creation maybe.
|
|
836
|
+
assert module_name != ""
|
|
837
|
+
|
|
838
|
+
if logger is not None:
|
|
839
|
+
logger.info("_findModule: Enter to search '%s'." % module_name)
|
|
840
|
+
|
|
841
|
+
assert module_name.getBasename(), module_name
|
|
842
|
+
|
|
843
|
+
key = module_name
|
|
844
|
+
|
|
845
|
+
if key in module_search_cache:
|
|
846
|
+
result = module_search_cache[key]
|
|
847
|
+
|
|
848
|
+
if logger is not None:
|
|
849
|
+
logger.info("_findModule: Cached result (see previous call).")
|
|
850
|
+
|
|
851
|
+
if result is ImportError:
|
|
852
|
+
raise ImportError
|
|
853
|
+
|
|
854
|
+
return result
|
|
855
|
+
|
|
856
|
+
try:
|
|
857
|
+
module_search_cache[key] = _findModuleInPath(
|
|
858
|
+
module_name=module_name,
|
|
859
|
+
logger=logger,
|
|
860
|
+
)
|
|
861
|
+
except ImportError:
|
|
862
|
+
module_search_cache[key] = ImportError
|
|
863
|
+
raise
|
|
864
|
+
|
|
865
|
+
# assert len(module_search_cache[key]) == 2, (module_name, module_search_cache[key])
|
|
866
|
+
|
|
867
|
+
return module_search_cache[key]
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
def locateModule(module_name, parent_package, level, logger=None):
|
|
871
|
+
"""Locate a module with given package name as parent.
|
|
872
|
+
|
|
873
|
+
The package name can be None of course. Level is the same
|
|
874
|
+
as with "__import__" built-in.
|
|
875
|
+
|
|
876
|
+
Returns:
|
|
877
|
+
Returns a tuple of module name the module has considering
|
|
878
|
+
package containing it, and filename of it which can be a
|
|
879
|
+
directory for packages, the module kind, and the finding
|
|
880
|
+
kind.
|
|
881
|
+
"""
|
|
882
|
+
|
|
883
|
+
if not _main_paths:
|
|
884
|
+
raise NuitkaCodeDeficit(
|
|
885
|
+
"Error, cannot locate modules before import mechanism is setup."
|
|
886
|
+
)
|
|
887
|
+
|
|
888
|
+
if module_name.isMultidistModuleName():
|
|
889
|
+
return locateMultidistModule(module_name)
|
|
890
|
+
|
|
891
|
+
if _debug_module_finding and logger is None:
|
|
892
|
+
logger = recursion_logger
|
|
893
|
+
|
|
894
|
+
module_package, module_filename, module_kind, finding = findModule(
|
|
895
|
+
module_name=module_name,
|
|
896
|
+
parent_package=parent_package,
|
|
897
|
+
level=level,
|
|
898
|
+
logger=logger,
|
|
899
|
+
)
|
|
900
|
+
|
|
901
|
+
# Allowing ourselves to be lazy.
|
|
902
|
+
assert module_kind is not None or module_filename is None, module_name
|
|
903
|
+
|
|
904
|
+
assert module_package is None or (
|
|
905
|
+
type(module_package) is ModuleName and module_package != ""
|
|
906
|
+
), ("Must not attempt to locate %r" % module_name)
|
|
907
|
+
|
|
908
|
+
if module_filename is not None:
|
|
909
|
+
module_filename = getNormalizedPath(module_filename)
|
|
910
|
+
|
|
911
|
+
module_name, module_kind = getModuleNameAndKindFromFilename(module_filename)
|
|
912
|
+
module_name = ModuleName.makeModuleNameInPackage(module_name, module_package)
|
|
913
|
+
elif finding == "not-found":
|
|
914
|
+
if parent_package is not None:
|
|
915
|
+
if not module_name:
|
|
916
|
+
module_name = parent_package
|
|
917
|
+
elif level != 0:
|
|
918
|
+
module_name = ModuleName.makeModuleNameInPackage(
|
|
919
|
+
package_name=parent_package, module_name=module_name
|
|
920
|
+
)
|
|
921
|
+
elif level > 0:
|
|
922
|
+
module_name = ModuleName("")
|
|
923
|
+
|
|
924
|
+
return module_name, module_filename, module_kind, finding
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
def locateModules(package_name):
|
|
928
|
+
"""Determine child module names.
|
|
929
|
+
|
|
930
|
+
Return:
|
|
931
|
+
generator of ModuleName objects
|
|
932
|
+
"""
|
|
933
|
+
package_name = ModuleName(package_name)
|
|
934
|
+
|
|
935
|
+
module_filename = locateModule(
|
|
936
|
+
module_name=ModuleName(package_name), parent_package=None, level=0
|
|
937
|
+
)[1]
|
|
938
|
+
|
|
939
|
+
if module_filename is not None:
|
|
940
|
+
for sub_module in iter_modules([module_filename]):
|
|
941
|
+
yield package_name.getChildNamed(sub_module.name)
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
def decideModuleSourceRef(filename, module_name, is_main, is_fake, logger):
|
|
945
|
+
# Many branches due to the many cases
|
|
946
|
+
|
|
947
|
+
assert type(module_name) is ModuleName, module_name
|
|
948
|
+
assert filename is not None
|
|
949
|
+
|
|
950
|
+
is_namespace = False
|
|
951
|
+
is_package = False
|
|
952
|
+
|
|
953
|
+
if is_main and os.path.isdir(filename):
|
|
954
|
+
source_filename = getNormalizedPath(os.path.join(filename, "__main__.py"))
|
|
955
|
+
|
|
956
|
+
if not os.path.isfile(source_filename):
|
|
957
|
+
sys.stderr.write(
|
|
958
|
+
"%s: can't find '__main__' module in '%s'\n"
|
|
959
|
+
% (os.path.basename(sys.argv[0]), filename)
|
|
960
|
+
)
|
|
961
|
+
sys.exit(2)
|
|
962
|
+
|
|
963
|
+
filename = source_filename
|
|
964
|
+
|
|
965
|
+
main_added = True
|
|
966
|
+
else:
|
|
967
|
+
main_added = False
|
|
968
|
+
|
|
969
|
+
if is_fake:
|
|
970
|
+
source_filename = filename
|
|
971
|
+
|
|
972
|
+
source_ref = SourceCodeReferences.fromFilename(filename=filename)
|
|
973
|
+
|
|
974
|
+
module_name = is_fake
|
|
975
|
+
|
|
976
|
+
elif os.path.isfile(filename):
|
|
977
|
+
source_filename = filename
|
|
978
|
+
|
|
979
|
+
source_ref = SourceCodeReferences.fromFilename(filename=filename)
|
|
980
|
+
|
|
981
|
+
elif isPackageDir(filename):
|
|
982
|
+
is_package = True
|
|
983
|
+
|
|
984
|
+
source_filename = getNormalizedPath(os.path.join(filename, "__init__.py"))
|
|
985
|
+
|
|
986
|
+
if not os.path.isfile(source_filename):
|
|
987
|
+
source_ref = SourceCodeReferences.fromFilename(
|
|
988
|
+
filename=filename
|
|
989
|
+
).atInternal()
|
|
990
|
+
is_namespace = True
|
|
991
|
+
else:
|
|
992
|
+
source_ref = SourceCodeReferences.fromFilename(
|
|
993
|
+
filename=getNormalizedPath(os.path.abspath(source_filename))
|
|
994
|
+
)
|
|
995
|
+
|
|
996
|
+
else:
|
|
997
|
+
logger.sysexit(
|
|
998
|
+
"%s: can't open file '%s'." % (os.path.basename(sys.argv[0]), filename),
|
|
999
|
+
exit_code=2,
|
|
1000
|
+
)
|
|
1001
|
+
|
|
1002
|
+
return (
|
|
1003
|
+
main_added,
|
|
1004
|
+
is_package,
|
|
1005
|
+
is_namespace,
|
|
1006
|
+
source_ref,
|
|
1007
|
+
source_filename,
|
|
1008
|
+
)
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
# spell-checker: ignore _posixsubprocess,pyexpat,xxsubtype,_bytesio,_interpchannels
|
|
1012
|
+
# spell-checker: ignore _interpqueues,_lsprof,_multibytecodec,_posixshmem _winapi
|
|
1013
|
+
# spell-checker: ignore _testbuffer _testexternalinspection _testimportmultiple
|
|
1014
|
+
# spell-checker: ignore _testinternalcapi _testmultiphase _testsinglephase
|
|
1015
|
+
# spell-checker: ignore _xxtestfuzz _xxsubinterpreters imageop _xxinterpchannels
|
|
1016
|
+
_stdlib_module_raises = {
|
|
1017
|
+
"_abc": False,
|
|
1018
|
+
"__builtin__": False,
|
|
1019
|
+
"_ast": False,
|
|
1020
|
+
"_asyncio": False,
|
|
1021
|
+
"_bisect": False,
|
|
1022
|
+
"_blake2": False,
|
|
1023
|
+
"_bytesio": False,
|
|
1024
|
+
"_bz2": False,
|
|
1025
|
+
"_codecs_cn": False,
|
|
1026
|
+
"_codecs_hk": False,
|
|
1027
|
+
"_codecs_iso2022": False,
|
|
1028
|
+
"_codecs_jp": False,
|
|
1029
|
+
"_codecs_kr": False,
|
|
1030
|
+
"_codecs_tw": False,
|
|
1031
|
+
"_codecs": False,
|
|
1032
|
+
"_collections": False,
|
|
1033
|
+
"_contextvars": False,
|
|
1034
|
+
"_crypt": False,
|
|
1035
|
+
"_csv": False,
|
|
1036
|
+
"_ctypes": False,
|
|
1037
|
+
"_ctypes_test": False,
|
|
1038
|
+
"_curses": False,
|
|
1039
|
+
"_curses_panel": False,
|
|
1040
|
+
"_datetime": False,
|
|
1041
|
+
"_dbm": False,
|
|
1042
|
+
"_decimal": False,
|
|
1043
|
+
"_elementtree": False,
|
|
1044
|
+
"_fileio": False,
|
|
1045
|
+
"_functools": False,
|
|
1046
|
+
"_hashlib": False,
|
|
1047
|
+
"_heapq": False,
|
|
1048
|
+
"_hotshot": False,
|
|
1049
|
+
"_imp": False,
|
|
1050
|
+
"_interpchannels": False,
|
|
1051
|
+
"_interpqueues": False,
|
|
1052
|
+
"_interpreters": False,
|
|
1053
|
+
"_io": False,
|
|
1054
|
+
"_json": False,
|
|
1055
|
+
"_locale": False,
|
|
1056
|
+
"_lsprof": False,
|
|
1057
|
+
"_lzma": False,
|
|
1058
|
+
"_md5": False,
|
|
1059
|
+
"_multiprocessing": False,
|
|
1060
|
+
"_multibytecodec": False,
|
|
1061
|
+
"_opcode": False,
|
|
1062
|
+
"_operator": False,
|
|
1063
|
+
"_peg_parser": False,
|
|
1064
|
+
"_pickle": False,
|
|
1065
|
+
"_posixshmem": False,
|
|
1066
|
+
"_posixsubprocess": False,
|
|
1067
|
+
"_queue": False,
|
|
1068
|
+
"_random": False,
|
|
1069
|
+
"_sha": False, # TODO: Not entirely clear if that's true
|
|
1070
|
+
"_sha1": False,
|
|
1071
|
+
"_sha2": False,
|
|
1072
|
+
"_sha256": False,
|
|
1073
|
+
"_sha3": False,
|
|
1074
|
+
"_sha512": False,
|
|
1075
|
+
"_signal": False,
|
|
1076
|
+
"_socket": False,
|
|
1077
|
+
"_sqlite3": False,
|
|
1078
|
+
"_sre": False,
|
|
1079
|
+
"_stat": False,
|
|
1080
|
+
"_statistics": False,
|
|
1081
|
+
"_ssl": True,
|
|
1082
|
+
"_string": False,
|
|
1083
|
+
"_struct": False,
|
|
1084
|
+
"_subprocess": False,
|
|
1085
|
+
"_suggestions": False,
|
|
1086
|
+
"_symtable": False,
|
|
1087
|
+
"_sysconfig": False,
|
|
1088
|
+
"_testbuffer": False,
|
|
1089
|
+
"_testexternalinspection": False,
|
|
1090
|
+
"_testimportmultiple": False,
|
|
1091
|
+
"_testinternalcapi": False,
|
|
1092
|
+
"_testmultiphase": False,
|
|
1093
|
+
"_testsinglephase": False,
|
|
1094
|
+
"_thread": False,
|
|
1095
|
+
"_tkinter": True,
|
|
1096
|
+
"_tokenize": False,
|
|
1097
|
+
"_tracemalloc": False,
|
|
1098
|
+
"_typing": False,
|
|
1099
|
+
"_uuid": False,
|
|
1100
|
+
"_warnings": False,
|
|
1101
|
+
"_weakref": False,
|
|
1102
|
+
"_winapi": False,
|
|
1103
|
+
"_winreg": False,
|
|
1104
|
+
"_xxtestfuzz": False,
|
|
1105
|
+
"_xxsubinterpreters": False,
|
|
1106
|
+
"_xxinterpchannels": False,
|
|
1107
|
+
"_zoneinfo": False,
|
|
1108
|
+
"array": False,
|
|
1109
|
+
"atexit": False,
|
|
1110
|
+
"audioop": False,
|
|
1111
|
+
"binascii": False,
|
|
1112
|
+
"builtins": False,
|
|
1113
|
+
"cPickle": False,
|
|
1114
|
+
"cStringIO": False,
|
|
1115
|
+
"cmath": False,
|
|
1116
|
+
"datetime": False,
|
|
1117
|
+
"errno": False,
|
|
1118
|
+
"exceptions": False,
|
|
1119
|
+
"faulthandler": False,
|
|
1120
|
+
"fcntl": False,
|
|
1121
|
+
"future_builtins": False,
|
|
1122
|
+
"gc": False,
|
|
1123
|
+
"grp": False,
|
|
1124
|
+
"imageop": False,
|
|
1125
|
+
"imp": False,
|
|
1126
|
+
"itertools": False,
|
|
1127
|
+
"marshal": False,
|
|
1128
|
+
"math": False,
|
|
1129
|
+
"mmap": False,
|
|
1130
|
+
"msvcrt": False,
|
|
1131
|
+
"nis": False,
|
|
1132
|
+
"nt": False,
|
|
1133
|
+
"operator": False,
|
|
1134
|
+
"ossaudiodev": False,
|
|
1135
|
+
"parser": False,
|
|
1136
|
+
"posix": False,
|
|
1137
|
+
"pwd": False,
|
|
1138
|
+
"pyexpat": False,
|
|
1139
|
+
"readline": True,
|
|
1140
|
+
"resource": False,
|
|
1141
|
+
"select": False,
|
|
1142
|
+
"signal": False,
|
|
1143
|
+
"spwd": False,
|
|
1144
|
+
"strop": False,
|
|
1145
|
+
"sys": False,
|
|
1146
|
+
"syslog": False,
|
|
1147
|
+
"termios": False,
|
|
1148
|
+
"thread": False,
|
|
1149
|
+
"time": False,
|
|
1150
|
+
"unicodedata": False,
|
|
1151
|
+
"winreg": False,
|
|
1152
|
+
"xxsubtype": False,
|
|
1153
|
+
"zipimport": False,
|
|
1154
|
+
"zlib": False,
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
def isNonRaisingBuiltinModule(module_name):
|
|
1159
|
+
assert isBuiltinModuleName(module_name), module_name
|
|
1160
|
+
|
|
1161
|
+
# Return None, if we don't know.
|
|
1162
|
+
return _stdlib_module_raises.get(module_name)
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
def _getChildPackageNames(module_name):
|
|
1166
|
+
module_name = ModuleName(module_name)
|
|
1167
|
+
|
|
1168
|
+
_module_name, module_filename, _module_kind, _finding = locateModule(
|
|
1169
|
+
parent_package=None, module_name=module_name, level=0
|
|
1170
|
+
)
|
|
1171
|
+
|
|
1172
|
+
package_dir = module_filename
|
|
1173
|
+
|
|
1174
|
+
for module_info in iter_modules([package_dir]):
|
|
1175
|
+
child_name = module_name.getChildNamed(module_info.name)
|
|
1176
|
+
yield child_name
|
|
1177
|
+
|
|
1178
|
+
if module_info.ispkg: # spell-checker: ignore ispkg
|
|
1179
|
+
for sub_module_name in getChildPackageNames(child_name):
|
|
1180
|
+
yield sub_module_name
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
def getChildPackageNames(module_name):
|
|
1184
|
+
return tuple(_getChildPackageNames(module_name))
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1188
|
+
# integrates with CPython, but also works on its own.
|
|
1189
|
+
#
|
|
1190
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1191
|
+
# you may not use this file except in compliance with the License.
|
|
1192
|
+
# You may obtain a copy of the License at
|
|
1193
|
+
#
|
|
1194
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1195
|
+
#
|
|
1196
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1197
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1198
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1199
|
+
# See the License for the specific language governing permissions and
|
|
1200
|
+
# limitations under the License.
|