Commit Graph
59 Commits
Author SHA1 Message Date
58e083fef9 Marked the bool class as @final because it cannot be subclassed. (#5286)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-05-01 21:38:10 -07:00
dfad2734aa Fixed the type declaration for all_errors in ftplib.pyi. It is supposed to be a variable, not a type alias. (#5271)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-04-30 11:21:54 -07:00
Eric TrautandGitHub f8e70d66e8 Improved overloads for mkstemp and mktemp functions in tempfile.pyi (#5133) 2021-03-23 17:07:46 -07:00
0ec182227c Added a few missing type arguments for generic types used in stdlib stubs
I just found and fixed a bug in pyright's "missing type arguments" check. When type arguments were omitted for a generic type within a subscript expression, the error was being suppressed. With this bug fixed, I found several new cases where type arguments were missing in stdlib stubs. (#5130)

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-03-22 18:28:04 -07:00
29c3d67626 Improved definition of divmod function in builtins (#5114)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-03-15 11:10:09 +01:00
faa5c70f25 Added missing type information for encodings module (#5106)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-03-10 17:18:32 -08:00
c92e3cb228 Update pyright CI test to use the latest version of pyright (1.1.118). (#5092)
Update pyright CI test to use the latest version of pyright (1.1.118). Enable all but one of pyright's strictest checks. Add a "# type: ignore" to `__new__` method in `weakref.KeyRef` because it uses a non-standard name for the `cls` parameter, which is flagged as an error by pyright.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-03-05 12:12:18 -08:00
e2967a8bee Eliminated the use of "bare" TypeVars in stdlib stubs (#5041)
Eliminated the use of "bare" TypeVars (i.e. a TypeVar that appears only once) within generic methods. While not considered an error in PEP 484, these are a common source of bugs in code, and some type checkers (including pytype and pyright) flag them as errors.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-27 19:43:45 -08:00
82cb8c27df Fix conditional imports within collections (#5040)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-26 20:33:33 -08:00
4b4ced5fa0 Added missing type annotations and type arguments (#5070)
Co-authored-by: Eric Traut <erictr@microsoft.com>
Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com>
2021-02-25 15:09:58 -08:00
a1f16da64e Added some missing parameter annotations and type arguments detected by pyright. (#5061)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-23 19:46:53 +01:00
c7c025ae08 Removed a bunch of unused import symbols detected by pyright. (#5060)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-23 19:46:46 +01:00
ffcd592aef Added support for | operator for combining two TypedDict instances (#5054)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-23 10:04:31 +01:00
e717150b23 Suppressed error in filelock stubs (#5039)
Added a # type: ignore comment to the `timeout` property setter in filelock to suppress errors about type mismatch between setter and getter.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-20 18:53:36 -08:00
79113be609 Fixed a few problems with pathlib2 stub (#5037)
It was using a type alias with a forward definition and a bunch of unused imports. 

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-20 13:13:55 -08:00
e4005505b9 Fixed incompatible use of constrained TypeVar in tempfile. (#5043)
The TypeVar `_T` was being used as a type argument for `PathLike`, but `PathLike` requires that its type argument be constrained to `str` or `bytes`, and `_T` didn't provide any such constraint. The easy workaround is to use the TypeVar `AnyStr` instead.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-20 13:11:36 -08:00
c83d1ab0eb Fixed type arguments missing from generic types (#5042)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-20 13:07:06 -08:00
08572d87d8 Fixed a problem with the openssl-python stubs (#5038)
Fixed a problem with the openssl-python stubs. It was using `unicode`, which is not defined in Python 3. I conditionalized its use based on Python version check.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-02-20 13:00:33 -08:00
18a229da97 functools: add type argument to Type annotation (#4977)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-01-27 20:03:20 -08:00
0cf9a38eb8 Addressed minor errors caught by pyright in stdlib stubs (#4880)
* 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.

* Added a few missing types and type arguments. Removed unused import statement. Removed default values that caused overloads to have overlapping signatures.

Co-authored-by: Eric Traut <erictr@microsoft.com>
2021-01-01 15:00:09 +01:00
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
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
Eric TrautandGitHub bbd8c96e34 Added some missing types from various stdlib stubs (#4466) 2020-08-29 16:45:36 -07:00
Eric TrautandGitHub f15db8950e Added missing "math.comb" function, introduced in Python 3.8. (#4489) 2020-08-28 08:39:24 -07:00
189bdfb279 Added support for PEP613 (TypeAlias) in typing.pyi (#4472)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-20 20:45:04 -07:00
8cbf009bb7 Added some missing type annotations within third-party stub files (#4467)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-21 00:51:15 +02:00
Eric TrautandGitHub 52e18e856c Added stubs for aiofiles package (#4421) 2020-08-19 08:33:33 -07:00
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
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
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
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
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
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
cac35d0631 Contributed stubs for freezegun package (#4425)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:33:09 -07:00
4b9de7752e Contributed stubs for filelock package (#4424)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:32:51 -07:00
03a333871a Added stubs for deprecated package (#4423)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-10 13:32:35 -07:00
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
030e5ad1dd Added missing type annotations for itsdangerous. (#4416)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-08 20:48:22 +02:00
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
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
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
439ea4bd8b Added missing import for case.pyi (#4403)
Co-authored-by: Eric Traut <erictr@microsoft.com>
2020-08-06 19:51:52 -07:00
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
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
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
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
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
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
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
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
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
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
Eric TrautandJelle Zijlstra 468d13a205 Modified __add__ method in tuple class (#3252)
Modified __add__ method in tuple class to allow it to accept tuples with different generic parameter types. This allows, for example:
a = (1, )
b = a + (2.4, )
2019-09-30 12:42:40 +02:00
Eric TrautandSebastian Rittau c879ff05aa Changed type of fieldname parameter in DictWriter __init__ method from Sequence[str] to Iterable[str]. This allows it to work with the following code: (#3253) 2019-09-23 18:24:45 +02:00
Eric TrautandSebastian Rittau c65b5cc61c Changed combine method in datetime to use aliased _date and _time types (like all other methods in this class) to avoid namespace collision with date and time methods. (#3251) 2019-09-23 18:23:46 +02:00
Eric TrautandSebastian Rittau ef5fc92b98 Added missing default value annotation (#2841) 2019-03-10 12:19:29 +01:00
Eric TrautandSebastian Rittau 06c682449f Fix inconsistent self/cls parameter names (#2838)
Fixed several inconsistent parameter names so all instance methods take 'self' and all class methods take 'cls'. This avoids warnings or errors from linting tools that enforce standard naming conventions.
2019-03-10 03:17:55 +01:00
Eric TrautandSebastian Rittau 20b3b54460 Changed parameter name of several methods in logging module from 'lvl' to 'level' to match the implementation. Use in a keyword arg of 'lvl' results in runtime errors. (#2840) 2019-03-10 03:04:31 +01:00
Eric TrautandSebastian Rittau 748ad3d21f Removed extraneous import statement that was redefining three symbols in markupsafe/__init__.py. This redefinition triggered type checking/linting errors. (#2842) 2019-03-10 02:57:54 +01:00