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
10c9d8cfce
Add @final to many unsubclassable stdlib classes ( #6299 )
2021-11-15 14:45:24 +01:00
Alex Waygood
5b94c6a94d
Improve stubs for collections.defaultdict ( #6294 )
2021-11-15 14:07:16 +01:00
Alex Waygood
cec4a85147
Improve stub for collections.deque ( #6293 )
2021-11-15 14:05:07 +01:00
Jelle Zijlstra
0860a911e9
typing_extensions: add Self, Required, NotRequired ( #6296 )
2021-11-14 23:45:35 +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
Jelle Zijlstra
9eabedca5f
Make NoReturn a SpecialForm ( #6290 )
...
This is consistent with the runtime definition: https://github.com/python/cpython/blob/main/Lib/typing.py#L434 .
The previous definition was wrong; NoReturn is not and should not be equivalent to None. This fixes an issue in pyanalyze where it was interpreting NoReturn as equivalent to None.
2021-11-12 17:34:44 -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
Jelle Zijlstra
fecf258b42
typing_extensions.get_type_hints exists only in 3.7+ ( #6283 )
2021-11-12 17:45:25 +02: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
Nikita Sobolev
cb64e814a1
Adds missing constants to sqlite3.dbapi2 ( #6279 )
2021-11-12 12:14:37 +01:00
Alex Waygood
4eea13b60f
Add `__call__ to staticmethod` ( #6275 )
2021-11-12 12:05:21 +01:00
KotlinIsland
7d9d670ff9
add TypeGuard to some inspect functions ( #6107 )
2021-11-09 20:08:14 +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
Thomas Grainger
50dff2454a
add contextlib.chdir ( #6191 )
2021-11-08 11:54:51 -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
KotlinIsland
b8cbac800f
Make types.coroutine return Awaitable ( #6255 )
2021-11-08 12:34:42 +01:00
Jelle Zijlstra
7c3c9d1a10
Remove workaround for _dict_values ( #6250 )
...
The mypy issue was fixed
2021-11-07 15:13:05 -08:00
Áron Ricardo Perez-Lopez
a88ae10186
Add missing magic properties to TypedDict ( #6203 )
2021-11-07 15:06:14 -08:00
Alex Waygood
d5d0ba158e
Make `__round__ positional-only for float, int, Decimal and SupportsRound` ( #6242 )
2021-11-07 15:05:18 -08:00
Oz Anani
4601581e83
Update ModuleType.__file__ to be Optional ( #6186 )
...
Per the Python documentation, `ModuleType.__file__` is `Optional`: https://docs.python.org/3/reference/import.html#file__
2021-11-07 06:03:01 -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
Tomaz-Vieira
8bda66a737
lru_cache preserves signature of wrapped function ( #6221 )
...
Update pytype for a fix to ParamSpec as argument to Generic
2021-11-03 10:08:52 +01:00
Shantanu
c0675a797f
tempfile: add ignore_cleanup_errors to TemporaryDirectory ( #6226 )
2021-11-02 20:25:58 -07:00
Shantanu
38ab20926f
pathlib: update for py310 ( #6225 )
2021-11-02 20:23:30 -07:00
Yehuda Davis
3d5f35c33b
pathlib: add newline to write_text() method ( #6224 )
...
Closes #6223
2021-11-02 19:46:50 -07:00
EXPLOSION
f4143c40e8
Update SupportsIndex support for math and cmath ( #6216 )
...
* SupportsIndex for cmath
* Don't support __index__ on <3.7
2021-10-31 11:32:56 +01:00
Bas van Beek
05cc30b8da
Allow math functions to accept objects implementing the __index__ protocol ( #6211 )
2021-10-29 22:17:51 +02:00
EXPLOSION
41591f2fcd
Use TypedDicts for logging.config.dictConfig ( #6193 )
...
Co-authored-by: Akuli <akuviljanen17@gmail.com >
2021-10-27 10:48:51 +03: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
Eric Werner
fd35084768
Update ModuleType to have __path__ ( #6200 )
...
Co-authored-by: Akuli <akuviljanen17@gmail.com >
2021-10-25 23:21:05 +03:00
Akuli
ece04a288e
Use TypeVar for WeakMethod ( #6199 )
2021-10-25 12:52:02 +02:00