962 Commits

Author SHA1 Message Date
Ivan Levkivskyi
fb753c4226 Loosen some types to avoid pain in real-life situations (#4870)
In this diff:
* Loosen `set.__[i]sub__()` to allow typical use cases (that work at runtime). Namely, allow removing `unicode` from a set of `str`, and allow removing optional values from non-optional sets.
* Avoid using union return types in `cryptography` deserialization functions.
* Tune `SupportsItems` so that `dict` implements it on Python 2.

Co-authored-by: Ivan Levkivskyi <ilevkivskyi@dropbox.com>
2020-12-29 18:31:14 +00:00
Ash Berlin-Taylor
3e10b44bb4 copy.deepcopy memo type is Any, not input type (#4828) 2020-12-16 17:38:11 +01:00
Jun Jia
35d73ef277 type of argument_default should be Any (#4811) 2020-12-14 19:17:19 +01:00
Sebastian Rittau
1c6ac09b82 Add EllipsisType, NoneType, and NotImplementedType (Python 3.10) (#4822) 2020-12-14 18:38:35 +01:00
Eric Traut
c4d8507ff7 Removed unused import symbols from stdlib stubs and fixed a few other errors detected by pyright. I did a similar pass several months ago; these were introduced since then. (#4803)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-12-06 18:44:18 +01:00
Ran Benita
1958f3ec67 threading: properly export excepthook, ExceptHookArgs (#4797)
An `import X as Y` where X != Y no longer exports, so
27a45df479 caused them to be un-exported.
2020-12-02 14:58:52 +01:00
an onion
095464874a Added partial type stubs for stdlib xml (#4777)
Added empty stubs for xml.dom.minidom.parse and xml.dom.minidom.parseString, and other modules under xml.dom

Co-authored-by: Stephanie Ding <sym@fb.com>
Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com>
2020-11-20 19:02:35 -08:00
Ran Benita
27a45df479 threading: fix ExceptHookArgs being a function instead of a type (#4768)
The previous typing meant `threading.ExceptHookArgs` could not be used
to type a value.

The new typing follows what cpython does in the happy path (`_thread`
exists rather than the pure-python fallback being used).

Fixes #4767.
2020-11-14 14:50:34 +01:00
Stefano Chiodino
ca45cb21a8 Update zipfile.pyi (#4753) 2020-11-10 12:01:06 +01:00
Shantanu
2702f8c32e ctypes: fix argument names (#4735)
Co-authored-by: hauntsaninja <>
2020-10-31 18:34:25 -07:00
Jelle Zijlstra
301325b55b Make _GeneratorContextManager covariant (#4733)
Fixes  #4732
2020-10-30 17:31:55 -07:00
Sebastian Rittau
4603728a15 Clean up files with former forced consistency (#4717)
Replace Text with str in Python 3 code
2020-10-27 07:52:35 +01:00
Vincent Barbaresi
de98690e72 update math and gzip stubs for Python 3.8 (#4710)
I ran stubtest and spotted 2 things missing in 3.8 stdlib

- added BadGzipFile exception for gzip:
https://docs.python.org/3/library/gzip.html#gzip.BadGzipFile

- added math.perm() method:
https://docs.python.org/3/library/math.html#math.perm
2020-10-25 19:58:09 -07:00
Shantanu
1dd1b701c9 _typeshed: add SupportsLessThan, SupportsLessThanT (#4711)
And use it everywhere. Note there seemed to be a discrepancy between
heapq in Python 2 and 3, so I changed that. It should probably be more
widely used within heapq, but leaving that out of scope for this PR.

Co-authored-by: hauntsaninja <>
2020-10-25 15:04:43 -07:00
Paul
820cc11256 Provide types for ArgumentError members. (#4700) 2020-10-24 17:02:58 -07:00
Shantanu
6ff5b88ca7 typeshed: remove crufty comments (#4699)
Co-authored-by: hauntsaninja <>
2020-10-23 09:40:06 +02:00
Sebastian Rittau
3de732e188 Split distutils for Python 2 and 3 (#4685)
Addresses #4679, but also starts addressing #4674.
2020-10-22 19:24:17 -07:00
Utsav
6f943d43ea Added __class_getitem__ (#4695)
Resolves #4682

Co-authored-by: hauntsaninja <>
2020-10-22 14:05:04 -07:00
Sebastian Rittau
5927e5ca30 Remove most consistency checks and split builtins.pyi into py2/3 files (#4686)
Split builtins.pyi in Python 2 and 3 versions

Partly addresses #4674
2020-10-22 13:39:06 -07:00
Shantanu
b0f4900c9f fractions: make Fraction satisfy SupportsRound (#4697)
Helps with https://github.com/python/mypy/issues/9628

Co-authored-by: hauntsaninja <>
2020-10-22 12:12:27 -07:00
Shantanu
faf827bc36 mark some positional-only arguments (#4693)
https://github.com/python/mypy/pull/9626 will make stubtest a little bit
stricter about positional-only arguments for dunders like __init__

Co-authored-by: hauntsaninja <>
2020-10-22 13:31:23 +02:00
Dominic Davis-Foster
dcbeed5b5a Add stub for readline.set_auto_history (#4688) 2020-10-20 14:27:07 -07:00
Shantanu
7e378a7554 PEP 584: add or operators to dict (#4671)
Co-authored-by: hauntsaninja <>
2020-10-15 13:42:01 +02:00
Shantanu
3a16ebb463 builtins: int can accept __trunc__-able (#4665)
Refer to https://docs.python.org/3/reference/datamodel.html#object.__trunc__
Fixes https://github.com/python/mypy/issues/9588

Co-authored-by: hauntsaninja <>
2020-10-14 09:47:47 +02:00
Cebtenzzre
58ee9c0ae5 termios: Fix type of tcgetattr and tcsetattr attributes (#4662)
Returning a union from tcgetattr forces the caller to use isinstance or
a type: ignore comment if they modify the returned list. Return
List[Any] instead.

The cc field has ints at cc[termios.VTIME] and cc[termios.VMIN] if
lflag & termios.ICANON is zero. Change _Attr to allow this.

Fixes #4661
2020-10-12 18:24:09 -07:00
Rebecca Chen
fff7a10ae7 Add a version guard for importing enum in pstats. (#4635)
* Add a version guard for importing enum.

I'm trying to pull the latest version of typeshed into Google, and
pytype chokes on pstats in Python 2 because the enum module was
introduced in 3.4.

* Move the enum import into the branch that defines SortKey.
2020-10-08 16:09:24 -07:00
Sebastian Rittau
35f4ade96f Replace bool.__init__() with __new__() (#4614)
Fixes #4612
2020-10-09 00:20:03 +02:00
Peter Law
fa0ba1eda8 Add various undocumented functions from ftplib (#4633)
Fixes #4632
2020-10-08 22:20:48 +02:00
Kaushal Rohit
36f2ffa07e Added missing SysLogHandler types (#4630) 2020-10-07 19:02:54 -07:00
nicolas-harraudeau-sonarsource
cc71b6a4ed Fix "cgi.parse_qsl" return type (#4621)
Fixes #4620
2020-10-06 10:28:33 +02:00
Shantanu
e428f2d479 pep 484: last reexports (#4609)
Co-authored-by: hauntsaninja <>
2020-10-04 23:51:04 +02:00
Shantanu
723a23abfc contextlib: get rid of a TODO (#4610)
This dates back three years to https://github.com/python/typeshed/pull/1249

It seems pretty unused in practice, so I think this is fine:
https://grep.app/search?q=from%20contextlib%20import%20ContextManager&case=true
https://grep.app/search?q=contextlib.ContextManager&case=true

Co-authored-by: hauntsaninja <>
2020-10-04 23:49:49 +02:00
karl ding
ce3c9e05c0 imaplib: Add new functions from Python 3.9 (#4596)
Add imaplib.IMAP4.unselect()
2020-10-02 19:58:24 -07:00
karl ding
9cbb2c7820 math: Add new functions from Python 3.9 (#4590)
Add support for new math functions added in Python 3.9:

  - gcd
  - lcm
  - nextafter
  - ulp
2020-10-01 10:54:41 +02:00
Shantanu
e3889c776e pep 484: explicit reexport as intended (#4586)
See discussion on typing-sig.
This doesn't take care of some third_party libraries, will follow up on
those.

Co-authored-by: hauntsaninja <>
2020-09-30 10:04:23 -07:00
Sebastian Rittau
27dfbf68aa Use __new__ instead of __init__ for some builtin classes (#4555)
Closes #4514 #2630 #2686
2020-09-30 00:00:06 -07:00
Shantanu
076983eec4 PathLike: make runtime_checkable (#4582)
I made PathLike a protocol in #4447, but it should also be
runtime_checkable.

Caught by mypy_primer:
src/werkzeug/utils.py:646: error: Only @runtime_checkable protocols can be used with instance and class checks
2020-09-27 07:50:56 +02:00
Shantanu
d6d2249edc builtins: rename _LT (#4579)
Having an obscure type variable name is causing some pretty inscrutable
errors. For instance:
```
xarray/core/utils.py:466: error: Value of type variable "_LT" of "sorted" cannot be "K"
tornado/simple_httpclient.py:324: error: Value of type variable "_LT" of "min" cannot be "Optional[float]"
```

I think having a more descriptive type variable name here is better for
user experience and helps address the "why" of an error.
2020-09-26 07:33:26 +02:00
Unrud
c5cc223313 Fix typo in constant name EAI_ADDRFAMILY (#4577) 2020-09-25 14:17:08 -07:00
Jake Bailey
de70d0199d Fix distutils.log function signatures (#4573) 2020-09-24 17:27:50 -07:00
Eric Traut
c41f3e9bf9 Define NoneType class in _typeshed
Type checkers can use this to handle protocol matching for None (e.g. `foo: Hashable = None`).

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-09-20 15:42:23 -07:00
Sebastian Rittau
9a6b500909 Add various missing undocumented functions (#4554)
Mostly addresses #2149
2020-09-19 22:59:35 -07:00
Sebastian Rittau
fe69ffcb0f Add a few missing stdlib modules (#4550) 2020-09-18 11:28:25 -04:00
Sebastian Rittau
4e88557666 Complete msvcrt (#4548) 2020-09-18 09:20:26 -04:00
Sebastian Rittau
4e2e02b266 Fix cls argument name of CodecInfo.__new__() (#4549) 2020-09-17 12:04:54 -07:00
proost
b1865639c2 set difference strictly (#3886)
Fixes #1840
2020-09-17 17:49:07 +02:00
Jonathan Slenders
822e427693 Added annotations for msvcrt.getch. (#4547) 2020-09-17 10:55:44 +02:00
Shantanu
8642d2aa97 pkgutil, sys: make types more precise (#4536)
Co-authored-by: hauntsaninja <>
2020-09-16 10:38:27 +02:00
Nikolaus Waxweiler
d402f55334 load*: Return Any instead of Dict-types (#4543)
A plist file can contain more object types than dictionaries.
2020-09-15 16:29:59 -07:00
Yuri Khan
87b758b0da Relax type of xml.etree.ElementTree.XMLParser target argument (#4538)
The target argument can be an arbitrary object.
If it has certain methods, they are used by XMLParser,
missing methods are ignored.

Ideally, we'd be able to type the potentially missing
methods correctly, but currently the type system is
unable to do so.

Fixes #4537
2020-09-14 12:50:12 +02:00