Commit Graph

5420 Commits

Author SHA1 Message Date
Jaakko Lappalainen 611fa18b5c Use bytes for resp param of imaplib.Internaldate2tuple (#7892) 2022-05-20 12:45:20 +02:00
Jelle Zijlstra 26fa57ab78 traceback: update for py311 (#7886) 2022-05-19 19:14:12 -07:00
Jelle Zijlstra 0b7df3b2aa dataclasses: fix and sort stubtest complaints (#7888) 2022-05-19 19:13:22 -07:00
Jelle Zijlstra 4220712aab dis: add adaptive argument for 3.11 (#7889) 2022-05-19 18:27:34 -07:00
Jelle Zijlstra 64766c8521 locale: add locale.getencoding (#7887)
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2022-05-19 18:20:16 -07:00
Jelle Zijlstra 6f2c53f3b0 _imp: fix stubtest issues, add Python 3.11 items (#7878) 2022-05-19 14:43:58 +02:00
Jelle Zijlstra 250f3d92e7 ast: fix stubtest issues (#7877)
Add annotations for `_ast.Tuple.dims` and `ast.main()`. Add allowlist comments for others.
2022-05-19 10:13:08 +01:00
Alex Waygood 04dde4d000 enum: More changes for 3.11 (#7862) 2022-05-18 19:35:22 -07:00
Winston Chang 6653be1511 Add overloads for asyncio.sleep() (#7873)
Closes #7866. This adds an overload to `asyncio.sleep()`, so that when it is called _without_ `return=None`, the type checker knows that the return type is `None` instead of `unknown`.

Also related to https://github.com/microsoft/pyright/issues/3475.
2022-05-18 16:19:45 -07:00
Jelle Zijlstra 7998906226 re: 3.11 fixes (#7859) 2022-05-17 21:42:23 -07:00
Jelle Zijlstra bd394d2486 builtins: add BaseException.add_note in py311 (#7860) 2022-05-17 20:32:28 -07:00
Jelle Zijlstra a01f98c361 sqlite3.Blob: fix stubtest errors (#7858) 2022-05-17 19:50:19 -07:00
Jelle Zijlstra 8f5a83516b tempfile.SpooledTemporaryFile: inherit from IOBase on 3.11 (#7802)
python/cpython#29560

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-05-17 18:41:47 -07:00
Jelle Zijlstra eab82c838a asyncio: updates for 3.11 (#7844)
CPython changes:

- https://github.com/python/cpython/commit/13c10bfb777483c7b02877aab029345a056b809c
- https://github.com/python/cpython/commit/9523c0d84f351a610dc651b234461eb015fa3b82
- https://github.com/python/cpython/commit/9f04ee569cebb8b4c6f04bea95d91a19c5403806
- https://github.com/python/cpython/commit/d03acd7270d66ddb8e987f9743405147ecc15087
- https://github.com/python/cpython/commit/195a46d6ffd4cec6c5fb69c5890f8b1758ac91ca

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-05-17 18:11:29 -07:00
Carl Meyer 7ca8303672 CodeType.co_linetable is of type bytes (#7856)
Although the specific format of the bytes is opaque and undocumented, the fact that it will be bytes is stable.

This is necessary in order for type checkers to allow creating one code object from another, since the `lnotab`
positional argument to `__init__` is typed as bytes.
2022-05-17 11:49:12 -07:00
Alex Waygood 171ea08f0d Add __class_getitem__ to classes in logging and csv (#7830)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-05-17 14:12:42 +01:00
Sebastian Rittau f21898abb9 Improve I/O types in socket.pyi (#7852)
* Use a protocol for socket.sendfile() "file" argument.
* Use concrete classes for socket.makefile() return types.
2022-05-17 06:11:50 -07:00
Sebastian Rittau e1bd9c73f0 Use I/O protocols in codecs.pyi (#7849) 2022-05-17 15:01:57 +02:00
Alex Waygood e9526faf40 Various py311 removals (#7836) 2022-05-16 17:28:13 -07:00
Jukka Lehtosalo 21a81c6575 sqlite3: Avoid optional type for 'description' (#7842)
Use the `| Any` trick instead, since it seems that in a lot of
code the value can be predicted to be non-`None` (if a query
has been executed previously, I think).

The docs don't mention the possibility of this being `None`, so
it seems likely that a lot of code doesn't check for it:
https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.description
2022-05-16 14:54:15 +02:00
Jukka Lehtosalo dca33e5f8d gettext: Make GNUTranslations.CONTEXT not final (#7841) 2022-05-16 13:32:02 +02:00
Adam Simpkins 40d6592ba1 tarfile.gettarinfo() accepts PathLike objects (#7832)
This method has accepted PathLike objects since Python 3.6
(https://github.com/python/cpython/pull/512)
2022-05-11 22:02:04 -07:00
Rick Voormolen 693c4f19b4 Mark Future._callbacks as a @property (#7829) 2022-05-11 11:13:29 +02:00
Shantanu a27f15ef0e builtins: reorder overloads (#7828)
This is slightly more friendly for --no-strict-optional (gross)
2022-05-11 01:00:52 -07:00
Shantanu 75d2f6c881 statistics: improve type for median_grouped (#7825) 2022-05-11 08:06:35 +02:00
Shantanu 032787d867 builtins: accept old-style iterables to iter (#7817) 2022-05-10 09:06:31 +02:00
Alex Waygood ac30b96d14 Use str instead of Text (#7812) 2022-05-09 20:47:11 +01:00
Jelle Zijlstra 5c13f8bbce ast: FormattedValue.conversion cannot be None (#7810)
```
In [4]: ast.dump(ast.parse('f"{x!r}"'))
Out[4]: "Module(body=[Expr(value=JoinedStr(values=[FormattedValue(value=Name(id='x', ctx=Load()), conversion=114)]))], type_ignores=[])"

In [5]: ast.dump(ast.parse('f"{x}"'))
Out[5]: "Module(body=[Expr(value=JoinedStr(values=[FormattedValue(value=Name(id='x', ctx=Load()), conversion=-1)]))], type_ignores=[])"
```
(On 3.9 but I don't think this has changed since 3.6.)

The stdlib also assumes this: https://github.com/python/cpython/blob/main/Lib/ast.py#L1211 (`chr(None)` doesn't work).
2022-05-08 19:42:38 -07:00
Mix 32f474d6ef subprocess: improve Popen.returncode type (#7806) 2022-05-08 16:53:44 -07:00
Alex Waygood 3ed7e3ba50 csv: annotate keyword arguments in various functions and methods (#7788) 2022-05-07 21:01:20 -07:00
Alex Waygood 4e946b74bf csv.pyi: minor cleanup (#7790) 2022-05-07 10:49:27 +02:00
Jelle Zijlstra 6b5068b11d Add new arguments to subprocess.Popen (#7798) 2022-05-07 09:49:23 +03:00
Alex Waygood 16ca92fac7 Add http.HTTPMethod (#7784)
https://github.com/python/cpython/pull/91997

`description` isn't actually read-only at runtime, but I don't think there's any other way of telling type checkers "this is an attribute that the members have, not a member itself". And pretending it's a property is already what we do for `HTTPStatus`, which has the same issue.
2022-05-06 23:48:52 -07:00
Jelle Zijlstra 031c998055 enum: Add member and nonmember (#7795)
python/cpython#92366
2022-05-07 07:48:34 +01:00
Akuli 58f2e317c1 tkinter: add _windowingsystem() (#7803) 2022-05-06 23:45:47 -07:00
Jelle Zijlstra 2fc719d3cf tkinter: add info_patchlevel for 3.11 (#7794) 2022-05-07 09:25:55 +03:00
Jelle Zijlstra 963b8aa2f7 add os.login_tty for 3.11 (#7800)
python/cpython#29658
2022-05-06 22:54:58 -07:00
Jelle Zijlstra 4856064ed7 sys.flags: add safe_path for 3.11 (#7797)
python/cpython#31542
2022-05-06 22:50:30 -07:00
Jelle Zijlstra ab1dcafec2 socket: add SO_INCOMING_CPU for 3.11 (#7801)
python/cpython#31237
2022-05-06 22:46:34 -07:00
Jelle Zijlstra c93f262427 Add closure argument to exec() (#7793)
python/cpython#92204
2022-05-06 22:46:01 -07:00
Alex Waygood 5f557176b4 _csv.pyi: minor cleanup (#7789) 2022-05-06 11:38:19 -07:00
Rebecca Chen 46fc7768c4 Add missing 'headers' property to urllib.error.HTTPError. (#7783)
Seen here: https://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError.headers
2022-05-05 14:05:51 -07:00
Sam Ezeh caaf0f1bf2 datetime: add UTC alias (#7779) 2022-05-04 00:00:08 -07:00
Jelle Zijlstra b1ccd03d51 Add GenericAlias.__unpacked__ (#7774) 2022-05-03 15:41:45 +02:00
Sam Ezeh ef878e925f Add weakref_slot parameter to @dataclass decorator (#7772)
https://github.com/python/cpython/pull/92160
2022-05-03 10:37:06 +01:00
Sam Ezeh bf30fbd3d3 Add ZipFile.mkdir (new in 3.11) (#7769) 2022-05-02 07:32:37 -06:00
Jelle Zijlstra d77d848975 contextlib: Use bound TypeVar (#7764) 2022-05-02 08:57:21 +02:00
Jelle Zijlstra 9effb643b3 logging.LoggerAdapter: Use a bound TypeVar (#7763) 2022-05-02 08:56:32 +02:00
Jim Crist-Harif 23e77931f9 Fix fields arg type in dataclass.make_dataclass (#7761)
The `fields` arg of `dataclass.make_dataclass` should have type:

```
Iterable[str | tuple[str, type] | tuple[str, type, Any]]
```

Previously the 3-tuple had type `tuple[str, type, Field[Any]]`, which
was incorrect for two reasons:

- The third element in the tuple doesn't have to be a ``Field``, it can
be any RHS value valid when defining a dataclass field (e.g.
``myfield: type = ...``). This may be a ``Field``, but it may also be a
default value like ``0``. ``Any`` is the proper type here.
- The type stubs for ``dataclass.field`` lie and say that this function
returns a value with the same type as ``default``. This avoids the need
for a mypy/pyright plugin that understands dataclasses, but also means
there is no way to create a ``Field`` object that these tools
understand, since they don't think ``dataclasses.field`` returns a
``Field`` instance.

With this change, the following valid dataclasses code passes both mypy
and pyright:

```python
from dataclasses import field, make_dataclass

Point = make_dataclass("Point", [("x", int), ("y", int), ("z", int, 0)])
Point2 = make_dataclass("Point2", [("x", int), ("y", int), ("z", int, field(default=0))])
```
2022-04-30 23:02:40 -06:00
fedor e8e74ba26f Use object for value annotation in Enum.__new__ (#7752)
This pull request reverts part of #2539 that brought back a bug discussed in https://github.com/python/mypy/issues/5788 and initially fixed in #2539

In short, the issue was that the following program always resulted
in an error when running mypy with the `--disallow-any-expr` flag:

    from enum import Enum

    class MyEnum(Enum):
        FOO = 1
        BAR = 2

    blah = MyEnum   # Error here

The root issue was that because the signature of Enum's
`__new__` method was typed as:

    def __new__(self: Type[T], value: Any) -> T: ...

This caused mypy to decide that the type of `MyEnum` was
`(Any) -> MyEnum`. This is correct based on the current
type signature, but unfortunately means that it becomes
impossible to ever use enums with the `--disallow-any-expr` flag.
2022-04-30 12:36:35 -06:00