Commit Graph

2744 Commits

Author SHA1 Message Date
Christopher Schramm
fddc78293a Extend function pointer type returned by CDLL (#4444)
CDLL.__getattr__ and __getitem__ return function pointers that have a __name__ attribute set, so "CDLL(lib).fun.__name__" is valid code but currently not covered.
2020-08-13 17:35:36 +02:00
Rebecca Chen
f9acd5aa3b Mark http.server.SimpleHTTPRequestHandler's directory arg as optional. (#4443)
`directory` has a default value:
https://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.
2020-08-12 17:59:00 -07:00
Jukka Lehtosalo
276d0428b9 Avoid false positivies from urlparse (Python 2) (#4437)
PR #3887 changed some `str` types to `Union[str, unicode]`.  The `str`
types were too narrow, but the new types are too general, resulting in
around 80 false positives in a Dropbox internal repository.

I think that it's better to narrow down the types back some to avoid
the false positives, as these are commonly used functions.

Test cases:

```
from urlparse import urlunparse, urlunsplit, urljoin, urlparse, urlsplit

reveal_type(urlunparse(('1', '2', '3', '4', '5', '6'))) # str
reveal_type(urlunparse(['1', '2', '3', '4', '5', '6'])) # str
reveal_type(urlunparse((u'1', '2', '3', '4', '5', '6'))) # unicode
reveal_type(urlunparse([u'1', '2', '3', '4', '5', '6'])) # unicode

reveal_type(urlunsplit(('1', '2', '3', '4', '5'))) # str
reveal_type(urlunsplit(['1', '2', '3', '4', '5'])) # str
reveal_type(urlunsplit((u'1', '2', '3', '4', '5'))) # unicode
reveal_type(urlunsplit([u'1', '2', '3', '4', '5'])) # unicode

reveal_type(urljoin('x', 'y')) # str
reveal_type(urljoin(u'x', 'y')) # unicode
reveal_type(urljoin('x', u'y')) # unicode

reveal_type(urlparse('x').path) # str
reveal_type(urlparse(u'x').path) # str
reveal_type(urlparse(u'x').username) # Optional[str]

reveal_type(urlsplit('x').path) # str
reveal_type(urlsplit(u'x').path) # str
```
2020-08-11 13:03:06 +01:00
Ian Woloschin
5c049cd136 Add __name__ & __qualname__ to Coroutine (#4404) 2020-08-10 20:44:14 -07:00
Jukka Lehtosalo
866b0c3bf0 ConfigParser: accept readline() that takes no arguments (#4433)
At runtime readline() is called without arguments, so requiring
an optional argument may result in false positives.
2020-08-10 15:55:32 +01:00
Jukka Lehtosalo
0cd2350595 Add back md5.md5 (#4432)
This was accidentally removed in #4287.
2020-08-10 12:52:13 +01:00
Eric Traut
f46fb7ff59 Added some missing type annotations in stdlib stubs. (#4418)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 20:49:37 +02:00
Akuli
954ce8c703 create _tkinter stub (#4372) 2020-08-08 14:14:52 +02:00
Eric Traut
2fa7a8d8c3 Added missing type annotations for mock.pyi. (#4415)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 11:33:01 +02:00
Eric Traut
e4b48edbba Fix a couple of type name collisions (#4419)
PEP 484 indicates that all type annotations within a stub file are supposed to be considered forward references even if they are not quoted. This means a type checker needs to use scope-based symbol resolution without regard for code flow order. Lookups will find same-named symbols within the same scope even if they are declared after the type annotation. This change fixes a couple of cases where this occurs and confuses pyright.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 11:29:23 +02:00
Sebastian Rittau
4233008b4a TypeVar(bound) accepts strings for forward references (#4410) 2020-08-07 08:31:31 -07:00
Eric Traut
439ea4bd8b Added missing import for case.pyi (#4403)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 19:51:52 -07:00
Eric Traut
baaffed1ac Added missing type annotations in various stdlib stubs. (#4402)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 18:27:21 -07:00
Andreas Poehlmann
10a5b070ab Fix contextlib.ContextDecorator.__call__ types (#4399)
The decorated function returned by ContextDecorator.__call__ has
the same call signature as the original function.

Closes #4382.
2020-08-06 17:26:54 -07:00
Eric Traut
0b3494f712 Replaced parameter name "self" with "cls" for a few class methods (#4393)
* Replaced parameter name "self" with "cls" for a few class methods. Pyright emits a warning if a class method doesn't follow the PEP 8 standard where the first parameter is named "cls" for a class method. This change eliminates these warnings.

* Missed a file.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 09:09:21 +02:00
Eric Traut
f60074f3d2 Fixed symbol redefinition in cgi.pyi stub (#4394)
* PEP 484 says that type checkers should assume that all types used in a stub should use forward declarations even though they are not quoted. This stub is using the symbol "type" within the context of a class scope. The "type" symbol is declared within this scope, so pyright assumes that the forward declaration should be used. The solution is to define a symbol with a different name in the outer scope to avoid the name conflict.

* Fixed import sort order.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 09:05:45 +02:00
Eric Traut
65450d81ff Fix multi-part module import errors (#4395)
* Pyright detects and reports cases where a multi-part module name is accessed but is not explicitly imported. These are dangerous because they rely on import resolution ordering within a program, which can easily change. This change eliminates errors detected by pyright.

* Fixed regression caught by CI test.

* Fixed black formatting issues.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 09:03:54 +02:00
Eric Traut
04c74640f0 Removed imported symbols that are not accessed or re-exported (#4387)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-05 22:49:17 -07:00
Adam Hitchcock
3b6925b955 mark deque.rotate arg as having a default (#4386) 2020-08-05 17:35:22 -07:00
Sebastian Rittau
dc0bfc5889 Make FeedParser generic over Message (#4375) 2020-08-04 09:32:38 -07:00
Áron Ricardo Perez-Lopez
a770110497 Mark __next__, __iter__, and close in Generator as concrete (#4385)
Closes #4384
2020-08-04 12:16:35 +02:00
Ran Benita
cd132ff161 stdlib/3/inspect: fix _ParameterKind being an empty enum (#4383)
This makes mypy think that conditions like

    parameter.kind is Parameter.POSITIONAL_OR_KEYWORD

are always false, which triggers `unreachable` warnings, among other
problems.
2020-08-04 11:02:36 +02:00
frehoy
7894269bb5 Proposed fix for tarfile.add() accepting Path name and arcname (#4369)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2020-07-31 16:55:45 +02:00
Akuli
8bf7efe94e add types for tkinter geometry manager (aka pack,grid,place) methods (#4379) 2020-07-31 14:34:47 +02:00
Akuli
09c91a00ac add type hints for tkinter.Variable and its subclasses (#4378) 2020-07-31 10:53:57 +02:00
Jaromir Latal
c96b1ae1bf [stdlib][unittest] Fix mock.call(...) types (#4374)
Co-authored-by: Jaromir Latal <jaro@fb.com>
2020-07-30 22:02:08 +02:00
Omar Sandoval
7b29927c4b Add missing warn_on_full_buffer argument to signal.set_wakeup_fd() (#4377)
According to
https://docs.python.org/3/library/signal.html#signal.set_wakeup_fd, this
was added in Python 3.7.
2020-07-30 20:52:17 +02:00
Sebastian Rittau
36356b3368 Remove argument from deque.pop() (#4367)
Closes: #4364
2020-07-27 06:49:56 -07:00
Sebastian Rittau
06f87e5c92 Simplify pathlib (#4357)
* Enable some branches for Python2 pathlib2
* Define an alias _PathLike, instead of using multiple branches
* Drop a Python 3.4 branch (the Python 2 branch is identical to
  the 3.5+ branch)
* Move Path.__new__ to the top
2020-07-27 06:08:09 -07:00
karl ding
8f50cd9d0e Add missing syslog facility codes (#4366)
Add support for the following syslog facilities:

  - LOG_NTP
  - LOG_SECURITY
  - LOG_CONSOLE
  - LOG_SOLCRON

In addition, reorder the entries to match the CPython implementation to
make it easier to read.
2020-07-27 12:34:12 +02:00
Ian Good
a472c9b543 Fix Policy.header_source_parse return type (#4365) 2020-07-27 08:38:40 +02:00
Akuli
2c37551fd1 make tkinter.Event generic and add missing type hints to bind methods (#4347) 2020-07-25 14:23:26 +02:00
Vegard Stikbakke
51fd8b2a06 Fix Filter.filter return type - bool, not int (#4358) 2020-07-24 20:25:06 +02:00
Akuli
9efc9d8818 add tkinter.font stub (#4350) 2020-07-22 11:46:04 -07:00
Peter Law
29dec525e7 Add pydoc_data (#4351)
This appears to be used by jedi at least, so it would be great to
have stubs for it.
2020-07-21 18:14:03 -07:00
Shantanu
bc6da51495 asyncio: export submodules (#4346)
Resolves #4345

Co-authored-by: hauntsaninja <>
2020-07-21 09:34:00 +02:00
Philipp Hahn
e44ac21d98 optparse: option_class is Type[Option] (#4338)
It's a `class`, not an `instance`.

<https://docs.python.org/2.7/library/optparse.html#optparse.OptionParser>
2020-07-17 20:50:02 +02:00
Shantanu
d998d37954 multiprocessing: revert changes to queue classes (#4314)
Partial revert of #4289. Fixes #4313
2020-07-16 15:03:25 -07:00
Sebastian Rittau
5e76f51930 Upgrade to isort 5 (#4323)
This now also reformats imports not at the top of files.
2020-07-16 07:01:57 -07:00
Shantanu
5ecdc08bb1 tarfile: fix arg name (#4326)
And update whitelist since #4322 fixed a thing

Co-authored-by: hauntsaninja <>
2020-07-12 20:27:43 +02:00
Sebastian Rittau
9ad8ed3b75 Introduce Mapping-like protocols (#4325)
typing.Mapping is not a protocol, which has caused problems in the past.
(E.g. python/typeshed#3569, see also python/typeshed#3576.) This
introduces a few narrow protocols to _typeshed.pyi that can be used in
place of Mapping.

Not all uses of Mapping can be replaced. For example, cgi.FieldStorage
explictly checks whether the supplied headers argument is a Mapping
instance.
2020-07-11 17:11:08 -07:00
Jonathan Slenders
028f0d5293 Fix: TarFile.tarinfo is a Type instead of instance. (#4322)
Co-authored-by: Jonathan Slenders <jslender@cisco.com>
2020-07-10 12:22:04 +02:00
Alex Grönholm
ad89dee03b Fixed return type of getaddrinfo() everywhere (#4304) 2020-07-10 10:46:28 +02:00
Joshua Oreman
e6736cde8d ctypes: allow cast() 1st argument to be int and 2nd argument to be Type[py_object] (#4311) 2020-07-10 10:44:23 +02:00
Alex Grönholm
f9d469ac2b Fixed parameter and return types of getnameinfo() everywhere (#4305) 2020-07-03 15:46:02 +02:00
Steve B
c0e9c4f4c5 add overloads for combinations r 2-5 (#4309)
This doesn't cover everything but it means it a lot of common usages the type will be slightly more useful

Co-authored-by: steve brazier <steve.brazier@trioptima.com>
2020-07-03 15:23:43 +02:00
Sebastian Rittau
b8f6d5fc54 Replace a few instances of IO with protocols (#4296) 2020-06-30 18:05:30 -07:00
wouter bolsterlee
83e955b52f Use correct return type annotation for BaseException.with_traceback (#4298)
The return type of the BaseException.with_traceback() method [1] is not
specific enough. The return type is guaranteed to be of the same type as
‘self’, which is usually a subclass of BaseException.

In fact, .with_traceback() returns ‘self’:

    try:
        raise ValueError
    except Exception as exc:
        assert exc.with_traceback(None) is exc

Fix the annotation to reflect this using the self-type annotation
technique described in PEP484 [2], which is supported by (at least)
mypy [3].

[1] https://docs.python.org/3/library/exceptions.html#BaseException.with_traceback
[2] https://www.python.org/dev/peps/pep-0484/#annotating-instance-and-class-methods
[3] https://github.com/python/mypy/issues/1212
2020-06-30 11:40:25 -07:00
Artem Simonov
f0269cd438 fix shutil.chown type annotations (#4294)
According to the official docs, "user can be a system user name or a uid;
the same applies to group".

Co-authored-by: Artem Simonov <artem.simonov@dejero.com>
2020-06-30 09:39:38 +02:00
Jelle Zijlstra
0142a87da8 adjust isort config (#4290)
Fixes #4288.

- Default imports to THIRD_PARTY, so in effect we merge the FIRST_PARTY and THIRD_PARTY stubs. This means import order is no longer affected by whether typing_extensions is installed locally.
- Treat typing_extensions, _typeshed and some others as standard library modules.

Note that isort master is very different from the latest release; we'll have to do something
different if and when the next isort release comes out.
2020-06-29 00:00:21 -07:00