Commit Graph

3700 Commits

Author SHA1 Message Date
Akuli
e9ecea0033 Add options to tkinter widgets (#4363)
In tkinter, `widget['foo'] = bar` and `widget.config(foo=bar)` do the same thing, but they will now type-check differently: the `widget['foo'] = bar` syntax allows 'foo' to be any string (e.g. a variable, not necessarily a Literal) and bar to be any object, while `widget.config(foo=bar)` checks the existence of the option and the type of bar. Similarly, cget takes a Literal argument but __getitem__ takes a string. 

Testing script can still be found at c42a72c53e
2020-08-17 13:59:51 -07:00
Eric Traut
f20c565eb3 Added support in typing.pyi for PEP 612 (ParamSpec and Concatenate) (#4446)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-17 13:49:58 -07:00
Akuli
e1c4d2a713 more permissive type for tkinter fonts (#4453) 2020-08-17 15:52:16 +02:00
Akuli
0ebe4c2b65 fix eval and call return types (#4451) 2020-08-16 12:30:04 -07:00
Shantanu
b438ccc3bc PathLike: change to Protocol (#4447)
Co-authored-by: hauntsaninja <>
2020-08-16 05:15:51 -07:00
Shantanu
3be7918eb2 deprecated: support use as decorator (#4449)
As opposed to just a decorator factory

Co-authored-by: hauntsaninja <>
2020-08-15 21:25:13 -07:00
Eric Traut
e2d335b6ef Contributed stubs for "retry" package (#4428)
Co-authored-by: Eric Traut <erictr@microsoft.com>
Co-authored-by: hauntsaninja <>
2020-08-15 18:29:15 -07:00
Eric Traut
002a444dff Added missing type annotations for fractions and numbers modules. (#4401)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-15 18:28:14 -07:00
Selim Belhaouane
8059ea72f8 Fix type for path in ZipFile.extract (#4445) 2020-08-14 15:15:43 -07:00
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
Toru Ogawa
7643f1e16c Add unsafe_ functions to yaml (#4440)
Close #4439
2020-08-12 15:25:26 +02:00
Sebastian Kreft
3bd5471744 fix: add get_origin to typing_extensions (#4438)
Fixes #4430
2020-08-11 13:45:54 -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
Eric Traut
0ee7b26ce1 Contributed stubs for slugify package (#4429)
Co-authored-by: Eric Traut <erictr@microsoft.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2020-08-10 13:34:47 -07:00
Eric Traut
9a4df32d86 Contributed stubs for cachetools package (#4422)
Co-authored-by: Eric Traut <erictr@microsoft.com>
Co-authored-by: hauntsaninja <>
2020-08-10 13:34:22 -07:00
Eric Traut
224da619f5 Contributed stubs for markdown package (#4426)
Co-authored-by: Eric Traut <erictr@microsoft.com>
Co-authored-by: hauntsaninja <>
2020-08-10 13:33:31 -07:00
Eric Traut
cac35d0631 Contributed stubs for freezegun package (#4425)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:33:09 -07:00
Eric Traut
4b9de7752e Contributed stubs for filelock package (#4424)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:32:51 -07:00
Eric Traut
03a333871a Added stubs for deprecated package (#4423)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:32:35 -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
Eric Traut
030e5ad1dd Added missing type annotations for itsdangerous. (#4416)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 20:48:22 +02:00
Akuli
954ce8c703 create _tkinter stub (#4372) 2020-08-08 14:14:52 +02:00
Eric Traut
adcd691d93 Added missing type annotations in gflags.pyi; removed some functions and methods that no longer exist in the library. (#4417)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 11:34:46 +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
github-actions[bot]
17db12866b Remove unused stubtest whitelist entries (#4420)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-08-07 22:54:07 -07:00
Jukka Lehtosalo
199b262f63 Add back six.moves.urllib.parse.unquote (Python 2) (#4414)
This was accidentally removed in #4287.
2020-08-07 17:56:54 +01:00
Jukka Lehtosalo
57a1a3937a Add back six.StringIO (Python 2) (#4413)
This was accidentally removed in #4287.
2020-08-07 17:41:48 +01:00
Jukka Lehtosalo
7c444365f2 Add back six.moves.range (Python 2) (#4411)
This was accidentally removed in #4287.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2020-08-07 17:20:34 +01:00
Jukka Lehtosalo
29c71ff52a Add back tornado stubs for Python 2 only (#4412)
Tornado ships with inline annotations, but it no longer is Python 2
compatible. I think that it makes sense to keep the legacy stubs for
Python 2 compatibility, at least for a while longer.

This restores stubs removed in #4321, but moves them to
`third_party/2`.
2020-08-07 08:54:57 -07: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
Anders Kaseorg
bb685daad1 Update orjson.pyi from upstream (#4405)
https://github.com/ijl/orjson/blob/master/orjson.pyi

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-08-06 19:40:26 -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
de4ea8681d Removed imported symbols that are not accessed or re-exported (third_party part 4 of 4) (#4391)
* Removed imported symbols that are not accessed or re-exported from within third_party stubs (part 4). These were all identified as unused symbols by the pyright type checker and language server.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 22:11:22 +02:00
Sam Bull
cea32bdc70 Add UserAgent attributes. (#4398) 2020-08-06 19:08:37 +02: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
Eric Traut
e17c6a752e Fixed base classes to avoid "Cannot create consistent method ordering" error. Like the Python interpreter, the pyright type checker reports an error when a class is defined in a way that a deterministic MRO cannot be established. This set of changes eliminates these errors. (#4392)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-05 19:42:48 -07:00
Eric Traut
fe970d1134 Removed imported symbols that are not accessed or re-exported from within third_party stubs (part 3) (#4390)
These were all identified as unused symbols by the pyright type checker and language server. 

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-05 18:51:20 -07:00
Eric Traut
b3929cbcc9 Removed imported symbols that are not accessed or re-exported from within third_party stubs (part 2). (#4389)
These were all identified as unused symbols by the pyright type checker and language server.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-05 18:50:31 -07:00
Eric Traut
94a7a62c65 Removed imported symbols that are not accessed or re-exported from within third_party stubs (part 1). These were all identified as unused symbols by the pyright type checker and language server. (#4388)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-05 18:49:35 -07:00
Adam Hitchcock
3b6925b955 mark deque.rotate arg as having a default (#4386) 2020-08-05 17:35:22 -07:00