Shantanu and hauntsaninja
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
Shantanu and hauntsaninja
6cdecae6f9
Rename Github workflow ( #7445 )
...
Calling this "stubtest.yml" is a little confusing, since most of the
time stubtest is actually run out of "tests.yml". I renamed the workflow
in #7306 and this gets the filename to match.
Co-authored-by: hauntsaninja <>
2022-03-06 15:24:18 -08:00
Shantanu
77e5a2d468
Upgrade to stubtest with dunder pos only reverted ( #7442 )
2022-03-05 18:38:08 -08:00
Shantanu and hauntsaninja
a5ec3c69b2
bs4: expose several other classes ( #7420 )
...
On the same lines as #7419
These are all imports that are not used within bs4/__init__.py
My main interest here is in exposing NavigableString
Co-authored-by: hauntsaninja <>
2022-03-01 17:59:11 -08:00
Shantanu and hauntsaninja
2f27eaab44
bs4: expose bs4.PageElement ( #7419 )
...
This is generally useful. It's also imported in the source without being
used in bs4/__init__.py which in well maintained packages is a pretty
good marker of intention to export
Co-authored-by: hauntsaninja <>
2022-03-01 16:59:50 -08:00
Shantanu
ebcfe7bc4e
random: use bound methods ( #7408 )
2022-03-01 09:27:44 +01:00
Shantanu
b5f32a609a
random: add new default args in py311 ( #7400 )
2022-03-01 00:19:05 +02:00
Shantanu and hauntsaninja
09c945b32b
http: make __str__ match runtime def ( #7348 )
...
Co-authored-by: hauntsaninja <>
2022-02-21 17:55:29 -08:00
Shantanu and hauntsaninja
c2fb0fb814
Downgrade stubtest a little ( #7346 )
...
Fixes #7344 for now.
As discussed in that issue, I think it might make sense to revert the
change to check positional-only arguments on dunders for now, since it
seems to be mostly busywork and has very little benefit for end users.
However, that'll happen on stubtest master, which typeshed isn't yet
ready for.
Co-authored-by: hauntsaninja <>
2022-02-21 17:05:46 -08:00
Shantanu and hauntsaninja
075b8e02eb
Update stubtest for async and dunder pos only checking ( #7333 )
...
Co-authored-by: hauntsaninja <>
2022-02-21 15:54:16 -08:00
Shantanu and hauntsaninja
65724c254d
select: mark positional-only args ( #7337 )
...
Co-authored-by: hauntsaninja <>
2022-02-20 17:39:24 -08:00
Shantanu
94127ca2f5
builtins: add __build_class__ ( #7324 )
2022-02-20 16:16:07 -08:00
Shantanu
6c08c2f4bd
graphlib: update for py311 ( #7317 )
2022-02-20 15:23:27 -08:00
Shantanu and hauntsaninja
584e18491b
xml.dom.minidom: add Node.__bool__ ( #7323 )
...
Co-authored-by: hauntsaninja <>
2022-02-20 15:22:02 -08:00
Shantanu
2279c87257
collections: fix some Counter nits ( #7313 )
2022-02-20 12:13:49 +02:00
Shantanu
690864c86f
heapq: re-export, add __about__ ( #7308 )
2022-02-20 12:04:44 +02:00
Shantanu
6b29dca128
cgitb: add __UNDEF__ ( #7322 )
2022-02-20 11:51:59 +02:00
Shantanu
991b74e166
math: add exp2 ( #7321 )
2022-02-19 20:57:33 -08:00
Shantanu and hauntsaninja
6985d6a1a1
statistics: update for py311 ( #7320 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 20:53:05 -08:00
Shantanu and hauntsaninja
296920a9e9
zlib: update for py311 ( #7315 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 19:57:43 -08:00
Shantanu and hauntsaninja
8d911a313b
glob: update for py311 ( #7316 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 19:54:45 -08:00
Shantanu and hauntsaninja
0eb6baa663
typing: don't accidentally use typing.Self ( #7318 )
...
We can switch to it when all type checkers have support
Co-authored-by: hauntsaninja <>
2022-02-19 19:53:30 -08:00
Shantanu and hauntsaninja
823592e100
Update stubtest for final checking ( #7312 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 18:53:15 -08:00
Shantanu
06a2024422
decimal: add __libmpdec_version__ ( #7311 )
2022-02-19 18:17:46 -08:00
Shantanu and hauntsaninja
ebdbd564be
sqlalchemy: skip stubtest for now ( #7310 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 17:47:55 -08:00
Shantanu and hauntsaninja
c176911bfb
flask-cors: remove unused allowlist ( #7309 )
...
Co-authored-by: hauntsaninja <>
2022-02-19 17:12:33 -08:00
Shantanu and hauntsaninja
879b617366
Update stubtest for submodule versions, typeddict fix ( #7306 )
...
First step in #7305
Co-authored-by: hauntsaninja <>
2022-02-19 15:53:40 -08:00
Shantanu
feb20fc20a
urllib.request: loosen data type ( #7211 )
...
Fixes #7208
This is what urllib.request claims to support over here:
https://github.com/python/cpython/blob/ad4e8d2b871c4f5bce27520627bbb2e0e544bc24/Lib/urllib/request.py#L1276
There is additional validation logic (e.g. strs don't work), but a lot
of what determines what works is over here:
https://github.com/python/cpython/blob/ad4e8d2b871c4f5bce27520627bbb2e0e544bc24/Lib/http/client.py#L1039
2022-02-15 06:44:28 -08:00
Shantanu and hauntsaninja
a6d9b83263
Add @final to several more stdlib classes ( #7215 )
...
Co-authored-by: hauntsaninja <>
2022-02-14 15:12:40 -08:00
Shantanu and hauntsaninja
3a2ce92d32
singledispatch: fix lint ( #7178 )
...
Co-authored-by: hauntsaninja <>
2022-02-11 17:53:01 -08:00
Shantanu and hauntsaninja
4d21d5a87d
codecs: allow str to bytes decoding for "hex", fix overloads ( #7118 )
...
Fixes #7115
Co-authored-by: hauntsaninja <>
2022-02-03 14:20:11 -08:00
Shantanu
b88a6f19cd
Upgrade black version ( #7089 )
2022-01-30 16:27:06 -08:00
2ad00c9664
Use stubtest 0.920 ( #6589 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com >
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com >
Co-authored-by: Sebastian Rittau <srittau@rittau.biz >
Co-authored-by: Akuli <akuviljanen17@gmail.com >
2021-12-17 13:58:11 +02:00
Shantanu
86da630cff
turtle: improve RawTurtle.screen(s) types ( #6603 )
2021-12-16 14:02:06 +02:00
Shantanu
9aa66f0c37
Run primer on latest Python version ( #6593 )
2021-12-16 08:56:30 +01:00
Shantanu
7103b0be2d
turtle: add RawTurtle.screens ( #6594 )
2021-12-16 08:55:09 +01:00
Shantanu
1b80461b96
mypy_extensions: fix NoReturn, remove inaccurate comment ( #6595 )
2021-12-15 19:45:57 -08:00
Shantanu
d84a03829f
Revert addition of class_getitem to PathLike ( #6591 )
...
This was added in #5869
This breaks all PathLike classes that don't have class_getitem
2021-12-15 19:25:08 -08:00
Shantanu
b345843e56
dbm: fix error type ( #6590 )
...
Surfaced by stubtest upgrade
2021-12-15 17:07:15 -08:00
Shantanu and hauntsaninja
f9cedff5af
ast: allow non-literal strings ( #6566 )
...
Co-authored-by: hauntsaninja <>
2021-12-10 21:48:46 -08:00
2a1ef3735d
random: add VERSION, SystemRandom.getrandbits is not pos only ( #6419 )
...
Co-authored-by: Akuli <akuviljanen17@gmail.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-05 16:52:34 +02:00
Shantanu and hauntsaninja
d453b74ceb
logging: fix various __init__ methods ( #6417 )
...
Co-authored-by: hauntsaninja <>
2021-11-30 23:18:35 -08:00
Shantanu and hauntsaninja
238dff64c9
unittest.mock: add decorate_async_callable, use tuple methods ( #6438 )
...
Co-authored-by: hauntsaninja <>
2021-11-28 21:55:47 -08:00
Shantanu and hauntsaninja
287a9a427e
Fix allowlists ( #6440 )
...
Broken by https://github.com/python/typeshed/pull/6439
Co-authored-by: hauntsaninja <>
2021-11-28 20:18:49 -08:00
Shantanu and hauntsaninja
0bad0691be
threading: fixes for _DummyThread and _RLock ( #6437 )
...
Co-authored-by: hauntsaninja <>
2021-11-28 20:11:54 -08:00
1d335545b2
_osx_support: fix _read_output ( #6436 )
...
* _osx_support: fix _read_output
* [pre-commit.ci] auto fixes from pre-commit.com hooks
Co-authored-by: hauntsaninja <>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-28 20:01:06 -08:00
Shantanu and hauntsaninja
d68a28fb52
ssl: add timeout to get_server_certificate ( #6421 )
...
Co-authored-by: hauntsaninja <>
2021-11-28 12:32:12 +02:00
Shantanu and hauntsaninja
72d804f130
smtplib: add timeout to LMTP ( #6415 )
...
Co-authored-by: hauntsaninja <>
2021-11-28 12:31:18 +02:00
0131f4b868
style: put most recent python branch first ( #6420 )
...
Co-authored-by: hauntsaninja <>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-28 12:05:25 +02:00
Shantanu
5ba7254555
locale: fix positional-only args ( #6413 )
2021-11-28 11:43:46 +02:00
Shantanu
eb16dcc2c1
builtins: change aiter argument name ( #6412 )
2021-11-28 11:41:49 +02:00
Shantanu
c47ed98b3e
dummy_thread/ing: remove in 3.9 ( #6408 )
...
https://bugs.python.org/issue37312
2021-11-27 20:50:14 -08:00
e734231314
typing: add _ProtocolMeta ( #6394 )
...
Co-authored-by: hauntsaninja <>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-27 16:53:36 +02:00
Shantanu
bf92378722
Bump typed-ast version, recommend Python 3.8 for tests ( #6278 )
2021-11-12 02:53:42 -08: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
Shantanu and hauntsaninja
9f691d9c6e
stubtest_third_party: advice for unused allowlist entries ( #6208 )
...
Co-authored-by: hauntsaninja <>
2021-10-27 21:55:18 -07:00
Shantanu and hauntsaninja
55cf343ba9
zip: update for PEP 618 ( #6123 )
...
Resolves #6122
Co-authored-by: hauntsaninja <>
2021-10-06 12:54:47 -07:00
Shantanu and hauntsaninja
c7ac9b6641
markdown: fix type of Pattern ( #6115 )
...
Surfaced weirdly by #6109
Co-authored-by: hauntsaninja <>
2021-10-04 21:35:26 -07:00
Shantanu and hauntsaninja
67e8979ac1
stubtest_third_party: more newlines in printing ( #6060 )
...
Co-authored-by: hauntsaninja <>
2021-09-21 23:16:12 +02:00
Shantanu
8576b344b8
binhex: removed in py311 ( #6011 )
2021-09-10 15:27:24 -07:00
Shantanu and hauntsaninja
c74fd22931
Update pytype ( #6026 )
...
Co-authored-by: hauntsaninja <>
2021-09-11 01:11:05 +03:00
Shantanu and hauntsaninja
2d4fcbc81e
zipfile: py310 changes, fix open ( #5979 )
...
Co-authored-by: hauntsaninja <>
2021-08-28 22:45:01 +02:00
Shantanu and hauntsaninja
ba998cd5f9
multiprocessing.pool: fix __init__ methods ( #5833 )
...
Co-authored-by: hauntsaninja <>
2021-08-28 12:04:08 -07:00
Shantanu and hauntsaninja
670929e908
dateparser: use PEP 604 ( #5977 )
...
Co-authored-by: hauntsaninja <>
2021-08-28 21:03:02 +02:00
Shantanu and hauntsaninja
f6e4c9c38f
Check for PEP 604 usage in CI ( #5903 )
...
Since this is a common review issue and our stubs have all been
converted
Co-authored-by: hauntsaninja <>
2021-08-28 11:37:50 -07:00
Shantanu and hauntsaninja
98846a65e2
More shards for stubtest_third_party ( #5902 )
...
Co-authored-by: hauntsaninja <>
2021-08-09 13:36:54 -07:00
Shantanu and hauntsaninja
76eeeee4c4
[minor] Clearer formatting for stubtest_third_party output ( #5856 )
...
Co-authored-by: hauntsaninja <>
2021-08-05 20:16:46 -07:00
Shantanu
41f4f0f00f
xxhash: add seed arguments, reset method, missing attributes ( #5802 )
...
Update version in METADATA.toml
2021-07-24 14:55:22 +02:00
Shantanu
04f0113d16
dataclasses: work around default factory issues ( #5718 )
2021-07-01 08:07:00 +02:00
Shantanu
7244ea1f71
Test third party stubs with stubtest ( #5615 )
2021-06-13 00:17:40 +02:00
Shantanu and hauntsaninja
e66ceceed0
Rename whitelist to allowlist ( #5614 )
...
Resolves #4436
I want to add stubtest for third party stubs, and figured it'd be easier
to make this change now.
Co-authored-by: hauntsaninja <>
2021-06-10 14:33:44 -07:00
Shantanu
04fb7ceb3c
builtins: add a getattr overload for bool ( #5518 )
...
As brought up in https://github.com/python/typeshed/pull/5516
Alternatives include:
- Use another type var that has a value restriction
- Doing something fancy with Protocols that have a __bool__ that returns
a Literal (which may not work)
- Doing nothing
2021-05-29 07:09:38 -07:00
Shantanu and hauntsaninja
74a8900166
mock: fix overloads ( #5534 )
...
* mock: fix overloads
Fixes #5533 . This changes the order and in some cases removes default
values from new.
* ignore incompatible overlaps
Co-authored-by: hauntsaninja <>
2021-05-26 22:16:51 +02:00
Shantanu
4bfdba71cb
dataclasses: update for py310 ( #5525 )
2021-05-25 14:43:06 +02:00
Shantanu and hauntsaninja
05f91f73b3
Re-enable mypy test suite ( #5526 )
...
Fixes #5505 , in combination with https://github.com/python/mypy/pull/10527
Co-authored-by: hauntsaninja <>
2021-05-25 09:42:18 +01:00
Shantanu
6bb1d885c6
time: fix constants availability ( #5419 )
2021-05-12 08:35:39 +02:00
Shantanu and hauntsaninja
4df940f96d
Update allowlists ( #5417 )
...
Co-authored-by: hauntsaninja <>
2021-05-11 22:11:48 -07:00
Shantanu and hauntsaninja
dd73f117f0
os: fix positional-only args ( #5412 )
...
Co-authored-by: hauntsaninja <>
2021-05-11 10:47:12 +02:00
Shantanu and hauntsaninja
a30ef0db04
pwd: fix positional-only args ( #5413 )
...
Co-authored-by: hauntsaninja <>
2021-05-11 10:46:26 +02:00
Shantanu and hauntsaninja
f720ebb71e
Fix workflow path matching ( #5414 )
...
@Akuli was right in https://github.com/python/typeshed/pull/5407
Co-authored-by: hauntsaninja <>
2021-05-11 10:29:40 +02:00
Shantanu and hauntsaninja
d5fc9a6a80
Run stubtest_unused on Darwin ( #5410 )
...
Fixes #5405
Co-authored-by: hauntsaninja <>
2021-05-11 09:34:10 +03:00
Shantanu and hauntsaninja
5e6fb40b56
Fix stubtest unused script ( #5411 )
...
Contrary to the comment, this wasn't a mypy_primer issue, nor even a
stubtest issue.
Co-authored-by: hauntsaninja <>
2021-05-11 09:24:37 +03:00
Shantanu and hauntsaninja
ee8364c216
Only run mypy primer workflows on stdlib ( #5407 )
...
Co-authored-by: hauntsaninja <>
2021-05-11 09:21:25 +03:00
a91c89ea94
various path stubs: re-export to reduce duplication ( #5382 )
...
Co-authored-by: hauntsaninja <>
Co-authored-by: Akuli <akuviljanen17@gmail.com >
2021-05-10 22:27:13 -07:00
Shantanu and hauntsaninja
0ac3531a93
Update allowlists ( #5409 )
...
Co-authored-by: hauntsaninja <>
2021-05-10 22:19:31 -07:00
Shantanu
482d38044b
statistics: update for py310 ( #5291 )
2021-05-10 15:12:06 -07:00
Shantanu and hauntsaninja
fcdc7a8135
Use full SHA for comment hiding ( #5383 )
...
For whatever reason, looks like GA mandates full SHA
This was added in #5364
Co-authored-by: hauntsaninja <>
2021-05-08 16:52:16 -07:00
Shantanu and hauntsaninja
82fa8473ff
Attempt to fix stubtest unused PR opening ( #5374 )
...
Co-authored-by: hauntsaninja <>
2021-05-09 01:16:04 +03:00
Shantanu and hauntsaninja
9cdd5220c2
Update allowlists ( #5376 )
...
Co-authored-by: hauntsaninja <>
2021-05-08 12:48:12 -07:00
Shantanu and hauntsaninja
3fa5988a2a
Fix allowlist updater script ( #5375 )
...
Co-authored-by: hauntsaninja <>
2021-05-07 23:13:36 -07:00
Shantanu and hauntsaninja
1c76937836
Fix stubtest unused workflow ( #5372 )
...
This got broken during modular typeshed
Co-authored-by: hauntsaninja <>
2021-05-07 22:54:03 -07:00
Shantanu and hauntsaninja
7619a8fb46
typing_extensions: fix positional-only arg ( #5359 )
...
Co-authored-by: hauntsaninja <>
2021-05-06 17:07:43 -07:00
Shantanu and hauntsaninja
bdd5680e7a
Bump pytype ( #5358 )
...
For #5345
Co-authored-by: hauntsaninja <>
2021-05-06 15:33:08 -07:00
Shantanu and hauntsaninja
4bf4d6adb6
Bump pyright ( #5357 )
...
For #5348
Co-authored-by: hauntsaninja <>
2021-05-06 15:26:24 -07:00
Shantanu and hauntsaninja
4a45b1d1b4
enum: update for py310 ( #5314 )
...
I remember there are some subtleties around Enum.__new__, that might be
relevant to StrEnum, but I'm forgetting the details.
I wasn't sure how best to handle the new enum.property. I could also
re-export, or take a more literal interpretation.
Co-authored-by: hauntsaninja <>
2021-05-04 15:12:19 +03:00
Shantanu
1826072dd1
asyncio.subprocess: remove loop in py310 ( #5315 )
2021-05-02 18:56:45 -07:00
Shantanu
3950543bce
traceback: update for py310 ( #5316 )
...
I think technically you need to pass both of value and tb or neither, so
let me know if you think it's worth all the overloads
2021-05-02 18:54:47 -07:00
Shantanu and hauntsaninja
63c4f0b9e5
lzma: mark positional-only args ( #5320 )
...
Co-authored-by: hauntsaninja <>
2021-05-02 18:51:48 -07:00
Shantanu
2d10d2779f
multiprocessing.pool: fix ApplyResult.__init__ ( #5318 )
2021-05-02 18:50:45 -07:00