Commit Graph

87 Commits

Author SHA1 Message Date
Pavel Karateev
b459329cec Add __complex__ to complex and __bytes__ to bytes for Python 3.11 (#6369) 2021-11-23 13:28:53 -08:00
Jukka Lehtosalo
25649bc1e5 Add getattr overload variants to help mypy type inference (#6355)
These silence errors about missing type annotations for calls
like these:

```
x = getattr(o, 'a', [])
y = getattr(o, 'b', {})
```

This is basically a generalization of #5518 and other overloads we already
have.

This works around python/mypy#11572. I encountered the issue in several
places when testing recent typeshed against an internal repo.
2021-11-22 11:08:40 +00:00
Sebastian Rittau
a6e369906d max() uses SupportsGreaterThanT (#6342)
Add SupportsGreaterThan and SupportsGreaterThanT

Closes: #6336

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2021-11-21 13:28:46 +01:00
Alex Waygood
5c8e68f0eb Use lowercase set, frozenset and deque where possible (#6346) 2021-11-19 15:05:45 -08:00
Sebastian Rittau
77810277d5 Recommend to use mypy error codes if applicable (#6305) 2021-11-17 21:58:05 -08:00
Alex Waygood
48cfe5d2f4 Further improve pow (#6325) 2021-11-17 21:33:17 -08:00
Alex Waygood
fbb89f9fd5 Fix isort w.r.t. _ast/_collections_abc/_tracemalloc/_warnings (#6329) 2021-11-17 08:29:44 -08:00
Alex Waygood
ce6458cf2b Use _typeshed.SupportsTrunc in builtins (#6326) 2021-11-16 18:45:46 -08:00
Alex Waygood
aa2290e160 Fix print stub (#6314) 2021-11-16 20:11:40 +02:00
Alex Waygood
fd48026e64 Bring _collections_abc closer to runtime definition (#6312) 2021-11-16 09:41:22 -08:00
Alex Waygood
1274445941 Resolve builtins/importlib inconsistencies (#6310) 2021-11-16 15:19:21 +01:00
Alex Waygood
aa7e277adb Harmonise return type of builtins.__import__ and importlib.import_module (#6302)
builtins.__import__ now returns ModuleType instead of Any. In addition, add __getattr__() to ModuleType to ease using imported modules.
2021-11-15 16:21:46 +01:00
Alex Waygood
88f86a0180 Reduce use of Any in builtins (#6292) 2021-11-14 14:02:52 -08:00
Alex Waygood
34c91be7e4 Add @final to NotImplementedType and ellipsis (#6291)
These aren't subclassable at runtime. (Missed these two in my previous PR due to the fact that they're exposed in the `types` module, rather than builtins, at runtime. Also they're both a little weird to say the least, so let's see what the CI thinks...)
2021-11-13 18:45:49 -08:00
Alex Waygood
f6e697f93e Add @final to slice/memoryview/range (#6289)
None of these classes can be subclassed at runtime.
2021-11-13 18:03:56 -08:00
Alex Waygood
3324e2277e Improve stubs for __pow__ (#6287) 2021-11-12 14:09:26 -08:00
Alex Waygood
16a76a604b Make staticmethod/classmethod generic in their return type (#6285) 2021-11-12 17:35:05 +01:00
Alex Waygood
59408d9c9c Add __name__/__qualname__/__wrapped__ to staticmethod/classmethod (#6281) 2021-11-12 12:53:32 +01:00
Alex Waygood
bfdb87b9fd Make callable() return TypeGuard (#6274) 2021-11-12 12:21:53 +01:00
Alex Waygood
4eea13b60f Add `__call__ to staticmethod` (#6275) 2021-11-12 12:05:21 +01:00
Alex Waygood
7f93384e6b Make arguments positional-only for `int, memoryview, classmethod, staticmethod and BaseException` (#6272) 2021-11-09 19:56:09 +01:00
luzpaz
b95b729b9e Fix typos (#6263)
Found via `codespell -q 3 -L alo,asend,ba,nams,spawnve`
2021-11-08 18:23:15 -08:00
Alex Waygood
e3180cd48f Make args positional-only for applicable methods in `list and tuple` (#6259) 2021-11-08 09:47:56 -08:00
Jelle Zijlstra
7c3c9d1a10 Remove workaround for _dict_values (#6250)
The mypy issue was fixed
2021-11-07 15:13:05 -08:00
Alex Waygood
d5d0ba158e Make `__round__ positional-only for float, int, Decimal and SupportsRound` (#6242) 2021-11-07 15:05:18 -08:00
Jelle Zijlstra
6d318e729f Broaden type for set.union (#6249)
`set[int].union(set[str])` is well defined: it returns a set of `int | str`.
2021-11-05 13:27:45 -07:00
Alex Waygood
e7b4b73102 Make args positional-only for `str, bytes and bytearray` (#6248) 2021-11-05 20:53:22 +01:00
Alex Waygood
ac9b0746ec Make method parameters positional-only in `dict, set, frozenset and enumerate` (#6247) 2021-11-05 20:14:07 +01:00
Alex Waygood
8ba9d11cbe Make dunder method args positional-only for object (#6246) 2021-11-05 19:19:08 +01:00
Alex Waygood
a36dc9032f Make `complex and float` dunder methods have positional-only args (#6241) 2021-11-04 22:37:25 +01:00
Alex Waygood
e608205c05 Make bool() args positional-only (#6239) 2021-11-04 20:16:35 +01:00
Alex Waygood
6ed392ba5f Make `type()` method params positional-only (#6238) 2021-11-04 11:48:34 -07:00
Alex Waygood
d0964d2221 Make super() parameters positional-only (#6237) 2021-11-04 11:13:41 -07:00
Alex Waygood
aa9cd1e80e Make `range` parameters positional-only (#6236) 2021-11-04 10:56:16 -07:00
Alex Waygood
4cbc657167 Make getattr() parameters positional-only (#6235) 2021-11-04 18:28:33 +01:00
Alex Waygood
26f2c702d3 Make slice parameters positional-only (#6234) 2021-11-04 15:29:15 +01:00
Alex Waygood
e2ee7c297d Make property method args positional-only (#6231) 2021-11-03 09:33:08 -07:00
Kyle Altendorf
9052674aa8 bytes.fromhex() returns cls instance, not bytes (#6201)
```console
$ cat y.py
import typing

class MyBytes(bytes):
    pass


x = MyBytes.fromhex("abcd")
if typing.TYPE_CHECKING:
    reveal_type(x)
else:
    print(x.__class__.__name__)
```

```console
$ for v in 3.6 3.7 3.8 3.9 3.10; do echo -n "$v: " ; python$v y.py; done
3.6: MyBytes
3.7: MyBytes
3.8: MyBytes
3.9: MyBytes
3.10: MyBytes
```

```console
$ venv/bin/mypy y.py
y.py:9: note: Revealed type is "builtins.bytes"
```
2021-10-25 16:28:33 -07:00
Akuli
994b69ef8f Use lowercase tuple where possible (#6170) 2021-10-14 17:18:19 -07:00
Marti Raudsepp
c38c03bab8 builtins: next() does not allow keyword args for default (#6169) 2021-10-14 09:51:58 +02:00
Shantanu
55cf343ba9 zip: update for PEP 618 (#6123)
Resolves #6122

Co-authored-by: hauntsaninja <>
2021-10-06 12:54:47 -07:00
Akuli
196f69b27e dict.__init__: support dict(string.split(sep) for string in iterable) (#6050) 2021-09-20 13:52:41 +02:00
KotlinIsland
1b5c4e1d57 Add support for dict.{keys,values,items}.mapping (#6039)
Co-authored-by: KotlinIsland <kotlinisland@users.noreply.github.com>
2021-09-19 22:30:14 -07:00
Sebastian Rittau
b562d233ae (a)next only requires __(a)next__, not Iterator (#6036) 2021-09-14 11:43:21 +03:00
Gabe Joseph
92aecadf6b Memoryview.cast: shape= can be tuple of any number of ints (#5918) 2021-08-13 00:04:35 +02:00
Bas van Beek
7edad1034e Use a typevar in object.__new__ (#5891) 2021-08-08 20:45:22 +02:00
Akuli
ce11072dbe Big diff: use lower-case list and dict (#5888) 2021-08-08 09:26:35 -07:00
Akuli
ef5b4b6820 setattr: Any --> object (#5877) 2021-08-08 11:12:23 +02:00
Akuli
ee487304d7 Big diff: Use new "|" union syntax (#5872) 2021-08-08 11:05:21 +02:00
Ron Frederick
309e7bda32 Update builtins.pyi (#5874)
Change getattr/hasattr first argument from Any to object

Fixes #5848
2021-08-07 20:46:03 -07:00