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
mypy/dmypy_util.py
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""Shared code between dmypy.py and dmypy_server.py.
|
|
2
|
+
|
|
3
|
+
This should be pretty lightweight and not depend on other mypy code (other than ipc).
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import io
|
|
9
|
+
import json
|
|
10
|
+
from types import TracebackType
|
|
11
|
+
from typing import Any, Final, Iterable, Iterator, TextIO
|
|
12
|
+
|
|
13
|
+
from mypy.ipc import IPCBase
|
|
14
|
+
|
|
15
|
+
DEFAULT_STATUS_FILE: Final = ".dmypy.json"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def receive(connection: IPCBase) -> Any:
|
|
19
|
+
"""Receive single JSON data frame from a connection.
|
|
20
|
+
|
|
21
|
+
Raise OSError if the data received is not valid JSON or if it is
|
|
22
|
+
not a dict.
|
|
23
|
+
"""
|
|
24
|
+
bdata = connection.read()
|
|
25
|
+
if not bdata:
|
|
26
|
+
raise OSError("No data received")
|
|
27
|
+
try:
|
|
28
|
+
data = json.loads(bdata)
|
|
29
|
+
except Exception as e:
|
|
30
|
+
raise OSError("Data received is not valid JSON") from e
|
|
31
|
+
if not isinstance(data, dict):
|
|
32
|
+
raise OSError(f"Data received is not a dict ({type(data)})")
|
|
33
|
+
return data
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def send(connection: IPCBase, data: Any) -> None:
|
|
37
|
+
"""Send data to a connection encoded and framed.
|
|
38
|
+
|
|
39
|
+
The data must be JSON-serializable. We assume that a single send call is a
|
|
40
|
+
single frame to be sent on the connect.
|
|
41
|
+
"""
|
|
42
|
+
connection.write(json.dumps(data))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class WriteToConn(TextIO):
|
|
46
|
+
"""Helper class to write to a connection instead of standard output."""
|
|
47
|
+
|
|
48
|
+
def __init__(self, server: IPCBase, output_key: str, isatty: bool) -> None:
|
|
49
|
+
self.server = server
|
|
50
|
+
self.output_key = output_key
|
|
51
|
+
self._isatty = isatty
|
|
52
|
+
|
|
53
|
+
def __enter__(self) -> TextIO:
|
|
54
|
+
return self
|
|
55
|
+
|
|
56
|
+
def __exit__(
|
|
57
|
+
self,
|
|
58
|
+
t: type[BaseException] | None,
|
|
59
|
+
value: BaseException | None,
|
|
60
|
+
traceback: TracebackType | None,
|
|
61
|
+
) -> None:
|
|
62
|
+
pass
|
|
63
|
+
|
|
64
|
+
def __iter__(self) -> Iterator[str]:
|
|
65
|
+
raise io.UnsupportedOperation
|
|
66
|
+
|
|
67
|
+
def __next__(self) -> str:
|
|
68
|
+
raise io.UnsupportedOperation
|
|
69
|
+
|
|
70
|
+
def close(self) -> None:
|
|
71
|
+
pass
|
|
72
|
+
|
|
73
|
+
def fileno(self) -> int:
|
|
74
|
+
raise OSError
|
|
75
|
+
|
|
76
|
+
def flush(self) -> None:
|
|
77
|
+
pass
|
|
78
|
+
|
|
79
|
+
def isatty(self) -> bool:
|
|
80
|
+
return self._isatty
|
|
81
|
+
|
|
82
|
+
def read(self, n: int = 0) -> str:
|
|
83
|
+
raise io.UnsupportedOperation
|
|
84
|
+
|
|
85
|
+
def readable(self) -> bool:
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
def readline(self, limit: int = 0) -> str:
|
|
89
|
+
raise io.UnsupportedOperation
|
|
90
|
+
|
|
91
|
+
def readlines(self, hint: int = 0) -> list[str]:
|
|
92
|
+
raise io.UnsupportedOperation
|
|
93
|
+
|
|
94
|
+
def seek(self, offset: int, whence: int = 0) -> int:
|
|
95
|
+
raise io.UnsupportedOperation
|
|
96
|
+
|
|
97
|
+
def seekable(self) -> bool:
|
|
98
|
+
return False
|
|
99
|
+
|
|
100
|
+
def tell(self) -> int:
|
|
101
|
+
raise io.UnsupportedOperation
|
|
102
|
+
|
|
103
|
+
def truncate(self, size: int | None = 0) -> int:
|
|
104
|
+
raise io.UnsupportedOperation
|
|
105
|
+
|
|
106
|
+
def write(self, output: str) -> int:
|
|
107
|
+
resp: dict[str, Any] = {}
|
|
108
|
+
resp[self.output_key] = output
|
|
109
|
+
send(self.server, resp)
|
|
110
|
+
return len(output)
|
|
111
|
+
|
|
112
|
+
def writable(self) -> bool:
|
|
113
|
+
return True
|
|
114
|
+
|
|
115
|
+
def writelines(self, lines: Iterable[str]) -> None:
|
|
116
|
+
for s in lines:
|
|
117
|
+
self.write(s)
|
mypy/erasetype.py
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Callable, Container, cast
|
|
4
|
+
|
|
5
|
+
from mypy.nodes import ARG_STAR, ARG_STAR2
|
|
6
|
+
from mypy.types import (
|
|
7
|
+
AnyType,
|
|
8
|
+
CallableType,
|
|
9
|
+
DeletedType,
|
|
10
|
+
ErasedType,
|
|
11
|
+
Instance,
|
|
12
|
+
LiteralType,
|
|
13
|
+
NoneType,
|
|
14
|
+
Overloaded,
|
|
15
|
+
Parameters,
|
|
16
|
+
ParamSpecType,
|
|
17
|
+
PartialType,
|
|
18
|
+
ProperType,
|
|
19
|
+
TupleType,
|
|
20
|
+
Type,
|
|
21
|
+
TypeAliasType,
|
|
22
|
+
TypedDictType,
|
|
23
|
+
TypeOfAny,
|
|
24
|
+
TypeTranslator,
|
|
25
|
+
TypeType,
|
|
26
|
+
TypeVarId,
|
|
27
|
+
TypeVarTupleType,
|
|
28
|
+
TypeVarType,
|
|
29
|
+
TypeVisitor,
|
|
30
|
+
UnboundType,
|
|
31
|
+
UninhabitedType,
|
|
32
|
+
UnionType,
|
|
33
|
+
UnpackType,
|
|
34
|
+
get_proper_type,
|
|
35
|
+
get_proper_types,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def erase_type(typ: Type) -> ProperType:
|
|
40
|
+
"""Erase any type variables from a type.
|
|
41
|
+
|
|
42
|
+
Also replace tuple types with the corresponding concrete types.
|
|
43
|
+
|
|
44
|
+
Examples:
|
|
45
|
+
A -> A
|
|
46
|
+
B[X] -> B[Any]
|
|
47
|
+
Tuple[A, B] -> tuple
|
|
48
|
+
Callable[[A1, A2, ...], R] -> Callable[..., Any]
|
|
49
|
+
Type[X] -> Type[Any]
|
|
50
|
+
"""
|
|
51
|
+
typ = get_proper_type(typ)
|
|
52
|
+
return typ.accept(EraseTypeVisitor())
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class EraseTypeVisitor(TypeVisitor[ProperType]):
|
|
56
|
+
def visit_unbound_type(self, t: UnboundType) -> ProperType:
|
|
57
|
+
# TODO: replace with an assert after UnboundType can't leak from semantic analysis.
|
|
58
|
+
return AnyType(TypeOfAny.from_error)
|
|
59
|
+
|
|
60
|
+
def visit_any(self, t: AnyType) -> ProperType:
|
|
61
|
+
return t
|
|
62
|
+
|
|
63
|
+
def visit_none_type(self, t: NoneType) -> ProperType:
|
|
64
|
+
return t
|
|
65
|
+
|
|
66
|
+
def visit_uninhabited_type(self, t: UninhabitedType) -> ProperType:
|
|
67
|
+
return t
|
|
68
|
+
|
|
69
|
+
def visit_erased_type(self, t: ErasedType) -> ProperType:
|
|
70
|
+
return t
|
|
71
|
+
|
|
72
|
+
def visit_partial_type(self, t: PartialType) -> ProperType:
|
|
73
|
+
# Should not get here.
|
|
74
|
+
raise RuntimeError("Cannot erase partial types")
|
|
75
|
+
|
|
76
|
+
def visit_deleted_type(self, t: DeletedType) -> ProperType:
|
|
77
|
+
return t
|
|
78
|
+
|
|
79
|
+
def visit_instance(self, t: Instance) -> ProperType:
|
|
80
|
+
args: list[Type] = []
|
|
81
|
+
for tv in t.type.defn.type_vars:
|
|
82
|
+
# Valid erasure for *Ts is *tuple[Any, ...], not just Any.
|
|
83
|
+
if isinstance(tv, TypeVarTupleType):
|
|
84
|
+
args.append(
|
|
85
|
+
UnpackType(
|
|
86
|
+
tv.tuple_fallback.copy_modified(args=[AnyType(TypeOfAny.special_form)])
|
|
87
|
+
)
|
|
88
|
+
)
|
|
89
|
+
else:
|
|
90
|
+
args.append(AnyType(TypeOfAny.special_form))
|
|
91
|
+
return Instance(t.type, args, t.line)
|
|
92
|
+
|
|
93
|
+
def visit_type_var(self, t: TypeVarType) -> ProperType:
|
|
94
|
+
return AnyType(TypeOfAny.special_form)
|
|
95
|
+
|
|
96
|
+
def visit_param_spec(self, t: ParamSpecType) -> ProperType:
|
|
97
|
+
return AnyType(TypeOfAny.special_form)
|
|
98
|
+
|
|
99
|
+
def visit_parameters(self, t: Parameters) -> ProperType:
|
|
100
|
+
raise RuntimeError("Parameters should have been bound to a class")
|
|
101
|
+
|
|
102
|
+
def visit_type_var_tuple(self, t: TypeVarTupleType) -> ProperType:
|
|
103
|
+
# Likely, we can never get here because of aggressive erasure of types that
|
|
104
|
+
# can contain this, but better still return a valid replacement.
|
|
105
|
+
return t.tuple_fallback.copy_modified(args=[AnyType(TypeOfAny.special_form)])
|
|
106
|
+
|
|
107
|
+
def visit_unpack_type(self, t: UnpackType) -> ProperType:
|
|
108
|
+
return AnyType(TypeOfAny.special_form)
|
|
109
|
+
|
|
110
|
+
def visit_callable_type(self, t: CallableType) -> ProperType:
|
|
111
|
+
# We must preserve the fallback type for overload resolution to work.
|
|
112
|
+
any_type = AnyType(TypeOfAny.special_form)
|
|
113
|
+
return CallableType(
|
|
114
|
+
arg_types=[any_type, any_type],
|
|
115
|
+
arg_kinds=[ARG_STAR, ARG_STAR2],
|
|
116
|
+
arg_names=[None, None],
|
|
117
|
+
ret_type=any_type,
|
|
118
|
+
fallback=t.fallback,
|
|
119
|
+
is_ellipsis_args=True,
|
|
120
|
+
implicit=True,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
def visit_overloaded(self, t: Overloaded) -> ProperType:
|
|
124
|
+
return t.fallback.accept(self)
|
|
125
|
+
|
|
126
|
+
def visit_tuple_type(self, t: TupleType) -> ProperType:
|
|
127
|
+
return t.partial_fallback.accept(self)
|
|
128
|
+
|
|
129
|
+
def visit_typeddict_type(self, t: TypedDictType) -> ProperType:
|
|
130
|
+
return t.fallback.accept(self)
|
|
131
|
+
|
|
132
|
+
def visit_literal_type(self, t: LiteralType) -> ProperType:
|
|
133
|
+
# The fallback for literal types should always be either
|
|
134
|
+
# something like int or str, or an enum class -- types that
|
|
135
|
+
# don't contain any TypeVars. So there's no need to visit it.
|
|
136
|
+
return t
|
|
137
|
+
|
|
138
|
+
def visit_union_type(self, t: UnionType) -> ProperType:
|
|
139
|
+
erased_items = [erase_type(item) for item in t.items]
|
|
140
|
+
from mypy.typeops import make_simplified_union
|
|
141
|
+
|
|
142
|
+
return make_simplified_union(erased_items)
|
|
143
|
+
|
|
144
|
+
def visit_type_type(self, t: TypeType) -> ProperType:
|
|
145
|
+
return TypeType.make_normalized(t.item.accept(self), line=t.line)
|
|
146
|
+
|
|
147
|
+
def visit_type_alias_type(self, t: TypeAliasType) -> ProperType:
|
|
148
|
+
raise RuntimeError("Type aliases should be expanded before accepting this visitor")
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def erase_typevars(t: Type, ids_to_erase: Container[TypeVarId] | None = None) -> Type:
|
|
152
|
+
"""Replace all type variables in a type with any,
|
|
153
|
+
or just the ones in the provided collection.
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
def erase_id(id: TypeVarId) -> bool:
|
|
157
|
+
if ids_to_erase is None:
|
|
158
|
+
return True
|
|
159
|
+
return id in ids_to_erase
|
|
160
|
+
|
|
161
|
+
return t.accept(TypeVarEraser(erase_id, AnyType(TypeOfAny.special_form)))
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def replace_meta_vars(t: Type, target_type: Type) -> Type:
|
|
165
|
+
"""Replace unification variables in a type with the target type."""
|
|
166
|
+
return t.accept(TypeVarEraser(lambda id: id.is_meta_var(), target_type))
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class TypeVarEraser(TypeTranslator):
|
|
170
|
+
"""Implementation of type erasure"""
|
|
171
|
+
|
|
172
|
+
def __init__(self, erase_id: Callable[[TypeVarId], bool], replacement: Type) -> None:
|
|
173
|
+
self.erase_id = erase_id
|
|
174
|
+
self.replacement = replacement
|
|
175
|
+
|
|
176
|
+
def visit_type_var(self, t: TypeVarType) -> Type:
|
|
177
|
+
if self.erase_id(t.id):
|
|
178
|
+
return self.replacement
|
|
179
|
+
return t
|
|
180
|
+
|
|
181
|
+
# TODO: below two methods duplicate some logic with expand_type().
|
|
182
|
+
# In fact, we may want to refactor this whole visitor to use expand_type().
|
|
183
|
+
def visit_instance(self, t: Instance) -> Type:
|
|
184
|
+
result = super().visit_instance(t)
|
|
185
|
+
assert isinstance(result, ProperType) and isinstance(result, Instance)
|
|
186
|
+
if t.type.fullname == "builtins.tuple":
|
|
187
|
+
# Normalize Tuple[*Tuple[X, ...], ...] -> Tuple[X, ...]
|
|
188
|
+
arg = result.args[0]
|
|
189
|
+
if isinstance(arg, UnpackType):
|
|
190
|
+
unpacked = get_proper_type(arg.type)
|
|
191
|
+
if isinstance(unpacked, Instance):
|
|
192
|
+
assert unpacked.type.fullname == "builtins.tuple"
|
|
193
|
+
return unpacked
|
|
194
|
+
return result
|
|
195
|
+
|
|
196
|
+
def visit_tuple_type(self, t: TupleType) -> Type:
|
|
197
|
+
result = super().visit_tuple_type(t)
|
|
198
|
+
assert isinstance(result, ProperType) and isinstance(result, TupleType)
|
|
199
|
+
if len(result.items) == 1:
|
|
200
|
+
# Normalize Tuple[*Tuple[X, ...]] -> Tuple[X, ...]
|
|
201
|
+
item = result.items[0]
|
|
202
|
+
if isinstance(item, UnpackType):
|
|
203
|
+
unpacked = get_proper_type(item.type)
|
|
204
|
+
if isinstance(unpacked, Instance):
|
|
205
|
+
assert unpacked.type.fullname == "builtins.tuple"
|
|
206
|
+
if result.partial_fallback.type.fullname != "builtins.tuple":
|
|
207
|
+
# If it is a subtype (like named tuple) we need to preserve it,
|
|
208
|
+
# this essentially mimics the logic in tuple_fallback().
|
|
209
|
+
return result.partial_fallback.accept(self)
|
|
210
|
+
return unpacked
|
|
211
|
+
return result
|
|
212
|
+
|
|
213
|
+
def visit_type_var_tuple(self, t: TypeVarTupleType) -> Type:
|
|
214
|
+
if self.erase_id(t.id):
|
|
215
|
+
return t.tuple_fallback.copy_modified(args=[self.replacement])
|
|
216
|
+
return t
|
|
217
|
+
|
|
218
|
+
def visit_param_spec(self, t: ParamSpecType) -> Type:
|
|
219
|
+
if self.erase_id(t.id):
|
|
220
|
+
return self.replacement
|
|
221
|
+
return t
|
|
222
|
+
|
|
223
|
+
def visit_type_alias_type(self, t: TypeAliasType) -> Type:
|
|
224
|
+
# Type alias target can't contain bound type variables (not bound by the type
|
|
225
|
+
# alias itself), so it is safe to just erase the arguments.
|
|
226
|
+
return t.copy_modified(args=[a.accept(self) for a in t.args])
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
def remove_instance_last_known_values(t: Type) -> Type:
|
|
230
|
+
return t.accept(LastKnownValueEraser())
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
class LastKnownValueEraser(TypeTranslator):
|
|
234
|
+
"""Removes the Literal[...] type that may be associated with any
|
|
235
|
+
Instance types."""
|
|
236
|
+
|
|
237
|
+
def visit_instance(self, t: Instance) -> Type:
|
|
238
|
+
if not t.last_known_value and not t.args:
|
|
239
|
+
return t
|
|
240
|
+
return t.copy_modified(args=[a.accept(self) for a in t.args], last_known_value=None)
|
|
241
|
+
|
|
242
|
+
def visit_type_alias_type(self, t: TypeAliasType) -> Type:
|
|
243
|
+
# Type aliases can't contain literal values, because they are
|
|
244
|
+
# always constructed as explicit types.
|
|
245
|
+
return t
|
|
246
|
+
|
|
247
|
+
def visit_union_type(self, t: UnionType) -> Type:
|
|
248
|
+
new = cast(UnionType, super().visit_union_type(t))
|
|
249
|
+
# Erasure can result in many duplicate items; merge them.
|
|
250
|
+
# Call make_simplified_union only on lists of instance types
|
|
251
|
+
# that all have the same fullname, to avoid simplifying too
|
|
252
|
+
# much.
|
|
253
|
+
instances = [item for item in new.items if isinstance(get_proper_type(item), Instance)]
|
|
254
|
+
# Avoid merge in simple cases such as optional types.
|
|
255
|
+
if len(instances) > 1:
|
|
256
|
+
instances_by_name: dict[str, list[Instance]] = {}
|
|
257
|
+
p_new_items = get_proper_types(new.items)
|
|
258
|
+
for p_item in p_new_items:
|
|
259
|
+
if isinstance(p_item, Instance) and not p_item.args:
|
|
260
|
+
instances_by_name.setdefault(p_item.type.fullname, []).append(p_item)
|
|
261
|
+
merged: list[Type] = []
|
|
262
|
+
for item in new.items:
|
|
263
|
+
orig_item = item
|
|
264
|
+
item = get_proper_type(item)
|
|
265
|
+
if isinstance(item, Instance) and not item.args:
|
|
266
|
+
types = instances_by_name.get(item.type.fullname)
|
|
267
|
+
if types is not None:
|
|
268
|
+
if len(types) == 1:
|
|
269
|
+
merged.append(item)
|
|
270
|
+
else:
|
|
271
|
+
from mypy.typeops import make_simplified_union
|
|
272
|
+
|
|
273
|
+
merged.append(make_simplified_union(types))
|
|
274
|
+
del instances_by_name[item.type.fullname]
|
|
275
|
+
else:
|
|
276
|
+
merged.append(orig_item)
|
|
277
|
+
return UnionType.make_union(merged)
|
|
278
|
+
return new
|
mypy/errorcodes.py
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"""Classification of possible errors mypy can detect.
|
|
2
|
+
|
|
3
|
+
These can be used for filtering specific errors.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from collections import defaultdict
|
|
9
|
+
from typing import Final
|
|
10
|
+
|
|
11
|
+
from mypy_extensions import mypyc_attr
|
|
12
|
+
|
|
13
|
+
error_codes: dict[str, ErrorCode] = {}
|
|
14
|
+
sub_code_map: dict[str, set[str]] = defaultdict(set)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@mypyc_attr(allow_interpreted_subclasses=True)
|
|
18
|
+
class ErrorCode:
|
|
19
|
+
def __init__(
|
|
20
|
+
self,
|
|
21
|
+
code: str,
|
|
22
|
+
description: str,
|
|
23
|
+
category: str,
|
|
24
|
+
default_enabled: bool = True,
|
|
25
|
+
sub_code_of: ErrorCode | None = None,
|
|
26
|
+
) -> None:
|
|
27
|
+
self.code = code
|
|
28
|
+
self.description = description
|
|
29
|
+
self.category = category
|
|
30
|
+
self.default_enabled = default_enabled
|
|
31
|
+
self.sub_code_of = sub_code_of
|
|
32
|
+
if sub_code_of is not None:
|
|
33
|
+
assert sub_code_of.sub_code_of is None, "Nested subcategories are not supported"
|
|
34
|
+
sub_code_map[sub_code_of.code].add(code)
|
|
35
|
+
error_codes[code] = self
|
|
36
|
+
|
|
37
|
+
def __str__(self) -> str:
|
|
38
|
+
return f"<ErrorCode {self.code}>"
|
|
39
|
+
|
|
40
|
+
def __eq__(self, other: object) -> bool:
|
|
41
|
+
if not isinstance(other, ErrorCode):
|
|
42
|
+
return False
|
|
43
|
+
return self.code == other.code
|
|
44
|
+
|
|
45
|
+
def __hash__(self) -> int:
|
|
46
|
+
return hash((self.code,))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
ATTR_DEFINED: Final = ErrorCode("attr-defined", "Check that attribute exists", "General")
|
|
50
|
+
NAME_DEFINED: Final = ErrorCode("name-defined", "Check that name is defined", "General")
|
|
51
|
+
CALL_ARG: Final[ErrorCode] = ErrorCode(
|
|
52
|
+
"call-arg", "Check number, names and kinds of arguments in calls", "General"
|
|
53
|
+
)
|
|
54
|
+
ARG_TYPE: Final = ErrorCode("arg-type", "Check argument types in calls", "General")
|
|
55
|
+
CALL_OVERLOAD: Final = ErrorCode(
|
|
56
|
+
"call-overload", "Check that an overload variant matches arguments", "General"
|
|
57
|
+
)
|
|
58
|
+
VALID_TYPE: Final[ErrorCode] = ErrorCode(
|
|
59
|
+
"valid-type", "Check that type (annotation) is valid", "General"
|
|
60
|
+
)
|
|
61
|
+
VAR_ANNOTATED: Final = ErrorCode(
|
|
62
|
+
"var-annotated", "Require variable annotation if type can't be inferred", "General"
|
|
63
|
+
)
|
|
64
|
+
OVERRIDE: Final = ErrorCode(
|
|
65
|
+
"override", "Check that method override is compatible with base class", "General"
|
|
66
|
+
)
|
|
67
|
+
RETURN: Final[ErrorCode] = ErrorCode(
|
|
68
|
+
"return", "Check that function always returns a value", "General"
|
|
69
|
+
)
|
|
70
|
+
RETURN_VALUE: Final[ErrorCode] = ErrorCode(
|
|
71
|
+
"return-value", "Check that return value is compatible with signature", "General"
|
|
72
|
+
)
|
|
73
|
+
ASSIGNMENT: Final[ErrorCode] = ErrorCode(
|
|
74
|
+
"assignment", "Check that assigned value is compatible with target", "General"
|
|
75
|
+
)
|
|
76
|
+
METHOD_ASSIGN: Final[ErrorCode] = ErrorCode(
|
|
77
|
+
"method-assign",
|
|
78
|
+
"Check that assignment target is not a method",
|
|
79
|
+
"General",
|
|
80
|
+
sub_code_of=ASSIGNMENT,
|
|
81
|
+
)
|
|
82
|
+
TYPE_ARG: Final = ErrorCode("type-arg", "Check that generic type arguments are present", "General")
|
|
83
|
+
TYPE_VAR: Final = ErrorCode("type-var", "Check that type variable values are valid", "General")
|
|
84
|
+
UNION_ATTR: Final = ErrorCode(
|
|
85
|
+
"union-attr", "Check that attribute exists in each item of a union", "General"
|
|
86
|
+
)
|
|
87
|
+
INDEX: Final = ErrorCode("index", "Check indexing operations", "General")
|
|
88
|
+
OPERATOR: Final = ErrorCode("operator", "Check that operator is valid for operands", "General")
|
|
89
|
+
LIST_ITEM: Final = ErrorCode(
|
|
90
|
+
"list-item", "Check list items in a list expression [item, ...]", "General"
|
|
91
|
+
)
|
|
92
|
+
DICT_ITEM: Final = ErrorCode(
|
|
93
|
+
"dict-item", "Check dict items in a dict expression {key: value, ...}", "General"
|
|
94
|
+
)
|
|
95
|
+
TYPEDDICT_ITEM: Final = ErrorCode(
|
|
96
|
+
"typeddict-item", "Check items when constructing TypedDict", "General"
|
|
97
|
+
)
|
|
98
|
+
TYPEDDICT_UNKNOWN_KEY: Final = ErrorCode(
|
|
99
|
+
"typeddict-unknown-key",
|
|
100
|
+
"Check unknown keys when constructing TypedDict",
|
|
101
|
+
"General",
|
|
102
|
+
sub_code_of=TYPEDDICT_ITEM,
|
|
103
|
+
)
|
|
104
|
+
HAS_TYPE: Final = ErrorCode(
|
|
105
|
+
"has-type", "Check that type of reference can be determined", "General"
|
|
106
|
+
)
|
|
107
|
+
IMPORT: Final = ErrorCode(
|
|
108
|
+
"import", "Require that imported module can be found or has stubs", "General"
|
|
109
|
+
)
|
|
110
|
+
IMPORT_NOT_FOUND: Final = ErrorCode(
|
|
111
|
+
"import-not-found", "Require that imported module can be found", "General", sub_code_of=IMPORT
|
|
112
|
+
)
|
|
113
|
+
IMPORT_UNTYPED: Final = ErrorCode(
|
|
114
|
+
"import-untyped", "Require that imported module has stubs", "General", sub_code_of=IMPORT
|
|
115
|
+
)
|
|
116
|
+
NO_REDEF: Final = ErrorCode("no-redef", "Check that each name is defined once", "General")
|
|
117
|
+
FUNC_RETURNS_VALUE: Final = ErrorCode(
|
|
118
|
+
"func-returns-value", "Check that called function returns a value in value context", "General"
|
|
119
|
+
)
|
|
120
|
+
ABSTRACT: Final = ErrorCode(
|
|
121
|
+
"abstract", "Prevent instantiation of classes with abstract attributes", "General"
|
|
122
|
+
)
|
|
123
|
+
TYPE_ABSTRACT: Final = ErrorCode(
|
|
124
|
+
"type-abstract", "Require only concrete classes where Type[...] is expected", "General"
|
|
125
|
+
)
|
|
126
|
+
VALID_NEWTYPE: Final = ErrorCode(
|
|
127
|
+
"valid-newtype", "Check that argument 2 to NewType is valid", "General"
|
|
128
|
+
)
|
|
129
|
+
STRING_FORMATTING: Final = ErrorCode(
|
|
130
|
+
"str-format", "Check that string formatting/interpolation is type-safe", "General"
|
|
131
|
+
)
|
|
132
|
+
STR_BYTES_PY3: Final = ErrorCode(
|
|
133
|
+
"str-bytes-safe", "Warn about implicit coercions related to bytes and string types", "General"
|
|
134
|
+
)
|
|
135
|
+
EXIT_RETURN: Final = ErrorCode(
|
|
136
|
+
"exit-return", "Warn about too general return type for '__exit__'", "General"
|
|
137
|
+
)
|
|
138
|
+
LITERAL_REQ: Final = ErrorCode("literal-required", "Check that value is a literal", "General")
|
|
139
|
+
UNUSED_COROUTINE: Final = ErrorCode(
|
|
140
|
+
"unused-coroutine", "Ensure that all coroutines are used", "General"
|
|
141
|
+
)
|
|
142
|
+
# TODO: why do we need the explicit type here? Without it mypyc CI builds fail with
|
|
143
|
+
# mypy/message_registry.py:37: error: Cannot determine type of "EMPTY_BODY" [has-type]
|
|
144
|
+
EMPTY_BODY: Final[ErrorCode] = ErrorCode(
|
|
145
|
+
"empty-body",
|
|
146
|
+
"A dedicated error code to opt out return errors for empty/trivial bodies",
|
|
147
|
+
"General",
|
|
148
|
+
)
|
|
149
|
+
SAFE_SUPER: Final = ErrorCode(
|
|
150
|
+
"safe-super", "Warn about calls to abstract methods with empty/trivial bodies", "General"
|
|
151
|
+
)
|
|
152
|
+
TOP_LEVEL_AWAIT: Final = ErrorCode(
|
|
153
|
+
"top-level-await", "Warn about top level await expressions", "General"
|
|
154
|
+
)
|
|
155
|
+
AWAIT_NOT_ASYNC: Final = ErrorCode(
|
|
156
|
+
"await-not-async", 'Warn about "await" outside coroutine ("async def")', "General"
|
|
157
|
+
)
|
|
158
|
+
# These error codes aren't enabled by default.
|
|
159
|
+
NO_UNTYPED_DEF: Final[ErrorCode] = ErrorCode(
|
|
160
|
+
"no-untyped-def", "Check that every function has an annotation", "General"
|
|
161
|
+
)
|
|
162
|
+
NO_UNTYPED_CALL: Final = ErrorCode(
|
|
163
|
+
"no-untyped-call",
|
|
164
|
+
"Disallow calling functions without type annotations from annotated functions",
|
|
165
|
+
"General",
|
|
166
|
+
)
|
|
167
|
+
REDUNDANT_CAST: Final = ErrorCode(
|
|
168
|
+
"redundant-cast", "Check that cast changes type of expression", "General"
|
|
169
|
+
)
|
|
170
|
+
ASSERT_TYPE: Final = ErrorCode("assert-type", "Check that assert_type() call succeeds", "General")
|
|
171
|
+
COMPARISON_OVERLAP: Final = ErrorCode(
|
|
172
|
+
"comparison-overlap", "Check that types in comparisons and 'in' expressions overlap", "General"
|
|
173
|
+
)
|
|
174
|
+
NO_ANY_UNIMPORTED: Final = ErrorCode(
|
|
175
|
+
"no-any-unimported", 'Reject "Any" types from unfollowed imports', "General"
|
|
176
|
+
)
|
|
177
|
+
NO_ANY_RETURN: Final = ErrorCode(
|
|
178
|
+
"no-any-return",
|
|
179
|
+
'Reject returning value with "Any" type if return type is not "Any"',
|
|
180
|
+
"General",
|
|
181
|
+
)
|
|
182
|
+
UNREACHABLE: Final = ErrorCode(
|
|
183
|
+
"unreachable", "Warn about unreachable statements or expressions", "General"
|
|
184
|
+
)
|
|
185
|
+
ANNOTATION_UNCHECKED = ErrorCode(
|
|
186
|
+
"annotation-unchecked", "Notify about type annotations in unchecked functions", "General"
|
|
187
|
+
)
|
|
188
|
+
POSSIBLY_UNDEFINED: Final[ErrorCode] = ErrorCode(
|
|
189
|
+
"possibly-undefined",
|
|
190
|
+
"Warn about variables that are defined only in some execution paths",
|
|
191
|
+
"General",
|
|
192
|
+
default_enabled=False,
|
|
193
|
+
)
|
|
194
|
+
REDUNDANT_EXPR: Final = ErrorCode(
|
|
195
|
+
"redundant-expr", "Warn about redundant expressions", "General", default_enabled=False
|
|
196
|
+
)
|
|
197
|
+
TRUTHY_BOOL: Final[ErrorCode] = ErrorCode(
|
|
198
|
+
"truthy-bool",
|
|
199
|
+
"Warn about expressions that could always evaluate to true in boolean contexts",
|
|
200
|
+
"General",
|
|
201
|
+
default_enabled=False,
|
|
202
|
+
)
|
|
203
|
+
TRUTHY_FUNCTION: Final[ErrorCode] = ErrorCode(
|
|
204
|
+
"truthy-function",
|
|
205
|
+
"Warn about function that always evaluate to true in boolean contexts",
|
|
206
|
+
"General",
|
|
207
|
+
)
|
|
208
|
+
TRUTHY_ITERABLE: Final[ErrorCode] = ErrorCode(
|
|
209
|
+
"truthy-iterable",
|
|
210
|
+
"Warn about Iterable expressions that could always evaluate to true in boolean contexts",
|
|
211
|
+
"General",
|
|
212
|
+
default_enabled=False,
|
|
213
|
+
)
|
|
214
|
+
NAME_MATCH: Final = ErrorCode(
|
|
215
|
+
"name-match", "Check that type definition has consistent naming", "General"
|
|
216
|
+
)
|
|
217
|
+
NO_OVERLOAD_IMPL: Final = ErrorCode(
|
|
218
|
+
"no-overload-impl",
|
|
219
|
+
"Check that overloaded functions outside stub files have an implementation",
|
|
220
|
+
"General",
|
|
221
|
+
)
|
|
222
|
+
IGNORE_WITHOUT_CODE: Final = ErrorCode(
|
|
223
|
+
"ignore-without-code",
|
|
224
|
+
"Warn about '# type: ignore' comments which do not have error codes",
|
|
225
|
+
"General",
|
|
226
|
+
default_enabled=False,
|
|
227
|
+
)
|
|
228
|
+
UNUSED_AWAITABLE: Final = ErrorCode(
|
|
229
|
+
"unused-awaitable",
|
|
230
|
+
"Ensure that all awaitable values are used",
|
|
231
|
+
"General",
|
|
232
|
+
default_enabled=False,
|
|
233
|
+
)
|
|
234
|
+
REDUNDANT_SELF_TYPE = ErrorCode(
|
|
235
|
+
"redundant-self",
|
|
236
|
+
"Warn about redundant Self type annotations on method first argument",
|
|
237
|
+
"General",
|
|
238
|
+
default_enabled=False,
|
|
239
|
+
)
|
|
240
|
+
USED_BEFORE_DEF: Final[ErrorCode] = ErrorCode(
|
|
241
|
+
"used-before-def", "Warn about variables that are used before they are defined", "General"
|
|
242
|
+
)
|
|
243
|
+
UNUSED_IGNORE: Final = ErrorCode(
|
|
244
|
+
"unused-ignore", "Ensure that all type ignores are used", "General", default_enabled=False
|
|
245
|
+
)
|
|
246
|
+
EXPLICIT_OVERRIDE_REQUIRED: Final = ErrorCode(
|
|
247
|
+
"explicit-override",
|
|
248
|
+
"Require @override decorator if method is overriding a base class method",
|
|
249
|
+
"General",
|
|
250
|
+
default_enabled=False,
|
|
251
|
+
)
|
|
252
|
+
UNIMPORTED_REVEAL: Final = ErrorCode(
|
|
253
|
+
"unimported-reveal",
|
|
254
|
+
"Require explicit import from typing or typing_extensions for reveal_type",
|
|
255
|
+
"General",
|
|
256
|
+
default_enabled=False,
|
|
257
|
+
)
|
|
258
|
+
MUTABLE_OVERRIDE: Final[ErrorCode] = ErrorCode(
|
|
259
|
+
"mutable-override",
|
|
260
|
+
"Reject covariant overrides for mutable attributes",
|
|
261
|
+
"General",
|
|
262
|
+
default_enabled=False,
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
# Syntax errors are often blocking.
|
|
267
|
+
SYNTAX: Final[ErrorCode] = ErrorCode("syntax", "Report syntax errors", "General")
|
|
268
|
+
|
|
269
|
+
# This is an internal marker code for a whole-file ignore. It is not intended to
|
|
270
|
+
# be user-visible.
|
|
271
|
+
FILE: Final = ErrorCode("file", "Internal marker for a whole file being ignored", "General")
|
|
272
|
+
del error_codes[FILE.code]
|
|
273
|
+
|
|
274
|
+
# This is a catch-all for remaining uncategorized errors.
|
|
275
|
+
MISC: Final = ErrorCode("misc", "Miscellaneous other checks", "General")
|
|
276
|
+
|
|
277
|
+
OVERLOAD_OVERLAP: Final[ErrorCode] = ErrorCode(
|
|
278
|
+
"overload-overlap",
|
|
279
|
+
"Warn if multiple @overload variants overlap in unsafe ways",
|
|
280
|
+
"General",
|
|
281
|
+
sub_code_of=MISC,
|
|
282
|
+
)
|
|
283
|
+
|
|
284
|
+
# This copy will not include any error codes defined later in the plugins.
|
|
285
|
+
mypy_error_codes = error_codes.copy()
|