mypy-dev 1.9.0.dev0__py3-none-any.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.
Files changed (1018) hide show
  1. mypy/__init__.py +1 -0
  2. mypy/__main__.py +37 -0
  3. mypy/api.py +94 -0
  4. mypy/applytype.py +156 -0
  5. mypy/argmap.py +268 -0
  6. mypy/binder.py +538 -0
  7. mypy/bogus_type.py +27 -0
  8. mypy/build.py +3562 -0
  9. mypy/checker.py +8372 -0
  10. mypy/checkexpr.py +6615 -0
  11. mypy/checkmember.py +1356 -0
  12. mypy/checkpattern.py +801 -0
  13. mypy/checkstrformat.py +1109 -0
  14. mypy/config_parser.py +670 -0
  15. mypy/constant_fold.py +187 -0
  16. mypy/constraints.py +1624 -0
  17. mypy/copytype.py +133 -0
  18. mypy/defaults.py +46 -0
  19. mypy/dmypy/__init__.py +0 -0
  20. mypy/dmypy/__main__.py +6 -0
  21. mypy/dmypy/client.py +749 -0
  22. mypy/dmypy_os.py +42 -0
  23. mypy/dmypy_server.py +1107 -0
  24. mypy/dmypy_util.py +117 -0
  25. mypy/erasetype.py +278 -0
  26. mypy/errorcodes.py +285 -0
  27. mypy/errors.py +1280 -0
  28. mypy/evalexpr.py +205 -0
  29. mypy/expandtype.py +510 -0
  30. mypy/exprtotype.py +206 -0
  31. mypy/fastparse.py +2147 -0
  32. mypy/find_sources.py +243 -0
  33. mypy/fixup.py +426 -0
  34. mypy/freetree.py +23 -0
  35. mypy/fscache.py +309 -0
  36. mypy/fswatcher.py +106 -0
  37. mypy/gclogger.py +47 -0
  38. mypy/git.py +34 -0
  39. mypy/graph_utils.py +112 -0
  40. mypy/indirection.py +121 -0
  41. mypy/infer.py +75 -0
  42. mypy/inspections.py +627 -0
  43. mypy/ipc.py +310 -0
  44. mypy/join.py +866 -0
  45. mypy/literals.py +306 -0
  46. mypy/lookup.py +61 -0
  47. mypy/main.py +1574 -0
  48. mypy/maptype.py +106 -0
  49. mypy/meet.py +1140 -0
  50. mypy/memprofile.py +121 -0
  51. mypy/message_registry.py +326 -0
  52. mypy/messages.py +3171 -0
  53. mypy/metastore.py +225 -0
  54. mypy/mixedtraverser.py +112 -0
  55. mypy/modulefinder.py +875 -0
  56. mypy/moduleinspect.py +184 -0
  57. mypy/mro.py +62 -0
  58. mypy/nodes.py +4112 -0
  59. mypy/operators.py +126 -0
  60. mypy/options.py +556 -0
  61. mypy/parse.py +30 -0
  62. mypy/partially_defined.py +675 -0
  63. mypy/patterns.py +150 -0
  64. mypy/plugin.py +901 -0
  65. mypy/plugins/__init__.py +0 -0
  66. mypy/plugins/attrs.py +1152 -0
  67. mypy/plugins/common.py +440 -0
  68. mypy/plugins/ctypes.py +245 -0
  69. mypy/plugins/dataclasses.py +1101 -0
  70. mypy/plugins/default.py +518 -0
  71. mypy/plugins/enums.py +259 -0
  72. mypy/plugins/functools.py +104 -0
  73. mypy/plugins/proper_plugin.py +175 -0
  74. mypy/plugins/singledispatch.py +224 -0
  75. mypy/py.typed +1 -0
  76. mypy/pyinfo.py +78 -0
  77. mypy/reachability.py +362 -0
  78. mypy/refinfo.py +92 -0
  79. mypy/renaming.py +568 -0
  80. mypy/report.py +924 -0
  81. mypy/scope.py +125 -0
  82. mypy/semanal.py +7023 -0
  83. mypy/semanal_classprop.py +187 -0
  84. mypy/semanal_enum.py +253 -0
  85. mypy/semanal_infer.py +128 -0
  86. mypy/semanal_main.py +511 -0
  87. mypy/semanal_namedtuple.py +670 -0
  88. mypy/semanal_newtype.py +273 -0
  89. mypy/semanal_pass1.py +156 -0
  90. mypy/semanal_shared.py +490 -0
  91. mypy/semanal_typeargs.py +265 -0
  92. mypy/semanal_typeddict.py +575 -0
  93. mypy/server/__init__.py +0 -0
  94. mypy/server/astdiff.py +518 -0
  95. mypy/server/astmerge.py +562 -0
  96. mypy/server/aststrip.py +281 -0
  97. mypy/server/deps.py +1137 -0
  98. mypy/server/mergecheck.py +83 -0
  99. mypy/server/objgraph.py +101 -0
  100. mypy/server/subexpr.py +198 -0
  101. mypy/server/target.py +11 -0
  102. mypy/server/trigger.py +26 -0
  103. mypy/server/update.py +1339 -0
  104. mypy/sharedparse.py +112 -0
  105. mypy/solve.py +562 -0
  106. mypy/split_namespace.py +35 -0
  107. mypy/state.py +28 -0
  108. mypy/stats.py +489 -0
  109. mypy/strconv.py +641 -0
  110. mypy/stubdoc.py +491 -0
  111. mypy/stubgen.py +1873 -0
  112. mypy/stubgenc.py +993 -0
  113. mypy/stubinfo.py +173 -0
  114. mypy/stubtest.py +2079 -0
  115. mypy/stubutil.py +807 -0
  116. mypy/subtypes.py +1967 -0
  117. mypy/suggestions.py +1046 -0
  118. mypy/test/__init__.py +0 -0
  119. mypy/test/config.py +28 -0
  120. mypy/test/data.py +823 -0
  121. mypy/test/helpers.py +476 -0
  122. mypy/test/meta/__init__.py +0 -0
  123. mypy/test/meta/_pytest.py +72 -0
  124. mypy/test/meta/test_diff_helper.py +47 -0
  125. mypy/test/meta/test_parse_data.py +73 -0
  126. mypy/test/meta/test_update_data.py +135 -0
  127. mypy/test/test_find_sources.py +376 -0
  128. mypy/test/test_ref_info.py +45 -0
  129. mypy/test/testapi.py +45 -0
  130. mypy/test/testargs.py +77 -0
  131. mypy/test/testcheck.py +322 -0
  132. mypy/test/testcmdline.py +152 -0
  133. mypy/test/testconstraints.py +134 -0
  134. mypy/test/testdaemon.py +132 -0
  135. mypy/test/testdeps.py +77 -0
  136. mypy/test/testdiff.py +67 -0
  137. mypy/test/testerrorstream.py +46 -0
  138. mypy/test/testfinegrained.py +438 -0
  139. mypy/test/testfinegrainedcache.py +18 -0
  140. mypy/test/testformatter.py +85 -0
  141. mypy/test/testfscache.py +101 -0
  142. mypy/test/testgraph.py +83 -0
  143. mypy/test/testinfer.py +373 -0
  144. mypy/test/testipc.py +119 -0
  145. mypy/test/testmerge.py +238 -0
  146. mypy/test/testmodulefinder.py +278 -0
  147. mypy/test/testmypyc.py +14 -0
  148. mypy/test/testparse.py +107 -0
  149. mypy/test/testpep561.py +211 -0
  150. mypy/test/testpythoneval.py +117 -0
  151. mypy/test/testreports.py +55 -0
  152. mypy/test/testsemanal.py +209 -0
  153. mypy/test/testsolve.py +285 -0
  154. mypy/test/teststubgen.py +1412 -0
  155. mypy/test/teststubinfo.py +12 -0
  156. mypy/test/teststubtest.py +2492 -0
  157. mypy/test/testsubtypes.py +303 -0
  158. mypy/test/testtransform.py +64 -0
  159. mypy/test/testtypegen.py +83 -0
  160. mypy/test/testtypes.py +1551 -0
  161. mypy/test/testutil.py +111 -0
  162. mypy/test/typefixture.py +415 -0
  163. mypy/test/update_data.py +87 -0
  164. mypy/test/visitors.py +63 -0
  165. mypy/traverser.py +961 -0
  166. mypy/treetransform.py +800 -0
  167. mypy/tvar_scope.py +147 -0
  168. mypy/type_visitor.py +564 -0
  169. mypy/typeanal.py +2510 -0
  170. mypy/typeops.py +1082 -0
  171. mypy/types.py +3686 -0
  172. mypy/types_utils.py +166 -0
  173. mypy/typeshed/LICENSE +237 -0
  174. mypy/typeshed/stdlib/VERSIONS +308 -0
  175. mypy/typeshed/stdlib/__future__.pyi +36 -0
  176. mypy/typeshed/stdlib/__main__.pyi +3 -0
  177. mypy/typeshed/stdlib/_ast.pyi +587 -0
  178. mypy/typeshed/stdlib/_bisect.pyi +84 -0
  179. mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
  180. mypy/typeshed/stdlib/_codecs.pyi +133 -0
  181. mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
  182. mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
  183. mypy/typeshed/stdlib/_compression.pyi +25 -0
  184. mypy/typeshed/stdlib/_csv.pyi +90 -0
  185. mypy/typeshed/stdlib/_ctypes.pyi +205 -0
  186. mypy/typeshed/stdlib/_curses.pyi +557 -0
  187. mypy/typeshed/stdlib/_decimal.pyi +281 -0
  188. mypy/typeshed/stdlib/_dummy_thread.pyi +27 -0
  189. mypy/typeshed/stdlib/_dummy_threading.pyi +164 -0
  190. mypy/typeshed/stdlib/_heapq.pyi +11 -0
  191. mypy/typeshed/stdlib/_imp.pyi +28 -0
  192. mypy/typeshed/stdlib/_json.pyi +49 -0
  193. mypy/typeshed/stdlib/_locale.pyi +100 -0
  194. mypy/typeshed/stdlib/_markupbase.pyi +16 -0
  195. mypy/typeshed/stdlib/_msi.pyi +91 -0
  196. mypy/typeshed/stdlib/_operator.pyi +147 -0
  197. mypy/typeshed/stdlib/_osx_support.pyi +34 -0
  198. mypy/typeshed/stdlib/_posixsubprocess.pyi +32 -0
  199. mypy/typeshed/stdlib/_py_abc.pyi +14 -0
  200. mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
  201. mypy/typeshed/stdlib/_random.pyi +12 -0
  202. mypy/typeshed/stdlib/_sitebuiltins.pyi +16 -0
  203. mypy/typeshed/stdlib/_socket.pyi +802 -0
  204. mypy/typeshed/stdlib/_stat.pyi +103 -0
  205. mypy/typeshed/stdlib/_thread.pyi +52 -0
  206. mypy/typeshed/stdlib/_threading_local.pyi +17 -0
  207. mypy/typeshed/stdlib/_tkinter.pyi +120 -0
  208. mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
  209. mypy/typeshed/stdlib/_typeshed/__init__.pyi +347 -0
  210. mypy/typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
  211. mypy/typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
  212. mypy/typeshed/stdlib/_typeshed/xml.pyi +9 -0
  213. mypy/typeshed/stdlib/_warnings.pyi +55 -0
  214. mypy/typeshed/stdlib/_weakref.pyi +41 -0
  215. mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
  216. mypy/typeshed/stdlib/_winapi.pyi +251 -0
  217. mypy/typeshed/stdlib/abc.pyi +49 -0
  218. mypy/typeshed/stdlib/aifc.pyi +91 -0
  219. mypy/typeshed/stdlib/antigravity.pyi +3 -0
  220. mypy/typeshed/stdlib/argparse.pyi +571 -0
  221. mypy/typeshed/stdlib/array.pyi +92 -0
  222. mypy/typeshed/stdlib/ast.pyi +277 -0
  223. mypy/typeshed/stdlib/asynchat.pyi +21 -0
  224. mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
  225. mypy/typeshed/stdlib/asyncio/base_events.pyi +440 -0
  226. mypy/typeshed/stdlib/asyncio/base_futures.pyi +19 -0
  227. mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +63 -0
  228. mypy/typeshed/stdlib/asyncio/base_tasks.pyi +9 -0
  229. mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
  230. mypy/typeshed/stdlib/asyncio/coroutines.pyi +26 -0
  231. mypy/typeshed/stdlib/asyncio/events.pyi +574 -0
  232. mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
  233. mypy/typeshed/stdlib/asyncio/format_helpers.pyi +20 -0
  234. mypy/typeshed/stdlib/asyncio/futures.pyi +57 -0
  235. mypy/typeshed/stdlib/asyncio/locks.pyi +121 -0
  236. mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
  237. mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
  238. mypy/typeshed/stdlib/asyncio/proactor_events.pyi +64 -0
  239. mypy/typeshed/stdlib/asyncio/protocols.pyi +34 -0
  240. mypy/typeshed/stdlib/asyncio/queues.pyi +47 -0
  241. mypy/typeshed/stdlib/asyncio/runners.pyi +32 -0
  242. mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
  243. mypy/typeshed/stdlib/asyncio/sslproto.pyi +163 -0
  244. mypy/typeshed/stdlib/asyncio/staggered.pyi +10 -0
  245. mypy/typeshed/stdlib/asyncio/streams.pyi +148 -0
  246. mypy/typeshed/stdlib/asyncio/subprocess.pyi +229 -0
  247. mypy/typeshed/stdlib/asyncio/taskgroups.pyi +25 -0
  248. mypy/typeshed/stdlib/asyncio/tasks.pyi +477 -0
  249. mypy/typeshed/stdlib/asyncio/threads.pyi +9 -0
  250. mypy/typeshed/stdlib/asyncio/timeouts.pyi +19 -0
  251. mypy/typeshed/stdlib/asyncio/transports.pyi +47 -0
  252. mypy/typeshed/stdlib/asyncio/trsock.pyi +98 -0
  253. mypy/typeshed/stdlib/asyncio/unix_events.pyi +173 -0
  254. mypy/typeshed/stdlib/asyncio/windows_events.pyi +83 -0
  255. mypy/typeshed/stdlib/asyncio/windows_utils.pyi +49 -0
  256. mypy/typeshed/stdlib/asyncore.pyi +90 -0
  257. mypy/typeshed/stdlib/atexit.pyi +12 -0
  258. mypy/typeshed/stdlib/audioop.pyi +42 -0
  259. mypy/typeshed/stdlib/base64.pyi +59 -0
  260. mypy/typeshed/stdlib/bdb.pyi +102 -0
  261. mypy/typeshed/stdlib/binascii.pyi +36 -0
  262. mypy/typeshed/stdlib/binhex.pyi +45 -0
  263. mypy/typeshed/stdlib/bisect.pyi +4 -0
  264. mypy/typeshed/stdlib/builtins.pyi +1937 -0
  265. mypy/typeshed/stdlib/bz2.pyi +146 -0
  266. mypy/typeshed/stdlib/cProfile.pyi +35 -0
  267. mypy/typeshed/stdlib/calendar.pyi +206 -0
  268. mypy/typeshed/stdlib/cgi.pyi +118 -0
  269. mypy/typeshed/stdlib/cgitb.pyi +32 -0
  270. mypy/typeshed/stdlib/chunk.pyi +20 -0
  271. mypy/typeshed/stdlib/cmath.pyi +36 -0
  272. mypy/typeshed/stdlib/cmd.pyi +45 -0
  273. mypy/typeshed/stdlib/code.pyi +33 -0
  274. mypy/typeshed/stdlib/codecs.pyi +285 -0
  275. mypy/typeshed/stdlib/codeop.pyi +13 -0
  276. mypy/typeshed/stdlib/collections/__init__.pyi +477 -0
  277. mypy/typeshed/stdlib/collections/abc.pyi +2 -0
  278. mypy/typeshed/stdlib/colorsys.pyi +13 -0
  279. mypy/typeshed/stdlib/compileall.pyi +111 -0
  280. mypy/typeshed/stdlib/concurrent/__init__.pyi +0 -0
  281. mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
  282. mypy/typeshed/stdlib/concurrent/futures/_base.pyi +120 -0
  283. mypy/typeshed/stdlib/concurrent/futures/process.pyi +233 -0
  284. mypy/typeshed/stdlib/concurrent/futures/thread.pyi +80 -0
  285. mypy/typeshed/stdlib/configparser.pyi +313 -0
  286. mypy/typeshed/stdlib/contextlib.pyi +207 -0
  287. mypy/typeshed/stdlib/contextvars.pyi +63 -0
  288. mypy/typeshed/stdlib/copy.pyi +16 -0
  289. mypy/typeshed/stdlib/copyreg.pyi +21 -0
  290. mypy/typeshed/stdlib/crypt.pyi +12 -0
  291. mypy/typeshed/stdlib/csv.pyi +147 -0
  292. mypy/typeshed/stdlib/ctypes/__init__.pyi +187 -0
  293. mypy/typeshed/stdlib/ctypes/_endian.pyi +19 -0
  294. mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
  295. mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
  296. mypy/typeshed/stdlib/curses/__init__.pyi +21 -0
  297. mypy/typeshed/stdlib/curses/ascii.pyi +63 -0
  298. mypy/typeshed/stdlib/curses/has_key.pyi +4 -0
  299. mypy/typeshed/stdlib/curses/panel.pyi +25 -0
  300. mypy/typeshed/stdlib/curses/textpad.pyi +13 -0
  301. mypy/typeshed/stdlib/dataclasses.pyi +313 -0
  302. mypy/typeshed/stdlib/datetime.pyi +295 -0
  303. mypy/typeshed/stdlib/dbm/__init__.pyi +95 -0
  304. mypy/typeshed/stdlib/dbm/dumb.pyi +31 -0
  305. mypy/typeshed/stdlib/dbm/gnu.pyi +40 -0
  306. mypy/typeshed/stdlib/dbm/ndbm.pyi +36 -0
  307. mypy/typeshed/stdlib/decimal.pyi +2 -0
  308. mypy/typeshed/stdlib/difflib.pyi +140 -0
  309. mypy/typeshed/stdlib/dis.pyi +144 -0
  310. mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
  311. mypy/typeshed/stdlib/distutils/archive_util.pyi +20 -0
  312. mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
  313. mypy/typeshed/stdlib/distutils/ccompiler.pyi +152 -0
  314. mypy/typeshed/stdlib/distutils/cmd.pyi +66 -0
  315. mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
  316. mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
  317. mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
  318. mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
  319. mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
  320. mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
  321. mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +16 -0
  322. mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
  323. mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
  324. mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
  325. mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
  326. mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
  327. mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
  328. mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
  329. mypy/typeshed/stdlib/distutils/command/config.pyi +83 -0
  330. mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
  331. mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
  332. mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
  333. mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
  334. mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
  335. mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
  336. mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
  337. mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
  338. mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
  339. mypy/typeshed/stdlib/distutils/config.pyi +17 -0
  340. mypy/typeshed/stdlib/distutils/core.pyi +57 -0
  341. mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
  342. mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
  343. mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
  344. mypy/typeshed/stdlib/distutils/dir_util.pyi +13 -0
  345. mypy/typeshed/stdlib/distutils/dist.pyi +146 -0
  346. mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
  347. mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
  348. mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +34 -0
  349. mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
  350. mypy/typeshed/stdlib/distutils/filelist.pyi +50 -0
  351. mypy/typeshed/stdlib/distutils/log.pyi +25 -0
  352. mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
  353. mypy/typeshed/stdlib/distutils/spawn.pyi +2 -0
  354. mypy/typeshed/stdlib/distutils/sysconfig.pyi +22 -0
  355. mypy/typeshed/stdlib/distutils/text_file.pyi +21 -0
  356. mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
  357. mypy/typeshed/stdlib/distutils/util.pyi +46 -0
  358. mypy/typeshed/stdlib/distutils/version.pyi +36 -0
  359. mypy/typeshed/stdlib/doctest.pyi +248 -0
  360. mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
  361. mypy/typeshed/stdlib/email/__init__.pyi +29 -0
  362. mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
  363. mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
  364. mypy/typeshed/stdlib/email/base64mime.pyi +13 -0
  365. mypy/typeshed/stdlib/email/charset.pyi +34 -0
  366. mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
  367. mypy/typeshed/stdlib/email/encoders.pyi +8 -0
  368. mypy/typeshed/stdlib/email/errors.pyi +39 -0
  369. mypy/typeshed/stdlib/email/feedparser.pyi +23 -0
  370. mypy/typeshed/stdlib/email/generator.pyi +40 -0
  371. mypy/typeshed/stdlib/email/header.pyi +31 -0
  372. mypy/typeshed/stdlib/email/headerregistry.pyi +178 -0
  373. mypy/typeshed/stdlib/email/iterators.pyi +12 -0
  374. mypy/typeshed/stdlib/email/message.pyi +161 -0
  375. mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
  376. mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
  377. mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
  378. mypy/typeshed/stdlib/email/mime/base.pyi +8 -0
  379. mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
  380. mypy/typeshed/stdlib/email/mime/message.pyi +8 -0
  381. mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
  382. mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
  383. mypy/typeshed/stdlib/email/mime/text.pyi +9 -0
  384. mypy/typeshed/stdlib/email/parser.pyi +26 -0
  385. mypy/typeshed/stdlib/email/policy.pyi +38 -0
  386. mypy/typeshed/stdlib/email/quoprimime.pyi +28 -0
  387. mypy/typeshed/stdlib/email/utils.pyi +66 -0
  388. mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
  389. mypy/typeshed/stdlib/encodings/utf_8.pyi +21 -0
  390. mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +22 -0
  391. mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
  392. mypy/typeshed/stdlib/enum.pyi +317 -0
  393. mypy/typeshed/stdlib/errno.pyi +222 -0
  394. mypy/typeshed/stdlib/faulthandler.pyi +13 -0
  395. mypy/typeshed/stdlib/fcntl.pyi +127 -0
  396. mypy/typeshed/stdlib/filecmp.pyi +57 -0
  397. mypy/typeshed/stdlib/fileinput.pyi +213 -0
  398. mypy/typeshed/stdlib/fnmatch.pyi +9 -0
  399. mypy/typeshed/stdlib/formatter.pyi +88 -0
  400. mypy/typeshed/stdlib/fractions.pyi +150 -0
  401. mypy/typeshed/stdlib/ftplib.pyi +178 -0
  402. mypy/typeshed/stdlib/functools.pyi +200 -0
  403. mypy/typeshed/stdlib/gc.pyi +37 -0
  404. mypy/typeshed/stdlib/genericpath.pyi +52 -0
  405. mypy/typeshed/stdlib/getopt.pyi +11 -0
  406. mypy/typeshed/stdlib/getpass.pyi +8 -0
  407. mypy/typeshed/stdlib/gettext.pyi +169 -0
  408. mypy/typeshed/stdlib/glob.pyi +42 -0
  409. mypy/typeshed/stdlib/graphlib.pyi +28 -0
  410. mypy/typeshed/stdlib/grp.pyi +21 -0
  411. mypy/typeshed/stdlib/gzip.pyi +160 -0
  412. mypy/typeshed/stdlib/hashlib.pyi +165 -0
  413. mypy/typeshed/stdlib/heapq.pyi +17 -0
  414. mypy/typeshed/stdlib/hmac.pyi +38 -0
  415. mypy/typeshed/stdlib/html/__init__.pyi +6 -0
  416. mypy/typeshed/stdlib/html/entities.pyi +6 -0
  417. mypy/typeshed/stdlib/html/parser.pyi +34 -0
  418. mypy/typeshed/stdlib/http/__init__.pyi +105 -0
  419. mypy/typeshed/stdlib/http/client.pyi +259 -0
  420. mypy/typeshed/stdlib/http/cookiejar.pyi +159 -0
  421. mypy/typeshed/stdlib/http/cookies.pyi +60 -0
  422. mypy/typeshed/stdlib/http/server.pyi +83 -0
  423. mypy/typeshed/stdlib/imaplib.pyi +168 -0
  424. mypy/typeshed/stdlib/imghdr.pyi +17 -0
  425. mypy/typeshed/stdlib/imp.pyi +62 -0
  426. mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
  427. mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
  428. mypy/typeshed/stdlib/importlib/abc.pyi +172 -0
  429. mypy/typeshed/stdlib/importlib/machinery.pyi +179 -0
  430. mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +276 -0
  431. mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +40 -0
  432. mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
  433. mypy/typeshed/stdlib/importlib/resources/__init__.pyi +46 -0
  434. mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
  435. mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
  436. mypy/typeshed/stdlib/importlib/resources/simple.pyi +49 -0
  437. mypy/typeshed/stdlib/importlib/simple.pyi +11 -0
  438. mypy/typeshed/stdlib/importlib/util.pyi +43 -0
  439. mypy/typeshed/stdlib/inspect.pyi +631 -0
  440. mypy/typeshed/stdlib/io.pyi +204 -0
  441. mypy/typeshed/stdlib/ipaddress.pyi +208 -0
  442. mypy/typeshed/stdlib/itertools.pyi +293 -0
  443. mypy/typeshed/stdlib/json/__init__.pyi +61 -0
  444. mypy/typeshed/stdlib/json/decoder.pyi +32 -0
  445. mypy/typeshed/stdlib/json/encoder.pyi +38 -0
  446. mypy/typeshed/stdlib/json/tool.pyi +1 -0
  447. mypy/typeshed/stdlib/keyword.pyi +21 -0
  448. mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
  449. mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +28 -0
  450. mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +42 -0
  451. mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
  452. mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
  453. mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
  454. mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
  455. mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
  456. mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
  457. mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
  458. mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
  459. mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
  460. mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
  461. mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
  462. mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
  463. mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
  464. mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
  465. mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
  466. mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
  467. mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
  468. mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
  469. mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
  470. mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
  471. mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
  472. mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
  473. mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
  474. mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
  475. mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
  476. mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
  477. mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
  478. mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
  479. mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
  480. mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
  481. mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
  482. mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
  483. mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
  484. mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
  485. mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
  486. mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
  487. mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
  488. mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
  489. mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
  490. mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
  491. mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
  492. mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
  493. mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
  494. mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
  495. mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
  496. mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
  497. mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
  498. mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
  499. mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +15 -0
  500. mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
  501. mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
  502. mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
  503. mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
  504. mypy/typeshed/stdlib/lib2to3/main.pyi +42 -0
  505. mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
  506. mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +27 -0
  507. mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
  508. mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
  509. mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +30 -0
  510. mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +50 -0
  511. mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
  512. mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +96 -0
  513. mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
  514. mypy/typeshed/stdlib/lib2to3/pytree.pyi +117 -0
  515. mypy/typeshed/stdlib/lib2to3/refactor.pyi +82 -0
  516. mypy/typeshed/stdlib/linecache.pyi +23 -0
  517. mypy/typeshed/stdlib/locale.pyi +152 -0
  518. mypy/typeshed/stdlib/logging/__init__.pyi +655 -0
  519. mypy/typeshed/stdlib/logging/config.pyi +134 -0
  520. mypy/typeshed/stdlib/logging/handlers.pyi +275 -0
  521. mypy/typeshed/stdlib/lzma.pyi +197 -0
  522. mypy/typeshed/stdlib/mailbox.pyi +256 -0
  523. mypy/typeshed/stdlib/mailcap.pyi +11 -0
  524. mypy/typeshed/stdlib/marshal.pyi +33 -0
  525. mypy/typeshed/stdlib/math.pyi +125 -0
  526. mypy/typeshed/stdlib/mimetypes.pyi +46 -0
  527. mypy/typeshed/stdlib/mmap.pyi +113 -0
  528. mypy/typeshed/stdlib/modulefinder.pyi +66 -0
  529. mypy/typeshed/stdlib/msilib/__init__.pyi +176 -0
  530. mypy/typeshed/stdlib/msilib/schema.pyi +94 -0
  531. mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
  532. mypy/typeshed/stdlib/msilib/text.pyi +7 -0
  533. mypy/typeshed/stdlib/msvcrt.pyi +32 -0
  534. mypy/typeshed/stdlib/multiprocessing/__init__.pyi +90 -0
  535. mypy/typeshed/stdlib/multiprocessing/connection.pyi +75 -0
  536. mypy/typeshed/stdlib/multiprocessing/context.pyi +187 -0
  537. mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +77 -0
  538. mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +39 -0
  539. mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +31 -0
  540. mypy/typeshed/stdlib/multiprocessing/heap.pyi +36 -0
  541. mypy/typeshed/stdlib/multiprocessing/managers.pyi +212 -0
  542. mypy/typeshed/stdlib/multiprocessing/pool.pyi +103 -0
  543. mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
  544. mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
  545. mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
  546. mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
  547. mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
  548. mypy/typeshed/stdlib/multiprocessing/queues.pyi +41 -0
  549. mypy/typeshed/stdlib/multiprocessing/reduction.pyi +89 -0
  550. mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
  551. mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
  552. mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +40 -0
  553. mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +101 -0
  554. mypy/typeshed/stdlib/multiprocessing/spawn.pyi +32 -0
  555. mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +54 -0
  556. mypy/typeshed/stdlib/multiprocessing/util.pyi +79 -0
  557. mypy/typeshed/stdlib/netrc.pyi +23 -0
  558. mypy/typeshed/stdlib/nis.pyi +9 -0
  559. mypy/typeshed/stdlib/nntplib.pyi +125 -0
  560. mypy/typeshed/stdlib/nt.pyi +111 -0
  561. mypy/typeshed/stdlib/ntpath.pyi +119 -0
  562. mypy/typeshed/stdlib/nturl2path.pyi +2 -0
  563. mypy/typeshed/stdlib/numbers.pyi +154 -0
  564. mypy/typeshed/stdlib/opcode.pyi +59 -0
  565. mypy/typeshed/stdlib/operator.pyi +110 -0
  566. mypy/typeshed/stdlib/optparse.pyi +252 -0
  567. mypy/typeshed/stdlib/os/__init__.pyi +1139 -0
  568. mypy/typeshed/stdlib/os/path.pyi +8 -0
  569. mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
  570. mypy/typeshed/stdlib/parser.pyi +24 -0
  571. mypy/typeshed/stdlib/pathlib.pyi +232 -0
  572. mypy/typeshed/stdlib/pdb.pyi +181 -0
  573. mypy/typeshed/stdlib/pickle.pyi +270 -0
  574. mypy/typeshed/stdlib/pickletools.pyi +167 -0
  575. mypy/typeshed/stdlib/pipes.pyi +16 -0
  576. mypy/typeshed/stdlib/pkgutil.pyi +53 -0
  577. mypy/typeshed/stdlib/platform.pyi +42 -0
  578. mypy/typeshed/stdlib/plistlib.pyi +113 -0
  579. mypy/typeshed/stdlib/poplib.pyi +71 -0
  580. mypy/typeshed/stdlib/posix.pyi +359 -0
  581. mypy/typeshed/stdlib/posixpath.pyi +161 -0
  582. mypy/typeshed/stdlib/pprint.pyi +112 -0
  583. mypy/typeshed/stdlib/profile.pyi +31 -0
  584. mypy/typeshed/stdlib/pstats.pyi +78 -0
  585. mypy/typeshed/stdlib/pty.pyi +19 -0
  586. mypy/typeshed/stdlib/pwd.pyi +27 -0
  587. mypy/typeshed/stdlib/py_compile.pyi +34 -0
  588. mypy/typeshed/stdlib/pyclbr.pyi +74 -0
  589. mypy/typeshed/stdlib/pydoc.pyi +261 -0
  590. mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  591. mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
  592. mypy/typeshed/stdlib/pyexpat/__init__.pyi +80 -0
  593. mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
  594. mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
  595. mypy/typeshed/stdlib/queue.pyi +58 -0
  596. mypy/typeshed/stdlib/quopri.pyi +11 -0
  597. mypy/typeshed/stdlib/random.pyi +138 -0
  598. mypy/typeshed/stdlib/re.pyi +290 -0
  599. mypy/typeshed/stdlib/readline.pyi +36 -0
  600. mypy/typeshed/stdlib/reprlib.pyi +65 -0
  601. mypy/typeshed/stdlib/resource.pyi +92 -0
  602. mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
  603. mypy/typeshed/stdlib/runpy.pyi +24 -0
  604. mypy/typeshed/stdlib/sched.pyi +42 -0
  605. mypy/typeshed/stdlib/secrets.pyi +15 -0
  606. mypy/typeshed/stdlib/select.pyi +151 -0
  607. mypy/typeshed/stdlib/selectors.pyi +67 -0
  608. mypy/typeshed/stdlib/shelve.pyi +46 -0
  609. mypy/typeshed/stdlib/shlex.pyi +43 -0
  610. mypy/typeshed/stdlib/shutil.pyi +189 -0
  611. mypy/typeshed/stdlib/signal.pyi +189 -0
  612. mypy/typeshed/stdlib/site.pyi +27 -0
  613. mypy/typeshed/stdlib/smtpd.pyi +91 -0
  614. mypy/typeshed/stdlib/smtplib.pyi +204 -0
  615. mypy/typeshed/stdlib/sndhdr.pyi +14 -0
  616. mypy/typeshed/stdlib/socket.pyi +825 -0
  617. mypy/typeshed/stdlib/socketserver.pyi +168 -0
  618. mypy/typeshed/stdlib/spwd.pyi +40 -0
  619. mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
  620. mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +469 -0
  621. mypy/typeshed/stdlib/sre_compile.pyi +11 -0
  622. mypy/typeshed/stdlib/sre_constants.pyi +130 -0
  623. mypy/typeshed/stdlib/sre_parse.pyi +104 -0
  624. mypy/typeshed/stdlib/ssl.pyi +529 -0
  625. mypy/typeshed/stdlib/stat.pyi +1 -0
  626. mypy/typeshed/stdlib/statistics.pyi +132 -0
  627. mypy/typeshed/stdlib/string.pyi +83 -0
  628. mypy/typeshed/stdlib/stringprep.pyi +27 -0
  629. mypy/typeshed/stdlib/struct.pyi +26 -0
  630. mypy/typeshed/stdlib/subprocess.pyi +2614 -0
  631. mypy/typeshed/stdlib/sunau.pyi +86 -0
  632. mypy/typeshed/stdlib/symbol.pyi +93 -0
  633. mypy/typeshed/stdlib/symtable.pyi +58 -0
  634. mypy/typeshed/stdlib/sys/__init__.pyi +373 -0
  635. mypy/typeshed/stdlib/sys/_monitoring.pyi +52 -0
  636. mypy/typeshed/stdlib/sysconfig.pyi +43 -0
  637. mypy/typeshed/stdlib/syslog.pyi +46 -0
  638. mypy/typeshed/stdlib/tabnanny.pyi +16 -0
  639. mypy/typeshed/stdlib/tarfile.pyi +438 -0
  640. mypy/typeshed/stdlib/telnetlib.pyi +122 -0
  641. mypy/typeshed/stdlib/tempfile.pyi +477 -0
  642. mypy/typeshed/stdlib/termios.pyi +267 -0
  643. mypy/typeshed/stdlib/textwrap.pyi +103 -0
  644. mypy/typeshed/stdlib/this.pyi +2 -0
  645. mypy/typeshed/stdlib/threading.pyi +187 -0
  646. mypy/typeshed/stdlib/time.pyi +107 -0
  647. mypy/typeshed/stdlib/timeit.pyi +32 -0
  648. mypy/typeshed/stdlib/tkinter/__init__.pyi +3641 -0
  649. mypy/typeshed/stdlib/tkinter/colorchooser.pyi +20 -0
  650. mypy/typeshed/stdlib/tkinter/commondialog.pyi +14 -0
  651. mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
  652. mypy/typeshed/stdlib/tkinter/dialog.pyi +16 -0
  653. mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
  654. mypy/typeshed/stdlib/tkinter/filedialog.pyi +151 -0
  655. mypy/typeshed/stdlib/tkinter/font.pyi +116 -0
  656. mypy/typeshed/stdlib/tkinter/messagebox.pyi +44 -0
  657. mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +10 -0
  658. mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
  659. mypy/typeshed/stdlib/tkinter/tix.pyi +299 -0
  660. mypy/typeshed/stdlib/tkinter/ttk.pyi +1191 -0
  661. mypy/typeshed/stdlib/token.pyi +159 -0
  662. mypy/typeshed/stdlib/tokenize.pyi +177 -0
  663. mypy/typeshed/stdlib/tomllib.pyi +10 -0
  664. mypy/typeshed/stdlib/trace.pyi +79 -0
  665. mypy/typeshed/stdlib/traceback.pyi +260 -0
  666. mypy/typeshed/stdlib/tracemalloc.pyi +124 -0
  667. mypy/typeshed/stdlib/tty.pyi +30 -0
  668. mypy/typeshed/stdlib/turtle.pyi +713 -0
  669. mypy/typeshed/stdlib/types.pyi +605 -0
  670. mypy/typeshed/stdlib/typing.pyi +968 -0
  671. mypy/typeshed/stdlib/typing_extensions.pyi +503 -0
  672. mypy/typeshed/stdlib/unicodedata.pyi +71 -0
  673. mypy/typeshed/stdlib/unittest/__init__.pyi +67 -0
  674. mypy/typeshed/stdlib/unittest/_log.pyi +27 -0
  675. mypy/typeshed/stdlib/unittest/async_case.pyi +21 -0
  676. mypy/typeshed/stdlib/unittest/case.pyi +342 -0
  677. mypy/typeshed/stdlib/unittest/loader.pyi +51 -0
  678. mypy/typeshed/stdlib/unittest/main.pyi +69 -0
  679. mypy/typeshed/stdlib/unittest/mock.pyi +430 -0
  680. mypy/typeshed/stdlib/unittest/result.pyi +46 -0
  681. mypy/typeshed/stdlib/unittest/runner.pyi +72 -0
  682. mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
  683. mypy/typeshed/stdlib/unittest/suite.pyi +22 -0
  684. mypy/typeshed/stdlib/unittest/util.pyi +23 -0
  685. mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  686. mypy/typeshed/stdlib/urllib/error.pyi +23 -0
  687. mypy/typeshed/stdlib/urllib/parse.pyi +210 -0
  688. mypy/typeshed/stdlib/urllib/request.pyi +399 -0
  689. mypy/typeshed/stdlib/urllib/response.pyi +43 -0
  690. mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
  691. mypy/typeshed/stdlib/uu.pyi +13 -0
  692. mypy/typeshed/stdlib/uuid.pyi +100 -0
  693. mypy/typeshed/stdlib/venv/__init__.pyi +79 -0
  694. mypy/typeshed/stdlib/warnings.pyi +112 -0
  695. mypy/typeshed/stdlib/wave.pyi +85 -0
  696. mypy/typeshed/stdlib/weakref.pyi +150 -0
  697. mypy/typeshed/stdlib/webbrowser.pyi +74 -0
  698. mypy/typeshed/stdlib/winreg.pyi +103 -0
  699. mypy/typeshed/stdlib/winsound.pyi +28 -0
  700. mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  701. mypy/typeshed/stdlib/wsgiref/handlers.pyi +91 -0
  702. mypy/typeshed/stdlib/wsgiref/headers.pyi +26 -0
  703. mypy/typeshed/stdlib/wsgiref/simple_server.pyi +37 -0
  704. mypy/typeshed/stdlib/wsgiref/types.pyi +32 -0
  705. mypy/typeshed/stdlib/wsgiref/util.pyi +24 -0
  706. mypy/typeshed/stdlib/wsgiref/validate.pyi +50 -0
  707. mypy/typeshed/stdlib/xdrlib.pyi +57 -0
  708. mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
  709. mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
  710. mypy/typeshed/stdlib/xml/dom/__init__.pyi +69 -0
  711. mypy/typeshed/stdlib/xml/dom/domreg.pyi +8 -0
  712. mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +100 -0
  713. mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
  714. mypy/typeshed/stdlib/xml/dom/minidom.pyi +404 -0
  715. mypy/typeshed/stdlib/xml/dom/pulldom.pyi +94 -0
  716. mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +108 -0
  717. mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +28 -0
  718. mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +34 -0
  719. mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +321 -0
  720. mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  721. mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
  722. mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
  723. mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
  724. mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
  725. mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
  726. mypy/typeshed/stdlib/xml/sax/__init__.pyi +25 -0
  727. mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +19 -0
  728. mypy/typeshed/stdlib/xml/sax/handler.pyi +55 -0
  729. mypy/typeshed/stdlib/xml/sax/saxutils.pyi +60 -0
  730. mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +87 -0
  731. mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  732. mypy/typeshed/stdlib/xmlrpc/client.pyi +296 -0
  733. mypy/typeshed/stdlib/xmlrpc/server.pyi +143 -0
  734. mypy/typeshed/stdlib/xxlimited.pyi +22 -0
  735. mypy/typeshed/stdlib/zipapp.pyi +20 -0
  736. mypy/typeshed/stdlib/zipfile/__init__.pyi +306 -0
  737. mypy/typeshed/stdlib/zipfile/_path.pyi +95 -0
  738. mypy/typeshed/stdlib/zipimport.pyi +32 -0
  739. mypy/typeshed/stdlib/zlib.pyi +56 -0
  740. mypy/typeshed/stdlib/zoneinfo/__init__.pyi +38 -0
  741. mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
  742. mypy/typestate.py +323 -0
  743. mypy/typetraverser.py +142 -0
  744. mypy/typevars.py +93 -0
  745. mypy/typevartuples.py +32 -0
  746. mypy/util.py +869 -0
  747. mypy/version.py +1 -0
  748. mypy/visitor.py +621 -0
  749. mypy/xml/mypy-html.css +104 -0
  750. mypy/xml/mypy-html.xslt +81 -0
  751. mypy/xml/mypy-txt.xslt +100 -0
  752. mypy/xml/mypy.xsd +50 -0
  753. mypy_dev-1.9.0.dev0.dist-info/LICENSE +229 -0
  754. mypy_dev-1.9.0.dev0.dist-info/METADATA +39 -0
  755. mypy_dev-1.9.0.dev0.dist-info/RECORD +1018 -0
  756. mypy_dev-1.9.0.dev0.dist-info/WHEEL +5 -0
  757. mypy_dev-1.9.0.dev0.dist-info/entry_points.txt +6 -0
  758. mypy_dev-1.9.0.dev0.dist-info/top_level.txt +2 -0
  759. mypyc/README.md +133 -0
  760. mypyc/__init__.py +0 -0
  761. mypyc/__main__.py +57 -0
  762. mypyc/analysis/__init__.py +0 -0
  763. mypyc/analysis/attrdefined.py +436 -0
  764. mypyc/analysis/blockfreq.py +32 -0
  765. mypyc/analysis/dataflow.py +624 -0
  766. mypyc/analysis/ircheck.py +429 -0
  767. mypyc/analysis/selfleaks.py +207 -0
  768. mypyc/build.py +616 -0
  769. mypyc/codegen/__init__.py +0 -0
  770. mypyc/codegen/cstring.py +54 -0
  771. mypyc/codegen/emit.py +1193 -0
  772. mypyc/codegen/emitclass.py +1060 -0
  773. mypyc/codegen/emitfunc.py +846 -0
  774. mypyc/codegen/emitmodule.py +1131 -0
  775. mypyc/codegen/emitwrapper.py +979 -0
  776. mypyc/codegen/literals.py +302 -0
  777. mypyc/common.py +136 -0
  778. mypyc/crash.py +31 -0
  779. mypyc/doc/Makefile +20 -0
  780. mypyc/doc/bool_operations.rst +27 -0
  781. mypyc/doc/compilation_units.rst +20 -0
  782. mypyc/doc/conf.py +59 -0
  783. mypyc/doc/cpython-timings.md +25 -0
  784. mypyc/doc/dev-intro.md +548 -0
  785. mypyc/doc/dict_operations.rst +59 -0
  786. mypyc/doc/differences_from_python.rst +332 -0
  787. mypyc/doc/float_operations.rst +50 -0
  788. mypyc/doc/future.md +42 -0
  789. mypyc/doc/getting_started.rst +240 -0
  790. mypyc/doc/index.rst +61 -0
  791. mypyc/doc/int_operations.rst +162 -0
  792. mypyc/doc/introduction.rst +150 -0
  793. mypyc/doc/list_operations.rst +65 -0
  794. mypyc/doc/make.bat +35 -0
  795. mypyc/doc/native_classes.rst +206 -0
  796. mypyc/doc/native_operations.rst +55 -0
  797. mypyc/doc/performance_tips_and_tricks.rst +244 -0
  798. mypyc/doc/set_operations.rst +47 -0
  799. mypyc/doc/str_operations.rst +35 -0
  800. mypyc/doc/tuple_operations.rst +33 -0
  801. mypyc/doc/using_type_annotations.rst +398 -0
  802. mypyc/errors.py +29 -0
  803. mypyc/external/googletest/LICENSE +28 -0
  804. mypyc/external/googletest/README.md +280 -0
  805. mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
  806. mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
  807. mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
  808. mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  809. mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
  810. mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
  811. mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
  812. mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
  813. mypyc/external/googletest/include/gtest/gtest.h +2236 -0
  814. mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
  815. mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
  816. mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  817. mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  818. mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
  819. mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  820. mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  821. mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  822. mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  823. mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  824. mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  825. mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  826. mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  827. mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
  828. mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
  829. mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  830. mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  831. mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  832. mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  833. mypyc/external/googletest/make/Makefile +61 -0
  834. mypyc/external/googletest/src/gtest-all.cc +48 -0
  835. mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
  836. mypyc/external/googletest/src/gtest-filepath.cc +387 -0
  837. mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
  838. mypyc/external/googletest/src/gtest-port.cc +1259 -0
  839. mypyc/external/googletest/src/gtest-printers.cc +373 -0
  840. mypyc/external/googletest/src/gtest-test-part.cc +110 -0
  841. mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
  842. mypyc/external/googletest/src/gtest.cc +5388 -0
  843. mypyc/external/googletest/src/gtest_main.cc +38 -0
  844. mypyc/ir/__init__.py +0 -0
  845. mypyc/ir/class_ir.py +499 -0
  846. mypyc/ir/func_ir.py +370 -0
  847. mypyc/ir/module_ir.py +88 -0
  848. mypyc/ir/ops.py +1642 -0
  849. mypyc/ir/pprint.py +496 -0
  850. mypyc/ir/rtypes.py +1038 -0
  851. mypyc/irbuild/__init__.py +0 -0
  852. mypyc/irbuild/ast_helpers.py +120 -0
  853. mypyc/irbuild/builder.py +1398 -0
  854. mypyc/irbuild/callable_class.py +173 -0
  855. mypyc/irbuild/classdef.py +850 -0
  856. mypyc/irbuild/constant_fold.py +95 -0
  857. mypyc/irbuild/context.py +186 -0
  858. mypyc/irbuild/env_class.py +223 -0
  859. mypyc/irbuild/expression.py +1067 -0
  860. mypyc/irbuild/for_helpers.py +1046 -0
  861. mypyc/irbuild/format_str_tokenizer.py +250 -0
  862. mypyc/irbuild/function.py +1089 -0
  863. mypyc/irbuild/generator.py +346 -0
  864. mypyc/irbuild/ll_builder.py +2407 -0
  865. mypyc/irbuild/main.py +153 -0
  866. mypyc/irbuild/mapper.py +221 -0
  867. mypyc/irbuild/match.py +355 -0
  868. mypyc/irbuild/nonlocalcontrol.py +197 -0
  869. mypyc/irbuild/prebuildvisitor.py +203 -0
  870. mypyc/irbuild/prepare.py +609 -0
  871. mypyc/irbuild/specialize.py +822 -0
  872. mypyc/irbuild/statement.py +1017 -0
  873. mypyc/irbuild/targets.py +57 -0
  874. mypyc/irbuild/util.py +189 -0
  875. mypyc/irbuild/visitor.py +401 -0
  876. mypyc/irbuild/vtable.py +82 -0
  877. mypyc/lib-rt/CPy.h +643 -0
  878. mypyc/lib-rt/bytes_ops.c +143 -0
  879. mypyc/lib-rt/dict_ops.c +446 -0
  880. mypyc/lib-rt/exc_ops.c +259 -0
  881. mypyc/lib-rt/float_ops.c +192 -0
  882. mypyc/lib-rt/generic_ops.c +64 -0
  883. mypyc/lib-rt/getargs.c +450 -0
  884. mypyc/lib-rt/getargsfast.c +569 -0
  885. mypyc/lib-rt/init.c +13 -0
  886. mypyc/lib-rt/int_ops.c +803 -0
  887. mypyc/lib-rt/list_ops.c +335 -0
  888. mypyc/lib-rt/misc_ops.c +942 -0
  889. mypyc/lib-rt/module_shim.tmpl +18 -0
  890. mypyc/lib-rt/mypyc_util.h +118 -0
  891. mypyc/lib-rt/pythoncapi_compat.h +497 -0
  892. mypyc/lib-rt/pythonsupport.h +548 -0
  893. mypyc/lib-rt/set_ops.c +17 -0
  894. mypyc/lib-rt/setup.py +70 -0
  895. mypyc/lib-rt/str_ops.c +241 -0
  896. mypyc/lib-rt/test_capi.cc +585 -0
  897. mypyc/lib-rt/tuple_ops.c +61 -0
  898. mypyc/namegen.py +115 -0
  899. mypyc/options.py +32 -0
  900. mypyc/primitives/__init__.py +0 -0
  901. mypyc/primitives/bytes_ops.py +101 -0
  902. mypyc/primitives/dict_ops.py +325 -0
  903. mypyc/primitives/exc_ops.py +101 -0
  904. mypyc/primitives/float_ops.py +168 -0
  905. mypyc/primitives/generic_ops.py +384 -0
  906. mypyc/primitives/int_ops.py +304 -0
  907. mypyc/primitives/list_ops.py +300 -0
  908. mypyc/primitives/misc_ops.py +241 -0
  909. mypyc/primitives/registry.py +323 -0
  910. mypyc/primitives/set_ops.py +121 -0
  911. mypyc/primitives/str_ops.py +229 -0
  912. mypyc/primitives/tuple_ops.py +83 -0
  913. mypyc/rt_subtype.py +77 -0
  914. mypyc/sametype.py +83 -0
  915. mypyc/subtype.py +88 -0
  916. mypyc/test/__init__.py +0 -0
  917. mypyc/test/config.py +13 -0
  918. mypyc/test/test_alwaysdefined.py +46 -0
  919. mypyc/test/test_analysis.py +77 -0
  920. mypyc/test/test_cheader.py +45 -0
  921. mypyc/test/test_commandline.py +82 -0
  922. mypyc/test/test_emit.py +69 -0
  923. mypyc/test/test_emitclass.py +35 -0
  924. mypyc/test/test_emitfunc.py +926 -0
  925. mypyc/test/test_emitwrapper.py +60 -0
  926. mypyc/test/test_exceptions.py +56 -0
  927. mypyc/test/test_external.py +49 -0
  928. mypyc/test/test_irbuild.py +87 -0
  929. mypyc/test/test_ircheck.py +199 -0
  930. mypyc/test/test_literals.py +90 -0
  931. mypyc/test/test_namegen.py +48 -0
  932. mypyc/test/test_pprint.py +42 -0
  933. mypyc/test/test_rarray.py +48 -0
  934. mypyc/test/test_refcount.py +59 -0
  935. mypyc/test/test_run.py +426 -0
  936. mypyc/test/test_serialization.py +108 -0
  937. mypyc/test/test_struct.py +112 -0
  938. mypyc/test/test_tuplename.py +33 -0
  939. mypyc/test/test_typeops.py +97 -0
  940. mypyc/test/testutil.py +283 -0
  941. mypyc/test-data/alwaysdefined.test +732 -0
  942. mypyc/test-data/analysis.test +603 -0
  943. mypyc/test-data/commandline.test +245 -0
  944. mypyc/test-data/driver/driver.py +48 -0
  945. mypyc/test-data/exceptions-freq.test +125 -0
  946. mypyc/test-data/exceptions.test +713 -0
  947. mypyc/test-data/fixtures/ir.py +373 -0
  948. mypyc/test-data/fixtures/testutil.py +103 -0
  949. mypyc/test-data/fixtures/typing-full.pyi +169 -0
  950. mypyc/test-data/irbuild-any.test +238 -0
  951. mypyc/test-data/irbuild-basic.test +3690 -0
  952. mypyc/test-data/irbuild-bool.test +463 -0
  953. mypyc/test-data/irbuild-bytes.test +184 -0
  954. mypyc/test-data/irbuild-classes.test +1303 -0
  955. mypyc/test-data/irbuild-constant-fold.test +480 -0
  956. mypyc/test-data/irbuild-dict.test +585 -0
  957. mypyc/test-data/irbuild-dunders.test +223 -0
  958. mypyc/test-data/irbuild-float.test +497 -0
  959. mypyc/test-data/irbuild-generics.test +151 -0
  960. mypyc/test-data/irbuild-glue-methods.test +437 -0
  961. mypyc/test-data/irbuild-i16.test +526 -0
  962. mypyc/test-data/irbuild-i32.test +598 -0
  963. mypyc/test-data/irbuild-i64.test +2164 -0
  964. mypyc/test-data/irbuild-int.test +235 -0
  965. mypyc/test-data/irbuild-isinstance.test +109 -0
  966. mypyc/test-data/irbuild-lists.test +547 -0
  967. mypyc/test-data/irbuild-match.test +1708 -0
  968. mypyc/test-data/irbuild-math.test +64 -0
  969. mypyc/test-data/irbuild-nested.test +807 -0
  970. mypyc/test-data/irbuild-optional.test +536 -0
  971. mypyc/test-data/irbuild-set.test +838 -0
  972. mypyc/test-data/irbuild-singledispatch.test +257 -0
  973. mypyc/test-data/irbuild-statements.test +1149 -0
  974. mypyc/test-data/irbuild-str.test +314 -0
  975. mypyc/test-data/irbuild-strip-asserts.test +12 -0
  976. mypyc/test-data/irbuild-try.test +523 -0
  977. mypyc/test-data/irbuild-tuple.test +462 -0
  978. mypyc/test-data/irbuild-u8.test +543 -0
  979. mypyc/test-data/irbuild-unreachable.test +241 -0
  980. mypyc/test-data/irbuild-vectorcall.test +153 -0
  981. mypyc/test-data/refcount.test +1588 -0
  982. mypyc/test-data/run-async.test +145 -0
  983. mypyc/test-data/run-attrs.test +318 -0
  984. mypyc/test-data/run-bench.test +196 -0
  985. mypyc/test-data/run-bools.test +229 -0
  986. mypyc/test-data/run-bytes.test +302 -0
  987. mypyc/test-data/run-classes.test +2505 -0
  988. mypyc/test-data/run-dicts.test +334 -0
  989. mypyc/test-data/run-dunders.test +945 -0
  990. mypyc/test-data/run-exceptions.test +448 -0
  991. mypyc/test-data/run-floats.test +516 -0
  992. mypyc/test-data/run-functions.test +1310 -0
  993. mypyc/test-data/run-generators.test +681 -0
  994. mypyc/test-data/run-i16.test +338 -0
  995. mypyc/test-data/run-i32.test +336 -0
  996. mypyc/test-data/run-i64.test +1519 -0
  997. mypyc/test-data/run-imports.test +265 -0
  998. mypyc/test-data/run-integers.test +540 -0
  999. mypyc/test-data/run-lists.test +411 -0
  1000. mypyc/test-data/run-loops.test +485 -0
  1001. mypyc/test-data/run-match.test +283 -0
  1002. mypyc/test-data/run-math.test +106 -0
  1003. mypyc/test-data/run-misc.test +1168 -0
  1004. mypyc/test-data/run-multimodule.test +887 -0
  1005. mypyc/test-data/run-mypy-sim.test +138 -0
  1006. mypyc/test-data/run-primitives.test +375 -0
  1007. mypyc/test-data/run-python37.test +159 -0
  1008. mypyc/test-data/run-python38.test +88 -0
  1009. mypyc/test-data/run-sets.test +150 -0
  1010. mypyc/test-data/run-singledispatch.test +698 -0
  1011. mypyc/test-data/run-strings.test +641 -0
  1012. mypyc/test-data/run-traits.test +411 -0
  1013. mypyc/test-data/run-tuples.test +258 -0
  1014. mypyc/test-data/run-u8.test +303 -0
  1015. mypyc/transform/__init__.py +0 -0
  1016. mypyc/transform/exceptions.py +182 -0
  1017. mypyc/transform/refcount.py +294 -0
  1018. mypyc/transform/uninit.py +190 -0
@@ -0,0 +1,1149 @@
1
+ [case testForInRange]
2
+ def f() -> None:
3
+ x = 0
4
+ for i in range(5):
5
+ x = x + i
6
+ [out]
7
+ def f():
8
+ x :: int
9
+ r0 :: short_int
10
+ i :: int
11
+ r1 :: bit
12
+ r2 :: int
13
+ r3 :: short_int
14
+ L0:
15
+ x = 0
16
+ r0 = 0
17
+ i = r0
18
+ L1:
19
+ r1 = r0 < 10 :: signed
20
+ if r1 goto L2 else goto L4 :: bool
21
+ L2:
22
+ r2 = CPyTagged_Add(x, i)
23
+ x = r2
24
+ L3:
25
+ r3 = r0 + 2
26
+ r0 = r3
27
+ i = r3
28
+ goto L1
29
+ L4:
30
+ return 1
31
+
32
+ [case testForInRangeVariableEndIndxe]
33
+ def f(a: int) -> None:
34
+ for i in range(a):
35
+ pass
36
+ [out]
37
+ def f(a):
38
+ a, r0, i :: int
39
+ r1 :: native_int
40
+ r2 :: bit
41
+ r3 :: native_int
42
+ r4, r5, r6 :: bit
43
+ r7 :: bool
44
+ r8 :: bit
45
+ r9 :: int
46
+ L0:
47
+ r0 = 0
48
+ i = r0
49
+ L1:
50
+ r1 = r0 & 1
51
+ r2 = r1 == 0
52
+ r3 = a & 1
53
+ r4 = r3 == 0
54
+ r5 = r2 & r4
55
+ if r5 goto L2 else goto L3 :: bool
56
+ L2:
57
+ r6 = r0 < a :: signed
58
+ r7 = r6
59
+ goto L4
60
+ L3:
61
+ r8 = CPyTagged_IsLt_(r0, a)
62
+ r7 = r8
63
+ L4:
64
+ if r7 goto L5 else goto L7 :: bool
65
+ L5:
66
+ L6:
67
+ r9 = CPyTagged_Add(r0, 2)
68
+ r0 = r9
69
+ i = r9
70
+ goto L1
71
+ L7:
72
+ return 1
73
+
74
+ [case testForInNegativeRange]
75
+ def f() -> None:
76
+ for i in range(10, 0, -1):
77
+ pass
78
+ [out]
79
+ def f():
80
+ r0 :: short_int
81
+ i :: int
82
+ r1 :: bit
83
+ r2 :: short_int
84
+ L0:
85
+ r0 = 20
86
+ i = r0
87
+ L1:
88
+ r1 = r0 > 0 :: signed
89
+ if r1 goto L2 else goto L4 :: bool
90
+ L2:
91
+ L3:
92
+ r2 = r0 + -2
93
+ r0 = r2
94
+ i = r2
95
+ goto L1
96
+ L4:
97
+ return 1
98
+
99
+ [case testBreak]
100
+ def f() -> None:
101
+ n = 0
102
+ while n < 5:
103
+ break
104
+ [out]
105
+ def f():
106
+ n :: int
107
+ r0 :: native_int
108
+ r1, r2, r3 :: bit
109
+ L0:
110
+ n = 0
111
+ L1:
112
+ r0 = n & 1
113
+ r1 = r0 != 0
114
+ if r1 goto L2 else goto L3 :: bool
115
+ L2:
116
+ r2 = CPyTagged_IsLt_(n, 10)
117
+ if r2 goto L4 else goto L5 :: bool
118
+ L3:
119
+ r3 = n < 10 :: signed
120
+ if r3 goto L4 else goto L5 :: bool
121
+ L4:
122
+ L5:
123
+ return 1
124
+
125
+ [case testBreakFor]
126
+ def f() -> None:
127
+ for n in range(5):
128
+ break
129
+ [out]
130
+ def f():
131
+ r0 :: short_int
132
+ n :: int
133
+ r1 :: bit
134
+ r2 :: short_int
135
+ L0:
136
+ r0 = 0
137
+ n = r0
138
+ L1:
139
+ r1 = r0 < 10 :: signed
140
+ if r1 goto L2 else goto L4 :: bool
141
+ L2:
142
+ goto L4
143
+ L3:
144
+ r2 = r0 + 2
145
+ r0 = r2
146
+ n = r2
147
+ goto L1
148
+ L4:
149
+ return 1
150
+
151
+ [case testBreakNested]
152
+ def f() -> None:
153
+ n = 0
154
+ while n < 5:
155
+ while n < 4:
156
+ break
157
+ break
158
+ [out]
159
+ def f():
160
+ n :: int
161
+ r0 :: native_int
162
+ r1, r2, r3 :: bit
163
+ r4 :: native_int
164
+ r5, r6, r7 :: bit
165
+ L0:
166
+ n = 0
167
+ L1:
168
+ r0 = n & 1
169
+ r1 = r0 != 0
170
+ if r1 goto L2 else goto L3 :: bool
171
+ L2:
172
+ r2 = CPyTagged_IsLt_(n, 10)
173
+ if r2 goto L4 else goto L10 :: bool
174
+ L3:
175
+ r3 = n < 10 :: signed
176
+ if r3 goto L4 else goto L10 :: bool
177
+ L4:
178
+ L5:
179
+ r4 = n & 1
180
+ r5 = r4 != 0
181
+ if r5 goto L6 else goto L7 :: bool
182
+ L6:
183
+ r6 = CPyTagged_IsLt_(n, 8)
184
+ if r6 goto L8 else goto L9 :: bool
185
+ L7:
186
+ r7 = n < 8 :: signed
187
+ if r7 goto L8 else goto L9 :: bool
188
+ L8:
189
+ L9:
190
+ L10:
191
+ return 1
192
+
193
+ [case testContinue]
194
+ def f() -> None:
195
+ n = 0
196
+ while n < 5:
197
+ continue
198
+ [out]
199
+ def f():
200
+ n :: int
201
+ r0 :: native_int
202
+ r1, r2, r3 :: bit
203
+ L0:
204
+ n = 0
205
+ L1:
206
+ r0 = n & 1
207
+ r1 = r0 != 0
208
+ if r1 goto L2 else goto L3 :: bool
209
+ L2:
210
+ r2 = CPyTagged_IsLt_(n, 10)
211
+ if r2 goto L4 else goto L5 :: bool
212
+ L3:
213
+ r3 = n < 10 :: signed
214
+ if r3 goto L4 else goto L5 :: bool
215
+ L4:
216
+ goto L1
217
+ L5:
218
+ return 1
219
+
220
+ [case testContinueFor]
221
+ def f() -> None:
222
+ for n in range(5):
223
+ continue
224
+ [out]
225
+ def f():
226
+ r0 :: short_int
227
+ n :: int
228
+ r1 :: bit
229
+ r2 :: short_int
230
+ L0:
231
+ r0 = 0
232
+ n = r0
233
+ L1:
234
+ r1 = r0 < 10 :: signed
235
+ if r1 goto L2 else goto L4 :: bool
236
+ L2:
237
+ L3:
238
+ r2 = r0 + 2
239
+ r0 = r2
240
+ n = r2
241
+ goto L1
242
+ L4:
243
+ return 1
244
+
245
+ [case testContinueNested]
246
+ def f() -> None:
247
+ n = 0
248
+ while n < 5:
249
+ while n < 4:
250
+ continue
251
+ continue
252
+ [out]
253
+ def f():
254
+ n :: int
255
+ r0 :: native_int
256
+ r1, r2, r3 :: bit
257
+ r4 :: native_int
258
+ r5, r6, r7 :: bit
259
+ L0:
260
+ n = 0
261
+ L1:
262
+ r0 = n & 1
263
+ r1 = r0 != 0
264
+ if r1 goto L2 else goto L3 :: bool
265
+ L2:
266
+ r2 = CPyTagged_IsLt_(n, 10)
267
+ if r2 goto L4 else goto L10 :: bool
268
+ L3:
269
+ r3 = n < 10 :: signed
270
+ if r3 goto L4 else goto L10 :: bool
271
+ L4:
272
+ L5:
273
+ r4 = n & 1
274
+ r5 = r4 != 0
275
+ if r5 goto L6 else goto L7 :: bool
276
+ L6:
277
+ r6 = CPyTagged_IsLt_(n, 8)
278
+ if r6 goto L8 else goto L9 :: bool
279
+ L7:
280
+ r7 = n < 8 :: signed
281
+ if r7 goto L8 else goto L9 :: bool
282
+ L8:
283
+ goto L5
284
+ L9:
285
+ goto L1
286
+ L10:
287
+ return 1
288
+
289
+ [case testForList]
290
+ from typing import List
291
+
292
+ def f(ls: List[int]) -> int:
293
+ y = 0
294
+ for x in ls:
295
+ y = y + x
296
+ return y
297
+ [out]
298
+ def f(ls):
299
+ ls :: list
300
+ y :: int
301
+ r0 :: short_int
302
+ r1 :: ptr
303
+ r2 :: native_int
304
+ r3 :: short_int
305
+ r4 :: bit
306
+ r5 :: object
307
+ r6, x, r7 :: int
308
+ r8 :: short_int
309
+ L0:
310
+ y = 0
311
+ r0 = 0
312
+ L1:
313
+ r1 = get_element_ptr ls ob_size :: PyVarObject
314
+ r2 = load_mem r1 :: native_int*
315
+ keep_alive ls
316
+ r3 = r2 << 1
317
+ r4 = r0 < r3 :: signed
318
+ if r4 goto L2 else goto L4 :: bool
319
+ L2:
320
+ r5 = CPyList_GetItemUnsafe(ls, r0)
321
+ r6 = unbox(int, r5)
322
+ x = r6
323
+ r7 = CPyTagged_Add(y, x)
324
+ y = r7
325
+ L3:
326
+ r8 = r0 + 2
327
+ r0 = r8
328
+ goto L1
329
+ L4:
330
+ return y
331
+
332
+ [case testForDictBasic]
333
+ from typing import Dict
334
+
335
+ def f(d: Dict[int, int]) -> None:
336
+ for key in d:
337
+ d[key]
338
+ [out]
339
+ def f(d):
340
+ d :: dict
341
+ r0 :: short_int
342
+ r1 :: native_int
343
+ r2 :: short_int
344
+ r3 :: object
345
+ r4 :: tuple[bool, short_int, object]
346
+ r5 :: short_int
347
+ r6 :: bool
348
+ r7 :: object
349
+ r8, key :: int
350
+ r9, r10 :: object
351
+ r11 :: int
352
+ r12, r13 :: bit
353
+ L0:
354
+ r0 = 0
355
+ r1 = PyDict_Size(d)
356
+ r2 = r1 << 1
357
+ r3 = CPyDict_GetKeysIter(d)
358
+ L1:
359
+ r4 = CPyDict_NextKey(r3, r0)
360
+ r5 = r4[1]
361
+ r0 = r5
362
+ r6 = r4[0]
363
+ if r6 goto L2 else goto L4 :: bool
364
+ L2:
365
+ r7 = r4[2]
366
+ r8 = unbox(int, r7)
367
+ key = r8
368
+ r9 = box(int, key)
369
+ r10 = CPyDict_GetItem(d, r9)
370
+ r11 = unbox(int, r10)
371
+ L3:
372
+ r12 = CPyDict_CheckSize(d, r2)
373
+ goto L1
374
+ L4:
375
+ r13 = CPy_NoErrOccured()
376
+ L5:
377
+ return 1
378
+
379
+ [case testForDictContinue]
380
+ from typing import Dict
381
+
382
+ def sum_over_even_values(d: Dict[int, int]) -> int:
383
+ s = 0
384
+ for key in d:
385
+ if d[key] % 2:
386
+ continue
387
+ s = s + d[key]
388
+ return s
389
+ [out]
390
+ def sum_over_even_values(d):
391
+ d :: dict
392
+ s :: int
393
+ r0 :: short_int
394
+ r1 :: native_int
395
+ r2 :: short_int
396
+ r3 :: object
397
+ r4 :: tuple[bool, short_int, object]
398
+ r5 :: short_int
399
+ r6 :: bool
400
+ r7 :: object
401
+ r8, key :: int
402
+ r9, r10 :: object
403
+ r11, r12 :: int
404
+ r13 :: bit
405
+ r14, r15 :: object
406
+ r16, r17 :: int
407
+ r18, r19 :: bit
408
+ L0:
409
+ s = 0
410
+ r0 = 0
411
+ r1 = PyDict_Size(d)
412
+ r2 = r1 << 1
413
+ r3 = CPyDict_GetKeysIter(d)
414
+ L1:
415
+ r4 = CPyDict_NextKey(r3, r0)
416
+ r5 = r4[1]
417
+ r0 = r5
418
+ r6 = r4[0]
419
+ if r6 goto L2 else goto L6 :: bool
420
+ L2:
421
+ r7 = r4[2]
422
+ r8 = unbox(int, r7)
423
+ key = r8
424
+ r9 = box(int, key)
425
+ r10 = CPyDict_GetItem(d, r9)
426
+ r11 = unbox(int, r10)
427
+ r12 = CPyTagged_Remainder(r11, 4)
428
+ r13 = r12 != 0
429
+ if r13 goto L3 else goto L4 :: bool
430
+ L3:
431
+ goto L5
432
+ L4:
433
+ r14 = box(int, key)
434
+ r15 = CPyDict_GetItem(d, r14)
435
+ r16 = unbox(int, r15)
436
+ r17 = CPyTagged_Add(s, r16)
437
+ s = r17
438
+ L5:
439
+ r18 = CPyDict_CheckSize(d, r2)
440
+ goto L1
441
+ L6:
442
+ r19 = CPy_NoErrOccured()
443
+ L7:
444
+ return s
445
+
446
+ [case testMultipleAssignmentWithNoUnpacking]
447
+ from typing import Tuple
448
+
449
+ def f(x: int, y: int) -> Tuple[int, int]:
450
+ x, y = y, x
451
+ return (x, y)
452
+
453
+ def f2(x: int, y: str, z: float) -> Tuple[float, str, int]:
454
+ a, b, c = x, y, z
455
+ return (c, b, a)
456
+
457
+ def f3(x: int, y: int) -> Tuple[int, int]:
458
+ [x, y] = [y, x]
459
+ return (x, y)
460
+ [out]
461
+ def f(x, y):
462
+ x, y, r0, r1 :: int
463
+ r2 :: tuple[int, int]
464
+ L0:
465
+ r0 = y
466
+ r1 = x
467
+ x = r0
468
+ y = r1
469
+ r2 = (x, y)
470
+ return r2
471
+ def f2(x, y, z):
472
+ x :: int
473
+ y :: str
474
+ z :: float
475
+ r0 :: int
476
+ r1 :: str
477
+ r2 :: float
478
+ a :: int
479
+ b :: str
480
+ c :: float
481
+ r3 :: tuple[float, str, int]
482
+ L0:
483
+ r0 = x
484
+ r1 = y
485
+ r2 = z
486
+ a = r0
487
+ b = r1
488
+ c = r2
489
+ r3 = (c, b, a)
490
+ return r3
491
+ def f3(x, y):
492
+ x, y, r0, r1 :: int
493
+ r2 :: tuple[int, int]
494
+ L0:
495
+ r0 = y
496
+ r1 = x
497
+ x = r0
498
+ y = r1
499
+ r2 = (x, y)
500
+ return r2
501
+
502
+ [case testMultipleAssignmentBasicUnpacking]
503
+ from typing import Tuple, Any
504
+
505
+ def from_tuple(t: Tuple[bool, None]) -> None:
506
+ x, y = t
507
+
508
+ def from_any(a: Any) -> None:
509
+ x, y = a
510
+ [out]
511
+ def from_tuple(t):
512
+ t :: tuple[bool, None]
513
+ r0, x :: bool
514
+ r1, y :: None
515
+ L0:
516
+ r0 = t[0]
517
+ x = r0
518
+ r1 = t[1]
519
+ y = r1
520
+ return 1
521
+ def from_any(a):
522
+ a, r0, r1 :: object
523
+ r2 :: bool
524
+ x, r3 :: object
525
+ r4 :: bool
526
+ y, r5 :: object
527
+ r6 :: bool
528
+ L0:
529
+ r0 = PyObject_GetIter(a)
530
+ r1 = PyIter_Next(r0)
531
+ if is_error(r1) goto L1 else goto L2
532
+ L1:
533
+ r2 = raise ValueError('not enough values to unpack')
534
+ unreachable
535
+ L2:
536
+ x = r1
537
+ r3 = PyIter_Next(r0)
538
+ if is_error(r3) goto L3 else goto L4
539
+ L3:
540
+ r4 = raise ValueError('not enough values to unpack')
541
+ unreachable
542
+ L4:
543
+ y = r3
544
+ r5 = PyIter_Next(r0)
545
+ if is_error(r5) goto L6 else goto L5
546
+ L5:
547
+ r6 = raise ValueError('too many values to unpack')
548
+ unreachable
549
+ L6:
550
+ return 1
551
+
552
+ [case testMultiAssignmentCoercions]
553
+ from typing import Tuple, Any
554
+
555
+ def from_tuple(t: Tuple[int, Any]) -> None:
556
+ x: object
557
+ y: int
558
+ x, y = t
559
+
560
+ def from_any(a: Any) -> None:
561
+ x: int
562
+ x, y = a
563
+ [out]
564
+ def from_tuple(t):
565
+ t :: tuple[int, object]
566
+ r0, r1 :: int
567
+ r2, x, r3, r4 :: object
568
+ r5, y :: int
569
+ L0:
570
+ r0 = borrow t[0]
571
+ r1 = unborrow r0
572
+ r2 = box(int, r1)
573
+ x = r2
574
+ r3 = borrow t[1]
575
+ r4 = unborrow r3
576
+ r5 = unbox(int, r4)
577
+ y = r5
578
+ keep_alive steal t
579
+ return 1
580
+ def from_any(a):
581
+ a, r0, r1 :: object
582
+ r2 :: bool
583
+ r3, x :: int
584
+ r4 :: object
585
+ r5 :: bool
586
+ y, r6 :: object
587
+ r7 :: bool
588
+ L0:
589
+ r0 = PyObject_GetIter(a)
590
+ r1 = PyIter_Next(r0)
591
+ if is_error(r1) goto L1 else goto L2
592
+ L1:
593
+ r2 = raise ValueError('not enough values to unpack')
594
+ unreachable
595
+ L2:
596
+ r3 = unbox(int, r1)
597
+ x = r3
598
+ r4 = PyIter_Next(r0)
599
+ if is_error(r4) goto L3 else goto L4
600
+ L3:
601
+ r5 = raise ValueError('not enough values to unpack')
602
+ unreachable
603
+ L4:
604
+ y = r4
605
+ r6 = PyIter_Next(r0)
606
+ if is_error(r6) goto L6 else goto L5
607
+ L5:
608
+ r7 = raise ValueError('too many values to unpack')
609
+ unreachable
610
+ L6:
611
+ return 1
612
+
613
+ [case testMultiAssignmentNested]
614
+ from typing import Tuple, Any, List
615
+
616
+ class A:
617
+ x: int
618
+
619
+ def multi_assign(t: Tuple[int, Tuple[str, Any]], a: A, l: List[str]) -> None:
620
+ z: int
621
+ a.x, (l[0], z) = t
622
+ [out]
623
+ def multi_assign(t, a, l):
624
+ t :: tuple[int, tuple[str, object]]
625
+ a :: __main__.A
626
+ l :: list
627
+ r0 :: int
628
+ r1 :: bool
629
+ r2 :: tuple[str, object]
630
+ r3 :: str
631
+ r4 :: bit
632
+ r5 :: object
633
+ r6, z :: int
634
+ L0:
635
+ r0 = t[0]
636
+ a.x = r0; r1 = is_error
637
+ r2 = t[1]
638
+ r3 = r2[0]
639
+ r4 = CPyList_SetItem(l, 0, r3)
640
+ r5 = r2[1]
641
+ r6 = unbox(int, r5)
642
+ z = r6
643
+ return 1
644
+
645
+ [case testMultipleAssignmentUnpackFromSequence]
646
+ from typing import List, Tuple
647
+
648
+ def f(l: List[int], t: Tuple[int, ...]) -> None:
649
+ x: object
650
+ y: int
651
+ x, y = l
652
+ x, y = t
653
+ [out]
654
+ def f(l, t):
655
+ l :: list
656
+ t :: tuple
657
+ r0 :: i32
658
+ r1 :: bit
659
+ r2, r3, x :: object
660
+ r4, y :: int
661
+ r5 :: i32
662
+ r6 :: bit
663
+ r7, r8 :: object
664
+ r9 :: int
665
+ L0:
666
+ r0 = CPySequence_CheckUnpackCount(l, 2)
667
+ r1 = r0 >= 0 :: signed
668
+ r2 = CPyList_GetItemUnsafe(l, 0)
669
+ r3 = CPyList_GetItemUnsafe(l, 2)
670
+ x = r2
671
+ r4 = unbox(int, r3)
672
+ y = r4
673
+ r5 = CPySequence_CheckUnpackCount(t, 2)
674
+ r6 = r5 >= 0 :: signed
675
+ r7 = CPySequenceTuple_GetItem(t, 0)
676
+ r8 = CPySequenceTuple_GetItem(t, 2)
677
+ r9 = unbox(int, r8)
678
+ x = r7
679
+ y = r9
680
+ return 1
681
+
682
+ [case testAssert]
683
+ from typing import Optional
684
+
685
+ def no_msg(x: bool) -> int:
686
+ assert x
687
+ return 1
688
+
689
+ def literal_msg(x: object) -> int:
690
+ assert x, 'message'
691
+ return 2
692
+
693
+ def complex_msg(x: Optional[str], s: str) -> None:
694
+ assert x, s
695
+ [out]
696
+ def no_msg(x):
697
+ x, r0 :: bool
698
+ L0:
699
+ if x goto L2 else goto L1 :: bool
700
+ L1:
701
+ r0 = raise AssertionError
702
+ unreachable
703
+ L2:
704
+ return 2
705
+ def literal_msg(x):
706
+ x :: object
707
+ r0 :: i32
708
+ r1 :: bit
709
+ r2, r3 :: bool
710
+ L0:
711
+ r0 = PyObject_IsTrue(x)
712
+ r1 = r0 >= 0 :: signed
713
+ r2 = truncate r0: i32 to builtins.bool
714
+ if r2 goto L2 else goto L1 :: bool
715
+ L1:
716
+ r3 = raise AssertionError('message')
717
+ unreachable
718
+ L2:
719
+ return 4
720
+ def complex_msg(x, s):
721
+ x :: union[str, None]
722
+ s :: str
723
+ r0 :: object
724
+ r1 :: bit
725
+ r2 :: str
726
+ r3 :: bit
727
+ r4 :: object
728
+ r5 :: str
729
+ r6, r7 :: object
730
+ L0:
731
+ r0 = load_address _Py_NoneStruct
732
+ r1 = x != r0
733
+ if r1 goto L1 else goto L2 :: bool
734
+ L1:
735
+ r2 = cast(str, x)
736
+ r3 = CPyStr_IsTrue(r2)
737
+ if r3 goto L3 else goto L2 :: bool
738
+ L2:
739
+ r4 = builtins :: module
740
+ r5 = 'AssertionError'
741
+ r6 = CPyObject_GetAttr(r4, r5)
742
+ r7 = PyObject_CallFunctionObjArgs(r6, s, 0)
743
+ CPy_Raise(r7)
744
+ unreachable
745
+ L3:
746
+ return 1
747
+
748
+ [case testDelList]
749
+ def delList() -> None:
750
+ l = [1, 2]
751
+ del l[1]
752
+ def delListMultiple() -> None:
753
+ l = [1, 2, 3, 4, 5, 6, 7]
754
+ del l[1], l[2], l[3]
755
+ [out]
756
+ def delList():
757
+ r0 :: list
758
+ r1, r2 :: object
759
+ r3, r4, r5 :: ptr
760
+ l :: list
761
+ r6 :: object
762
+ r7 :: i32
763
+ r8 :: bit
764
+ L0:
765
+ r0 = PyList_New(2)
766
+ r1 = object 1
767
+ r2 = object 2
768
+ r3 = get_element_ptr r0 ob_item :: PyListObject
769
+ r4 = load_mem r3 :: ptr*
770
+ set_mem r4, r1 :: builtins.object*
771
+ r5 = r4 + WORD_SIZE*1
772
+ set_mem r5, r2 :: builtins.object*
773
+ keep_alive r0
774
+ l = r0
775
+ r6 = object 1
776
+ r7 = PyObject_DelItem(l, r6)
777
+ r8 = r7 >= 0 :: signed
778
+ return 1
779
+ def delListMultiple():
780
+ r0 :: list
781
+ r1, r2, r3, r4, r5, r6, r7 :: object
782
+ r8, r9, r10, r11, r12, r13, r14, r15 :: ptr
783
+ l :: list
784
+ r16 :: object
785
+ r17 :: i32
786
+ r18 :: bit
787
+ r19 :: object
788
+ r20 :: i32
789
+ r21 :: bit
790
+ r22 :: object
791
+ r23 :: i32
792
+ r24 :: bit
793
+ L0:
794
+ r0 = PyList_New(7)
795
+ r1 = object 1
796
+ r2 = object 2
797
+ r3 = object 3
798
+ r4 = object 4
799
+ r5 = object 5
800
+ r6 = object 6
801
+ r7 = object 7
802
+ r8 = get_element_ptr r0 ob_item :: PyListObject
803
+ r9 = load_mem r8 :: ptr*
804
+ set_mem r9, r1 :: builtins.object*
805
+ r10 = r9 + WORD_SIZE*1
806
+ set_mem r10, r2 :: builtins.object*
807
+ r11 = r9 + WORD_SIZE*2
808
+ set_mem r11, r3 :: builtins.object*
809
+ r12 = r9 + WORD_SIZE*3
810
+ set_mem r12, r4 :: builtins.object*
811
+ r13 = r9 + WORD_SIZE*4
812
+ set_mem r13, r5 :: builtins.object*
813
+ r14 = r9 + WORD_SIZE*5
814
+ set_mem r14, r6 :: builtins.object*
815
+ r15 = r9 + WORD_SIZE*6
816
+ set_mem r15, r7 :: builtins.object*
817
+ keep_alive r0
818
+ l = r0
819
+ r16 = object 1
820
+ r17 = PyObject_DelItem(l, r16)
821
+ r18 = r17 >= 0 :: signed
822
+ r19 = object 2
823
+ r20 = PyObject_DelItem(l, r19)
824
+ r21 = r20 >= 0 :: signed
825
+ r22 = object 3
826
+ r23 = PyObject_DelItem(l, r22)
827
+ r24 = r23 >= 0 :: signed
828
+ return 1
829
+
830
+ [case testDelDict]
831
+ def delDict() -> None:
832
+ d = {"one":1, "two":2}
833
+ del d["one"]
834
+ def delDictMultiple() -> None:
835
+ d = {"one":1, "two":2, "three":3, "four":4}
836
+ del d["one"], d["four"]
837
+ [out]
838
+ def delDict():
839
+ r0, r1 :: str
840
+ r2, r3 :: object
841
+ r4, d :: dict
842
+ r5 :: str
843
+ r6 :: i32
844
+ r7 :: bit
845
+ L0:
846
+ r0 = 'one'
847
+ r1 = 'two'
848
+ r2 = object 1
849
+ r3 = object 2
850
+ r4 = CPyDict_Build(2, r0, r2, r1, r3)
851
+ d = r4
852
+ r5 = 'one'
853
+ r6 = PyObject_DelItem(d, r5)
854
+ r7 = r6 >= 0 :: signed
855
+ return 1
856
+ def delDictMultiple():
857
+ r0, r1, r2, r3 :: str
858
+ r4, r5, r6, r7 :: object
859
+ r8, d :: dict
860
+ r9, r10 :: str
861
+ r11 :: i32
862
+ r12 :: bit
863
+ r13 :: i32
864
+ r14 :: bit
865
+ L0:
866
+ r0 = 'one'
867
+ r1 = 'two'
868
+ r2 = 'three'
869
+ r3 = 'four'
870
+ r4 = object 1
871
+ r5 = object 2
872
+ r6 = object 3
873
+ r7 = object 4
874
+ r8 = CPyDict_Build(4, r0, r4, r1, r5, r2, r6, r3, r7)
875
+ d = r8
876
+ r9 = 'one'
877
+ r10 = 'four'
878
+ r11 = PyObject_DelItem(d, r9)
879
+ r12 = r11 >= 0 :: signed
880
+ r13 = PyObject_DelItem(d, r10)
881
+ r14 = r13 >= 0 :: signed
882
+ return 1
883
+
884
+ [case testDelAttribute]
885
+ class Dummy():
886
+ __deletable__ = ('x', 'y')
887
+ def __init__(self, x: int, y: int) -> None:
888
+ self.x = x
889
+ self.y = y
890
+ def delAttribute() -> None:
891
+ dummy = Dummy(1, 2)
892
+ del dummy.x
893
+ def delAttributeMultiple() -> None:
894
+ dummy = Dummy(1, 2)
895
+ del dummy.x, dummy.y
896
+ [out]
897
+ def Dummy.__init__(self, x, y):
898
+ self :: __main__.Dummy
899
+ x, y :: int
900
+ L0:
901
+ self.x = x
902
+ self.y = y
903
+ return 1
904
+ def delAttribute():
905
+ r0, dummy :: __main__.Dummy
906
+ r1 :: str
907
+ r2 :: i32
908
+ r3 :: bit
909
+ L0:
910
+ r0 = Dummy(2, 4)
911
+ dummy = r0
912
+ r1 = 'x'
913
+ r2 = PyObject_DelAttr(dummy, r1)
914
+ r3 = r2 >= 0 :: signed
915
+ return 1
916
+ def delAttributeMultiple():
917
+ r0, dummy :: __main__.Dummy
918
+ r1 :: str
919
+ r2 :: i32
920
+ r3 :: bit
921
+ r4 :: str
922
+ r5 :: i32
923
+ r6 :: bit
924
+ L0:
925
+ r0 = Dummy(2, 4)
926
+ dummy = r0
927
+ r1 = 'x'
928
+ r2 = PyObject_DelAttr(dummy, r1)
929
+ r3 = r2 >= 0 :: signed
930
+ r4 = 'y'
931
+ r5 = PyObject_DelAttr(dummy, r4)
932
+ r6 = r5 >= 0 :: signed
933
+ return 1
934
+
935
+ [case testForEnumerate]
936
+ from typing import List, Iterable
937
+
938
+ def f(a: List[int]) -> None:
939
+ for i, x in enumerate(a):
940
+ i + x
941
+ def g(x: Iterable[int]) -> None:
942
+ for i, n in enumerate(x):
943
+ pass
944
+ [out]
945
+ def f(a):
946
+ a :: list
947
+ r0 :: short_int
948
+ i :: int
949
+ r1 :: short_int
950
+ r2 :: ptr
951
+ r3 :: native_int
952
+ r4 :: short_int
953
+ r5 :: bit
954
+ r6 :: object
955
+ r7, x, r8 :: int
956
+ r9, r10 :: short_int
957
+ L0:
958
+ r0 = 0
959
+ i = 0
960
+ r1 = 0
961
+ L1:
962
+ r2 = get_element_ptr a ob_size :: PyVarObject
963
+ r3 = load_mem r2 :: native_int*
964
+ keep_alive a
965
+ r4 = r3 << 1
966
+ r5 = r1 < r4 :: signed
967
+ if r5 goto L2 else goto L4 :: bool
968
+ L2:
969
+ r6 = CPyList_GetItemUnsafe(a, r1)
970
+ r7 = unbox(int, r6)
971
+ x = r7
972
+ r8 = CPyTagged_Add(i, x)
973
+ L3:
974
+ r9 = r0 + 2
975
+ r0 = r9
976
+ i = r9
977
+ r10 = r1 + 2
978
+ r1 = r10
979
+ goto L1
980
+ L4:
981
+ L5:
982
+ return 1
983
+ def g(x):
984
+ x :: object
985
+ r0 :: short_int
986
+ i :: int
987
+ r1, r2 :: object
988
+ r3, n :: int
989
+ r4 :: short_int
990
+ r5 :: bit
991
+ L0:
992
+ r0 = 0
993
+ i = 0
994
+ r1 = PyObject_GetIter(x)
995
+ L1:
996
+ r2 = PyIter_Next(r1)
997
+ if is_error(r2) goto L4 else goto L2
998
+ L2:
999
+ r3 = unbox(int, r2)
1000
+ n = r3
1001
+ L3:
1002
+ r4 = r0 + 2
1003
+ r0 = r4
1004
+ i = r4
1005
+ goto L1
1006
+ L4:
1007
+ r5 = CPy_NoErrOccured()
1008
+ L5:
1009
+ return 1
1010
+
1011
+ [case testForZip]
1012
+ from typing import List, Iterable, Sequence
1013
+
1014
+ def f(a: List[int], b: Sequence[bool]) -> None:
1015
+ for x, y in zip(a, b):
1016
+ if b:
1017
+ x = 1
1018
+
1019
+ def g(a: Iterable[bool], b: List[int]) -> None:
1020
+ for x, y, z in zip(a, b, range(5)):
1021
+ x = False
1022
+ [out]
1023
+ def f(a, b):
1024
+ a :: list
1025
+ b :: object
1026
+ r0 :: short_int
1027
+ r1 :: object
1028
+ r2 :: ptr
1029
+ r3 :: native_int
1030
+ r4 :: short_int
1031
+ r5 :: bit
1032
+ r6, r7 :: object
1033
+ r8, x :: int
1034
+ r9, y :: bool
1035
+ r10 :: i32
1036
+ r11 :: bit
1037
+ r12 :: bool
1038
+ r13 :: short_int
1039
+ r14 :: bit
1040
+ L0:
1041
+ r0 = 0
1042
+ r1 = PyObject_GetIter(b)
1043
+ L1:
1044
+ r2 = get_element_ptr a ob_size :: PyVarObject
1045
+ r3 = load_mem r2 :: native_int*
1046
+ keep_alive a
1047
+ r4 = r3 << 1
1048
+ r5 = r0 < r4 :: signed
1049
+ if r5 goto L2 else goto L7 :: bool
1050
+ L2:
1051
+ r6 = PyIter_Next(r1)
1052
+ if is_error(r6) goto L7 else goto L3
1053
+ L3:
1054
+ r7 = CPyList_GetItemUnsafe(a, r0)
1055
+ r8 = unbox(int, r7)
1056
+ x = r8
1057
+ r9 = unbox(bool, r6)
1058
+ y = r9
1059
+ r10 = PyObject_IsTrue(b)
1060
+ r11 = r10 >= 0 :: signed
1061
+ r12 = truncate r10: i32 to builtins.bool
1062
+ if r12 goto L4 else goto L5 :: bool
1063
+ L4:
1064
+ x = 2
1065
+ L5:
1066
+ L6:
1067
+ r13 = r0 + 2
1068
+ r0 = r13
1069
+ goto L1
1070
+ L7:
1071
+ r14 = CPy_NoErrOccured()
1072
+ L8:
1073
+ return 1
1074
+ def g(a, b):
1075
+ a :: object
1076
+ b :: list
1077
+ r0 :: object
1078
+ r1, r2 :: short_int
1079
+ z :: int
1080
+ r3 :: object
1081
+ r4 :: ptr
1082
+ r5 :: native_int
1083
+ r6 :: short_int
1084
+ r7, r8 :: bit
1085
+ r9, x :: bool
1086
+ r10 :: object
1087
+ r11, y :: int
1088
+ r12, r13 :: short_int
1089
+ r14 :: bit
1090
+ L0:
1091
+ r0 = PyObject_GetIter(a)
1092
+ r1 = 0
1093
+ r2 = 0
1094
+ z = r2
1095
+ L1:
1096
+ r3 = PyIter_Next(r0)
1097
+ if is_error(r3) goto L6 else goto L2
1098
+ L2:
1099
+ r4 = get_element_ptr b ob_size :: PyVarObject
1100
+ r5 = load_mem r4 :: native_int*
1101
+ keep_alive b
1102
+ r6 = r5 << 1
1103
+ r7 = r1 < r6 :: signed
1104
+ if r7 goto L3 else goto L6 :: bool
1105
+ L3:
1106
+ r8 = r2 < 10 :: signed
1107
+ if r8 goto L4 else goto L6 :: bool
1108
+ L4:
1109
+ r9 = unbox(bool, r3)
1110
+ x = r9
1111
+ r10 = CPyList_GetItemUnsafe(b, r1)
1112
+ r11 = unbox(int, r10)
1113
+ y = r11
1114
+ x = 0
1115
+ L5:
1116
+ r12 = r1 + 2
1117
+ r1 = r12
1118
+ r13 = r2 + 2
1119
+ r2 = r13
1120
+ z = r13
1121
+ goto L1
1122
+ L6:
1123
+ r14 = CPy_NoErrOccured()
1124
+ L7:
1125
+ return 1
1126
+
1127
+ [case testConditionalFunctionDefinition]
1128
+ if int():
1129
+ def foo() -> int:
1130
+ return 0
1131
+ else:
1132
+ def foo() -> int: # E
1133
+ return 1
1134
+
1135
+ def bar() -> int:
1136
+ return 0
1137
+
1138
+ if int():
1139
+ def bar() -> int: # E
1140
+ return 1
1141
+ [out]
1142
+ main:5: error: Duplicate definition of "foo" not supported by mypyc
1143
+ main:12: error: Duplicate definition of "bar" not supported by mypyc
1144
+
1145
+ [case testRepeatedUnderscoreFunctions]
1146
+ def _(arg): pass
1147
+ def _(arg): pass
1148
+ [out]
1149
+ main:2: error: Duplicate definition of "_" not supported by mypyc