Commit Graph

826 Commits

Author SHA1 Message Date
Jelle Zijlstra
adeda24fce open: introduce concrete return types (#4146)
* make io classes inherit from typing IO classes

This makes these classes usable if type annotations are given as "IO"
or "TextIO". In the future, we'll then be able to move open() to
return a concrete class instead (#3951).

* open: introduce concrete return types

Fixes #3951.

We use the values of the "mode" and "buffering" arguments to figure out
the concrete type open() will return at runtime. (Compare the CPython
code in https://github.com/python/cpython/blob/master/Modules/_io/_iomodule.c#L231.)
2020-06-01 00:48:12 +02:00
Markus Pielmeier
b7d9a4a584 Add support for __pow__ with pow() builtin (#4109) 2020-05-30 15:38:19 -07:00
Shantanu
de2c2947fe windows: fix splitunc param name (#4143)
Co-authored-by: hauntsaninja <>
2020-05-29 20:37:19 -04:00
karl ding
09821cd9ca Add typing for CAN_J1939 sockets (#4141)
Add typing for CAN_J1939 sockets implementing support for the SAE J1939
protocol. This is available in Python 3.9+ on Linux 5.4+.
2020-05-29 12:33:47 +02:00
Rune Tynan
a1953431ff Move oem_(decode, encode) to be 3.6+ (#4140) 2020-05-28 18:57:32 -07:00
Brian Wellington
0bed1d3956 socket.create_connection source_address is optional. (#4133) 2020-05-28 19:56:11 +02:00
Jelle Zijlstra
c80622fbb9 remove type ignores about python/mypy#5027 (#4119)
The mypy issue got fixed by the good people of mypy. I did have to add an
override for __enter__ similar to what we're doing in #4082.
2020-05-28 09:51:54 -07:00
Ilaï Deutel
846d922df2 More precise return types for open(), Path.open(), bz2.open(), etc. (#3371)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Sebastian Rittau <srittau@rittau.biz>
2020-05-28 09:20:23 -07:00
Jelle Zijlstra
0cffa59e57 use a Protocol for str.format_map() (#4122)
Fixes #3824
2020-05-28 13:27:57 +02:00
Gregory P. Smith
a9d5a1ed99 hmac digestmod is no longer Optional as of 3.8. (#3367) 2020-05-28 09:24:32 +02:00
Shantanu
eca19f00fb bdb: various fixes (#4127) 2020-05-27 21:42:45 -07:00
Shantanu
e8d0cadf7b aifc: update for py39 (#4126)
Co-authored-by: hauntsaninja <>
2020-05-27 21:42:32 -07:00
Shantanu
22fd5e916a wsgiref: fix arg name, make close an instance variable (#4123)
Co-authored-by: hauntsaninja <>
2020-05-27 21:06:11 -07:00
Shantanu
c988348179 ctypes: fix arg name on windows (#4111)
Co-authored-by: hauntsaninja <>
2020-05-27 20:21:45 -07:00
Brad Solomon
ddb47deb27 Allow Union[unicode, str] rather than just str in several places (#3887)
* Allow unicode objects throughout urlparse.py

Functions such as `urlparse()`, if given a unicode object,
will happily return a ParseResult of unicode components.

Relatedly, functions like `unquote()` will accept any of
bytes/str/unicode and return an object of the same type
or a composite containing that type.

* Allow unicode in several places in Thread

`name` and `kwargs` to Thread.__init__ function perfectly
well with unicode, not just str.

Note: the .name attribute will always be str even
if the constructor is passed something else, since
__init__ calls:

    self.__name = str(name or _newname())

* Use typing.AnyStr properly

...rather than defining a new TypeVar unncessarily.

* Use typing.Text properly

Text is behaviorally equivalent to Union[str, unicode]
for Python 2 argument types.

* Remove outdated import & definition

* [check file consistent] copy changes to _dummy_threading.pyi
2020-05-27 19:52:14 -07:00
Michael H
a1c6566abe [Add stub entry for logging._srcfile] (#3840)
- While this appears to be private, it's also documented as available
  to set here: https://docs.python.org/3/howto/logging.html#optimization
  - Did *not* update `logging.logThreads` et al to match the
  documentation as it may be more appropriate to update the
  documentation to set to `False` rather than to `0` based on how these
  are used

Type further narrowed based on known type of a parameter to
`os.normcase`
2020-05-27 19:42:33 -07:00
Shantanu
fd203e663e py39: add PEP 616 methods (#4090) 2020-05-27 19:24:25 -07:00
Shantanu
02e1a68a56 argparse: add Action.format_usage (#4114)
Co-authored-by: hauntsaninja <>
2020-05-27 18:36:01 -07:00
Rune Tynan
d51e13ad80 Add stubtest to Travis for windows (#4113) 2020-05-27 18:33:07 -07:00
Rune Tynan
0c1babd288 Make _codecs pass stubtest on windows (#4107) 2020-05-27 19:36:41 +02:00
Batuhan Taskaya
53ede5967b is_tarfile accepts pathlike (#3804) 2020-05-27 17:21:55 +02:00
Rune Tynan
7ac284f641 Add _pydecimal and _decimal stubs (#4003) 2020-05-27 10:10:51 +02:00
Rune Tynan
f1d96d97fe Fix stubtest failures for msvcrt on windows (#4095) 2020-05-27 10:05:33 +02:00
Zhiming Wang
edb7dc1171 xml.etree.ElementTree: add support for os.PathLike for py36+ (#4097)
xml.etree.ElementTree uses open on filenames (e.g. [1]), so os.PathLike has
been supported as filenames since Python 3.6.

[1] 285ff63351/Lib/xml/etree/ElementTree.py (L584)
2020-05-27 10:04:12 +02:00
Rune Tynan
9b4eb8c90b Fix stubtest failures for select on windows (#4099) 2020-05-27 09:57:06 +02:00
Rune Tynan
d310a16e7c Fix stubtest failures for time on windows (#4104) 2020-05-27 09:51:37 +02:00
Rune Tynan
19a797c0ca Fix stubtest failures for asyncore on windows, remove unnecessary imports (#4093) 2020-05-27 09:42:05 +02:00
Rune Tynan
bd6eed8700 Fix stubtest failures for mmap on windows (#4094) 2020-05-27 09:40:06 +02:00
Rune Tynan
5e80ca9e44 Fix stubtest failures for path files on windows (#4096) 2020-05-27 09:39:26 +02:00
Rune Tynan
f83e4aef7c Fix stubtest failures for socket on windows (#4102) 2020-05-27 09:38:45 +02:00
Shantanu
a94d6511fd xml.etree.ElementInclude: update include for py39 (#4086)
Co-authored-by: hauntsaninja <>
2020-05-26 17:39:36 -07:00
Shantanu
d313e170b7 threading: update for py39 (#4087) 2020-05-26 17:37:07 -07:00
Shantanu
6aee098401 fractions: use __new__ instead of __init__ (#4077)
Tested against some example code.
2020-05-25 15:29:28 -07:00
Shantanu
6028226750 plistlib: update for py39 (#4073) 2020-05-24 20:38:18 -07:00
Shantanu
00a27634b1 threading: fix inheritance (#4072) 2020-05-24 18:51:30 -07:00
Shantanu
8cf04f3a74 boto.compat, base64: fix version handling of (en|de)codebytes (#4070)
Co-authored-by: hauntsaninja <>
2020-05-24 18:44:43 -07:00
Shantanu
e560ce0f57 bisect: hi is Optional (#4063)
Shows up in 3.9 because of https://github.com/python/cpython/pull/20163

Co-authored-by: hauntsaninja <>
2020-05-24 17:53:03 -07:00
Shantanu
8e03f33d84 difflib: update for py39 (#4067)
Adds default values, the hi params can now be None

Co-authored-by: hauntsaninja <>
2020-05-24 17:41:45 -07:00
Shantanu
2b3a4e8fbe wave: openfp is removed in py39 (#4064)
Co-authored-by: hauntsaninja <>
2020-05-24 17:40:20 -07:00
Shantanu
3910eb1735 argparse: update for py39 (#4065)
Co-authored-by: hauntsaninja <>
2020-05-24 17:40:06 -07:00
Shantanu
b367799634 sunau: openfp is removed in py39 (#4066)
Co-authored-by: hauntsaninja <>
2020-05-24 17:34:48 -07:00
karl ding
db14610298 Improve undocumented TarFile method type hints (#4056)
Add type hints for undocumented tarfile.TarFile file methods called via
_extract_member() when extract() is called.
2020-05-23 13:41:07 -07:00
Rebecca Chen
5fe6a5ba8b parser: STType.compile() can be called with no arguments. (#4034)
The filename parameter is optional:
https://docs.python.org/3/library/parser.html#parser.ST.compile.
2020-05-18 08:30:52 -07:00
Rebecca Chen
53f4f68d71 saxutils.XMLGenerator should accept unicode encodings in Python 2. (#4031) 2020-05-17 18:05:21 -07:00
Shantanu
a675778140 dis: various fixes to dis.dis (#4027)
Co-authored-by: hauntsaninja <>
2020-05-17 08:59:11 -07:00
Shantanu
26566af893 bisect: fix availability, consistency, reduce duplication (#4028)
Co-authored-by: hauntsaninja <>
2020-05-17 08:52:37 -07:00
Shantanu
4405250ed1 pyclbr: add parent argument for py37 on (#4029)
Co-authored-by: hauntsaninja <>
2020-05-17 08:25:18 -07:00
Shantanu
9c9eae8462 opcode: fix positional-only args (#4026)
Co-authored-by: hauntsaninja <>
2020-05-17 07:20:28 -07:00
Jelle Zijlstra
4a9fdcc7fc uuid: update for py39 (#4023)
Closing the long loop started in #3715

Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com>
2020-05-16 21:30:45 -07:00
Shantanu
bedccc7497 fractions: remove gcd in py39 (#4012)
Co-authored-by: hauntsaninja <>
2020-05-16 16:57:19 -07:00