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.
- mypy/__init__.py +1 -0
- mypy/__main__.py +37 -0
- mypy/api.py +94 -0
- mypy/applytype.py +156 -0
- mypy/argmap.py +268 -0
- mypy/binder.py +538 -0
- mypy/bogus_type.py +27 -0
- mypy/build.py +3562 -0
- mypy/checker.py +8372 -0
- mypy/checkexpr.py +6615 -0
- mypy/checkmember.py +1356 -0
- mypy/checkpattern.py +801 -0
- mypy/checkstrformat.py +1109 -0
- mypy/config_parser.py +670 -0
- mypy/constant_fold.py +187 -0
- mypy/constraints.py +1624 -0
- mypy/copytype.py +133 -0
- mypy/defaults.py +46 -0
- mypy/dmypy/__init__.py +0 -0
- mypy/dmypy/__main__.py +6 -0
- mypy/dmypy/client.py +749 -0
- mypy/dmypy_os.py +42 -0
- mypy/dmypy_server.py +1107 -0
- mypy/dmypy_util.py +117 -0
- mypy/erasetype.py +278 -0
- mypy/errorcodes.py +285 -0
- mypy/errors.py +1280 -0
- mypy/evalexpr.py +205 -0
- mypy/expandtype.py +510 -0
- mypy/exprtotype.py +206 -0
- mypy/fastparse.py +2147 -0
- mypy/find_sources.py +243 -0
- mypy/fixup.py +426 -0
- mypy/freetree.py +23 -0
- mypy/fscache.py +309 -0
- mypy/fswatcher.py +106 -0
- mypy/gclogger.py +47 -0
- mypy/git.py +34 -0
- mypy/graph_utils.py +112 -0
- mypy/indirection.py +121 -0
- mypy/infer.py +75 -0
- mypy/inspections.py +627 -0
- mypy/ipc.py +310 -0
- mypy/join.py +866 -0
- mypy/literals.py +306 -0
- mypy/lookup.py +61 -0
- mypy/main.py +1574 -0
- mypy/maptype.py +106 -0
- mypy/meet.py +1140 -0
- mypy/memprofile.py +121 -0
- mypy/message_registry.py +326 -0
- mypy/messages.py +3171 -0
- mypy/metastore.py +225 -0
- mypy/mixedtraverser.py +112 -0
- mypy/modulefinder.py +875 -0
- mypy/moduleinspect.py +184 -0
- mypy/mro.py +62 -0
- mypy/nodes.py +4112 -0
- mypy/operators.py +126 -0
- mypy/options.py +556 -0
- mypy/parse.py +30 -0
- mypy/partially_defined.py +675 -0
- mypy/patterns.py +150 -0
- mypy/plugin.py +901 -0
- mypy/plugins/__init__.py +0 -0
- mypy/plugins/attrs.py +1152 -0
- mypy/plugins/common.py +440 -0
- mypy/plugins/ctypes.py +245 -0
- mypy/plugins/dataclasses.py +1101 -0
- mypy/plugins/default.py +518 -0
- mypy/plugins/enums.py +259 -0
- mypy/plugins/functools.py +104 -0
- mypy/plugins/proper_plugin.py +175 -0
- mypy/plugins/singledispatch.py +224 -0
- mypy/py.typed +1 -0
- mypy/pyinfo.py +78 -0
- mypy/reachability.py +362 -0
- mypy/refinfo.py +92 -0
- mypy/renaming.py +568 -0
- mypy/report.py +924 -0
- mypy/scope.py +125 -0
- mypy/semanal.py +7023 -0
- mypy/semanal_classprop.py +187 -0
- mypy/semanal_enum.py +253 -0
- mypy/semanal_infer.py +128 -0
- mypy/semanal_main.py +511 -0
- mypy/semanal_namedtuple.py +670 -0
- mypy/semanal_newtype.py +273 -0
- mypy/semanal_pass1.py +156 -0
- mypy/semanal_shared.py +490 -0
- mypy/semanal_typeargs.py +265 -0
- mypy/semanal_typeddict.py +575 -0
- mypy/server/__init__.py +0 -0
- mypy/server/astdiff.py +518 -0
- mypy/server/astmerge.py +562 -0
- mypy/server/aststrip.py +281 -0
- mypy/server/deps.py +1137 -0
- mypy/server/mergecheck.py +83 -0
- mypy/server/objgraph.py +101 -0
- mypy/server/subexpr.py +198 -0
- mypy/server/target.py +11 -0
- mypy/server/trigger.py +26 -0
- mypy/server/update.py +1339 -0
- mypy/sharedparse.py +112 -0
- mypy/solve.py +562 -0
- mypy/split_namespace.py +35 -0
- mypy/state.py +28 -0
- mypy/stats.py +489 -0
- mypy/strconv.py +641 -0
- mypy/stubdoc.py +491 -0
- mypy/stubgen.py +1873 -0
- mypy/stubgenc.py +993 -0
- mypy/stubinfo.py +173 -0
- mypy/stubtest.py +2079 -0
- mypy/stubutil.py +807 -0
- mypy/subtypes.py +1967 -0
- mypy/suggestions.py +1046 -0
- mypy/test/__init__.py +0 -0
- mypy/test/config.py +28 -0
- mypy/test/data.py +823 -0
- mypy/test/helpers.py +476 -0
- mypy/test/meta/__init__.py +0 -0
- mypy/test/meta/_pytest.py +72 -0
- mypy/test/meta/test_diff_helper.py +47 -0
- mypy/test/meta/test_parse_data.py +73 -0
- mypy/test/meta/test_update_data.py +135 -0
- mypy/test/test_find_sources.py +376 -0
- mypy/test/test_ref_info.py +45 -0
- mypy/test/testapi.py +45 -0
- mypy/test/testargs.py +77 -0
- mypy/test/testcheck.py +322 -0
- mypy/test/testcmdline.py +152 -0
- mypy/test/testconstraints.py +134 -0
- mypy/test/testdaemon.py +132 -0
- mypy/test/testdeps.py +77 -0
- mypy/test/testdiff.py +67 -0
- mypy/test/testerrorstream.py +46 -0
- mypy/test/testfinegrained.py +438 -0
- mypy/test/testfinegrainedcache.py +18 -0
- mypy/test/testformatter.py +85 -0
- mypy/test/testfscache.py +101 -0
- mypy/test/testgraph.py +83 -0
- mypy/test/testinfer.py +373 -0
- mypy/test/testipc.py +119 -0
- mypy/test/testmerge.py +238 -0
- mypy/test/testmodulefinder.py +278 -0
- mypy/test/testmypyc.py +14 -0
- mypy/test/testparse.py +107 -0
- mypy/test/testpep561.py +211 -0
- mypy/test/testpythoneval.py +117 -0
- mypy/test/testreports.py +55 -0
- mypy/test/testsemanal.py +209 -0
- mypy/test/testsolve.py +285 -0
- mypy/test/teststubgen.py +1412 -0
- mypy/test/teststubinfo.py +12 -0
- mypy/test/teststubtest.py +2492 -0
- mypy/test/testsubtypes.py +303 -0
- mypy/test/testtransform.py +64 -0
- mypy/test/testtypegen.py +83 -0
- mypy/test/testtypes.py +1551 -0
- mypy/test/testutil.py +111 -0
- mypy/test/typefixture.py +415 -0
- mypy/test/update_data.py +87 -0
- mypy/test/visitors.py +63 -0
- mypy/traverser.py +961 -0
- mypy/treetransform.py +800 -0
- mypy/tvar_scope.py +147 -0
- mypy/type_visitor.py +564 -0
- mypy/typeanal.py +2510 -0
- mypy/typeops.py +1082 -0
- mypy/types.py +3686 -0
- mypy/types_utils.py +166 -0
- mypy/typeshed/LICENSE +237 -0
- mypy/typeshed/stdlib/VERSIONS +308 -0
- mypy/typeshed/stdlib/__future__.pyi +36 -0
- mypy/typeshed/stdlib/__main__.pyi +3 -0
- mypy/typeshed/stdlib/_ast.pyi +587 -0
- mypy/typeshed/stdlib/_bisect.pyi +84 -0
- mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
- mypy/typeshed/stdlib/_codecs.pyi +133 -0
- mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
- mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
- mypy/typeshed/stdlib/_compression.pyi +25 -0
- mypy/typeshed/stdlib/_csv.pyi +90 -0
- mypy/typeshed/stdlib/_ctypes.pyi +205 -0
- mypy/typeshed/stdlib/_curses.pyi +557 -0
- mypy/typeshed/stdlib/_decimal.pyi +281 -0
- mypy/typeshed/stdlib/_dummy_thread.pyi +27 -0
- mypy/typeshed/stdlib/_dummy_threading.pyi +164 -0
- mypy/typeshed/stdlib/_heapq.pyi +11 -0
- mypy/typeshed/stdlib/_imp.pyi +28 -0
- mypy/typeshed/stdlib/_json.pyi +49 -0
- mypy/typeshed/stdlib/_locale.pyi +100 -0
- mypy/typeshed/stdlib/_markupbase.pyi +16 -0
- mypy/typeshed/stdlib/_msi.pyi +91 -0
- mypy/typeshed/stdlib/_operator.pyi +147 -0
- mypy/typeshed/stdlib/_osx_support.pyi +34 -0
- mypy/typeshed/stdlib/_posixsubprocess.pyi +32 -0
- mypy/typeshed/stdlib/_py_abc.pyi +14 -0
- mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
- mypy/typeshed/stdlib/_random.pyi +12 -0
- mypy/typeshed/stdlib/_sitebuiltins.pyi +16 -0
- mypy/typeshed/stdlib/_socket.pyi +802 -0
- mypy/typeshed/stdlib/_stat.pyi +103 -0
- mypy/typeshed/stdlib/_thread.pyi +52 -0
- mypy/typeshed/stdlib/_threading_local.pyi +17 -0
- mypy/typeshed/stdlib/_tkinter.pyi +120 -0
- mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
- mypy/typeshed/stdlib/_typeshed/__init__.pyi +347 -0
- mypy/typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
- mypy/typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
- mypy/typeshed/stdlib/_typeshed/xml.pyi +9 -0
- mypy/typeshed/stdlib/_warnings.pyi +55 -0
- mypy/typeshed/stdlib/_weakref.pyi +41 -0
- mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
- mypy/typeshed/stdlib/_winapi.pyi +251 -0
- mypy/typeshed/stdlib/abc.pyi +49 -0
- mypy/typeshed/stdlib/aifc.pyi +91 -0
- mypy/typeshed/stdlib/antigravity.pyi +3 -0
- mypy/typeshed/stdlib/argparse.pyi +571 -0
- mypy/typeshed/stdlib/array.pyi +92 -0
- mypy/typeshed/stdlib/ast.pyi +277 -0
- mypy/typeshed/stdlib/asynchat.pyi +21 -0
- mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
- mypy/typeshed/stdlib/asyncio/base_events.pyi +440 -0
- mypy/typeshed/stdlib/asyncio/base_futures.pyi +19 -0
- mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +63 -0
- mypy/typeshed/stdlib/asyncio/base_tasks.pyi +9 -0
- mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
- mypy/typeshed/stdlib/asyncio/coroutines.pyi +26 -0
- mypy/typeshed/stdlib/asyncio/events.pyi +574 -0
- mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
- mypy/typeshed/stdlib/asyncio/format_helpers.pyi +20 -0
- mypy/typeshed/stdlib/asyncio/futures.pyi +57 -0
- mypy/typeshed/stdlib/asyncio/locks.pyi +121 -0
- mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
- mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
- mypy/typeshed/stdlib/asyncio/proactor_events.pyi +64 -0
- mypy/typeshed/stdlib/asyncio/protocols.pyi +34 -0
- mypy/typeshed/stdlib/asyncio/queues.pyi +47 -0
- mypy/typeshed/stdlib/asyncio/runners.pyi +32 -0
- mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
- mypy/typeshed/stdlib/asyncio/sslproto.pyi +163 -0
- mypy/typeshed/stdlib/asyncio/staggered.pyi +10 -0
- mypy/typeshed/stdlib/asyncio/streams.pyi +148 -0
- mypy/typeshed/stdlib/asyncio/subprocess.pyi +229 -0
- mypy/typeshed/stdlib/asyncio/taskgroups.pyi +25 -0
- mypy/typeshed/stdlib/asyncio/tasks.pyi +477 -0
- mypy/typeshed/stdlib/asyncio/threads.pyi +9 -0
- mypy/typeshed/stdlib/asyncio/timeouts.pyi +19 -0
- mypy/typeshed/stdlib/asyncio/transports.pyi +47 -0
- mypy/typeshed/stdlib/asyncio/trsock.pyi +98 -0
- mypy/typeshed/stdlib/asyncio/unix_events.pyi +173 -0
- mypy/typeshed/stdlib/asyncio/windows_events.pyi +83 -0
- mypy/typeshed/stdlib/asyncio/windows_utils.pyi +49 -0
- mypy/typeshed/stdlib/asyncore.pyi +90 -0
- mypy/typeshed/stdlib/atexit.pyi +12 -0
- mypy/typeshed/stdlib/audioop.pyi +42 -0
- mypy/typeshed/stdlib/base64.pyi +59 -0
- mypy/typeshed/stdlib/bdb.pyi +102 -0
- mypy/typeshed/stdlib/binascii.pyi +36 -0
- mypy/typeshed/stdlib/binhex.pyi +45 -0
- mypy/typeshed/stdlib/bisect.pyi +4 -0
- mypy/typeshed/stdlib/builtins.pyi +1937 -0
- mypy/typeshed/stdlib/bz2.pyi +146 -0
- mypy/typeshed/stdlib/cProfile.pyi +35 -0
- mypy/typeshed/stdlib/calendar.pyi +206 -0
- mypy/typeshed/stdlib/cgi.pyi +118 -0
- mypy/typeshed/stdlib/cgitb.pyi +32 -0
- mypy/typeshed/stdlib/chunk.pyi +20 -0
- mypy/typeshed/stdlib/cmath.pyi +36 -0
- mypy/typeshed/stdlib/cmd.pyi +45 -0
- mypy/typeshed/stdlib/code.pyi +33 -0
- mypy/typeshed/stdlib/codecs.pyi +285 -0
- mypy/typeshed/stdlib/codeop.pyi +13 -0
- mypy/typeshed/stdlib/collections/__init__.pyi +477 -0
- mypy/typeshed/stdlib/collections/abc.pyi +2 -0
- mypy/typeshed/stdlib/colorsys.pyi +13 -0
- mypy/typeshed/stdlib/compileall.pyi +111 -0
- mypy/typeshed/stdlib/concurrent/__init__.pyi +0 -0
- mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
- mypy/typeshed/stdlib/concurrent/futures/_base.pyi +120 -0
- mypy/typeshed/stdlib/concurrent/futures/process.pyi +233 -0
- mypy/typeshed/stdlib/concurrent/futures/thread.pyi +80 -0
- mypy/typeshed/stdlib/configparser.pyi +313 -0
- mypy/typeshed/stdlib/contextlib.pyi +207 -0
- mypy/typeshed/stdlib/contextvars.pyi +63 -0
- mypy/typeshed/stdlib/copy.pyi +16 -0
- mypy/typeshed/stdlib/copyreg.pyi +21 -0
- mypy/typeshed/stdlib/crypt.pyi +12 -0
- mypy/typeshed/stdlib/csv.pyi +147 -0
- mypy/typeshed/stdlib/ctypes/__init__.pyi +187 -0
- mypy/typeshed/stdlib/ctypes/_endian.pyi +19 -0
- mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
- mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
- mypy/typeshed/stdlib/curses/__init__.pyi +21 -0
- mypy/typeshed/stdlib/curses/ascii.pyi +63 -0
- mypy/typeshed/stdlib/curses/has_key.pyi +4 -0
- mypy/typeshed/stdlib/curses/panel.pyi +25 -0
- mypy/typeshed/stdlib/curses/textpad.pyi +13 -0
- mypy/typeshed/stdlib/dataclasses.pyi +313 -0
- mypy/typeshed/stdlib/datetime.pyi +295 -0
- mypy/typeshed/stdlib/dbm/__init__.pyi +95 -0
- mypy/typeshed/stdlib/dbm/dumb.pyi +31 -0
- mypy/typeshed/stdlib/dbm/gnu.pyi +40 -0
- mypy/typeshed/stdlib/dbm/ndbm.pyi +36 -0
- mypy/typeshed/stdlib/decimal.pyi +2 -0
- mypy/typeshed/stdlib/difflib.pyi +140 -0
- mypy/typeshed/stdlib/dis.pyi +144 -0
- mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
- mypy/typeshed/stdlib/distutils/archive_util.pyi +20 -0
- mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
- mypy/typeshed/stdlib/distutils/ccompiler.pyi +152 -0
- mypy/typeshed/stdlib/distutils/cmd.pyi +66 -0
- mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
- mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
- mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
- mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
- mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
- mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
- mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +16 -0
- mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
- mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
- mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
- mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
- mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
- mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
- mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
- mypy/typeshed/stdlib/distutils/command/config.pyi +83 -0
- mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
- mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
- mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
- mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
- mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
- mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
- mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
- mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
- mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
- mypy/typeshed/stdlib/distutils/config.pyi +17 -0
- mypy/typeshed/stdlib/distutils/core.pyi +57 -0
- mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
- mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
- mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
- mypy/typeshed/stdlib/distutils/dir_util.pyi +13 -0
- mypy/typeshed/stdlib/distutils/dist.pyi +146 -0
- mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
- mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
- mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +34 -0
- mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
- mypy/typeshed/stdlib/distutils/filelist.pyi +50 -0
- mypy/typeshed/stdlib/distutils/log.pyi +25 -0
- mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
- mypy/typeshed/stdlib/distutils/spawn.pyi +2 -0
- mypy/typeshed/stdlib/distutils/sysconfig.pyi +22 -0
- mypy/typeshed/stdlib/distutils/text_file.pyi +21 -0
- mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
- mypy/typeshed/stdlib/distutils/util.pyi +46 -0
- mypy/typeshed/stdlib/distutils/version.pyi +36 -0
- mypy/typeshed/stdlib/doctest.pyi +248 -0
- mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
- mypy/typeshed/stdlib/email/__init__.pyi +29 -0
- mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
- mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
- mypy/typeshed/stdlib/email/base64mime.pyi +13 -0
- mypy/typeshed/stdlib/email/charset.pyi +34 -0
- mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
- mypy/typeshed/stdlib/email/encoders.pyi +8 -0
- mypy/typeshed/stdlib/email/errors.pyi +39 -0
- mypy/typeshed/stdlib/email/feedparser.pyi +23 -0
- mypy/typeshed/stdlib/email/generator.pyi +40 -0
- mypy/typeshed/stdlib/email/header.pyi +31 -0
- mypy/typeshed/stdlib/email/headerregistry.pyi +178 -0
- mypy/typeshed/stdlib/email/iterators.pyi +12 -0
- mypy/typeshed/stdlib/email/message.pyi +161 -0
- mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
- mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
- mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
- mypy/typeshed/stdlib/email/mime/base.pyi +8 -0
- mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
- mypy/typeshed/stdlib/email/mime/message.pyi +8 -0
- mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
- mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
- mypy/typeshed/stdlib/email/mime/text.pyi +9 -0
- mypy/typeshed/stdlib/email/parser.pyi +26 -0
- mypy/typeshed/stdlib/email/policy.pyi +38 -0
- mypy/typeshed/stdlib/email/quoprimime.pyi +28 -0
- mypy/typeshed/stdlib/email/utils.pyi +66 -0
- mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
- mypy/typeshed/stdlib/encodings/utf_8.pyi +21 -0
- mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +22 -0
- mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
- mypy/typeshed/stdlib/enum.pyi +317 -0
- mypy/typeshed/stdlib/errno.pyi +222 -0
- mypy/typeshed/stdlib/faulthandler.pyi +13 -0
- mypy/typeshed/stdlib/fcntl.pyi +127 -0
- mypy/typeshed/stdlib/filecmp.pyi +57 -0
- mypy/typeshed/stdlib/fileinput.pyi +213 -0
- mypy/typeshed/stdlib/fnmatch.pyi +9 -0
- mypy/typeshed/stdlib/formatter.pyi +88 -0
- mypy/typeshed/stdlib/fractions.pyi +150 -0
- mypy/typeshed/stdlib/ftplib.pyi +178 -0
- mypy/typeshed/stdlib/functools.pyi +200 -0
- mypy/typeshed/stdlib/gc.pyi +37 -0
- mypy/typeshed/stdlib/genericpath.pyi +52 -0
- mypy/typeshed/stdlib/getopt.pyi +11 -0
- mypy/typeshed/stdlib/getpass.pyi +8 -0
- mypy/typeshed/stdlib/gettext.pyi +169 -0
- mypy/typeshed/stdlib/glob.pyi +42 -0
- mypy/typeshed/stdlib/graphlib.pyi +28 -0
- mypy/typeshed/stdlib/grp.pyi +21 -0
- mypy/typeshed/stdlib/gzip.pyi +160 -0
- mypy/typeshed/stdlib/hashlib.pyi +165 -0
- mypy/typeshed/stdlib/heapq.pyi +17 -0
- mypy/typeshed/stdlib/hmac.pyi +38 -0
- mypy/typeshed/stdlib/html/__init__.pyi +6 -0
- mypy/typeshed/stdlib/html/entities.pyi +6 -0
- mypy/typeshed/stdlib/html/parser.pyi +34 -0
- mypy/typeshed/stdlib/http/__init__.pyi +105 -0
- mypy/typeshed/stdlib/http/client.pyi +259 -0
- mypy/typeshed/stdlib/http/cookiejar.pyi +159 -0
- mypy/typeshed/stdlib/http/cookies.pyi +60 -0
- mypy/typeshed/stdlib/http/server.pyi +83 -0
- mypy/typeshed/stdlib/imaplib.pyi +168 -0
- mypy/typeshed/stdlib/imghdr.pyi +17 -0
- mypy/typeshed/stdlib/imp.pyi +62 -0
- mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
- mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
- mypy/typeshed/stdlib/importlib/abc.pyi +172 -0
- mypy/typeshed/stdlib/importlib/machinery.pyi +179 -0
- mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +276 -0
- mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +40 -0
- mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
- mypy/typeshed/stdlib/importlib/resources/__init__.pyi +46 -0
- mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
- mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
- mypy/typeshed/stdlib/importlib/resources/simple.pyi +49 -0
- mypy/typeshed/stdlib/importlib/simple.pyi +11 -0
- mypy/typeshed/stdlib/importlib/util.pyi +43 -0
- mypy/typeshed/stdlib/inspect.pyi +631 -0
- mypy/typeshed/stdlib/io.pyi +204 -0
- mypy/typeshed/stdlib/ipaddress.pyi +208 -0
- mypy/typeshed/stdlib/itertools.pyi +293 -0
- mypy/typeshed/stdlib/json/__init__.pyi +61 -0
- mypy/typeshed/stdlib/json/decoder.pyi +32 -0
- mypy/typeshed/stdlib/json/encoder.pyi +38 -0
- mypy/typeshed/stdlib/json/tool.pyi +1 -0
- mypy/typeshed/stdlib/keyword.pyi +21 -0
- mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
- mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +28 -0
- mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +42 -0
- mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +15 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
- mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/main.pyi +42 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +27 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +30 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +50 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
- mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +96 -0
- mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
- mypy/typeshed/stdlib/lib2to3/pytree.pyi +117 -0
- mypy/typeshed/stdlib/lib2to3/refactor.pyi +82 -0
- mypy/typeshed/stdlib/linecache.pyi +23 -0
- mypy/typeshed/stdlib/locale.pyi +152 -0
- mypy/typeshed/stdlib/logging/__init__.pyi +655 -0
- mypy/typeshed/stdlib/logging/config.pyi +134 -0
- mypy/typeshed/stdlib/logging/handlers.pyi +275 -0
- mypy/typeshed/stdlib/lzma.pyi +197 -0
- mypy/typeshed/stdlib/mailbox.pyi +256 -0
- mypy/typeshed/stdlib/mailcap.pyi +11 -0
- mypy/typeshed/stdlib/marshal.pyi +33 -0
- mypy/typeshed/stdlib/math.pyi +125 -0
- mypy/typeshed/stdlib/mimetypes.pyi +46 -0
- mypy/typeshed/stdlib/mmap.pyi +113 -0
- mypy/typeshed/stdlib/modulefinder.pyi +66 -0
- mypy/typeshed/stdlib/msilib/__init__.pyi +176 -0
- mypy/typeshed/stdlib/msilib/schema.pyi +94 -0
- mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
- mypy/typeshed/stdlib/msilib/text.pyi +7 -0
- mypy/typeshed/stdlib/msvcrt.pyi +32 -0
- mypy/typeshed/stdlib/multiprocessing/__init__.pyi +90 -0
- mypy/typeshed/stdlib/multiprocessing/connection.pyi +75 -0
- mypy/typeshed/stdlib/multiprocessing/context.pyi +187 -0
- mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +77 -0
- mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +39 -0
- mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +31 -0
- mypy/typeshed/stdlib/multiprocessing/heap.pyi +36 -0
- mypy/typeshed/stdlib/multiprocessing/managers.pyi +212 -0
- mypy/typeshed/stdlib/multiprocessing/pool.pyi +103 -0
- mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
- mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
- mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
- mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
- mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
- mypy/typeshed/stdlib/multiprocessing/queues.pyi +41 -0
- mypy/typeshed/stdlib/multiprocessing/reduction.pyi +89 -0
- mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
- mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
- mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +40 -0
- mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +101 -0
- mypy/typeshed/stdlib/multiprocessing/spawn.pyi +32 -0
- mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +54 -0
- mypy/typeshed/stdlib/multiprocessing/util.pyi +79 -0
- mypy/typeshed/stdlib/netrc.pyi +23 -0
- mypy/typeshed/stdlib/nis.pyi +9 -0
- mypy/typeshed/stdlib/nntplib.pyi +125 -0
- mypy/typeshed/stdlib/nt.pyi +111 -0
- mypy/typeshed/stdlib/ntpath.pyi +119 -0
- mypy/typeshed/stdlib/nturl2path.pyi +2 -0
- mypy/typeshed/stdlib/numbers.pyi +154 -0
- mypy/typeshed/stdlib/opcode.pyi +59 -0
- mypy/typeshed/stdlib/operator.pyi +110 -0
- mypy/typeshed/stdlib/optparse.pyi +252 -0
- mypy/typeshed/stdlib/os/__init__.pyi +1139 -0
- mypy/typeshed/stdlib/os/path.pyi +8 -0
- mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
- mypy/typeshed/stdlib/parser.pyi +24 -0
- mypy/typeshed/stdlib/pathlib.pyi +232 -0
- mypy/typeshed/stdlib/pdb.pyi +181 -0
- mypy/typeshed/stdlib/pickle.pyi +270 -0
- mypy/typeshed/stdlib/pickletools.pyi +167 -0
- mypy/typeshed/stdlib/pipes.pyi +16 -0
- mypy/typeshed/stdlib/pkgutil.pyi +53 -0
- mypy/typeshed/stdlib/platform.pyi +42 -0
- mypy/typeshed/stdlib/plistlib.pyi +113 -0
- mypy/typeshed/stdlib/poplib.pyi +71 -0
- mypy/typeshed/stdlib/posix.pyi +359 -0
- mypy/typeshed/stdlib/posixpath.pyi +161 -0
- mypy/typeshed/stdlib/pprint.pyi +112 -0
- mypy/typeshed/stdlib/profile.pyi +31 -0
- mypy/typeshed/stdlib/pstats.pyi +78 -0
- mypy/typeshed/stdlib/pty.pyi +19 -0
- mypy/typeshed/stdlib/pwd.pyi +27 -0
- mypy/typeshed/stdlib/py_compile.pyi +34 -0
- mypy/typeshed/stdlib/pyclbr.pyi +74 -0
- mypy/typeshed/stdlib/pydoc.pyi +261 -0
- mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
- mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
- mypy/typeshed/stdlib/pyexpat/__init__.pyi +80 -0
- mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
- mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
- mypy/typeshed/stdlib/queue.pyi +58 -0
- mypy/typeshed/stdlib/quopri.pyi +11 -0
- mypy/typeshed/stdlib/random.pyi +138 -0
- mypy/typeshed/stdlib/re.pyi +290 -0
- mypy/typeshed/stdlib/readline.pyi +36 -0
- mypy/typeshed/stdlib/reprlib.pyi +65 -0
- mypy/typeshed/stdlib/resource.pyi +92 -0
- mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
- mypy/typeshed/stdlib/runpy.pyi +24 -0
- mypy/typeshed/stdlib/sched.pyi +42 -0
- mypy/typeshed/stdlib/secrets.pyi +15 -0
- mypy/typeshed/stdlib/select.pyi +151 -0
- mypy/typeshed/stdlib/selectors.pyi +67 -0
- mypy/typeshed/stdlib/shelve.pyi +46 -0
- mypy/typeshed/stdlib/shlex.pyi +43 -0
- mypy/typeshed/stdlib/shutil.pyi +189 -0
- mypy/typeshed/stdlib/signal.pyi +189 -0
- mypy/typeshed/stdlib/site.pyi +27 -0
- mypy/typeshed/stdlib/smtpd.pyi +91 -0
- mypy/typeshed/stdlib/smtplib.pyi +204 -0
- mypy/typeshed/stdlib/sndhdr.pyi +14 -0
- mypy/typeshed/stdlib/socket.pyi +825 -0
- mypy/typeshed/stdlib/socketserver.pyi +168 -0
- mypy/typeshed/stdlib/spwd.pyi +40 -0
- mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
- mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +469 -0
- mypy/typeshed/stdlib/sre_compile.pyi +11 -0
- mypy/typeshed/stdlib/sre_constants.pyi +130 -0
- mypy/typeshed/stdlib/sre_parse.pyi +104 -0
- mypy/typeshed/stdlib/ssl.pyi +529 -0
- mypy/typeshed/stdlib/stat.pyi +1 -0
- mypy/typeshed/stdlib/statistics.pyi +132 -0
- mypy/typeshed/stdlib/string.pyi +83 -0
- mypy/typeshed/stdlib/stringprep.pyi +27 -0
- mypy/typeshed/stdlib/struct.pyi +26 -0
- mypy/typeshed/stdlib/subprocess.pyi +2614 -0
- mypy/typeshed/stdlib/sunau.pyi +86 -0
- mypy/typeshed/stdlib/symbol.pyi +93 -0
- mypy/typeshed/stdlib/symtable.pyi +58 -0
- mypy/typeshed/stdlib/sys/__init__.pyi +373 -0
- mypy/typeshed/stdlib/sys/_monitoring.pyi +52 -0
- mypy/typeshed/stdlib/sysconfig.pyi +43 -0
- mypy/typeshed/stdlib/syslog.pyi +46 -0
- mypy/typeshed/stdlib/tabnanny.pyi +16 -0
- mypy/typeshed/stdlib/tarfile.pyi +438 -0
- mypy/typeshed/stdlib/telnetlib.pyi +122 -0
- mypy/typeshed/stdlib/tempfile.pyi +477 -0
- mypy/typeshed/stdlib/termios.pyi +267 -0
- mypy/typeshed/stdlib/textwrap.pyi +103 -0
- mypy/typeshed/stdlib/this.pyi +2 -0
- mypy/typeshed/stdlib/threading.pyi +187 -0
- mypy/typeshed/stdlib/time.pyi +107 -0
- mypy/typeshed/stdlib/timeit.pyi +32 -0
- mypy/typeshed/stdlib/tkinter/__init__.pyi +3641 -0
- mypy/typeshed/stdlib/tkinter/colorchooser.pyi +20 -0
- mypy/typeshed/stdlib/tkinter/commondialog.pyi +14 -0
- mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
- mypy/typeshed/stdlib/tkinter/dialog.pyi +16 -0
- mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
- mypy/typeshed/stdlib/tkinter/filedialog.pyi +151 -0
- mypy/typeshed/stdlib/tkinter/font.pyi +116 -0
- mypy/typeshed/stdlib/tkinter/messagebox.pyi +44 -0
- mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +10 -0
- mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
- mypy/typeshed/stdlib/tkinter/tix.pyi +299 -0
- mypy/typeshed/stdlib/tkinter/ttk.pyi +1191 -0
- mypy/typeshed/stdlib/token.pyi +159 -0
- mypy/typeshed/stdlib/tokenize.pyi +177 -0
- mypy/typeshed/stdlib/tomllib.pyi +10 -0
- mypy/typeshed/stdlib/trace.pyi +79 -0
- mypy/typeshed/stdlib/traceback.pyi +260 -0
- mypy/typeshed/stdlib/tracemalloc.pyi +124 -0
- mypy/typeshed/stdlib/tty.pyi +30 -0
- mypy/typeshed/stdlib/turtle.pyi +713 -0
- mypy/typeshed/stdlib/types.pyi +605 -0
- mypy/typeshed/stdlib/typing.pyi +968 -0
- mypy/typeshed/stdlib/typing_extensions.pyi +503 -0
- mypy/typeshed/stdlib/unicodedata.pyi +71 -0
- mypy/typeshed/stdlib/unittest/__init__.pyi +67 -0
- mypy/typeshed/stdlib/unittest/_log.pyi +27 -0
- mypy/typeshed/stdlib/unittest/async_case.pyi +21 -0
- mypy/typeshed/stdlib/unittest/case.pyi +342 -0
- mypy/typeshed/stdlib/unittest/loader.pyi +51 -0
- mypy/typeshed/stdlib/unittest/main.pyi +69 -0
- mypy/typeshed/stdlib/unittest/mock.pyi +430 -0
- mypy/typeshed/stdlib/unittest/result.pyi +46 -0
- mypy/typeshed/stdlib/unittest/runner.pyi +72 -0
- mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
- mypy/typeshed/stdlib/unittest/suite.pyi +22 -0
- mypy/typeshed/stdlib/unittest/util.pyi +23 -0
- mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
- mypy/typeshed/stdlib/urllib/error.pyi +23 -0
- mypy/typeshed/stdlib/urllib/parse.pyi +210 -0
- mypy/typeshed/stdlib/urllib/request.pyi +399 -0
- mypy/typeshed/stdlib/urllib/response.pyi +43 -0
- mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
- mypy/typeshed/stdlib/uu.pyi +13 -0
- mypy/typeshed/stdlib/uuid.pyi +100 -0
- mypy/typeshed/stdlib/venv/__init__.pyi +79 -0
- mypy/typeshed/stdlib/warnings.pyi +112 -0
- mypy/typeshed/stdlib/wave.pyi +85 -0
- mypy/typeshed/stdlib/weakref.pyi +150 -0
- mypy/typeshed/stdlib/webbrowser.pyi +74 -0
- mypy/typeshed/stdlib/winreg.pyi +103 -0
- mypy/typeshed/stdlib/winsound.pyi +28 -0
- mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
- mypy/typeshed/stdlib/wsgiref/handlers.pyi +91 -0
- mypy/typeshed/stdlib/wsgiref/headers.pyi +26 -0
- mypy/typeshed/stdlib/wsgiref/simple_server.pyi +37 -0
- mypy/typeshed/stdlib/wsgiref/types.pyi +32 -0
- mypy/typeshed/stdlib/wsgiref/util.pyi +24 -0
- mypy/typeshed/stdlib/wsgiref/validate.pyi +50 -0
- mypy/typeshed/stdlib/xdrlib.pyi +57 -0
- mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
- mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
- mypy/typeshed/stdlib/xml/dom/__init__.pyi +69 -0
- mypy/typeshed/stdlib/xml/dom/domreg.pyi +8 -0
- mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +100 -0
- mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
- mypy/typeshed/stdlib/xml/dom/minidom.pyi +404 -0
- mypy/typeshed/stdlib/xml/dom/pulldom.pyi +94 -0
- mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +108 -0
- mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +28 -0
- mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +34 -0
- mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +321 -0
- mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
- mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
- mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
- mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
- mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
- mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
- mypy/typeshed/stdlib/xml/sax/__init__.pyi +25 -0
- mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +19 -0
- mypy/typeshed/stdlib/xml/sax/handler.pyi +55 -0
- mypy/typeshed/stdlib/xml/sax/saxutils.pyi +60 -0
- mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +87 -0
- mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
- mypy/typeshed/stdlib/xmlrpc/client.pyi +296 -0
- mypy/typeshed/stdlib/xmlrpc/server.pyi +143 -0
- mypy/typeshed/stdlib/xxlimited.pyi +22 -0
- mypy/typeshed/stdlib/zipapp.pyi +20 -0
- mypy/typeshed/stdlib/zipfile/__init__.pyi +306 -0
- mypy/typeshed/stdlib/zipfile/_path.pyi +95 -0
- mypy/typeshed/stdlib/zipimport.pyi +32 -0
- mypy/typeshed/stdlib/zlib.pyi +56 -0
- mypy/typeshed/stdlib/zoneinfo/__init__.pyi +38 -0
- mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
- mypy/typestate.py +323 -0
- mypy/typetraverser.py +142 -0
- mypy/typevars.py +93 -0
- mypy/typevartuples.py +32 -0
- mypy/util.py +869 -0
- mypy/version.py +1 -0
- mypy/visitor.py +621 -0
- mypy/xml/mypy-html.css +104 -0
- mypy/xml/mypy-html.xslt +81 -0
- mypy/xml/mypy-txt.xslt +100 -0
- mypy/xml/mypy.xsd +50 -0
- mypy_dev-1.9.0.dev0.dist-info/LICENSE +229 -0
- mypy_dev-1.9.0.dev0.dist-info/METADATA +39 -0
- mypy_dev-1.9.0.dev0.dist-info/RECORD +1018 -0
- mypy_dev-1.9.0.dev0.dist-info/WHEEL +5 -0
- mypy_dev-1.9.0.dev0.dist-info/entry_points.txt +6 -0
- mypy_dev-1.9.0.dev0.dist-info/top_level.txt +2 -0
- mypyc/README.md +133 -0
- mypyc/__init__.py +0 -0
- mypyc/__main__.py +57 -0
- mypyc/analysis/__init__.py +0 -0
- mypyc/analysis/attrdefined.py +436 -0
- mypyc/analysis/blockfreq.py +32 -0
- mypyc/analysis/dataflow.py +624 -0
- mypyc/analysis/ircheck.py +429 -0
- mypyc/analysis/selfleaks.py +207 -0
- mypyc/build.py +616 -0
- mypyc/codegen/__init__.py +0 -0
- mypyc/codegen/cstring.py +54 -0
- mypyc/codegen/emit.py +1193 -0
- mypyc/codegen/emitclass.py +1060 -0
- mypyc/codegen/emitfunc.py +846 -0
- mypyc/codegen/emitmodule.py +1131 -0
- mypyc/codegen/emitwrapper.py +979 -0
- mypyc/codegen/literals.py +302 -0
- mypyc/common.py +136 -0
- mypyc/crash.py +31 -0
- mypyc/doc/Makefile +20 -0
- mypyc/doc/bool_operations.rst +27 -0
- mypyc/doc/compilation_units.rst +20 -0
- mypyc/doc/conf.py +59 -0
- mypyc/doc/cpython-timings.md +25 -0
- mypyc/doc/dev-intro.md +548 -0
- mypyc/doc/dict_operations.rst +59 -0
- mypyc/doc/differences_from_python.rst +332 -0
- mypyc/doc/float_operations.rst +50 -0
- mypyc/doc/future.md +42 -0
- mypyc/doc/getting_started.rst +240 -0
- mypyc/doc/index.rst +61 -0
- mypyc/doc/int_operations.rst +162 -0
- mypyc/doc/introduction.rst +150 -0
- mypyc/doc/list_operations.rst +65 -0
- mypyc/doc/make.bat +35 -0
- mypyc/doc/native_classes.rst +206 -0
- mypyc/doc/native_operations.rst +55 -0
- mypyc/doc/performance_tips_and_tricks.rst +244 -0
- mypyc/doc/set_operations.rst +47 -0
- mypyc/doc/str_operations.rst +35 -0
- mypyc/doc/tuple_operations.rst +33 -0
- mypyc/doc/using_type_annotations.rst +398 -0
- mypyc/errors.py +29 -0
- mypyc/external/googletest/LICENSE +28 -0
- mypyc/external/googletest/README.md +280 -0
- mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
- mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
- mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
- mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
- mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
- mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
- mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
- mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
- mypyc/external/googletest/include/gtest/gtest.h +2236 -0
- mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
- mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
- mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
- mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
- mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
- mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
- mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
- mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
- mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
- mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
- mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
- mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
- mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
- mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
- mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
- mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
- mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
- mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
- mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
- mypyc/external/googletest/make/Makefile +61 -0
- mypyc/external/googletest/src/gtest-all.cc +48 -0
- mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
- mypyc/external/googletest/src/gtest-filepath.cc +387 -0
- mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
- mypyc/external/googletest/src/gtest-port.cc +1259 -0
- mypyc/external/googletest/src/gtest-printers.cc +373 -0
- mypyc/external/googletest/src/gtest-test-part.cc +110 -0
- mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
- mypyc/external/googletest/src/gtest.cc +5388 -0
- mypyc/external/googletest/src/gtest_main.cc +38 -0
- mypyc/ir/__init__.py +0 -0
- mypyc/ir/class_ir.py +499 -0
- mypyc/ir/func_ir.py +370 -0
- mypyc/ir/module_ir.py +88 -0
- mypyc/ir/ops.py +1642 -0
- mypyc/ir/pprint.py +496 -0
- mypyc/ir/rtypes.py +1038 -0
- mypyc/irbuild/__init__.py +0 -0
- mypyc/irbuild/ast_helpers.py +120 -0
- mypyc/irbuild/builder.py +1398 -0
- mypyc/irbuild/callable_class.py +173 -0
- mypyc/irbuild/classdef.py +850 -0
- mypyc/irbuild/constant_fold.py +95 -0
- mypyc/irbuild/context.py +186 -0
- mypyc/irbuild/env_class.py +223 -0
- mypyc/irbuild/expression.py +1067 -0
- mypyc/irbuild/for_helpers.py +1046 -0
- mypyc/irbuild/format_str_tokenizer.py +250 -0
- mypyc/irbuild/function.py +1089 -0
- mypyc/irbuild/generator.py +346 -0
- mypyc/irbuild/ll_builder.py +2407 -0
- mypyc/irbuild/main.py +153 -0
- mypyc/irbuild/mapper.py +221 -0
- mypyc/irbuild/match.py +355 -0
- mypyc/irbuild/nonlocalcontrol.py +197 -0
- mypyc/irbuild/prebuildvisitor.py +203 -0
- mypyc/irbuild/prepare.py +609 -0
- mypyc/irbuild/specialize.py +822 -0
- mypyc/irbuild/statement.py +1017 -0
- mypyc/irbuild/targets.py +57 -0
- mypyc/irbuild/util.py +189 -0
- mypyc/irbuild/visitor.py +401 -0
- mypyc/irbuild/vtable.py +82 -0
- mypyc/lib-rt/CPy.h +643 -0
- mypyc/lib-rt/bytes_ops.c +143 -0
- mypyc/lib-rt/dict_ops.c +446 -0
- mypyc/lib-rt/exc_ops.c +259 -0
- mypyc/lib-rt/float_ops.c +192 -0
- mypyc/lib-rt/generic_ops.c +64 -0
- mypyc/lib-rt/getargs.c +450 -0
- mypyc/lib-rt/getargsfast.c +569 -0
- mypyc/lib-rt/init.c +13 -0
- mypyc/lib-rt/int_ops.c +803 -0
- mypyc/lib-rt/list_ops.c +335 -0
- mypyc/lib-rt/misc_ops.c +942 -0
- mypyc/lib-rt/module_shim.tmpl +18 -0
- mypyc/lib-rt/mypyc_util.h +118 -0
- mypyc/lib-rt/pythoncapi_compat.h +497 -0
- mypyc/lib-rt/pythonsupport.h +548 -0
- mypyc/lib-rt/set_ops.c +17 -0
- mypyc/lib-rt/setup.py +70 -0
- mypyc/lib-rt/str_ops.c +241 -0
- mypyc/lib-rt/test_capi.cc +585 -0
- mypyc/lib-rt/tuple_ops.c +61 -0
- mypyc/namegen.py +115 -0
- mypyc/options.py +32 -0
- mypyc/primitives/__init__.py +0 -0
- mypyc/primitives/bytes_ops.py +101 -0
- mypyc/primitives/dict_ops.py +325 -0
- mypyc/primitives/exc_ops.py +101 -0
- mypyc/primitives/float_ops.py +168 -0
- mypyc/primitives/generic_ops.py +384 -0
- mypyc/primitives/int_ops.py +304 -0
- mypyc/primitives/list_ops.py +300 -0
- mypyc/primitives/misc_ops.py +241 -0
- mypyc/primitives/registry.py +323 -0
- mypyc/primitives/set_ops.py +121 -0
- mypyc/primitives/str_ops.py +229 -0
- mypyc/primitives/tuple_ops.py +83 -0
- mypyc/rt_subtype.py +77 -0
- mypyc/sametype.py +83 -0
- mypyc/subtype.py +88 -0
- mypyc/test/__init__.py +0 -0
- mypyc/test/config.py +13 -0
- mypyc/test/test_alwaysdefined.py +46 -0
- mypyc/test/test_analysis.py +77 -0
- mypyc/test/test_cheader.py +45 -0
- mypyc/test/test_commandline.py +82 -0
- mypyc/test/test_emit.py +69 -0
- mypyc/test/test_emitclass.py +35 -0
- mypyc/test/test_emitfunc.py +926 -0
- mypyc/test/test_emitwrapper.py +60 -0
- mypyc/test/test_exceptions.py +56 -0
- mypyc/test/test_external.py +49 -0
- mypyc/test/test_irbuild.py +87 -0
- mypyc/test/test_ircheck.py +199 -0
- mypyc/test/test_literals.py +90 -0
- mypyc/test/test_namegen.py +48 -0
- mypyc/test/test_pprint.py +42 -0
- mypyc/test/test_rarray.py +48 -0
- mypyc/test/test_refcount.py +59 -0
- mypyc/test/test_run.py +426 -0
- mypyc/test/test_serialization.py +108 -0
- mypyc/test/test_struct.py +112 -0
- mypyc/test/test_tuplename.py +33 -0
- mypyc/test/test_typeops.py +97 -0
- mypyc/test/testutil.py +283 -0
- mypyc/test-data/alwaysdefined.test +732 -0
- mypyc/test-data/analysis.test +603 -0
- mypyc/test-data/commandline.test +245 -0
- mypyc/test-data/driver/driver.py +48 -0
- mypyc/test-data/exceptions-freq.test +125 -0
- mypyc/test-data/exceptions.test +713 -0
- mypyc/test-data/fixtures/ir.py +373 -0
- mypyc/test-data/fixtures/testutil.py +103 -0
- mypyc/test-data/fixtures/typing-full.pyi +169 -0
- mypyc/test-data/irbuild-any.test +238 -0
- mypyc/test-data/irbuild-basic.test +3690 -0
- mypyc/test-data/irbuild-bool.test +463 -0
- mypyc/test-data/irbuild-bytes.test +184 -0
- mypyc/test-data/irbuild-classes.test +1303 -0
- mypyc/test-data/irbuild-constant-fold.test +480 -0
- mypyc/test-data/irbuild-dict.test +585 -0
- mypyc/test-data/irbuild-dunders.test +223 -0
- mypyc/test-data/irbuild-float.test +497 -0
- mypyc/test-data/irbuild-generics.test +151 -0
- mypyc/test-data/irbuild-glue-methods.test +437 -0
- mypyc/test-data/irbuild-i16.test +526 -0
- mypyc/test-data/irbuild-i32.test +598 -0
- mypyc/test-data/irbuild-i64.test +2164 -0
- mypyc/test-data/irbuild-int.test +235 -0
- mypyc/test-data/irbuild-isinstance.test +109 -0
- mypyc/test-data/irbuild-lists.test +547 -0
- mypyc/test-data/irbuild-match.test +1708 -0
- mypyc/test-data/irbuild-math.test +64 -0
- mypyc/test-data/irbuild-nested.test +807 -0
- mypyc/test-data/irbuild-optional.test +536 -0
- mypyc/test-data/irbuild-set.test +838 -0
- mypyc/test-data/irbuild-singledispatch.test +257 -0
- mypyc/test-data/irbuild-statements.test +1149 -0
- mypyc/test-data/irbuild-str.test +314 -0
- mypyc/test-data/irbuild-strip-asserts.test +12 -0
- mypyc/test-data/irbuild-try.test +523 -0
- mypyc/test-data/irbuild-tuple.test +462 -0
- mypyc/test-data/irbuild-u8.test +543 -0
- mypyc/test-data/irbuild-unreachable.test +241 -0
- mypyc/test-data/irbuild-vectorcall.test +153 -0
- mypyc/test-data/refcount.test +1588 -0
- mypyc/test-data/run-async.test +145 -0
- mypyc/test-data/run-attrs.test +318 -0
- mypyc/test-data/run-bench.test +196 -0
- mypyc/test-data/run-bools.test +229 -0
- mypyc/test-data/run-bytes.test +302 -0
- mypyc/test-data/run-classes.test +2505 -0
- mypyc/test-data/run-dicts.test +334 -0
- mypyc/test-data/run-dunders.test +945 -0
- mypyc/test-data/run-exceptions.test +448 -0
- mypyc/test-data/run-floats.test +516 -0
- mypyc/test-data/run-functions.test +1310 -0
- mypyc/test-data/run-generators.test +681 -0
- mypyc/test-data/run-i16.test +338 -0
- mypyc/test-data/run-i32.test +336 -0
- mypyc/test-data/run-i64.test +1519 -0
- mypyc/test-data/run-imports.test +265 -0
- mypyc/test-data/run-integers.test +540 -0
- mypyc/test-data/run-lists.test +411 -0
- mypyc/test-data/run-loops.test +485 -0
- mypyc/test-data/run-match.test +283 -0
- mypyc/test-data/run-math.test +106 -0
- mypyc/test-data/run-misc.test +1168 -0
- mypyc/test-data/run-multimodule.test +887 -0
- mypyc/test-data/run-mypy-sim.test +138 -0
- mypyc/test-data/run-primitives.test +375 -0
- mypyc/test-data/run-python37.test +159 -0
- mypyc/test-data/run-python38.test +88 -0
- mypyc/test-data/run-sets.test +150 -0
- mypyc/test-data/run-singledispatch.test +698 -0
- mypyc/test-data/run-strings.test +641 -0
- mypyc/test-data/run-traits.test +411 -0
- mypyc/test-data/run-tuples.test +258 -0
- mypyc/test-data/run-u8.test +303 -0
- mypyc/transform/__init__.py +0 -0
- mypyc/transform/exceptions.py +182 -0
- mypyc/transform/refcount.py +294 -0
- mypyc/transform/uninit.py +190 -0
|
@@ -0,0 +1,887 @@
|
|
|
1
|
+
-- These test cases compile two or more modules at a time.
|
|
2
|
+
-- Any file prefixed with "other" is compiled.
|
|
3
|
+
--
|
|
4
|
+
-- Note that these are run in three compilation modes: regular,
|
|
5
|
+
-- multi-file and separate. See the docstrings of
|
|
6
|
+
-- mypyc.test.test_run.TestRunMultiFile and
|
|
7
|
+
-- mypyc.test.test_run.TestRunSeparate for more information.
|
|
8
|
+
--
|
|
9
|
+
-- Some of these files perform multiple incremental runs. See
|
|
10
|
+
-- test-data/unit/check-incremental.test for more information
|
|
11
|
+
-- about how this is specified (e.g. .2 file name suffixes).
|
|
12
|
+
|
|
13
|
+
[case testMultiModulePackage]
|
|
14
|
+
from p.other import g, _i as i
|
|
15
|
+
def f(x: int) -> int:
|
|
16
|
+
from p.other import h
|
|
17
|
+
return i(h(g(x + 1)))
|
|
18
|
+
[file p/__init__.py]
|
|
19
|
+
[file p/other.py]
|
|
20
|
+
def g(x: int) -> int:
|
|
21
|
+
return x + 2
|
|
22
|
+
def h(x: int) -> int:
|
|
23
|
+
return x + 1
|
|
24
|
+
def _i(x: int) -> int:
|
|
25
|
+
return x + 3
|
|
26
|
+
[file driver.py]
|
|
27
|
+
import native
|
|
28
|
+
from native import f
|
|
29
|
+
from p.other import g
|
|
30
|
+
assert f(3) == 10
|
|
31
|
+
assert g(2) == 4
|
|
32
|
+
try:
|
|
33
|
+
f(1.1)
|
|
34
|
+
except TypeError:
|
|
35
|
+
pass
|
|
36
|
+
else:
|
|
37
|
+
assert False
|
|
38
|
+
try:
|
|
39
|
+
g(1.1)
|
|
40
|
+
except TypeError:
|
|
41
|
+
pass
|
|
42
|
+
else:
|
|
43
|
+
assert False
|
|
44
|
+
|
|
45
|
+
[case testMultiModuleFastpaths]
|
|
46
|
+
[file other_main.py]
|
|
47
|
+
|
|
48
|
+
[file other_main.py.2]
|
|
49
|
+
from other_b import A, func
|
|
50
|
+
|
|
51
|
+
class B(A):
|
|
52
|
+
pass
|
|
53
|
+
|
|
54
|
+
def test() -> None:
|
|
55
|
+
a = A()
|
|
56
|
+
assert func() == 12
|
|
57
|
+
assert a.method() == "test"
|
|
58
|
+
|
|
59
|
+
test()
|
|
60
|
+
|
|
61
|
+
[file other_b.py]
|
|
62
|
+
class A:
|
|
63
|
+
def method(self) -> str:
|
|
64
|
+
return "test"
|
|
65
|
+
|
|
66
|
+
def func() -> int:
|
|
67
|
+
return 12
|
|
68
|
+
|
|
69
|
+
# Remove all the methods and functions from globals to ensure that
|
|
70
|
+
# they get called via the fastpaths even when doing incremental
|
|
71
|
+
# compilation.
|
|
72
|
+
setattr(A, 'method', None)
|
|
73
|
+
setattr(A, '__init__', None)
|
|
74
|
+
globals()['func'] = None
|
|
75
|
+
globals()['A'] = None
|
|
76
|
+
|
|
77
|
+
[file driver.py]
|
|
78
|
+
import other_main
|
|
79
|
+
|
|
80
|
+
[case testMultiModuleSameNames]
|
|
81
|
+
# Use same names in both modules
|
|
82
|
+
import other
|
|
83
|
+
def f() -> int:
|
|
84
|
+
return 0
|
|
85
|
+
class C:
|
|
86
|
+
x: int
|
|
87
|
+
def __init__(self) -> None:
|
|
88
|
+
self.x = 1
|
|
89
|
+
def f(self, x: int) -> int:
|
|
90
|
+
return self.x + x
|
|
91
|
+
class D(C): pass
|
|
92
|
+
|
|
93
|
+
def g(x: 'other.C') -> None:
|
|
94
|
+
pass
|
|
95
|
+
|
|
96
|
+
[file other.py]
|
|
97
|
+
def f(x: int) -> int:
|
|
98
|
+
return x + 1
|
|
99
|
+
class C:
|
|
100
|
+
x: int
|
|
101
|
+
def __init__(self) -> None:
|
|
102
|
+
self.x = 2
|
|
103
|
+
def f(self, x: int) -> int:
|
|
104
|
+
return self.x + x + 1
|
|
105
|
+
class D(C): pass
|
|
106
|
+
[file driver.py]
|
|
107
|
+
import native, other
|
|
108
|
+
assert native.f() == 0
|
|
109
|
+
assert other.f(3) == 4
|
|
110
|
+
c1 = native.C()
|
|
111
|
+
c1.x += 3
|
|
112
|
+
c2 = other.C()
|
|
113
|
+
c2.x += 6
|
|
114
|
+
assert c1.f(9) == 1 + 3 + 9
|
|
115
|
+
assert c2.f(7) == 2 + 6 + 7 + 1
|
|
116
|
+
assert isinstance(native.D(), native.C)
|
|
117
|
+
assert isinstance(other.D(), other.C)
|
|
118
|
+
assert not isinstance(native.D(), other.C)
|
|
119
|
+
assert not isinstance(other.D(), native.C)
|
|
120
|
+
|
|
121
|
+
[case testMultiModuleInitializeImportedModules]
|
|
122
|
+
from other import f
|
|
123
|
+
|
|
124
|
+
def g() -> int:
|
|
125
|
+
return f(1)
|
|
126
|
+
[file other.py]
|
|
127
|
+
def f(x: int) -> int:
|
|
128
|
+
return x + 4
|
|
129
|
+
[file driver.py]
|
|
130
|
+
import sys
|
|
131
|
+
assert 'other' not in sys.modules
|
|
132
|
+
from native import g
|
|
133
|
+
assert 'other' in sys.modules
|
|
134
|
+
assert g() == 5
|
|
135
|
+
f = sys.modules['other'].f
|
|
136
|
+
assert f(1) == 5
|
|
137
|
+
try:
|
|
138
|
+
f(1.1)
|
|
139
|
+
except TypeError:
|
|
140
|
+
pass
|
|
141
|
+
else:
|
|
142
|
+
assert False
|
|
143
|
+
|
|
144
|
+
[case testMultiModuleImportClass]
|
|
145
|
+
from typing import cast
|
|
146
|
+
from other import C, a_global
|
|
147
|
+
|
|
148
|
+
class D(C):
|
|
149
|
+
def __init__(self, x: int) -> None:
|
|
150
|
+
self.x = x
|
|
151
|
+
|
|
152
|
+
def f(c: C) -> int:
|
|
153
|
+
d = D(3)
|
|
154
|
+
o: object = c
|
|
155
|
+
c = cast(C, o)
|
|
156
|
+
return a_global + c.x + c.f() + d.x + d.f() + 1
|
|
157
|
+
[file other.py]
|
|
158
|
+
from typing_extensions import Final
|
|
159
|
+
a_global: Final = int('5')
|
|
160
|
+
|
|
161
|
+
class C:
|
|
162
|
+
x: int
|
|
163
|
+
|
|
164
|
+
def __init__(self, x: int) -> None:
|
|
165
|
+
self.x = x
|
|
166
|
+
|
|
167
|
+
def __hash__(self) -> int:
|
|
168
|
+
return self.x
|
|
169
|
+
|
|
170
|
+
def __str__(self) -> str:
|
|
171
|
+
return str(self.x)
|
|
172
|
+
|
|
173
|
+
def f(self) -> int:
|
|
174
|
+
return 2
|
|
175
|
+
|
|
176
|
+
def check(self) -> None:
|
|
177
|
+
assert isinstance(self, C)
|
|
178
|
+
|
|
179
|
+
[file driver.py]
|
|
180
|
+
from native import f, D
|
|
181
|
+
from other import C
|
|
182
|
+
c = C(4)
|
|
183
|
+
assert f(c) == 5 + 4 + 2 + 3 + 2 + 1
|
|
184
|
+
assert str(D(10)) == '10'
|
|
185
|
+
assert hash(10) == 10
|
|
186
|
+
try:
|
|
187
|
+
f(1)
|
|
188
|
+
except TypeError:
|
|
189
|
+
pass
|
|
190
|
+
else:
|
|
191
|
+
assert False
|
|
192
|
+
|
|
193
|
+
assert isinstance(D(10), C)
|
|
194
|
+
|
|
195
|
+
c.check()
|
|
196
|
+
D(10).check()
|
|
197
|
+
|
|
198
|
+
[case testMultiModuleSpecialize]
|
|
199
|
+
from other import A
|
|
200
|
+
|
|
201
|
+
class B(A):
|
|
202
|
+
def foo(self, x: object) -> int:
|
|
203
|
+
print(2)
|
|
204
|
+
return id(x)
|
|
205
|
+
[file other.py]
|
|
206
|
+
class A:
|
|
207
|
+
def foo(self, x: int) -> object:
|
|
208
|
+
print(1)
|
|
209
|
+
return str(x)
|
|
210
|
+
|
|
211
|
+
def use_a(x: A, y: int) -> object:
|
|
212
|
+
return x.foo(y)
|
|
213
|
+
|
|
214
|
+
[file driver.py]
|
|
215
|
+
from native import B
|
|
216
|
+
from other import A, use_a
|
|
217
|
+
a = A()
|
|
218
|
+
b = B()
|
|
219
|
+
o = object()
|
|
220
|
+
i = 10
|
|
221
|
+
assert a.foo(10) == '10'
|
|
222
|
+
assert b.foo(o) == id(o)
|
|
223
|
+
assert use_a(a, 10) == '10'
|
|
224
|
+
assert use_a(b, i) == id(i)
|
|
225
|
+
[out]
|
|
226
|
+
1
|
|
227
|
+
2
|
|
228
|
+
1
|
|
229
|
+
2
|
|
230
|
+
|
|
231
|
+
[case testMultiModuleLiterals]
|
|
232
|
+
from other import gs, gi, gf
|
|
233
|
+
|
|
234
|
+
def fs() -> str:
|
|
235
|
+
return 'f' + gs()
|
|
236
|
+
def fi() -> int:
|
|
237
|
+
return 10001000100010001000 + gi()
|
|
238
|
+
def ff() -> float:
|
|
239
|
+
return 2.0 + gf()
|
|
240
|
+
[file other.py]
|
|
241
|
+
def gi() -> int:
|
|
242
|
+
return 20001000100010001000
|
|
243
|
+
def gs() -> str:
|
|
244
|
+
return 'g'
|
|
245
|
+
def gf() -> float:
|
|
246
|
+
return 3.0
|
|
247
|
+
[file driver.py]
|
|
248
|
+
from native import fs, fi, ff
|
|
249
|
+
assert fs() == 'fg'
|
|
250
|
+
assert fi() == 30002000200020002000
|
|
251
|
+
assert ff() == 5.0
|
|
252
|
+
|
|
253
|
+
[case testMultiModuleTraceback]
|
|
254
|
+
from other import fail2
|
|
255
|
+
|
|
256
|
+
def fail() -> None:
|
|
257
|
+
fail2()
|
|
258
|
+
[file other.py]
|
|
259
|
+
def fail2() -> None:
|
|
260
|
+
x = [1]
|
|
261
|
+
x[2] = 2
|
|
262
|
+
[file driver.py]
|
|
263
|
+
import traceback
|
|
264
|
+
import sys
|
|
265
|
+
import native
|
|
266
|
+
import other
|
|
267
|
+
try:
|
|
268
|
+
other.fail2()
|
|
269
|
+
except IndexError:
|
|
270
|
+
tb = sys.exc_info()[2]
|
|
271
|
+
assert tb.tb_next.tb_frame.f_globals is other.__dict__
|
|
272
|
+
traceback.print_exc()
|
|
273
|
+
try:
|
|
274
|
+
native.fail()
|
|
275
|
+
except IndexError:
|
|
276
|
+
tb = sys.exc_info()[2]
|
|
277
|
+
assert tb.tb_next.tb_frame.f_globals is native.__dict__
|
|
278
|
+
traceback.print_exc()
|
|
279
|
+
[out]
|
|
280
|
+
Traceback (most recent call last):
|
|
281
|
+
File "driver.py", line 6, in <module>
|
|
282
|
+
other.fail2()
|
|
283
|
+
File "other.py", line 3, in fail2
|
|
284
|
+
x[2] = 2
|
|
285
|
+
IndexError: list assignment index out of range
|
|
286
|
+
Traceback (most recent call last):
|
|
287
|
+
File "driver.py", line 12, in <module>
|
|
288
|
+
native.fail()
|
|
289
|
+
File "native.py", line 4, in fail
|
|
290
|
+
fail2()
|
|
291
|
+
File "other.py", line 3, in fail2
|
|
292
|
+
x[2] = 2
|
|
293
|
+
IndexError: list assignment index out of range
|
|
294
|
+
|
|
295
|
+
[case testMultiModuleCycle]
|
|
296
|
+
if False:
|
|
297
|
+
from typing import Final
|
|
298
|
+
import other
|
|
299
|
+
|
|
300
|
+
x = int('0') # type: Final
|
|
301
|
+
|
|
302
|
+
def f1() -> int:
|
|
303
|
+
return other.f2() + other.x
|
|
304
|
+
|
|
305
|
+
def f3() -> int:
|
|
306
|
+
return 5
|
|
307
|
+
[file other.py]
|
|
308
|
+
if False:
|
|
309
|
+
from typing import Final
|
|
310
|
+
import native
|
|
311
|
+
|
|
312
|
+
x = int('0') # type: Final
|
|
313
|
+
|
|
314
|
+
def f2() -> int:
|
|
315
|
+
return native.f3() + native.x
|
|
316
|
+
[file driver.py]
|
|
317
|
+
from native import f1
|
|
318
|
+
assert f1() == 5
|
|
319
|
+
|
|
320
|
+
[case testMultiModuleCycleWithClasses]
|
|
321
|
+
import other
|
|
322
|
+
|
|
323
|
+
class D: pass
|
|
324
|
+
|
|
325
|
+
def f() -> other.C:
|
|
326
|
+
return other.C()
|
|
327
|
+
|
|
328
|
+
def g(c: other.C) -> D:
|
|
329
|
+
return c.d
|
|
330
|
+
|
|
331
|
+
[file other.py]
|
|
332
|
+
import native
|
|
333
|
+
|
|
334
|
+
class C:
|
|
335
|
+
def __init__(self) -> None:
|
|
336
|
+
self.d = native.D()
|
|
337
|
+
|
|
338
|
+
def h(d: native.D) -> None:
|
|
339
|
+
pass
|
|
340
|
+
|
|
341
|
+
[file driver.py]
|
|
342
|
+
from native import f, g
|
|
343
|
+
from other import C, h
|
|
344
|
+
|
|
345
|
+
c = f()
|
|
346
|
+
assert isinstance(c, C)
|
|
347
|
+
assert g(c) is c.d
|
|
348
|
+
h(c.d)
|
|
349
|
+
|
|
350
|
+
try:
|
|
351
|
+
g(1)
|
|
352
|
+
except TypeError:
|
|
353
|
+
pass
|
|
354
|
+
else:
|
|
355
|
+
assert False
|
|
356
|
+
|
|
357
|
+
try:
|
|
358
|
+
h(1)
|
|
359
|
+
except TypeError:
|
|
360
|
+
pass
|
|
361
|
+
else:
|
|
362
|
+
assert False
|
|
363
|
+
|
|
364
|
+
[case testMultiModuleCycleWithInheritance]
|
|
365
|
+
import other
|
|
366
|
+
|
|
367
|
+
class Deriv1(other.Base1):
|
|
368
|
+
def __init__(self) -> None:
|
|
369
|
+
super().__init__()
|
|
370
|
+
|
|
371
|
+
class Base2:
|
|
372
|
+
y: int
|
|
373
|
+
def __init__(self) -> None:
|
|
374
|
+
self.y = 2
|
|
375
|
+
|
|
376
|
+
[file other.py]
|
|
377
|
+
from typing import Tuple
|
|
378
|
+
import native
|
|
379
|
+
|
|
380
|
+
class Base1:
|
|
381
|
+
a: Tuple[int, int]
|
|
382
|
+
x: int
|
|
383
|
+
def __init__(self) -> None:
|
|
384
|
+
self.x = 1
|
|
385
|
+
|
|
386
|
+
def make_2() -> native.Base2:
|
|
387
|
+
return native.Base2()
|
|
388
|
+
|
|
389
|
+
[file driver.py]
|
|
390
|
+
from native import Deriv1
|
|
391
|
+
from other import make_2
|
|
392
|
+
a = Deriv1()
|
|
393
|
+
assert a.x == 1
|
|
394
|
+
b = make_2()
|
|
395
|
+
assert b.y == 2
|
|
396
|
+
|
|
397
|
+
[case testMultiModuleTraitInheritance]
|
|
398
|
+
from other import Base1, Base2
|
|
399
|
+
|
|
400
|
+
class Deriv1(Base1, Base2):
|
|
401
|
+
pass
|
|
402
|
+
|
|
403
|
+
[file other.py]
|
|
404
|
+
from mypy_extensions import trait
|
|
405
|
+
|
|
406
|
+
@trait
|
|
407
|
+
class Base1:
|
|
408
|
+
def foo(self) -> int: return 10
|
|
409
|
+
@trait
|
|
410
|
+
class Base2:
|
|
411
|
+
def bar(self) -> int: return 12
|
|
412
|
+
|
|
413
|
+
[file driver.py]
|
|
414
|
+
from native import Deriv1
|
|
415
|
+
a = Deriv1()
|
|
416
|
+
assert a.foo() == 10 and a.bar() == 12
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
[case testImportCycleWithNonCompiledModule]
|
|
420
|
+
import m
|
|
421
|
+
|
|
422
|
+
class C: pass
|
|
423
|
+
|
|
424
|
+
def f1() -> int:
|
|
425
|
+
m.D()
|
|
426
|
+
return m.f2()
|
|
427
|
+
|
|
428
|
+
def f3() -> int:
|
|
429
|
+
return 2
|
|
430
|
+
|
|
431
|
+
[file m.py]
|
|
432
|
+
# This module is NOT compiled
|
|
433
|
+
import native
|
|
434
|
+
|
|
435
|
+
class D: pass
|
|
436
|
+
|
|
437
|
+
def f2() -> int:
|
|
438
|
+
native.C()
|
|
439
|
+
return native.f3()
|
|
440
|
+
|
|
441
|
+
[file driver.py]
|
|
442
|
+
from native import f1
|
|
443
|
+
|
|
444
|
+
assert f1() == 2
|
|
445
|
+
|
|
446
|
+
[case testImportCycleWithTopLevelStatements]
|
|
447
|
+
import other
|
|
448
|
+
x = 1
|
|
449
|
+
print(x)
|
|
450
|
+
|
|
451
|
+
[file other.py]
|
|
452
|
+
import native
|
|
453
|
+
x = 2
|
|
454
|
+
print(x)
|
|
455
|
+
|
|
456
|
+
[file driver.py]
|
|
457
|
+
import other
|
|
458
|
+
print('-')
|
|
459
|
+
import native
|
|
460
|
+
print('>', native.x)
|
|
461
|
+
print('>', other.x)
|
|
462
|
+
|
|
463
|
+
[out]
|
|
464
|
+
1
|
|
465
|
+
2
|
|
466
|
+
-
|
|
467
|
+
> 1
|
|
468
|
+
> 2
|
|
469
|
+
|
|
470
|
+
[case testMultiModuleCycleIfMypy1]
|
|
471
|
+
from other import foo, bar
|
|
472
|
+
|
|
473
|
+
class Foo:
|
|
474
|
+
def foo(self) -> None:
|
|
475
|
+
foo(self)
|
|
476
|
+
class Bar:
|
|
477
|
+
def bar(self) -> None:
|
|
478
|
+
bar(self)
|
|
479
|
+
|
|
480
|
+
[file other.py]
|
|
481
|
+
from typing_extensions import TYPE_CHECKING
|
|
482
|
+
MYPY = False
|
|
483
|
+
if MYPY:
|
|
484
|
+
from native import Foo
|
|
485
|
+
if TYPE_CHECKING:
|
|
486
|
+
from native import Bar
|
|
487
|
+
|
|
488
|
+
def foo(x: 'Foo') -> None:
|
|
489
|
+
pass
|
|
490
|
+
def bar(x: 'Bar') -> None:
|
|
491
|
+
pass
|
|
492
|
+
|
|
493
|
+
[file driver.py]
|
|
494
|
+
from native import Foo, Bar
|
|
495
|
+
Foo().foo()
|
|
496
|
+
Bar().bar()
|
|
497
|
+
|
|
498
|
+
[case testMultiModuleCycleIfMypy2]
|
|
499
|
+
MYPY = False
|
|
500
|
+
if MYPY:
|
|
501
|
+
from other import C
|
|
502
|
+
|
|
503
|
+
class D:
|
|
504
|
+
def __init__(self) -> None:
|
|
505
|
+
self.y = 1
|
|
506
|
+
|
|
507
|
+
def f(c: 'C') -> int:
|
|
508
|
+
return c.x
|
|
509
|
+
|
|
510
|
+
[file other.py]
|
|
511
|
+
from typing_extensions import TYPE_CHECKING
|
|
512
|
+
if TYPE_CHECKING:
|
|
513
|
+
from native import D
|
|
514
|
+
|
|
515
|
+
class C:
|
|
516
|
+
def __init__(self) -> None:
|
|
517
|
+
self.x = 2
|
|
518
|
+
|
|
519
|
+
def g(d: 'D') -> int:
|
|
520
|
+
return d.y
|
|
521
|
+
|
|
522
|
+
[file driver.py]
|
|
523
|
+
from native import f, D
|
|
524
|
+
from other import g, C
|
|
525
|
+
|
|
526
|
+
assert f(C()) == 2
|
|
527
|
+
assert g(D()) == 1
|
|
528
|
+
|
|
529
|
+
try:
|
|
530
|
+
f(D())
|
|
531
|
+
except TypeError:
|
|
532
|
+
pass
|
|
533
|
+
else:
|
|
534
|
+
assert False
|
|
535
|
+
|
|
536
|
+
try:
|
|
537
|
+
g(C())
|
|
538
|
+
except TypeError:
|
|
539
|
+
pass
|
|
540
|
+
else:
|
|
541
|
+
assert False
|
|
542
|
+
|
|
543
|
+
[case testMultiModuleRelative]
|
|
544
|
+
from package.a import f
|
|
545
|
+
[file package/__init__.py]
|
|
546
|
+
[file package/a.py]
|
|
547
|
+
from . import b
|
|
548
|
+
from .c import c3
|
|
549
|
+
def f() -> None:
|
|
550
|
+
print("Hello " + b.b2())
|
|
551
|
+
print("Hello " + c3())
|
|
552
|
+
[file package/b.py]
|
|
553
|
+
def b2() -> str:
|
|
554
|
+
return "moon!"
|
|
555
|
+
[file package/c.py]
|
|
556
|
+
def c3() -> str:
|
|
557
|
+
return "sun!"
|
|
558
|
+
|
|
559
|
+
[file driver.py]
|
|
560
|
+
from native import f
|
|
561
|
+
f()
|
|
562
|
+
[out]
|
|
563
|
+
Hello moon!
|
|
564
|
+
Hello sun!
|
|
565
|
+
|
|
566
|
+
[case testMultiModuleCrash]
|
|
567
|
+
b = False
|
|
568
|
+
if b:
|
|
569
|
+
import other
|
|
570
|
+
|
|
571
|
+
def foo() -> None:
|
|
572
|
+
try:
|
|
573
|
+
other.x
|
|
574
|
+
except:
|
|
575
|
+
pass
|
|
576
|
+
else:
|
|
577
|
+
assert False
|
|
578
|
+
|
|
579
|
+
[file other.py]
|
|
580
|
+
x = 10
|
|
581
|
+
|
|
582
|
+
[file driver.py]
|
|
583
|
+
from native import foo
|
|
584
|
+
foo()
|
|
585
|
+
|
|
586
|
+
[case testTrivialIncremental]
|
|
587
|
+
# separate: [(["other.py", "other_b.py"], "stuff")]
|
|
588
|
+
from other import x
|
|
589
|
+
from other_b import z
|
|
590
|
+
y = x + z
|
|
591
|
+
[file other.py]
|
|
592
|
+
x = 1
|
|
593
|
+
[file other.py.2]
|
|
594
|
+
x = 2
|
|
595
|
+
[file other_b.py]
|
|
596
|
+
z = 1
|
|
597
|
+
|
|
598
|
+
[file driver.py]
|
|
599
|
+
from native import y
|
|
600
|
+
print(y)
|
|
601
|
+
[out]
|
|
602
|
+
2
|
|
603
|
+
[out2]
|
|
604
|
+
3
|
|
605
|
+
[rechecked other, other_b]
|
|
606
|
+
|
|
607
|
+
[case testIncrementalCompilation1]
|
|
608
|
+
import non_native
|
|
609
|
+
from other_a import A
|
|
610
|
+
from other_b import z
|
|
611
|
+
|
|
612
|
+
a = A()
|
|
613
|
+
assert a.y == z
|
|
614
|
+
|
|
615
|
+
assert non_native.foo() == 0
|
|
616
|
+
|
|
617
|
+
[file other_a.py]
|
|
618
|
+
from other_b import z
|
|
619
|
+
from typing import Iterable
|
|
620
|
+
|
|
621
|
+
class A:
|
|
622
|
+
def __init__(self) -> None:
|
|
623
|
+
self.y = z
|
|
624
|
+
[file other_a.py.2]
|
|
625
|
+
from other_b import z
|
|
626
|
+
from typing import Iterable
|
|
627
|
+
|
|
628
|
+
class A:
|
|
629
|
+
def __init__(self) -> None:
|
|
630
|
+
self.x = 'test'
|
|
631
|
+
self.y = z
|
|
632
|
+
[file other_b.py]
|
|
633
|
+
import other_a
|
|
634
|
+
|
|
635
|
+
z = 10
|
|
636
|
+
|
|
637
|
+
def foo() -> 'other_a.A':
|
|
638
|
+
return other_a.A()
|
|
639
|
+
[file other_b.py.3]
|
|
640
|
+
import other_a
|
|
641
|
+
|
|
642
|
+
z = 20
|
|
643
|
+
|
|
644
|
+
def foo() -> 'other_a.A':
|
|
645
|
+
return other_a.A()
|
|
646
|
+
|
|
647
|
+
[file non_native.py]
|
|
648
|
+
import other_a
|
|
649
|
+
|
|
650
|
+
def foo() -> int:
|
|
651
|
+
return 0
|
|
652
|
+
|
|
653
|
+
[file non_native.py.4]
|
|
654
|
+
import other_a
|
|
655
|
+
|
|
656
|
+
def foo() -> float:
|
|
657
|
+
return 0
|
|
658
|
+
|
|
659
|
+
[file driver.py]
|
|
660
|
+
from native import a
|
|
661
|
+
print(a.y, getattr(a, 'x', None))
|
|
662
|
+
|
|
663
|
+
[out]
|
|
664
|
+
10 None
|
|
665
|
+
[out2]
|
|
666
|
+
10 test
|
|
667
|
+
[out3]
|
|
668
|
+
20 test
|
|
669
|
+
[out4]
|
|
670
|
+
20 test
|
|
671
|
+
|
|
672
|
+
[rechecked other_a, other_b, native, non_native]
|
|
673
|
+
[rechecked2 other_a, other_b]
|
|
674
|
+
[rechecked3 native, non_native]
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
-- This one tests a group that is not an SCC.
|
|
678
|
+
[case testIncrementalCompilation2]
|
|
679
|
+
# separate: [(["other_a.py", "other_b.py"], "stuff")]
|
|
680
|
+
from other_a import A
|
|
681
|
+
from other_b import z
|
|
682
|
+
|
|
683
|
+
a = A()
|
|
684
|
+
assert a.y == z
|
|
685
|
+
|
|
686
|
+
[file other_a.py]
|
|
687
|
+
from other_b import z
|
|
688
|
+
|
|
689
|
+
class A:
|
|
690
|
+
def __init__(self) -> None:
|
|
691
|
+
self.y = z
|
|
692
|
+
[file other_a.py.2]
|
|
693
|
+
from other_b import z
|
|
694
|
+
|
|
695
|
+
class A:
|
|
696
|
+
def __init__(self) -> None:
|
|
697
|
+
self.x = 'test'
|
|
698
|
+
self.y = z
|
|
699
|
+
|
|
700
|
+
[file other_b.py]
|
|
701
|
+
z = 10
|
|
702
|
+
|
|
703
|
+
[file driver.py]
|
|
704
|
+
from native import a
|
|
705
|
+
print(a.y, getattr(a, 'x', None))
|
|
706
|
+
|
|
707
|
+
[out]
|
|
708
|
+
10 None
|
|
709
|
+
[out2]
|
|
710
|
+
10 test
|
|
711
|
+
|
|
712
|
+
[rechecked other_a, other_b, native]
|
|
713
|
+
|
|
714
|
+
[case testIncrementalCompilation3]
|
|
715
|
+
from other import X
|
|
716
|
+
Y = X
|
|
717
|
+
def foo() -> int:
|
|
718
|
+
return X
|
|
719
|
+
|
|
720
|
+
[file other.py]
|
|
721
|
+
from typing_extensions import Final
|
|
722
|
+
X: Final = 10
|
|
723
|
+
|
|
724
|
+
[file other.py.2]
|
|
725
|
+
from typing_extensions import Final
|
|
726
|
+
X: Final = 20
|
|
727
|
+
|
|
728
|
+
[file driver.py]
|
|
729
|
+
import native
|
|
730
|
+
import other
|
|
731
|
+
assert native.Y == other.X
|
|
732
|
+
assert native.foo() == other.X
|
|
733
|
+
|
|
734
|
+
[rechecked native, other]
|
|
735
|
+
|
|
736
|
+
-- This one tests a group changing
|
|
737
|
+
[case testIncrementalCompilation4]
|
|
738
|
+
# separate: [(["other_a.py", "other_b.py"], "stuff")]
|
|
739
|
+
# separate2: []
|
|
740
|
+
from other_a import A
|
|
741
|
+
from other_b import z
|
|
742
|
+
|
|
743
|
+
a = A()
|
|
744
|
+
assert a.y == z
|
|
745
|
+
|
|
746
|
+
[file other_a.py]
|
|
747
|
+
from other_b import z
|
|
748
|
+
|
|
749
|
+
class A:
|
|
750
|
+
def __init__(self) -> None:
|
|
751
|
+
self.y = z
|
|
752
|
+
|
|
753
|
+
[file other_b.py]
|
|
754
|
+
z = 10
|
|
755
|
+
|
|
756
|
+
[file wtvr.py.2]
|
|
757
|
+
|
|
758
|
+
[file driver.py]
|
|
759
|
+
from native import a
|
|
760
|
+
print(a.y, getattr(a, 'x', None))
|
|
761
|
+
|
|
762
|
+
[out]
|
|
763
|
+
10 None
|
|
764
|
+
[out2]
|
|
765
|
+
10 None
|
|
766
|
+
|
|
767
|
+
[rechecked other_a, other_b, native]
|
|
768
|
+
|
|
769
|
+
-- This one tests cases where other modules *do not* need rechecked
|
|
770
|
+
[case testIncrementalCompilation5]
|
|
771
|
+
import other_a
|
|
772
|
+
[file other_a.py]
|
|
773
|
+
from other_b import f
|
|
774
|
+
assert f(10) == 20
|
|
775
|
+
[file other_a.py.2]
|
|
776
|
+
from other_b import f
|
|
777
|
+
assert f(20) == 40
|
|
778
|
+
|
|
779
|
+
[file other_b.py]
|
|
780
|
+
def f(x: int) -> int:
|
|
781
|
+
return x * 2
|
|
782
|
+
|
|
783
|
+
[file driver.py]
|
|
784
|
+
import native
|
|
785
|
+
|
|
786
|
+
[rechecked other_a]
|
|
787
|
+
|
|
788
|
+
-- Delete one of the C files and make sure this forces recompilation
|
|
789
|
+
[case testIncrementalCompilation6]
|
|
790
|
+
import other_a
|
|
791
|
+
assert other_a.foo() == 10
|
|
792
|
+
[file other_a.py]
|
|
793
|
+
def foo() -> int: return 10
|
|
794
|
+
|
|
795
|
+
[file build/__native_other_a.c]
|
|
796
|
+
|
|
797
|
+
[delete build/__native_other_a.c.2]
|
|
798
|
+
|
|
799
|
+
[file driver.py]
|
|
800
|
+
import native
|
|
801
|
+
|
|
802
|
+
[rechecked native, other_a]
|
|
803
|
+
|
|
804
|
+
[case testSeparateCompilationWithUndefinedAttribute]
|
|
805
|
+
from other_a import A
|
|
806
|
+
|
|
807
|
+
def f() -> None:
|
|
808
|
+
a = A()
|
|
809
|
+
if a.x == 5:
|
|
810
|
+
print(a.y)
|
|
811
|
+
print(a.m())
|
|
812
|
+
else:
|
|
813
|
+
assert a.x == 6
|
|
814
|
+
try:
|
|
815
|
+
print(a.y)
|
|
816
|
+
except AttributeError:
|
|
817
|
+
print('y undefined')
|
|
818
|
+
else:
|
|
819
|
+
assert False
|
|
820
|
+
|
|
821
|
+
try:
|
|
822
|
+
print(a.m())
|
|
823
|
+
except AttributeError:
|
|
824
|
+
print('y undefined')
|
|
825
|
+
else:
|
|
826
|
+
assert False
|
|
827
|
+
|
|
828
|
+
[file other_a.py]
|
|
829
|
+
from other_b import B
|
|
830
|
+
|
|
831
|
+
class A(B):
|
|
832
|
+
def __init__(self) -> None:
|
|
833
|
+
self.y = 9
|
|
834
|
+
|
|
835
|
+
[file other_a.py.2]
|
|
836
|
+
from other_b import B
|
|
837
|
+
|
|
838
|
+
class A(B):
|
|
839
|
+
x = 6
|
|
840
|
+
|
|
841
|
+
def __init__(self) -> None:
|
|
842
|
+
pass
|
|
843
|
+
|
|
844
|
+
[file other_b.py]
|
|
845
|
+
class B:
|
|
846
|
+
x = 5
|
|
847
|
+
|
|
848
|
+
def __init__(self) -> None:
|
|
849
|
+
self.y = 7
|
|
850
|
+
|
|
851
|
+
def m(self) -> int:
|
|
852
|
+
return self.y
|
|
853
|
+
|
|
854
|
+
[file driver.py]
|
|
855
|
+
from native import f
|
|
856
|
+
f()
|
|
857
|
+
|
|
858
|
+
[rechecked native, other_a]
|
|
859
|
+
|
|
860
|
+
[out]
|
|
861
|
+
9
|
|
862
|
+
9
|
|
863
|
+
[out2]
|
|
864
|
+
y undefined
|
|
865
|
+
y undefined
|
|
866
|
+
|
|
867
|
+
[case testIncrementalCompilationWithDeletable]
|
|
868
|
+
import other_a
|
|
869
|
+
[file other_a.py]
|
|
870
|
+
from other_b import C
|
|
871
|
+
[file other_a.py.2]
|
|
872
|
+
from other_b import C
|
|
873
|
+
c = C()
|
|
874
|
+
print(getattr(c, 'x', None))
|
|
875
|
+
del c.x
|
|
876
|
+
print(getattr(c, 'x', None))
|
|
877
|
+
[file other_b.py]
|
|
878
|
+
class C:
|
|
879
|
+
__deletable__ = ['x']
|
|
880
|
+
def __init__(self) -> None:
|
|
881
|
+
self.x = 0
|
|
882
|
+
[file driver.py]
|
|
883
|
+
import native
|
|
884
|
+
[out]
|
|
885
|
+
[out2]
|
|
886
|
+
0
|
|
887
|
+
None
|