Commit Graph
4341 Commits
Author SHA1 Message Date
61b22db692 Add many missing __match_args__ attributes (#7556)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-03-26 19:36:28 +00:00
Stefan ZabkaandGitHub f40747f81d Add Server to asyncio.base_events' __all__ (#7554)
Add Server to asyncio.base_events' __all__

Closes #7552
2022-03-25 20:32:28 +00:00
Jelle ZijlstraandGitHub 0322fb0905 errno: fix typo and add missing constants (#7553) 2022-03-25 20:30:26 +01:00
Sebastian RittauandGitHub 9a76b13127 Add _typeshed.Incomplete (#7535)
Closes: #5613
2022-03-25 10:18:09 +01:00
Alex WaygoodandGitHub b63c963077 Use conditional overloads to simplify several stdlib functions (#7540) 2022-03-25 08:47:03 +01:00
HarryandGitHub b69d64df60 allow start_server to accept a Sequence of hosts (#7546) 2022-03-24 19:44:45 +01:00
Alex WaygoodandGitHub d086488e0e Revert "Use import instead of type alias in email/message.pyi" (#7548)
Let's see if this is fixed in mypy 0.942.

This reverts the changes made in #7022, which was a hack to fix #7019
2022-03-24 11:22:30 -07:00
Rebecca ChenandGitHub f39f20c4dd Fix the type signature of multiprocessing.managers.BaseManager.__exit__ (#7529)
All parameters should accept None.
2022-03-22 07:32:15 +01:00
HarryandGitHub eb252afb18 random.sample no longer accepts sets in Python 3.11 (#7528)
As of 3.11, population must be a Sequence. Automatic conversion of sets to lists is no longer supported.
2022-03-21 18:58:22 -07:00
HarryandGitHub 71d14b3ee1 random.sample: counts takes Iterable[int] (#7527) 2022-03-21 18:18:24 -07:00
Alex WaygoodandGitHub 74ecce5b68 Improve host parameter of socket.getaddrinfo() (#7518)
As pointed out by @srittau in #7517, `bytearray` [is redundant](https://docs.python.org/3/library/typing.html#typing.ByteString) in a union where `bytes` is also in the union.
2022-03-20 23:35:03 +00:00
Alex GrönholmandGitHub 3a8d121890 Fix type of the "host" parameter in asyncio getaddrinfo() (#7517) 2022-03-20 13:17:55 +00:00
Jelle ZijlstraandGitHub b7d129f727 PEP 604: Remove some more uses of Union/Optional (#7515)
The following patterns still break mypy:

1. `type[]` at top level fails
2. `tuple[T1, T2]` at top level fails (but `tuple[T1, ...]` is fine)
3. `T1 | Callable[..., T2 | T3]` fails, but only <=3.9

This PR cleans up usage of `Union` and `Optional` outside these patterns.
2022-03-19 08:23:00 -07:00
1acc8f3bd6 Use PEP 604 syntax wherever possible, part II (#7514)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-03-19 14:27:35 +00:00
340c6c97ed Add mypy error codes to type: ignores, remove unused ignores (#7504)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-03-19 13:10:00 +00:00
Alex WaygoodandGitHub 4308915e06 Make __hash__ a ClassVar for several classes where it is set to None (#7485) 2022-03-19 05:59:10 -07:00
5c44ae4f8c Improve various signatures that shouldn't be async def, but currently are (#7491)
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
2022-03-18 20:54:39 -07:00
Marc MuellerandGitHub 37a981920f Use TypeVar for pkgutil.extend_path (#7473) 2022-03-18 20:44:38 -07:00
Jelle ZijlstraandGitHub 4d23919200 Add typing.TypeVarTuple, Unpack, assert_type (#7501)
python/cpython#31021 and python/cpython#30843.
2022-03-18 18:03:45 +00:00
Jelle ZijlstraandGitHub ba475a04c3 multiprocessing: args can be any Iterable (#7500)
https://github.com/python/cpython/blob/main/Lib/multiprocessing/process.py#L91
2022-03-17 01:44:25 +00:00
Alex WaygoodandGitHub 3ab250eec8 Use PEP 604 syntax wherever possible (#7493) 2022-03-16 16:01:33 +01:00
Jelle ZijlstraandGitHub 3e3cc2a6d6 dict.pop: Remove default for second argument (#7481)
The first overload takes care of the case where there is only one argument, so there should be no default in the second overload.
2022-03-13 13:11:35 +01:00
Jelle ZijlstraandGitHub 9c50fe7b64 Fix overly precise typing.NewType signature (#7474)
`type` is incorrect because `NewType` can also accept another `NewType`: https://peps.python.org/pep-0484/#newtype-helper-function

The return type was also wrong; pre-3.10 `NewType()` doesn't return a type object.
2022-03-11 06:35:45 +00:00
Aaron KauandGitHub a3e62d56fc change Change IO/IOBase.__exit__ return type to None (#7471) 2022-03-10 15:57:05 +01:00
Aaron KauandGitHub bf2049ef18 Change TemporaryFileWrapper.__exit__ return type to None (#7470)
For context we found this from quora/pyanalyze#496, which makes pyanalyze stricter about context managers that may swallow exceptions. tempfile._TemporaryFileWrapper.__exit__ returns whatever its underlying file returns (https://github.com/python/cpython/blob/3.6/Lib/tempfile.py#L502), and file objects don't tend to return anything from __exit__.
2022-03-09 19:34:24 -08:00
Alex WaygoodandGitHub 4e87b9058f Improve collections.Counter stub (#7464) 2022-03-09 12:22:28 +02:00
c987c78077 Remove ClassVar from SSLContext.ssl{object,socket}_class (#7465)
These attributes have class-level defaults, but the docs explicitly state that it's OK to override them on instances.

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-03-09 08:53:18 +00:00
AkuliandGitHub f9cb7c3ed4 Use Literal for statistics.quantiles() (#7463)
I'm going to merge; I think this is consistent with what we've done with e.g. the `byteorder` argument for `int.from_bytes` :)
2022-03-08 21:38:31 +00:00
Alex WaygoodandGitHub db6f912c77 Improve mmap.mmap.__enter__ (#7461)
It returns `Self` at runtime, not `mmap.mmap`, so inheriting from `AbstractContextManager` doesn't really do anything for us.
2022-03-08 07:47:56 -08:00
Henry SchreinerGitHubpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>Alex Waygood
967f83db09 rlcompleter: add attr_matches, global_matches (#7453)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-03-08 00:07:58 +00:00
Alex WaygoodandGitHub f4ae363b56 stdlib: correct many pos-or-kw arg names in dunder methods (#7451) 2022-03-07 16:40:03 +01:00
Jelle ZijlstraandGitHub 675de720d6 Add some missing items to sys.pyi and types.pyi (#7447) 2022-03-07 08:22:08 +01:00
Alex WaygoodandGitHub 947724a5cb stdlib: Add several missing @abstractmethod decorators (#7443) 2022-03-06 16:41:13 -08:00
Jelle ZijlstraandGitHub 2fb9c35ff9 Put shutil.chown back on Windows (#7446)
See #7384 and https://github.com/python/typeshed/pull/7443#issuecomment-1060071944 (thanks @AlexWaygood for diagnosing).
2022-03-06 16:27:24 -08:00
Martin FischerandJelle Zijlstra 8034c1c48c stdlib: shutil.chown does not work on Windows (#7384) 2022-03-06 16:04:05 -08:00
Martin FischerandJelle Zijlstra d63dc4b002 stdlib: dbm.gnu & dbm.ndbm are only available on Unix (#7384) 2022-03-06 16:04:05 -08:00
Martin FischerandJelle Zijlstra 8138981492 stdlib: socket.CMSG_LEN & socket.CMSG_SPACE are only available on Unix (#7384) 2022-03-06 16:04:05 -08:00
Martin FischerandJelle Zijlstra af269057be stdlib: Add errno.EDEADLK 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 182ddd9daf stdlib: Add os.get_handle_inheritable & setter 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra aa383624cf stdlib: Add missing re-exports for UuidCreate, FCICreate, OpenDatabase & CreateRecord 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 77829c5c99 stdlib: Add sys._enablelegacywindowsfsencoding() 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra ec87fbfe88 stdlib: Add email.iterators._structure(msg) 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 352f5c3237 stdlib: Add os.copy_file_range(src, dst, count) 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 0978ef5c60 stdlib: Add signal.pidfd_send_signal(pidfd, sig) 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 81a85f18b6 stdlib: Add os.pidfd_open(pid) 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 9abf314a5b stdlib: Add time.pthread_getcpuclockid(thread_id) 2022-03-06 15:57:52 -08:00
Martin FischerandJelle Zijlstra 14ac9f7557 stdlib: Add urllib.parse.unwrap(url) 2022-03-06 15:57:52 -08:00
Alex WaygoodandGitHub 1a2f718ceb Make several fields read-only for type, staticmethod and classmethod (#7423) 2022-03-06 15:50:26 -08:00
Alex WaygoodandGitHub ea6e06a60d Use bound methods in pydoc (#7426) 2022-03-06 15:49:15 -08:00
ShantanuGitHubhauntsaninja <>
9796b9ed69 Improve open overloads when mode is a literal union (#7428)
As pointed out by @gvanrossum in https://github.com/python/typing/issues/1096

Improves type inference in cases when we know that mode is
OpenBinaryMode, but don't know anything more specific:
```
def my_open(name: str, write: bool):
    mode: Literal['rb', 'wb'] = 'wb' if write else 'rb'
    with open(name, mode) as f:
        reveal_type(f)  # previously typing.IO[Any], now typing.BinaryIO
```

You may be tempted into thinking this is some limitation of type
checkers. mypy does in fact have logic for detecting if we match
multiple overloads and union-ing up the return types of matched
overloads. The problem is the last overload interferes with this logic.
That is, if you remove the fallback overload (prior to this PR), you'd get
"Union[io.BufferedReader, io.BufferedWriter]" in the above example.

Co-authored-by: hauntsaninja <>
2022-03-06 15:45:34 -08:00