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] https://github.com/python/cpython/blob/285ff63351bb5a42099527c283f65434e761be83/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