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.

Files changed (995) hide show
  1. nuitka/Builtins.py +259 -0
  2. nuitka/BytecodeCaching.py +184 -0
  3. nuitka/Bytecodes.py +109 -0
  4. nuitka/CacheCleanup.py +54 -0
  5. nuitka/Constants.py +425 -0
  6. nuitka/Errors.py +93 -0
  7. nuitka/HardImportRegistry.py +408 -0
  8. nuitka/MainControl.py +1201 -0
  9. nuitka/ModuleRegistry.py +364 -0
  10. nuitka/OptionParsing.py +2473 -0
  11. nuitka/Options.py +2948 -0
  12. nuitka/OutputDirectories.py +201 -0
  13. nuitka/PostProcessing.py +551 -0
  14. nuitka/Progress.py +252 -0
  15. nuitka/PythonFlavors.py +426 -0
  16. nuitka/PythonOperators.py +146 -0
  17. nuitka/PythonVersions.py +513 -0
  18. nuitka/Serialization.py +291 -0
  19. nuitka/SourceCodeReferences.py +176 -0
  20. nuitka/Tracing.py +579 -0
  21. nuitka/TreeXML.py +141 -0
  22. nuitka/Variables.py +515 -0
  23. nuitka/Version.py +88 -0
  24. nuitka/__init__.py +19 -0
  25. nuitka/__main__.py +224 -0
  26. nuitka/__past__.py +217 -0
  27. nuitka/build/Backend.scons +1111 -0
  28. nuitka/build/CCompilerVersion.scons +281 -0
  29. nuitka/build/DataComposerInterface.py +116 -0
  30. nuitka/build/Offsets.scons +626 -0
  31. nuitka/build/Onefile.scons +564 -0
  32. nuitka/build/SconsCaching.py +451 -0
  33. nuitka/build/SconsCompilerSettings.py +1133 -0
  34. nuitka/build/SconsHacks.py +215 -0
  35. nuitka/build/SconsInterface.py +664 -0
  36. nuitka/build/SconsProgress.py +100 -0
  37. nuitka/build/SconsSpawn.py +436 -0
  38. nuitka/build/SconsUtils.py +939 -0
  39. nuitka/build/__init__.py +19 -0
  40. nuitka/build/include/nuitka/allocator.h +450 -0
  41. nuitka/build/include/nuitka/builtins.h +97 -0
  42. nuitka/build/include/nuitka/calling.h +123 -0
  43. nuitka/build/include/nuitka/checkers.h +39 -0
  44. nuitka/build/include/nuitka/checksum_tools.h +28 -0
  45. nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
  46. nuitka/build/include/nuitka/compiled_cell.h +64 -0
  47. nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
  48. nuitka/build/include/nuitka/compiled_frame.h +502 -0
  49. nuitka/build/include/nuitka/compiled_function.h +170 -0
  50. nuitka/build/include/nuitka/compiled_generator.h +287 -0
  51. nuitka/build/include/nuitka/compiled_method.h +54 -0
  52. nuitka/build/include/nuitka/constants.h +251 -0
  53. nuitka/build/include/nuitka/constants_blob.h +34 -0
  54. nuitka/build/include/nuitka/debug_settings.h +60 -0
  55. nuitka/build/include/nuitka/environment_variables.h +30 -0
  56. nuitka/build/include/nuitka/environment_variables_system.h +51 -0
  57. nuitka/build/include/nuitka/exception_groups.h +167 -0
  58. nuitka/build/include/nuitka/exceptions.h +1458 -0
  59. nuitka/build/include/nuitka/filesystem_paths.h +117 -0
  60. nuitka/build/include/nuitka/freelists.h +92 -0
  61. nuitka/build/include/nuitka/hedley.h +1774 -0
  62. nuitka/build/include/nuitka/helper/attributes.h +90 -0
  63. nuitka/build/include/nuitka/helper/boolean.h +86 -0
  64. nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
  65. nuitka/build/include/nuitka/helper/bytes.h +28 -0
  66. nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
  67. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
  68. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
  69. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
  70. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
  71. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
  73. nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
  74. nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
  75. nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
  76. nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
  77. nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
  78. nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
  79. nuitka/build/include/nuitka/helper/complex.h +46 -0
  80. nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
  81. nuitka/build/include/nuitka/helper/floats.h +32 -0
  82. nuitka/build/include/nuitka/helper/import_hard.h +121 -0
  83. nuitka/build/include/nuitka/helper/indexes.h +47 -0
  84. nuitka/build/include/nuitka/helper/ints.h +165 -0
  85. nuitka/build/include/nuitka/helper/iterators.h +376 -0
  86. nuitka/build/include/nuitka/helper/lists.h +94 -0
  87. nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
  88. nuitka/build/include/nuitka/helper/mappings.h +39 -0
  89. nuitka/build/include/nuitka/helper/operations.h +114 -0
  90. nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
  91. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
  92. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
  93. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
  94. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
  95. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
  96. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
  97. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
  98. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
  99. nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
  100. nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
  101. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
  102. nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
  103. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
  104. nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
  105. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
  106. nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
  107. nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
  108. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
  109. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
  110. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
  111. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
  112. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
  113. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
  114. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
  115. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
  116. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
  117. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
  118. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
  119. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
  120. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
  121. nuitka/build/include/nuitka/helper/raising.h +114 -0
  122. nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
  123. nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
  124. nuitka/build/include/nuitka/helper/sequences.h +33 -0
  125. nuitka/build/include/nuitka/helper/sets.h +25 -0
  126. nuitka/build/include/nuitka/helper/slices.h +314 -0
  127. nuitka/build/include/nuitka/helper/strings.h +30 -0
  128. nuitka/build/include/nuitka/helper/subscripts.h +390 -0
  129. nuitka/build/include/nuitka/helper/tuples.h +187 -0
  130. nuitka/build/include/nuitka/helpers.h +417 -0
  131. nuitka/build/include/nuitka/importing.h +149 -0
  132. nuitka/build/include/nuitka/incbin.h +402 -0
  133. nuitka/build/include/nuitka/jit_sources.h +25 -0
  134. nuitka/build/include/nuitka/prelude.h +626 -0
  135. nuitka/build/include/nuitka/printing.h +84 -0
  136. nuitka/build/include/nuitka/python_pgo.h +57 -0
  137. nuitka/build/include/nuitka/safe_string_ops.h +57 -0
  138. nuitka/build/include/nuitka/threading.h +142 -0
  139. nuitka/build/include/nuitka/tracing.h +82 -0
  140. nuitka/build/include/nuitka/type_aliases.h +30 -0
  141. nuitka/build/include/nuitka/unfreezing.h +91 -0
  142. nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
  143. nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
  144. nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
  145. nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
  146. nuitka/build/inline_copy/bin/scons.py +58 -0
  147. nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
  148. nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
  149. nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
  150. nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
  151. nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
  152. nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
  153. nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
  154. nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
  155. nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
  156. nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
  157. nuitka/build/inline_copy/glob2/LICENSE +27 -0
  158. nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
  159. nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
  160. nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
  161. nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
  162. nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
  163. nuitka/build/inline_copy/jinja2/README.rst +2 -0
  164. nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
  165. nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
  166. nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
  167. nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
  168. nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
  169. nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
  170. nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
  171. nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
  172. nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
  173. nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
  174. nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
  175. nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
  176. nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
  177. nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
  178. nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
  179. nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
  180. nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
  181. nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
  182. nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
  183. nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
  184. nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
  185. nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
  186. nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
  187. nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
  188. nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
  189. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
  190. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
  191. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
  192. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
  193. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
  194. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
  195. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
  196. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
  197. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
  198. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
  199. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
  200. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
  201. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
  202. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
  203. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
  204. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
  205. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
  206. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
  207. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
  208. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
  209. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
  210. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
  211. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
  212. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
  213. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
  214. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
  215. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
  216. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
  217. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
  218. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
  219. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
  220. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
  221. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
  222. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
  223. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
  224. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
  225. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
  226. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
  227. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
  228. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
  229. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
  230. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
  231. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
  232. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
  233. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
  234. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
  235. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
  236. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
  237. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
  238. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
  239. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
  240. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
  241. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
  242. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
  243. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
  244. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
  245. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
  246. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
  247. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
  248. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
  249. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
  250. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
  251. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
  252. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
  253. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
  254. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
  255. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
  256. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
  257. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
  258. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
  259. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
  260. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
  261. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
  262. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
  263. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
  264. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
  265. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
  266. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
  267. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
  268. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
  269. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
  270. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
  271. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
  272. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
  273. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
  274. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
  275. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
  276. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
  277. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
  278. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
  279. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
  280. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
  281. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
  282. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
  283. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
  284. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
  285. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
  286. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
  287. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
  288. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
  289. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
  290. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
  291. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
  292. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
  293. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
  294. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
  295. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
  296. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
  297. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
  298. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
  299. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
  300. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
  301. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
  302. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
  303. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
  304. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
  305. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
  306. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
  307. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
  308. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
  309. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
  310. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
  311. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
  312. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
  313. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
  314. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
  315. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
  316. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
  317. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
  318. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
  319. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
  320. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
  321. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
  322. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
  323. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
  324. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
  325. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
  326. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
  327. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
  328. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
  329. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
  330. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
  331. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
  332. nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
  333. nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
  334. nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
  335. nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
  336. nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
  337. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  338. nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
  339. nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
  340. nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
  341. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  342. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
  343. nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
  344. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  345. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  346. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  347. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  348. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  349. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  350. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  351. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  352. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  353. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  354. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  355. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  356. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  357. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  358. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  359. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  360. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  361. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  362. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  363. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  364. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  365. nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
  366. nuitka/build/inline_copy/stubgen/six.py +998 -0
  367. nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
  368. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
  369. nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
  370. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
  371. nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
  372. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
  373. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
  374. nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
  375. nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
  376. nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
  377. nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
  378. nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
  379. nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
  380. nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
  381. nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
  382. nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
  383. nuitka/build/inline_copy/yaml/LICENSE +20 -0
  384. nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
  385. nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
  386. nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
  387. nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
  388. nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
  389. nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
  390. nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
  391. nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
  392. nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
  393. nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
  394. nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
  395. nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
  396. nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
  397. nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
  398. nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
  399. nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
  400. nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
  401. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  402. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  403. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  404. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  405. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  406. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  407. nuitka/build/inline_copy/zstd/LICENSE.txt +30 -0
  408. nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
  409. nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
  410. nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
  411. nuitka/build/inline_copy/zstd/common/debug.h +107 -0
  412. nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
  413. nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
  414. nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
  415. nuitka/build/inline_copy/zstd/common/fse.h +715 -0
  416. nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
  417. nuitka/build/inline_copy/zstd/common/huf.h +361 -0
  418. nuitka/build/inline_copy/zstd/common/mem.h +426 -0
  419. nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
  420. nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
  421. nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
  422. nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
  423. nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
  424. nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
  425. nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
  426. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
  427. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
  428. nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
  429. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
  430. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
  431. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
  432. nuitka/build/inline_copy/zstd/zstd.h +2391 -0
  433. nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
  434. nuitka/build/static_src/CompiledCellType.c +300 -0
  435. nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
  436. nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
  437. nuitka/build/static_src/CompiledFrameType.c +1337 -0
  438. nuitka/build/static_src/CompiledFunctionType.c +3320 -0
  439. nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
  440. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
  441. nuitka/build/static_src/CompiledMethodType.c +614 -0
  442. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  443. nuitka/build/static_src/HelpersAllocator.c +939 -0
  444. nuitka/build/static_src/HelpersAttributes.c +1241 -0
  445. nuitka/build/static_src/HelpersBuiltin.c +901 -0
  446. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
  447. nuitka/build/static_src/HelpersBytes.c +107 -0
  448. nuitka/build/static_src/HelpersCalling.c +397 -0
  449. nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
  450. nuitka/build/static_src/HelpersChecksumTools.c +59 -0
  451. nuitka/build/static_src/HelpersClasses.c +91 -0
  452. nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
  453. nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
  454. nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
  455. nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
  456. nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
  457. nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
  458. nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
  459. nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
  460. nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
  461. nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
  462. nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
  463. nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
  464. nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
  465. nuitka/build/static_src/HelpersConsole.c +124 -0
  466. nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
  467. nuitka/build/static_src/HelpersDeepcopy.c +636 -0
  468. nuitka/build/static_src/HelpersDictionaries.c +1739 -0
  469. nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
  470. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  471. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  472. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
  473. nuitka/build/static_src/HelpersExceptions.c +298 -0
  474. nuitka/build/static_src/HelpersFiles.c +353 -0
  475. nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
  476. nuitka/build/static_src/HelpersFloats.c +92 -0
  477. nuitka/build/static_src/HelpersHeapStorage.c +68 -0
  478. nuitka/build/static_src/HelpersImport.c +506 -0
  479. nuitka/build/static_src/HelpersImportHard.c +526 -0
  480. nuitka/build/static_src/HelpersJitSources.c +48 -0
  481. nuitka/build/static_src/HelpersLists.c +899 -0
  482. nuitka/build/static_src/HelpersListsGenerated.c +564 -0
  483. nuitka/build/static_src/HelpersMappings.c +46 -0
  484. nuitka/build/static_src/HelpersMatching.c +192 -0
  485. nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
  486. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
  487. nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
  488. nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
  489. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
  490. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
  491. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
  492. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
  493. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
  494. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
  495. nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
  496. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
  497. nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
  498. nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
  499. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
  500. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
  501. nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
  502. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
  503. nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
  504. nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
  505. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
  506. nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
  507. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
  508. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
  509. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
  510. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
  511. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
  512. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
  513. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
  514. nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
  515. nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
  516. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
  517. nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
  518. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
  519. nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
  520. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
  521. nuitka/build/static_src/HelpersProfiling.c +104 -0
  522. nuitka/build/static_src/HelpersPythonPgo.c +113 -0
  523. nuitka/build/static_src/HelpersRaising.c +447 -0
  524. nuitka/build/static_src/HelpersSafeStrings.c +185 -0
  525. nuitka/build/static_src/HelpersSequences.c +134 -0
  526. nuitka/build/static_src/HelpersSlices.c +73 -0
  527. nuitka/build/static_src/HelpersStrings.c +998 -0
  528. nuitka/build/static_src/HelpersTuples.c +148 -0
  529. nuitka/build/static_src/HelpersTypes.c +329 -0
  530. nuitka/build/static_src/InspectPatcher.c +439 -0
  531. nuitka/build/static_src/MainProgram.c +2060 -0
  532. nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
  533. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
  534. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
  535. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
  536. nuitka/build/static_src/OnefileBootstrap.c +1580 -0
  537. nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
  538. nuitka/code_generation/AsyncgenCodes.py +186 -0
  539. nuitka/code_generation/AttributeCodes.py +357 -0
  540. nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
  541. nuitka/code_generation/BranchCodes.py +67 -0
  542. nuitka/code_generation/BuiltinCodes.py +529 -0
  543. nuitka/code_generation/CallCodes.py +1186 -0
  544. nuitka/code_generation/ClassCodes.py +156 -0
  545. nuitka/code_generation/CodeGeneration.py +1078 -0
  546. nuitka/code_generation/CodeHelperSelection.py +81 -0
  547. nuitka/code_generation/CodeHelpers.py +455 -0
  548. nuitka/code_generation/CodeObjectCodes.py +165 -0
  549. nuitka/code_generation/ComparisonCodes.py +569 -0
  550. nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
  551. nuitka/code_generation/ConditionalCodes.py +236 -0
  552. nuitka/code_generation/ConstantCodes.py +243 -0
  553. nuitka/code_generation/Contexts.py +1248 -0
  554. nuitka/code_generation/CoroutineCodes.py +253 -0
  555. nuitka/code_generation/CtypesCodes.py +46 -0
  556. nuitka/code_generation/DictCodes.py +918 -0
  557. nuitka/code_generation/Emission.py +75 -0
  558. nuitka/code_generation/ErrorCodes.py +281 -0
  559. nuitka/code_generation/EvalCodes.py +444 -0
  560. nuitka/code_generation/ExceptionCodes.py +337 -0
  561. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
  562. nuitka/code_generation/ExpressionCodes.py +61 -0
  563. nuitka/code_generation/FrameCodes.py +518 -0
  564. nuitka/code_generation/FunctionCodes.py +858 -0
  565. nuitka/code_generation/GeneratorCodes.py +218 -0
  566. nuitka/code_generation/GlobalConstants.py +249 -0
  567. nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
  568. nuitka/code_generation/IdCodes.py +53 -0
  569. nuitka/code_generation/ImportCodes.py +468 -0
  570. nuitka/code_generation/Indentation.py +45 -0
  571. nuitka/code_generation/IndexCodes.py +50 -0
  572. nuitka/code_generation/InjectCCodes.py +28 -0
  573. nuitka/code_generation/IntegerCodes.py +110 -0
  574. nuitka/code_generation/IteratorCodes.py +378 -0
  575. nuitka/code_generation/JitCodes.py +44 -0
  576. nuitka/code_generation/LabelCodes.py +68 -0
  577. nuitka/code_generation/LineNumberCodes.py +91 -0
  578. nuitka/code_generation/ListCodes.py +502 -0
  579. nuitka/code_generation/LoaderCodes.py +193 -0
  580. nuitka/code_generation/LocalsDictCodes.py +359 -0
  581. nuitka/code_generation/LoopCodes.py +88 -0
  582. nuitka/code_generation/MatchCodes.py +67 -0
  583. nuitka/code_generation/ModuleCodes.py +247 -0
  584. nuitka/code_generation/Namify.py +260 -0
  585. nuitka/code_generation/NetworkxCodes.py +51 -0
  586. nuitka/code_generation/OperationCodes.py +398 -0
  587. nuitka/code_generation/PackageResourceCodes.py +986 -0
  588. nuitka/code_generation/PrintCodes.py +93 -0
  589. nuitka/code_generation/PythonAPICodes.py +215 -0
  590. nuitka/code_generation/RaisingCodes.py +481 -0
  591. nuitka/code_generation/Reports.py +115 -0
  592. nuitka/code_generation/ReturnCodes.py +143 -0
  593. nuitka/code_generation/SetCodes.py +196 -0
  594. nuitka/code_generation/SliceCodes.py +465 -0
  595. nuitka/code_generation/StringCodes.py +303 -0
  596. nuitka/code_generation/SubscriptCodes.py +263 -0
  597. nuitka/code_generation/TensorflowCodes.py +54 -0
  598. nuitka/code_generation/TryCodes.py +326 -0
  599. nuitka/code_generation/TupleCodes.py +115 -0
  600. nuitka/code_generation/TypeAliasCodes.py +120 -0
  601. nuitka/code_generation/VariableCodes.py +519 -0
  602. nuitka/code_generation/VariableDeclarations.py +279 -0
  603. nuitka/code_generation/YieldCodes.py +253 -0
  604. nuitka/code_generation/__init__.py +19 -0
  605. nuitka/code_generation/c_types/CTypeBases.py +177 -0
  606. nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
  607. nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
  608. nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
  609. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
  610. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
  611. nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
  612. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
  613. nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
  614. nuitka/code_generation/c_types/CTypeVoids.py +92 -0
  615. nuitka/code_generation/c_types/__init__.py +19 -0
  616. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
  617. nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
  618. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
  619. nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
  620. nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
  621. nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
  622. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
  623. nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
  624. nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
  625. nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
  626. nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
  627. nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
  628. nuitka/code_generation/templates/__init__.py +19 -0
  629. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
  630. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
  631. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
  632. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
  633. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
  634. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
  635. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
  636. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
  637. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
  638. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
  639. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
  640. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
  641. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
  642. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
  643. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
  644. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
  645. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
  646. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
  647. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
  648. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
  649. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
  650. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
  651. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
  652. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
  653. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
  654. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
  655. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
  656. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
  657. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
  658. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
  659. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
  660. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
  661. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
  662. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
  663. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
  664. nuitka/containers/Namedtuples.py +51 -0
  665. nuitka/containers/OrderedDicts.py +191 -0
  666. nuitka/containers/OrderedSets.py +123 -0
  667. nuitka/containers/OrderedSetsFallback.py +139 -0
  668. nuitka/containers/__init__.py +19 -0
  669. nuitka/distutils/Build.py +76 -0
  670. nuitka/distutils/DistutilCommands.py +438 -0
  671. nuitka/distutils/__init__.py +19 -0
  672. nuitka/finalizations/Finalization.py +35 -0
  673. nuitka/finalizations/FinalizeMarkups.py +136 -0
  674. nuitka/finalizations/__init__.py +19 -0
  675. nuitka/freezer/DependsExe.py +257 -0
  676. nuitka/freezer/DllDependenciesCommon.py +97 -0
  677. nuitka/freezer/DllDependenciesMacOS.py +444 -0
  678. nuitka/freezer/DllDependenciesPosix.py +242 -0
  679. nuitka/freezer/DllDependenciesWin32.py +315 -0
  680. nuitka/freezer/ImportDetection.py +359 -0
  681. nuitka/freezer/IncludedDataFiles.py +689 -0
  682. nuitka/freezer/IncludedEntryPoints.py +376 -0
  683. nuitka/freezer/Onefile.py +296 -0
  684. nuitka/freezer/Standalone.py +520 -0
  685. nuitka/freezer/__init__.py +19 -0
  686. nuitka/importing/IgnoreListing.py +449 -0
  687. nuitka/importing/ImportCache.py +95 -0
  688. nuitka/importing/ImportResolving.py +186 -0
  689. nuitka/importing/Importing.py +1200 -0
  690. nuitka/importing/PreloadedPackages.py +164 -0
  691. nuitka/importing/Recursion.py +611 -0
  692. nuitka/importing/StandardLibrary.py +429 -0
  693. nuitka/importing/__init__.py +19 -0
  694. nuitka/nodes/AsyncgenNodes.py +107 -0
  695. nuitka/nodes/AttributeLookupNodes.py +124 -0
  696. nuitka/nodes/AttributeNodes.py +386 -0
  697. nuitka/nodes/AttributeNodesGenerated.py +10734 -0
  698. nuitka/nodes/BuiltinAllNodes.py +115 -0
  699. nuitka/nodes/BuiltinAnyNodes.py +124 -0
  700. nuitka/nodes/BuiltinComplexNodes.py +83 -0
  701. nuitka/nodes/BuiltinDecodingNodes.py +52 -0
  702. nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
  703. nuitka/nodes/BuiltinDictNodes.py +140 -0
  704. nuitka/nodes/BuiltinFormatNodes.py +159 -0
  705. nuitka/nodes/BuiltinHashNodes.py +63 -0
  706. nuitka/nodes/BuiltinInputNodes.py +39 -0
  707. nuitka/nodes/BuiltinIntegerNodes.py +170 -0
  708. nuitka/nodes/BuiltinIteratorNodes.py +391 -0
  709. nuitka/nodes/BuiltinLenNodes.py +61 -0
  710. nuitka/nodes/BuiltinNextNodes.py +111 -0
  711. nuitka/nodes/BuiltinOpenNodes.py +148 -0
  712. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
  713. nuitka/nodes/BuiltinRangeNodes.py +690 -0
  714. nuitka/nodes/BuiltinRefNodes.py +314 -0
  715. nuitka/nodes/BuiltinSumNodes.py +104 -0
  716. nuitka/nodes/BuiltinTypeNodes.py +454 -0
  717. nuitka/nodes/BuiltinVarsNodes.py +44 -0
  718. nuitka/nodes/BytesNodes.py +829 -0
  719. nuitka/nodes/CallNodes.py +217 -0
  720. nuitka/nodes/Checkers.py +55 -0
  721. nuitka/nodes/ChildrenHavingMixins.py +21576 -0
  722. nuitka/nodes/ClassNodes.py +286 -0
  723. nuitka/nodes/CodeObjectSpecs.py +230 -0
  724. nuitka/nodes/ComparisonNodes.py +687 -0
  725. nuitka/nodes/ConditionalNodes.py +884 -0
  726. nuitka/nodes/ConstantRefNodes.py +1717 -0
  727. nuitka/nodes/ContainerMakingNodes.py +408 -0
  728. nuitka/nodes/ContainerOperationNodes.py +87 -0
  729. nuitka/nodes/CoroutineNodes.py +144 -0
  730. nuitka/nodes/CtypesNodes.py +51 -0
  731. nuitka/nodes/DictionaryNodes.py +1513 -0
  732. nuitka/nodes/ExceptionNodes.py +393 -0
  733. nuitka/nodes/ExecEvalNodes.py +229 -0
  734. nuitka/nodes/ExpressionBases.py +1301 -0
  735. nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
  736. nuitka/nodes/ExpressionShapeMixins.py +886 -0
  737. nuitka/nodes/FrameNodes.py +413 -0
  738. nuitka/nodes/FunctionAttributeNodes.py +102 -0
  739. nuitka/nodes/FunctionNodes.py +1303 -0
  740. nuitka/nodes/FutureSpecs.py +224 -0
  741. nuitka/nodes/GeneratorNodes.py +201 -0
  742. nuitka/nodes/GlobalsLocalsNodes.py +209 -0
  743. nuitka/nodes/HardImportNodesGenerated.py +3599 -0
  744. nuitka/nodes/ImportHardNodes.py +185 -0
  745. nuitka/nodes/ImportNodes.py +1366 -0
  746. nuitka/nodes/IndicatorMixins.py +79 -0
  747. nuitka/nodes/InjectCNodes.py +51 -0
  748. nuitka/nodes/IterationHandles.py +407 -0
  749. nuitka/nodes/KeyValuePairNodes.py +378 -0
  750. nuitka/nodes/ListOperationNodes.py +525 -0
  751. nuitka/nodes/LocalsDictNodes.py +717 -0
  752. nuitka/nodes/LocalsScopes.py +505 -0
  753. nuitka/nodes/LoopNodes.py +445 -0
  754. nuitka/nodes/MatchNodes.py +60 -0
  755. nuitka/nodes/ModuleAttributeNodes.py +180 -0
  756. nuitka/nodes/ModuleNodes.py +1137 -0
  757. nuitka/nodes/NetworkxNodes.py +45 -0
  758. nuitka/nodes/NodeBases.py +890 -0
  759. nuitka/nodes/NodeMakingHelpers.py +481 -0
  760. nuitka/nodes/NodeMetaClasses.py +172 -0
  761. nuitka/nodes/OperatorNodes.py +944 -0
  762. nuitka/nodes/OperatorNodesUnary.py +403 -0
  763. nuitka/nodes/OsSysNodes.py +215 -0
  764. nuitka/nodes/OutlineNodes.py +372 -0
  765. nuitka/nodes/PackageMetadataNodes.py +982 -0
  766. nuitka/nodes/PackageResourceNodes.py +424 -0
  767. nuitka/nodes/PrintNodes.py +105 -0
  768. nuitka/nodes/ReturnNodes.py +255 -0
  769. nuitka/nodes/SideEffectNodes.py +139 -0
  770. nuitka/nodes/SliceNodes.py +386 -0
  771. nuitka/nodes/StatementBasesGenerated.py +3419 -0
  772. nuitka/nodes/StatementNodes.py +316 -0
  773. nuitka/nodes/StrNodes.py +919 -0
  774. nuitka/nodes/StringConcatenationNodes.py +103 -0
  775. nuitka/nodes/SubscriptNodes.py +245 -0
  776. nuitka/nodes/TensorflowNodes.py +38 -0
  777. nuitka/nodes/TryNodes.py +519 -0
  778. nuitka/nodes/TypeMatchNodes.py +65 -0
  779. nuitka/nodes/TypeNodes.py +390 -0
  780. nuitka/nodes/VariableAssignNodes.py +1177 -0
  781. nuitka/nodes/VariableDelNodes.py +320 -0
  782. nuitka/nodes/VariableNameNodes.py +153 -0
  783. nuitka/nodes/VariableRefNodes.py +895 -0
  784. nuitka/nodes/VariableReleaseNodes.py +153 -0
  785. nuitka/nodes/YieldNodes.py +121 -0
  786. nuitka/nodes/__init__.py +19 -0
  787. nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
  788. nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
  789. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  790. nuitka/nodes/shapes/ShapeMixins.py +255 -0
  791. nuitka/nodes/shapes/StandardShapes.py +1384 -0
  792. nuitka/nodes/shapes/__init__.py +19 -0
  793. nuitka/optimizations/BytecodeDemotion.py +105 -0
  794. nuitka/optimizations/FunctionInlining.py +110 -0
  795. nuitka/optimizations/Graphs.py +70 -0
  796. nuitka/optimizations/Optimization.py +363 -0
  797. nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
  798. nuitka/optimizations/Tags.py +76 -0
  799. nuitka/optimizations/TraceCollections.py +1257 -0
  800. nuitka/optimizations/ValueTraces.py +980 -0
  801. nuitka/optimizations/__init__.py +19 -0
  802. nuitka/pgo/PGO.py +160 -0
  803. nuitka/pgo/__init__.py +19 -0
  804. nuitka/plugins/PluginBase.py +1924 -0
  805. nuitka/plugins/Plugins.py +2007 -0
  806. nuitka/plugins/YamlPluginBase.py +121 -0
  807. nuitka/plugins/__init__.py +19 -0
  808. nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
  809. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
  810. nuitka/plugins/standard/DataFilesPlugin.py +311 -0
  811. nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
  812. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  813. nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
  814. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
  815. nuitka/plugins/standard/DillPlugin.py +137 -0
  816. nuitka/plugins/standard/DllFilesPlugin.py +527 -0
  817. nuitka/plugins/standard/EnumPlugin.py +64 -0
  818. nuitka/plugins/standard/EventletPlugin.py +57 -0
  819. nuitka/plugins/standard/GeventPlugin.py +64 -0
  820. nuitka/plugins/standard/GiPlugin.py +118 -0
  821. nuitka/plugins/standard/GlfwPlugin.py +138 -0
  822. nuitka/plugins/standard/ImplicitImports.py +845 -0
  823. nuitka/plugins/standard/KivyPlugin.py +141 -0
  824. nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
  825. nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
  826. nuitka/plugins/standard/NumpyPlugin.py +35 -0
  827. nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
  828. nuitka/plugins/standard/PbrPlugin.py +62 -0
  829. nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
  830. nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
  831. nuitka/plugins/standard/PmwPlugin.py +248 -0
  832. nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
  833. nuitka/plugins/standard/PywebViewPlugin.py +81 -0
  834. nuitka/plugins/standard/SpacyPlugin.py +137 -0
  835. nuitka/plugins/standard/TensorflowPlugin.py +35 -0
  836. nuitka/plugins/standard/TkinterPlugin.py +416 -0
  837. nuitka/plugins/standard/TorchPlugin.py +35 -0
  838. nuitka/plugins/standard/TransformersPlugin.py +121 -0
  839. nuitka/plugins/standard/TrioPlugin.py +33 -0
  840. nuitka/plugins/standard/UpxPlugin.py +174 -0
  841. nuitka/plugins/standard/__init__.py +19 -0
  842. nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
  843. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
  844. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
  845. nuitka/reports/CompilationReportReader.py +83 -0
  846. nuitka/reports/LicenseReport.rst.j2 +41 -0
  847. nuitka/reports/Reports.py +961 -0
  848. nuitka/reports/__init__.py +19 -0
  849. nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
  850. nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
  851. nuitka/specs/BuiltinListOperationSpecs.py +80 -0
  852. nuitka/specs/BuiltinParameterSpecs.py +831 -0
  853. nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
  854. nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
  855. nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
  856. nuitka/specs/HardImportSpecs.py +236 -0
  857. nuitka/specs/ParameterSpecs.py +630 -0
  858. nuitka/specs/__init__.py +19 -0
  859. nuitka/tools/Basics.py +55 -0
  860. nuitka/tools/__init__.py +19 -0
  861. nuitka/tools/commercial/__init__.py +21 -0
  862. nuitka/tools/data_composer/DataComposer.py +593 -0
  863. nuitka/tools/data_composer/__init__.py +19 -0
  864. nuitka/tools/data_composer/__main__.py +41 -0
  865. nuitka/tools/environments/CreateEnvironment.py +69 -0
  866. nuitka/tools/environments/Virtualenv.py +158 -0
  867. nuitka/tools/environments/__init__.py +19 -0
  868. nuitka/tools/general/__init__.py +19 -0
  869. nuitka/tools/general/dll_report/__init__.py +19 -0
  870. nuitka/tools/general/dll_report/__main__.py +83 -0
  871. nuitka/tools/general/find_module/FindModuleCode.py +127 -0
  872. nuitka/tools/general/find_module/__init__.py +19 -0
  873. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  874. nuitka/tools/general/generate_header/__init__.py +19 -0
  875. nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
  876. nuitka/tools/onefile_compressor/__init__.py +19 -0
  877. nuitka/tools/onefile_compressor/__main__.py +41 -0
  878. nuitka/tools/podman/Podman.py +55 -0
  879. nuitka/tools/podman/__init__.py +19 -0
  880. nuitka/tools/podman/__main__.py +425 -0
  881. nuitka/tools/profiler/__init__.py +19 -0
  882. nuitka/tools/profiler/__main__.py +93 -0
  883. nuitka/tools/scanning/DisplayDistributions.py +39 -0
  884. nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
  885. nuitka/tools/scanning/DisplayPackageData.py +73 -0
  886. nuitka/tools/scanning/__init__.py +19 -0
  887. nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
  888. nuitka/tools/specialize/Common.py +380 -0
  889. nuitka/tools/specialize/SpecializeC.py +1483 -0
  890. nuitka/tools/specialize/SpecializePython.py +1151 -0
  891. nuitka/tools/specialize/__init__.py +19 -0
  892. nuitka/tools/testing/Common.py +2007 -0
  893. nuitka/tools/testing/Constructs.py +53 -0
  894. nuitka/tools/testing/DocTests.py +156 -0
  895. nuitka/tools/testing/OutputComparison.py +313 -0
  896. nuitka/tools/testing/Pythons.py +34 -0
  897. nuitka/tools/testing/RuntimeTracing.py +260 -0
  898. nuitka/tools/testing/SearchModes.py +208 -0
  899. nuitka/tools/testing/Valgrind.py +103 -0
  900. nuitka/tools/testing/__init__.py +19 -0
  901. nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
  902. nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
  903. nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
  904. nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
  905. nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
  906. nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
  907. nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
  908. nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
  909. nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
  910. nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
  911. nuitka/tools/watch/AutoStage.py +145 -0
  912. nuitka/tools/watch/Common.py +55 -0
  913. nuitka/tools/watch/Conda.py +125 -0
  914. nuitka/tools/watch/GitHub.py +113 -0
  915. nuitka/tools/watch/Pacman.py +73 -0
  916. nuitka/tools/watch/Pipenv.py +145 -0
  917. nuitka/tools/watch/__init__.py +19 -0
  918. nuitka/tools/watch/__main__.py +615 -0
  919. nuitka/tree/Building.py +1459 -0
  920. nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
  921. nuitka/tree/Extractions.py +48 -0
  922. nuitka/tree/FutureSpecState.py +71 -0
  923. nuitka/tree/InternalModule.py +96 -0
  924. nuitka/tree/Operations.py +45 -0
  925. nuitka/tree/ReformulationAssertStatements.py +97 -0
  926. nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
  927. nuitka/tree/ReformulationBooleanExpressions.py +97 -0
  928. nuitka/tree/ReformulationCallExpressions.py +314 -0
  929. nuitka/tree/ReformulationClasses.py +407 -0
  930. nuitka/tree/ReformulationClasses3.py +1149 -0
  931. nuitka/tree/ReformulationComparisonExpressions.py +174 -0
  932. nuitka/tree/ReformulationContractionExpressions.py +676 -0
  933. nuitka/tree/ReformulationDictionaryCreation.py +304 -0
  934. nuitka/tree/ReformulationExecStatements.py +386 -0
  935. nuitka/tree/ReformulationForLoopStatements.py +215 -0
  936. nuitka/tree/ReformulationFunctionStatements.py +931 -0
  937. nuitka/tree/ReformulationImportStatements.py +333 -0
  938. nuitka/tree/ReformulationLambdaExpressions.py +185 -0
  939. nuitka/tree/ReformulationMatchStatements.py +797 -0
  940. nuitka/tree/ReformulationMultidist.py +80 -0
  941. nuitka/tree/ReformulationNamespacePackages.py +239 -0
  942. nuitka/tree/ReformulationPrintStatements.py +127 -0
  943. nuitka/tree/ReformulationSequenceCreation.py +438 -0
  944. nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
  945. nuitka/tree/ReformulationTryExceptStatements.py +418 -0
  946. nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
  947. nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
  948. nuitka/tree/ReformulationWithStatements.py +382 -0
  949. nuitka/tree/ReformulationYieldExpressions.py +133 -0
  950. nuitka/tree/SourceHandling.py +476 -0
  951. nuitka/tree/SyntaxErrors.py +143 -0
  952. nuitka/tree/TreeHelpers.py +720 -0
  953. nuitka/tree/VariableClosure.py +483 -0
  954. nuitka/tree/__init__.py +19 -0
  955. nuitka/utils/AppDirs.py +104 -0
  956. nuitka/utils/CStrings.py +208 -0
  957. nuitka/utils/CommandLineOptions.py +207 -0
  958. nuitka/utils/Distributions.py +728 -0
  959. nuitka/utils/Download.py +217 -0
  960. nuitka/utils/Execution.py +517 -0
  961. nuitka/utils/FileOperations.py +1587 -0
  962. nuitka/utils/Hashing.py +137 -0
  963. nuitka/utils/Images.py +79 -0
  964. nuitka/utils/Importing.py +335 -0
  965. nuitka/utils/InlineCopies.py +52 -0
  966. nuitka/utils/InstalledPythons.py +254 -0
  967. nuitka/utils/InstanceCounters.py +86 -0
  968. nuitka/utils/Jinja2.py +158 -0
  969. nuitka/utils/Json.py +40 -0
  970. nuitka/utils/MacOSApp.py +134 -0
  971. nuitka/utils/MemoryUsage.py +165 -0
  972. nuitka/utils/ModuleNames.py +317 -0
  973. nuitka/utils/PackageResources.py +44 -0
  974. nuitka/utils/ReExecute.py +152 -0
  975. nuitka/utils/Rest.py +60 -0
  976. nuitka/utils/SharedLibraries.py +1014 -0
  977. nuitka/utils/Shebang.py +113 -0
  978. nuitka/utils/Signing.py +144 -0
  979. nuitka/utils/SlotMetaClasses.py +57 -0
  980. nuitka/utils/StaticLibraries.py +260 -0
  981. nuitka/utils/ThreadedExecutor.py +87 -0
  982. nuitka/utils/Timing.py +102 -0
  983. nuitka/utils/Utils.py +483 -0
  984. nuitka/utils/WindowsFileUsage.py +337 -0
  985. nuitka/utils/WindowsResources.py +652 -0
  986. nuitka/utils/Yaml.py +247 -0
  987. nuitka/utils/__init__.py +19 -0
  988. nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
  989. nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
  990. nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
  991. nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
  992. nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
  993. nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
  994. nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
  995. nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1384 @@
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """ Standard shapes that commonly appear. """
5
+
6
+ from abc import abstractmethod
7
+
8
+ from nuitka.code_generation.c_types.CTypePyObjectPointers import (
9
+ CTypePyObjectPtr,
10
+ )
11
+ from nuitka.code_generation.Reports import (
12
+ onMissingOperation,
13
+ onMissingUnaryOperation,
14
+ )
15
+ from nuitka.utils.SlotMetaClasses import getMetaClassBase
16
+
17
+ from .ControlFlowDescriptions import ControlFlowDescriptionFullEscape
18
+
19
+
20
+ class ShapeBase(getMetaClassBase("Shape", require_slots=True)):
21
+ __slots__ = ()
22
+
23
+ def __repr__(self):
24
+ return "<%s %s %s>" % (
25
+ self.__class__.__name__,
26
+ self.getTypeName(),
27
+ self.helper_code,
28
+ )
29
+
30
+ @staticmethod
31
+ def getTypeName():
32
+ return None
33
+
34
+ helper_code = "OBJECT"
35
+
36
+ @staticmethod
37
+ def getCType():
38
+ return CTypePyObjectPtr
39
+
40
+ @staticmethod
41
+ def getShapeIter():
42
+ return tshape_unknown
43
+
44
+ @staticmethod
45
+ def hasShapeIndexLookup():
46
+ return None
47
+
48
+ @staticmethod
49
+ def hasShapeModule():
50
+ return None
51
+
52
+ @staticmethod
53
+ def hasShapeSlotBytes():
54
+ return None
55
+
56
+ @staticmethod
57
+ def hasShapeSlotComplex():
58
+ return None
59
+
60
+ @staticmethod
61
+ def hasShapeSlotBool():
62
+ return None
63
+
64
+ @staticmethod
65
+ def hasShapeSlotAbs():
66
+ return None
67
+
68
+ @staticmethod
69
+ def hasShapeSlotLen():
70
+ return None
71
+
72
+ @staticmethod
73
+ def hasShapeSlotInt():
74
+ return None
75
+
76
+ @staticmethod
77
+ def hasShapeSlotLong():
78
+ return None
79
+
80
+ @staticmethod
81
+ def hasShapeSlotFloat():
82
+ return None
83
+
84
+ @staticmethod
85
+ def hasShapeSlotIter():
86
+ return None
87
+
88
+ @staticmethod
89
+ def hasShapeSlotNext():
90
+ return None
91
+
92
+ @staticmethod
93
+ def hasShapeSlotNextCode():
94
+ return None
95
+
96
+ @staticmethod
97
+ def hasShapeSlotContains():
98
+ return None
99
+
100
+ @staticmethod
101
+ def hasShapeSlotHash():
102
+ return None
103
+
104
+ @staticmethod
105
+ def hasShapeTrustedAttributes():
106
+ return None
107
+
108
+ @staticmethod
109
+ def isShapeIterator():
110
+ return None
111
+
112
+ add_shapes = {}
113
+
114
+ def getOperationBinaryAddShape(self, right_shape):
115
+ result = self.add_shapes.get(right_shape)
116
+
117
+ if result is not None:
118
+ return result
119
+ else:
120
+ right_shape_type = type(right_shape)
121
+ if right_shape_type is ShapeLoopCompleteAlternative:
122
+ return right_shape.getOperationBinaryAddLShape(self)
123
+
124
+ if right_shape_type is ShapeLoopInitialAlternative:
125
+ return operation_result_unknown
126
+
127
+ onMissingOperation("Add", self, right_shape)
128
+
129
+ return operation_result_unknown
130
+
131
+ # TODO: Change defaults to be "None" for easier catching of
132
+ # non-overloading cases.
133
+ iadd_shapes = {}
134
+
135
+ def getOperationInplaceAddShape(self, right_shape):
136
+ """Inplace add operation shape, for overload."""
137
+ if self.iadd_shapes:
138
+ result = self.iadd_shapes.get(right_shape)
139
+
140
+ if result is not None:
141
+ return result
142
+ else:
143
+ right_shape_type = type(right_shape)
144
+ if right_shape_type is ShapeLoopCompleteAlternative:
145
+ return right_shape.getOperationBinaryAddLShape(self)
146
+
147
+ if right_shape_type is ShapeLoopInitialAlternative:
148
+ return operation_result_unknown
149
+
150
+ onMissingOperation("IAdd", self, right_shape)
151
+
152
+ return operation_result_unknown
153
+ else:
154
+ # By default, inplace add is the same as plain add, the
155
+ # only exception known right now is list, which extend
156
+ # from all iterables, but don't add with them.
157
+ return self.getOperationBinaryAddShape(right_shape)
158
+
159
+ sub_shapes = {}
160
+
161
+ def getOperationBinarySubShape(self, right_shape):
162
+ result = self.sub_shapes.get(right_shape)
163
+
164
+ if result is not None:
165
+ return result
166
+ else:
167
+ right_shape_type = type(right_shape)
168
+ if right_shape_type is ShapeLoopCompleteAlternative:
169
+ return right_shape.getOperationBinarySubLShape(self)
170
+
171
+ if right_shape_type is ShapeLoopInitialAlternative:
172
+ return operation_result_unknown
173
+
174
+ onMissingOperation("Sub", self, right_shape)
175
+
176
+ return operation_result_unknown
177
+
178
+ mult_shapes = {}
179
+
180
+ def getOperationBinaryMultShape(self, right_shape):
181
+ result = self.mult_shapes.get(right_shape)
182
+
183
+ if result is not None:
184
+ return result
185
+ else:
186
+ right_shape_type = type(right_shape)
187
+ if right_shape_type is ShapeLoopCompleteAlternative:
188
+ return right_shape.getOperationBinaryMultLShape(self)
189
+
190
+ if right_shape_type is ShapeLoopInitialAlternative:
191
+ return operation_result_unknown
192
+
193
+ onMissingOperation("Mult", self, right_shape)
194
+
195
+ return operation_result_unknown
196
+
197
+ floordiv_shapes = {}
198
+
199
+ def getOperationBinaryFloorDivShape(self, right_shape):
200
+ result = self.floordiv_shapes.get(right_shape)
201
+
202
+ if result is not None:
203
+ return result
204
+ else:
205
+ right_shape_type = type(right_shape)
206
+ if right_shape_type is ShapeLoopCompleteAlternative:
207
+ return right_shape.getOperationBinaryFloorDivLShape(self)
208
+
209
+ if right_shape_type is ShapeLoopInitialAlternative:
210
+ return operation_result_unknown
211
+
212
+ onMissingOperation("FloorDiv", self, right_shape)
213
+
214
+ return operation_result_unknown
215
+
216
+ olddiv_shapes = {}
217
+
218
+ def getOperationBinaryOldDivShape(self, right_shape):
219
+ result = self.olddiv_shapes.get(right_shape)
220
+
221
+ if result is not None:
222
+ return result
223
+ else:
224
+ right_shape_type = type(right_shape)
225
+ if right_shape_type is ShapeLoopCompleteAlternative:
226
+ return right_shape.getOperationBinaryOldDivLShape(self)
227
+
228
+ if right_shape_type is ShapeLoopInitialAlternative:
229
+ return operation_result_unknown
230
+
231
+ onMissingOperation("OldDiv", self, right_shape)
232
+
233
+ return operation_result_unknown
234
+
235
+ truediv_shapes = {}
236
+
237
+ def getOperationBinaryTrueDivShape(self, right_shape):
238
+ result = self.truediv_shapes.get(right_shape)
239
+
240
+ if result is not None:
241
+ return result
242
+ else:
243
+ right_shape_type = type(right_shape)
244
+ if right_shape_type is ShapeLoopCompleteAlternative:
245
+ return right_shape.getOperationBinaryTrueDivLShape(self)
246
+
247
+ if right_shape_type is ShapeLoopInitialAlternative:
248
+ return operation_result_unknown
249
+
250
+ onMissingOperation("TrueDiv", self, right_shape)
251
+
252
+ return operation_result_unknown
253
+
254
+ mod_shapes = {}
255
+
256
+ def getOperationBinaryModShape(self, right_shape):
257
+ result = self.mod_shapes.get(right_shape)
258
+
259
+ if result is not None:
260
+ return result
261
+ else:
262
+ right_shape_type = type(right_shape)
263
+ if right_shape_type is ShapeLoopCompleteAlternative:
264
+ return right_shape.getOperationBinaryModLShape(self)
265
+
266
+ if right_shape_type is ShapeLoopInitialAlternative:
267
+ return operation_result_unknown
268
+
269
+ onMissingOperation("Mod", self, right_shape)
270
+
271
+ return operation_result_unknown
272
+
273
+ divmod_shapes = {}
274
+
275
+ def getOperationBinaryDivmodShape(self, right_shape):
276
+ result = self.divmod_shapes.get(right_shape)
277
+
278
+ if result is not None:
279
+ return result
280
+ else:
281
+ right_shape_type = type(right_shape)
282
+ if right_shape_type is ShapeLoopCompleteAlternative:
283
+ return right_shape.getOperationBinaryDivmodLShape(self)
284
+
285
+ if right_shape_type is ShapeLoopInitialAlternative:
286
+ return operation_result_unknown
287
+
288
+ onMissingOperation("Divmod", self, right_shape)
289
+
290
+ return operation_result_unknown
291
+
292
+ pow_shapes = {}
293
+
294
+ def getOperationBinaryPowShape(self, right_shape):
295
+ result = self.pow_shapes.get(right_shape)
296
+
297
+ if result is not None:
298
+ return result
299
+ else:
300
+ right_shape_type = type(right_shape)
301
+ if right_shape_type is ShapeLoopCompleteAlternative:
302
+ return right_shape.getOperationBinaryPowLShape(self)
303
+
304
+ if right_shape_type is ShapeLoopInitialAlternative:
305
+ return operation_result_unknown
306
+
307
+ onMissingOperation("Pow", self, right_shape)
308
+
309
+ return operation_result_unknown
310
+
311
+ lshift_shapes = {}
312
+
313
+ def getOperationBinaryLShiftShape(self, right_shape):
314
+ result = self.lshift_shapes.get(right_shape)
315
+
316
+ if result is not None:
317
+ return result
318
+ else:
319
+ right_shape_type = type(right_shape)
320
+ if right_shape_type is ShapeLoopCompleteAlternative:
321
+ return right_shape.getOperationBinaryLShiftLShape(self)
322
+
323
+ if right_shape_type is ShapeLoopInitialAlternative:
324
+ return operation_result_unknown
325
+
326
+ onMissingOperation("LShift", self, right_shape)
327
+
328
+ return operation_result_unknown
329
+
330
+ rshift_shapes = {}
331
+
332
+ def getOperationBinaryRShiftShape(self, right_shape):
333
+ result = self.rshift_shapes.get(right_shape)
334
+
335
+ if result is not None:
336
+ return result
337
+ else:
338
+ right_shape_type = type(right_shape)
339
+ if right_shape_type is ShapeLoopCompleteAlternative:
340
+ return right_shape.getOperationBinaryRShiftLShape(self)
341
+
342
+ if right_shape_type is ShapeLoopInitialAlternative:
343
+ return operation_result_unknown
344
+
345
+ onMissingOperation("RShift", self, right_shape)
346
+
347
+ return operation_result_unknown
348
+
349
+ bitor_shapes = {}
350
+
351
+ def getOperationBinaryBitOrShape(self, right_shape):
352
+ result = self.bitor_shapes.get(right_shape)
353
+
354
+ if result is not None:
355
+ return result
356
+ else:
357
+ right_shape_type = type(right_shape)
358
+ if right_shape_type is ShapeLoopCompleteAlternative:
359
+ return right_shape.getOperationBinaryBitOrLShape(self)
360
+
361
+ if right_shape_type is ShapeLoopInitialAlternative:
362
+ return operation_result_unknown
363
+
364
+ onMissingOperation("BitOr", self, right_shape)
365
+
366
+ return operation_result_unknown
367
+
368
+ bitand_shapes = {}
369
+
370
+ def getOperationBinaryBitAndShape(self, right_shape):
371
+ result = self.bitand_shapes.get(right_shape)
372
+
373
+ if result is not None:
374
+ return result
375
+ else:
376
+ right_shape_type = type(right_shape)
377
+ if right_shape_type is ShapeLoopCompleteAlternative:
378
+ return right_shape.getOperationBinaryBitAndLShape(self)
379
+
380
+ if right_shape_type is ShapeLoopInitialAlternative:
381
+ return operation_result_unknown
382
+
383
+ onMissingOperation("BitAnd", self, right_shape)
384
+
385
+ return operation_result_unknown
386
+
387
+ bitxor_shapes = {}
388
+
389
+ def getOperationBinaryBitXorShape(self, right_shape):
390
+ result = self.bitxor_shapes.get(right_shape)
391
+
392
+ if result is not None:
393
+ return result
394
+ else:
395
+ right_shape_type = type(right_shape)
396
+ if right_shape_type is ShapeLoopCompleteAlternative:
397
+ return right_shape.getOperationBinaryBitXorLShape(self)
398
+
399
+ if right_shape_type is ShapeLoopInitialAlternative:
400
+ return operation_result_unknown
401
+
402
+ onMissingOperation("BitXor", self, right_shape)
403
+
404
+ return operation_result_unknown
405
+
406
+ ibitor_shapes = {}
407
+
408
+ def getOperationInplaceBitOrShape(self, right_shape):
409
+ """Inplace bitor operation shape, for overload."""
410
+ if self.ibitor_shapes:
411
+ result = self.ibitor_shapes.get(right_shape)
412
+
413
+ if result is not None:
414
+ return result
415
+ else:
416
+ right_shape_type = type(right_shape)
417
+ if right_shape_type is ShapeLoopCompleteAlternative:
418
+ return right_shape.getOperationBinaryBitOrLShape(self)
419
+
420
+ if right_shape_type is ShapeLoopInitialAlternative:
421
+ return operation_result_unknown
422
+
423
+ onMissingOperation("IBitOr", self, right_shape)
424
+
425
+ return operation_result_unknown
426
+ else:
427
+ # By default, inplace add is the same as plain add, the
428
+ # only exception known right now is list, which extend
429
+ # from all iterables, but don't add with them.
430
+ return self.getOperationBinaryBitOrShape(right_shape)
431
+
432
+ matmult_shapes = {}
433
+
434
+ def getOperationBinaryMatMultShape(self, right_shape):
435
+ result = self.matmult_shapes.get(right_shape)
436
+
437
+ if result is not None:
438
+ return result
439
+ else:
440
+ right_shape_type = type(right_shape)
441
+ if right_shape_type is ShapeLoopCompleteAlternative:
442
+ return right_shape.getOperationBinaryBitMatMultLShape(self)
443
+
444
+ if right_shape_type is ShapeLoopInitialAlternative:
445
+ return operation_result_unknown
446
+
447
+ onMissingOperation("MatMult", self, right_shape)
448
+
449
+ return operation_result_unknown
450
+
451
+ def getOperationUnaryAddShape(self):
452
+ onMissingUnaryOperation("+", self)
453
+
454
+ return operation_result_unknown
455
+
456
+ def getOperationUnarySubShape(self):
457
+ onMissingUnaryOperation("-", self)
458
+
459
+ return operation_result_unknown
460
+
461
+ def getComparisonLtShape(self, right_shape):
462
+ onMissingOperation("Lt", self, right_shape)
463
+
464
+ return operation_result_unknown
465
+
466
+ def getComparisonLteShape(self, right_shape):
467
+ return self.getComparisonLtShape(right_shape)
468
+
469
+ def getComparisonGtShape(self, right_shape):
470
+ return self.getComparisonLtShape(right_shape)
471
+
472
+ def getComparisonGteShape(self, right_shape):
473
+ return self.getComparisonLtShape(right_shape)
474
+
475
+ def getComparisonEqShape(self, right_shape):
476
+ return self.getComparisonLtShape(right_shape)
477
+
478
+ def getComparisonNeqShape(self, right_shape):
479
+ return self.getComparisonLtShape(right_shape)
480
+
481
+ @abstractmethod
482
+ def getOperationUnaryReprEscape(self):
483
+ pass
484
+
485
+ @staticmethod
486
+ def isKnownToHaveAttribute(attribute_name):
487
+ # Virtual method, pylint: disable=unused-argument
488
+
489
+ return None
490
+
491
+ def emitAlternatives(self, emit):
492
+ emit(self)
493
+
494
+
495
+ class ShapeTypeUnknown(ShapeBase):
496
+ __slots__ = ()
497
+
498
+ @staticmethod
499
+ def getOperationBinaryAddShape(right_shape):
500
+ return operation_result_unknown
501
+
502
+ @staticmethod
503
+ def getOperationBinarySubShape(right_shape):
504
+ return operation_result_unknown
505
+
506
+ @staticmethod
507
+ def getOperationBinaryMultShape(right_shape):
508
+ return operation_result_unknown
509
+
510
+ @staticmethod
511
+ def getOperationBinaryFloorDivShape(right_shape):
512
+ return operation_result_unknown
513
+
514
+ @staticmethod
515
+ def getOperationBinaryOldDivShape(right_shape):
516
+ return operation_result_unknown
517
+
518
+ @staticmethod
519
+ def getOperationBinaryTrueDivShape(right_shape):
520
+ return operation_result_unknown
521
+
522
+ @staticmethod
523
+ def getOperationBinaryModShape(right_shape):
524
+ return operation_result_unknown
525
+
526
+ @staticmethod
527
+ def getOperationBinaryDivmodShape(right_shape):
528
+ return operation_result_unknown
529
+
530
+ @staticmethod
531
+ def getOperationBinaryPowShape(right_shape):
532
+ return operation_result_unknown
533
+
534
+ @staticmethod
535
+ def getOperationBinaryLShiftShape(right_shape):
536
+ return operation_result_unknown
537
+
538
+ @staticmethod
539
+ def getOperationBinaryRShiftShape(right_shape):
540
+ return operation_result_unknown
541
+
542
+ @staticmethod
543
+ def getOperationBinaryBitOrShape(right_shape):
544
+ return operation_result_unknown
545
+
546
+ @staticmethod
547
+ def getOperationBinaryBitAndShape(right_shape):
548
+ return operation_result_unknown
549
+
550
+ @staticmethod
551
+ def getOperationBinaryBitXorShape(right_shape):
552
+ return operation_result_unknown
553
+
554
+ @staticmethod
555
+ def getOperationBinaryMatMultShape(right_shape):
556
+ return operation_result_unknown
557
+
558
+ def getOperationUnaryAddShape(self):
559
+ return operation_result_unknown
560
+
561
+ def getOperationUnarySubShape(self):
562
+ return operation_result_unknown
563
+
564
+ @staticmethod
565
+ def getComparisonLtShape(right_shape):
566
+ return operation_result_unknown
567
+
568
+ @staticmethod
569
+ def getOperationUnaryReprEscape():
570
+ return ControlFlowDescriptionFullEscape
571
+
572
+
573
+ tshape_unknown = ShapeTypeUnknown()
574
+
575
+
576
+ class ShapeTypeUninitialized(ShapeTypeUnknown):
577
+ __slots__ = ()
578
+
579
+
580
+ tshape_uninitialized = ShapeTypeUninitialized()
581
+
582
+
583
+ class ValueShapeBase(object):
584
+ __slots__ = ()
585
+
586
+ def hasShapeSlotLen(self):
587
+ return self.getTypeShape().hasShapeSlotLen()
588
+
589
+
590
+ class ValueShapeUnknown(ValueShapeBase):
591
+ __slots__ = ()
592
+
593
+ @staticmethod
594
+ def getTypeShape():
595
+ return tshape_unknown
596
+
597
+ @staticmethod
598
+ def isConstant():
599
+ """Can't say if it's constant, we don't know anything."""
600
+ return None
601
+
602
+
603
+ # Singleton value for sharing.
604
+ vshape_unknown = ValueShapeUnknown()
605
+
606
+
607
+ class ShapeLargeConstantValue(object):
608
+ __slots__ = "shape", "size"
609
+
610
+ def __init__(self, size, shape):
611
+ self.size = size
612
+ self.shape = shape
613
+
614
+ def getTypeShape(self):
615
+ return self.shape
616
+
617
+ @staticmethod
618
+ def isConstant():
619
+ return True
620
+
621
+ def hasShapeSlotLen(self):
622
+ return self.shape.hasShapeSlotLen()
623
+
624
+
625
+ class ShapeLargeConstantValuePredictable(ShapeLargeConstantValue):
626
+ __slots__ = ("predictor",)
627
+
628
+ def __init__(self, size, predictor, shape):
629
+ ShapeLargeConstantValue.__init__(self, size, shape)
630
+
631
+ self.predictor = predictor
632
+
633
+
634
+ class ShapeLoopInitialAlternative(ShapeBase):
635
+ """Merge of loop wrap around with loop start value.
636
+
637
+ Happens at the start of loop blocks. This is for loop closed SSA, to
638
+ make it clear, that the entered value, can be anything really, and
639
+ will only later be clarified.
640
+
641
+ They will start out with just one previous, and later be updated with
642
+ all of the variable versions at loop continue times.
643
+ """
644
+
645
+ __slots__ = ("type_shapes",)
646
+
647
+ def __init__(self, shapes):
648
+ self.type_shapes = shapes
649
+
650
+ def emitAlternatives(self, emit):
651
+ for type_shape in self.type_shapes:
652
+ type_shape.emitAlternatives(emit)
653
+
654
+ def _collectInitialShape(self, operation):
655
+ result = set()
656
+
657
+ for type_shape in self.type_shapes:
658
+ try:
659
+ entry, _description = operation(type_shape)
660
+ except TypeError:
661
+ assert False, type_shape
662
+
663
+ if entry is tshape_unknown:
664
+ return tshape_unknown
665
+
666
+ result.add(entry)
667
+
668
+ return ShapeLoopInitialAlternative(result)
669
+
670
+ def getOperationBinaryAddShape(self, right_shape):
671
+ if right_shape is tshape_unknown:
672
+ return operation_result_unknown
673
+ else:
674
+ return (
675
+ self._collectInitialShape(
676
+ operation=lambda left_shape: left_shape.getOperationBinaryAddShape(
677
+ right_shape
678
+ )
679
+ ),
680
+ ControlFlowDescriptionFullEscape,
681
+ )
682
+
683
+ def getOperationInplaceAddShape(self, right_shape):
684
+ if right_shape is tshape_unknown:
685
+ return operation_result_unknown
686
+ else:
687
+ return (
688
+ self._collectInitialShape(
689
+ operation=lambda left_shape: left_shape.getOperationInplaceAddShape(
690
+ right_shape
691
+ )
692
+ ),
693
+ ControlFlowDescriptionFullEscape,
694
+ )
695
+
696
+ def getOperationBinarySubShape(self, right_shape):
697
+ if right_shape is tshape_unknown:
698
+ return operation_result_unknown
699
+ else:
700
+ return (
701
+ self._collectInitialShape(
702
+ operation=lambda left_shape: left_shape.getOperationBinarySubShape(
703
+ right_shape
704
+ )
705
+ ),
706
+ ControlFlowDescriptionFullEscape,
707
+ )
708
+
709
+ def getOperationBinaryMultShape(self, right_shape):
710
+ if right_shape is tshape_unknown:
711
+ return operation_result_unknown
712
+ else:
713
+ return (
714
+ self._collectInitialShape(
715
+ operation=lambda left_shape: left_shape.getOperationBinaryMultShape(
716
+ right_shape
717
+ )
718
+ ),
719
+ ControlFlowDescriptionFullEscape,
720
+ )
721
+
722
+ def getOperationBinaryFloorDivShape(self, right_shape):
723
+ if right_shape is tshape_unknown:
724
+ return operation_result_unknown
725
+ else:
726
+ return (
727
+ self._collectInitialShape(
728
+ operation=lambda left_shape: left_shape.getOperationBinaryFloorDivShape(
729
+ right_shape
730
+ )
731
+ ),
732
+ ControlFlowDescriptionFullEscape,
733
+ )
734
+
735
+ def getOperationBinaryOldDivShape(self, right_shape):
736
+ if right_shape is tshape_unknown:
737
+ return operation_result_unknown
738
+ else:
739
+ return (
740
+ self._collectInitialShape(
741
+ operation=lambda left_shape: left_shape.getOperationBinaryOldDivShape(
742
+ right_shape
743
+ )
744
+ ),
745
+ ControlFlowDescriptionFullEscape,
746
+ )
747
+
748
+ def getOperationBinaryTrueDivShape(self, right_shape):
749
+ if right_shape is tshape_unknown:
750
+ return operation_result_unknown
751
+ else:
752
+ return (
753
+ self._collectInitialShape(
754
+ operation=lambda left_shape: left_shape.getOperationBinaryTrueDivShape(
755
+ right_shape
756
+ )
757
+ ),
758
+ ControlFlowDescriptionFullEscape,
759
+ )
760
+
761
+ def getOperationBinaryModShape(self, right_shape):
762
+ if right_shape is tshape_unknown:
763
+ return operation_result_unknown
764
+ else:
765
+ return (
766
+ self._collectInitialShape(
767
+ operation=lambda left_shape: left_shape.getOperationBinaryModShape(
768
+ right_shape
769
+ )
770
+ ),
771
+ ControlFlowDescriptionFullEscape,
772
+ )
773
+
774
+ def getOperationBinaryDivmodShape(self, right_shape):
775
+ if right_shape is tshape_unknown:
776
+ return operation_result_unknown
777
+ else:
778
+ return (
779
+ self._collectInitialShape(
780
+ operation=lambda left_shape: left_shape.getOperationBinaryDivmodShape(
781
+ right_shape
782
+ )
783
+ ),
784
+ ControlFlowDescriptionFullEscape,
785
+ )
786
+
787
+ def getOperationBinaryPowShape(self, right_shape):
788
+ if right_shape is tshape_unknown:
789
+ return operation_result_unknown
790
+ else:
791
+ return (
792
+ self._collectInitialShape(
793
+ operation=lambda left_shape: left_shape.getOperationBinaryPowShape(
794
+ right_shape
795
+ )
796
+ ),
797
+ ControlFlowDescriptionFullEscape,
798
+ )
799
+
800
+ def getOperationBinaryLShiftShape(self, right_shape):
801
+ if right_shape is tshape_unknown:
802
+ return operation_result_unknown
803
+ else:
804
+ return (
805
+ self._collectInitialShape(
806
+ operation=lambda left_shape: left_shape.getOperationBinaryLShiftShape(
807
+ right_shape
808
+ )
809
+ ),
810
+ ControlFlowDescriptionFullEscape,
811
+ )
812
+
813
+ def getOperationBinaryRShiftShape(self, right_shape):
814
+ if right_shape is tshape_unknown:
815
+ return operation_result_unknown
816
+ else:
817
+ return (
818
+ self._collectInitialShape(
819
+ operation=lambda left_shape: left_shape.getOperationBinaryRShiftShape(
820
+ right_shape
821
+ )
822
+ ),
823
+ ControlFlowDescriptionFullEscape,
824
+ )
825
+
826
+ def getOperationBinaryBitOrShape(self, right_shape):
827
+ if right_shape is tshape_unknown:
828
+ return operation_result_unknown
829
+ else:
830
+ return (
831
+ self._collectInitialShape(
832
+ operation=lambda left_shape: left_shape.getOperationBinaryBitOrShape(
833
+ right_shape
834
+ )
835
+ ),
836
+ ControlFlowDescriptionFullEscape,
837
+ )
838
+
839
+ def getOperationBinaryBitAndShape(self, right_shape):
840
+ if right_shape is tshape_unknown:
841
+ return operation_result_unknown
842
+ else:
843
+ return (
844
+ self._collectInitialShape(
845
+ operation=lambda left_shape: left_shape.getOperationBinaryBitAndShape(
846
+ right_shape
847
+ )
848
+ ),
849
+ ControlFlowDescriptionFullEscape,
850
+ )
851
+
852
+ def getOperationBinaryBitXorShape(self, right_shape):
853
+ if right_shape is tshape_unknown:
854
+ return operation_result_unknown
855
+ else:
856
+ return (
857
+ self._collectInitialShape(
858
+ operation=lambda left_shape: left_shape.getOperationBinaryBitXorShape(
859
+ right_shape
860
+ )
861
+ ),
862
+ ControlFlowDescriptionFullEscape,
863
+ )
864
+
865
+ def getOperationBinaryMatMultShape(self, right_shape):
866
+ if right_shape is tshape_unknown:
867
+ return operation_result_unknown
868
+ else:
869
+ return (
870
+ self._collectInitialShape(
871
+ operation=lambda left_shape: left_shape.getOperationBinaryMatMultShape(
872
+ right_shape
873
+ )
874
+ ),
875
+ ControlFlowDescriptionFullEscape,
876
+ )
877
+
878
+ def getOperationUnaryAddShape(self):
879
+ return (
880
+ self._collectInitialShape(
881
+ operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
882
+ ),
883
+ ControlFlowDescriptionFullEscape,
884
+ )
885
+
886
+ def getOperationUnarySubShape(self):
887
+ return (
888
+ self._collectInitialShape(
889
+ operation=lambda left_shape: left_shape.getOperationUnarySubShape()
890
+ ),
891
+ ControlFlowDescriptionFullEscape,
892
+ )
893
+
894
+ def getComparisonLtShape(self, right_shape):
895
+ if right_shape is tshape_unknown:
896
+ return operation_result_unknown
897
+ else:
898
+ return (
899
+ self._collectInitialShape(
900
+ operation=lambda left_shape: left_shape.getComparisonLtShape(
901
+ right_shape
902
+ )
903
+ ),
904
+ ControlFlowDescriptionFullEscape,
905
+ )
906
+
907
+ def getComparisonLteShape(self, right_shape):
908
+ return self.getComparisonLtShape(right_shape)
909
+
910
+ def getComparisonGtShape(self, right_shape):
911
+ return self.getComparisonLtShape(right_shape)
912
+
913
+ def getComparisonGteShape(self, right_shape):
914
+ return self.getComparisonLtShape(right_shape)
915
+
916
+ def getComparisonEqShape(self, right_shape):
917
+ return self.getComparisonLtShape(right_shape)
918
+
919
+ def getComparisonNeqShape(self, right_shape):
920
+ return self.getComparisonLtShape(right_shape)
921
+
922
+ @staticmethod
923
+ def getOperationUnaryReprEscape():
924
+ return ControlFlowDescriptionFullEscape
925
+
926
+
927
+ class ShapeLoopCompleteAlternative(ShapeBase):
928
+ """Merge of loop wrap around with loop start value.
929
+
930
+ Happens at the start of loop blocks. This is for loop closed SSA, to
931
+ make it clear, that the entered value, can be one of multiple types,
932
+ but only those.
933
+
934
+ They will start out with just one previous, and later be updated with
935
+ all of the variable versions at loop continue times.
936
+ """
937
+
938
+ __slots__ = ("type_shapes",)
939
+
940
+ def __init__(self, shapes):
941
+ self.type_shapes = shapes
942
+
943
+ def __hash__(self):
944
+ # We are unhashable set, and need deep comparison.
945
+ return 27
946
+
947
+ def __eq__(self, other):
948
+ if self.__class__ is not other.__class__:
949
+ return False
950
+
951
+ return self.type_shapes == other.type_shapes
952
+
953
+ def emitAlternatives(self, emit):
954
+ for type_shape in self.type_shapes:
955
+ type_shape.emitAlternatives(emit)
956
+
957
+ def _collectShapeOperation(self, operation):
958
+ result = None
959
+ escape_description = None
960
+ single = True
961
+
962
+ for type_shape in self.type_shapes:
963
+ entry, description = operation(type_shape)
964
+
965
+ if entry is tshape_unknown:
966
+ return operation_result_unknown
967
+
968
+ if single:
969
+ if result is None:
970
+ # First entry, fine.
971
+ result = entry
972
+ escape_description = description
973
+ else:
974
+ # Second entry, not the same, convert to set.
975
+ if result is not entry:
976
+ single = False
977
+ result = set((result, entry))
978
+
979
+ escape_description = set((escape_description, description))
980
+ else:
981
+ result.add(entry)
982
+ escape_description.add(description)
983
+
984
+ if single:
985
+ assert result is not None
986
+ return result, escape_description
987
+ else:
988
+ if len(escape_description) > 1:
989
+ if ControlFlowDescriptionFullEscape in escape_description:
990
+ escape_description = ControlFlowDescriptionFullEscape
991
+ else:
992
+ assert False
993
+ else:
994
+ (escape_description,) = escape_description
995
+
996
+ return ShapeLoopCompleteAlternative(result), escape_description
997
+
998
+ def getOperationBinaryAddShape(self, right_shape):
999
+ if right_shape is tshape_unknown:
1000
+ return operation_result_unknown
1001
+
1002
+ return self._collectShapeOperation(
1003
+ operation=lambda left_shape: left_shape.getOperationBinaryAddShape(
1004
+ right_shape
1005
+ )
1006
+ )
1007
+
1008
+ def getOperationInplaceAddShape(self, right_shape):
1009
+ if right_shape is tshape_unknown:
1010
+ return operation_result_unknown
1011
+
1012
+ return self._collectShapeOperation(
1013
+ operation=lambda left_shape: left_shape.getOperationInplaceAddShape(
1014
+ right_shape
1015
+ )
1016
+ )
1017
+
1018
+ def getOperationBinarySubShape(self, right_shape):
1019
+ if right_shape is tshape_unknown:
1020
+ return operation_result_unknown
1021
+
1022
+ return self._collectShapeOperation(
1023
+ operation=lambda left_shape: left_shape.getOperationBinarySubShape(
1024
+ right_shape
1025
+ )
1026
+ )
1027
+
1028
+ def getOperationBinaryMultShape(self, right_shape):
1029
+ if right_shape is tshape_unknown:
1030
+ return operation_result_unknown
1031
+
1032
+ return self._collectShapeOperation(
1033
+ operation=lambda left_shape: left_shape.getOperationBinaryMultShape(
1034
+ right_shape
1035
+ )
1036
+ )
1037
+
1038
+ def getOperationBinaryFloorDivShape(self, right_shape):
1039
+ if right_shape is tshape_unknown:
1040
+ return operation_result_unknown
1041
+
1042
+ return self._collectShapeOperation(
1043
+ operation=lambda left_shape: left_shape.getOperationBinaryFloorDivShape(
1044
+ right_shape
1045
+ )
1046
+ )
1047
+
1048
+ def getOperationBinaryOldDivShape(self, right_shape):
1049
+ if right_shape is tshape_unknown:
1050
+ return operation_result_unknown
1051
+
1052
+ return self._collectShapeOperation(
1053
+ operation=lambda left_shape: left_shape.getOperationBinaryOldDivShape(
1054
+ right_shape
1055
+ )
1056
+ )
1057
+
1058
+ def getOperationBinaryTrueDivShape(self, right_shape):
1059
+ if right_shape is tshape_unknown:
1060
+ return operation_result_unknown
1061
+
1062
+ return self._collectShapeOperation(
1063
+ operation=lambda left_shape: left_shape.getOperationBinaryTrueDivShape(
1064
+ right_shape
1065
+ )
1066
+ )
1067
+
1068
+ def getOperationBinaryModShape(self, right_shape):
1069
+ if right_shape is tshape_unknown:
1070
+ return operation_result_unknown
1071
+
1072
+ return self._collectShapeOperation(
1073
+ operation=lambda left_shape: left_shape.getOperationBinaryModShape(
1074
+ right_shape
1075
+ )
1076
+ )
1077
+
1078
+ def getOperationBinaryDivmodShape(self, right_shape):
1079
+ if right_shape is tshape_unknown:
1080
+ return operation_result_unknown
1081
+
1082
+ return self._collectShapeOperation(
1083
+ operation=lambda left_shape: left_shape.getOperationBinaryDivmodShape(
1084
+ right_shape
1085
+ )
1086
+ )
1087
+
1088
+ def getOperationBinaryPowShape(self, right_shape):
1089
+ if right_shape is tshape_unknown:
1090
+ return operation_result_unknown
1091
+
1092
+ return self._collectShapeOperation(
1093
+ operation=lambda left_shape: left_shape.getOperationBinaryPowShape(
1094
+ right_shape
1095
+ )
1096
+ )
1097
+
1098
+ def getOperationBinaryLShiftShape(self, right_shape):
1099
+ if right_shape is tshape_unknown:
1100
+ return operation_result_unknown
1101
+
1102
+ return self._collectShapeOperation(
1103
+ operation=lambda left_shape: left_shape.getOperationBinaryLShiftShape(
1104
+ right_shape
1105
+ )
1106
+ )
1107
+
1108
+ def getOperationBinaryRShiftShape(self, right_shape):
1109
+ if right_shape is tshape_unknown:
1110
+ return operation_result_unknown
1111
+
1112
+ return self._collectShapeOperation(
1113
+ operation=lambda left_shape: left_shape.getOperationBinaryRShiftShape(
1114
+ right_shape
1115
+ )
1116
+ )
1117
+
1118
+ def getOperationBinaryBitOrShape(self, right_shape):
1119
+ if right_shape is tshape_unknown:
1120
+ return operation_result_unknown
1121
+
1122
+ return self._collectShapeOperation(
1123
+ operation=lambda left_shape: left_shape.getOperationBinaryBitOrShape(
1124
+ right_shape
1125
+ )
1126
+ )
1127
+
1128
+ def getOperationBinaryBitAndShape(self, right_shape):
1129
+ if right_shape is tshape_unknown:
1130
+ return operation_result_unknown
1131
+
1132
+ return self._collectShapeOperation(
1133
+ operation=lambda left_shape: left_shape.getOperationBinaryBitAndShape(
1134
+ right_shape
1135
+ )
1136
+ )
1137
+
1138
+ def getOperationBinaryBitXorShape(self, right_shape):
1139
+ if right_shape is tshape_unknown:
1140
+ return operation_result_unknown
1141
+
1142
+ return self._collectShapeOperation(
1143
+ operation=lambda left_shape: left_shape.getOperationBinaryBitXorShape(
1144
+ right_shape
1145
+ )
1146
+ )
1147
+
1148
+ def getOperationBinaryMatMultShape(self, right_shape):
1149
+ if right_shape is tshape_unknown:
1150
+ return operation_result_unknown
1151
+
1152
+ return self._collectShapeOperation(
1153
+ operation=lambda left_shape: left_shape.getOperationBinaryMatMultShape(
1154
+ right_shape
1155
+ )
1156
+ )
1157
+
1158
+ def getOperationUnaryAddShape(self):
1159
+ return self._collectShapeOperation(
1160
+ operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
1161
+ )
1162
+
1163
+ def getOperationUnarySubShape(self):
1164
+ return self._collectShapeOperation(
1165
+ operation=lambda left_shape: left_shape.getOperationUnarySubShape()
1166
+ )
1167
+
1168
+ # Special method to be called by other shapes encountering this type on
1169
+ # the right side.
1170
+ def getOperationBinaryAddLShape(self, left_shape):
1171
+ assert left_shape is not tshape_unknown
1172
+
1173
+ return self._collectShapeOperation(
1174
+ operation=left_shape.getOperationBinaryAddShape
1175
+ )
1176
+
1177
+ # Special method to be called by other shapes encountering this type on
1178
+ # the right side.
1179
+ def getOperationBinarySubLShape(self, left_shape):
1180
+ assert left_shape is not tshape_unknown
1181
+
1182
+ return self._collectShapeOperation(
1183
+ operation=left_shape.getOperationBinarySubShape
1184
+ )
1185
+
1186
+ def getOperationBinaryMultLShape(self, left_shape):
1187
+ assert left_shape is not tshape_unknown
1188
+
1189
+ return self._collectShapeOperation(
1190
+ operation=left_shape.getOperationBinaryMultShape
1191
+ )
1192
+
1193
+ def getOperationBinaryFloorDivLShape(self, left_shape):
1194
+ assert left_shape is not tshape_unknown
1195
+
1196
+ return self._collectShapeOperation(
1197
+ operation=left_shape.getOperationBinaryFloorDivShape
1198
+ )
1199
+
1200
+ def getOperationBinaryOldDivLShape(self, left_shape):
1201
+ assert left_shape is not tshape_unknown
1202
+
1203
+ return self._collectShapeOperation(
1204
+ operation=left_shape.getOperationBinaryOldDivShape
1205
+ )
1206
+
1207
+ def getOperationBinaryTrueDivLShape(self, left_shape):
1208
+ assert left_shape is not tshape_unknown
1209
+
1210
+ return self._collectShapeOperation(
1211
+ operation=left_shape.getOperationBinaryTrueDivShape
1212
+ )
1213
+
1214
+ def getOperationBinaryModLShape(self, left_shape):
1215
+ assert left_shape is not tshape_unknown
1216
+
1217
+ return self._collectShapeOperation(
1218
+ operation=left_shape.getOperationBinaryModShape
1219
+ )
1220
+
1221
+ def getOperationBinaryDivmodLShape(self, left_shape):
1222
+ assert left_shape is not tshape_unknown
1223
+
1224
+ return self._collectShapeOperation(
1225
+ operation=left_shape.getOperationBinaryDivmodShape
1226
+ )
1227
+
1228
+ def getOperationBinaryPowLShape(self, left_shape):
1229
+ assert left_shape is not tshape_unknown
1230
+
1231
+ return self._collectShapeOperation(
1232
+ operation=left_shape.getOperationBinaryPowShape
1233
+ )
1234
+
1235
+ def getOperationBinaryLShiftLShape(self, left_shape):
1236
+ assert left_shape is not tshape_unknown
1237
+
1238
+ return self._collectShapeOperation(
1239
+ operation=left_shape.getOperationBinaryLShiftShape
1240
+ )
1241
+
1242
+ def getOperationBinaryRShiftLShape(self, left_shape):
1243
+ assert left_shape is not tshape_unknown
1244
+
1245
+ return self._collectShapeOperation(
1246
+ operation=left_shape.getOperationBinaryRShiftShape
1247
+ )
1248
+
1249
+ def getOperationBinaryBitOrLShape(self, left_shape):
1250
+ assert left_shape is not tshape_unknown
1251
+
1252
+ return self._collectShapeOperation(
1253
+ operation=left_shape.getOperationBinaryBitOrShape
1254
+ )
1255
+
1256
+ def getOperationBinaryBitAndLShape(self, left_shape):
1257
+ assert left_shape is not tshape_unknown
1258
+
1259
+ return self._collectShapeOperation(
1260
+ operation=left_shape.getOperationBinaryBitAndShape
1261
+ )
1262
+
1263
+ def getOperationBinaryBitXorLShape(self, left_shape):
1264
+ assert left_shape is not tshape_unknown
1265
+
1266
+ return self._collectShapeOperation(
1267
+ operation=left_shape.getOperationBinaryBitXorShape
1268
+ )
1269
+
1270
+ def getOperationBinaryMatMultLShape(self, left_shape):
1271
+ assert left_shape is not tshape_unknown
1272
+
1273
+ return self._collectShapeOperation(
1274
+ operation=left_shape.getOperationBinaryMatMultShape
1275
+ )
1276
+
1277
+ def getComparisonLtShape(self, right_shape):
1278
+ if right_shape is tshape_unknown:
1279
+ return operation_result_unknown
1280
+
1281
+ return self._collectShapeOperation(
1282
+ operation=lambda left_shape: left_shape.getComparisonLtShape(right_shape)
1283
+ )
1284
+
1285
+ # Special method to be called by other shapes encountering this type on
1286
+ # the right side.
1287
+ def getComparisonLtLShape(self, left_shape):
1288
+ assert left_shape is not tshape_unknown
1289
+
1290
+ return self._collectShapeOperation(operation=left_shape.getComparisonLtShape)
1291
+
1292
+ def getComparisonLteShape(self, right_shape):
1293
+ return self.getComparisonLtShape(right_shape)
1294
+
1295
+ def getComparisonGtShape(self, right_shape):
1296
+ return self.getComparisonLtShape(right_shape)
1297
+
1298
+ def getComparisonGteShape(self, right_shape):
1299
+ return self.getComparisonLtShape(right_shape)
1300
+
1301
+ def getComparisonEqShape(self, right_shape):
1302
+ return self.getComparisonLtShape(right_shape)
1303
+
1304
+ def getComparisonNeqShape(self, right_shape):
1305
+ return self.getComparisonLtShape(right_shape)
1306
+
1307
+ @staticmethod
1308
+ def getOperationUnaryReprEscape():
1309
+ # TODO: We could collect information.
1310
+ return ControlFlowDescriptionFullEscape
1311
+
1312
+ def _delegatedCheck(self, check):
1313
+ result = None
1314
+
1315
+ for type_shape in self.type_shapes:
1316
+ r = check(type_shape)
1317
+
1318
+ if r is None:
1319
+ return None
1320
+ elif r is True:
1321
+ if result is False:
1322
+ return None
1323
+ elif result is None:
1324
+ result = True
1325
+ elif r is False:
1326
+ if result is True:
1327
+ return None
1328
+ elif result is None:
1329
+ result = False
1330
+
1331
+ return result
1332
+
1333
+ def hasShapeSlotBool(self):
1334
+ return self._delegatedCheck(lambda x: x.hasShapeSlotBool())
1335
+
1336
+ def hasShapeSlotLen(self):
1337
+ return self._delegatedCheck(lambda x: x.hasShapeSlotLen())
1338
+
1339
+ def hasShapeSlotIter(self):
1340
+ return self._delegatedCheck(lambda x: x.hasShapeSlotIter())
1341
+
1342
+ def hasShapeSlotNext(self):
1343
+ return self._delegatedCheck(lambda x: x.hasShapeSlotNext())
1344
+
1345
+ def hasShapeSlotContains(self):
1346
+ return self._delegatedCheck(lambda x: x.hasShapeSlotContains())
1347
+
1348
+ def hasShapeSlotInt(self):
1349
+ return self._delegatedCheck(lambda x: x.hasShapeSlotInt())
1350
+
1351
+ def hasShapeSlotLong(self):
1352
+ return self._delegatedCheck(lambda x: x.hasShapeSlotLong())
1353
+
1354
+ def hasShapeSlotFloat(self):
1355
+ return self._delegatedCheck(lambda x: x.hasShapeSlotFloat())
1356
+
1357
+ def hasShapeSlotComplex(self):
1358
+ return self._delegatedCheck(lambda x: x.hasShapeSlotComplex())
1359
+
1360
+ def hasShapeSlotBytes(self):
1361
+ return self._delegatedCheck(lambda x: x.hasShapeSlotBytes())
1362
+
1363
+ def hasShapeModule(self):
1364
+ return self._delegatedCheck(lambda x: x.hasShapeModule())
1365
+
1366
+
1367
+ tshape_unknown_loop = ShapeLoopCompleteAlternative(shapes=(tshape_unknown,))
1368
+
1369
+ operation_result_unknown = tshape_unknown, ControlFlowDescriptionFullEscape
1370
+
1371
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1372
+ # integrates with CPython, but also works on its own.
1373
+ #
1374
+ # Licensed under the Apache License, Version 2.0 (the "License");
1375
+ # you may not use this file except in compliance with the License.
1376
+ # You may obtain a copy of the License at
1377
+ #
1378
+ # http://www.apache.org/licenses/LICENSE-2.0
1379
+ #
1380
+ # Unless required by applicable law or agreed to in writing, software
1381
+ # distributed under the License is distributed on an "AS IS" BASIS,
1382
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1383
+ # See the License for the specific language governing permissions and
1384
+ # limitations under the License.