Matthew Rahtz
7a793a388b
bpo-43224: Implement PEP 646 changes to typing.py (GH-31021)
...
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-03-07 20:02:55 -08:00
James Hilton-Balfe
f391f9bf28
bpo-46170: Improve the error message when subclassing NewType (GH-30268)
...
Co-authored-by: Alex Waygood <alex.waygood@gmail.com>
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2022-03-07 19:50:46 -08:00
Niklas Rosenstein
b465b60604
bpo-41370: Evaluate strings as forward refs in PEP 585 generics (GH-30900)
...
This removes discrepancy between list["int"] and List["int"].
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-03-07 10:02:59 -08:00
Matt Bogosian
2031149b9a
Lib/typing.py copy edits originating from GH-31061 ( #31684 )
2022-03-05 10:51:55 +08:00
Gregory Beauregard
75d2d945b4
bpo-46643: Fix stringized P.args/P.kwargs with get_type_hints (GH-31238)
2022-03-02 17:14:52 -08:00
Nikita Sobolev
20a1c8ee4b
bpo-46195: Do not add `Optional` in `get_type_hints` (GH-30304)
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-03-01 21:29:46 -08:00
Nikita Sobolev
395029b0bd
bpo-46571: improve `typing.no_type_check` to skip foreign objects (GH-31042)
...
There are several changes:
1. We now don't explicitly check for any base / sub types, because new name check covers it
2. I've also checked that `no_type_check` do not modify foreign functions. It was the same as with `type`s
3. I've also covered `except TypeError` in `no_type_check` with a simple test case, it was not covered at all
4. I also felt like adding `lambda` test is a good idea: because `lambda` is a bit of both in class bodies: a function and an assignment
<!-- issue-number: [bpo-46571](https://bugs.python.org/issue46571 ) -->
https://bugs.python.org/issue46571
<!-- /issue-number -->
2022-02-18 17:53:29 -08:00
aha79
6e7b813195
bpo-46333: Honor `module` parameter in ForwardRef (GH-30536)
...
The `module` parameter carries semantic information about the forward ref.
Forward refs are different if they refer to different module even if they
have the same name. This affects the `__eq__`, `__repr__` and `__hash__` methods.
Co-authored-by: Andreas Hangauer <andreas.hangauer@siemens.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2022-02-16 19:28:18 -08:00
97littleleaf11
de6043e596
bpo-46066: Deprecate kwargs syntax for TypedDict definitions (GH-31126)
...
Closes python/typing#981
https://bugs.python.org/issue46066
2022-02-16 19:26:07 -08:00
aha79
b70690bb37
bpo-46333: include `module` in `ForwardRef.__repr__` ( #31283 )
...
The module parameter carries semantic information about the forward ref.
Show to the user that forward refs with same argument but different
module are different.
Co-authored-by: Andreas Hangauer <andreas.hangauer@siemens.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2022-02-12 07:35:57 -08:00
Jelle Zijlstra
243436f377
bpo-46475: Add typing.Never and typing.assert_never (GH-30842)
2022-02-08 10:50:26 -08:00
Gregory Beauregard
c8b62bbe46
bpo-46676: Make ParamSpec args and kwargs equal to themselves (GH-31203)
2022-02-08 09:46:58 +02:00
James Hilton-Balfe
7ba1cc8049
bpo-46534: Implement PEP 673 Self in typing.py (GH-30924)
...
Co-authored-by: Pradeep Kumar Srinivasan <gohanpra@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2022-02-07 12:47:48 -08:00
Matthew Rahtz
a335d98f19
bpo-46589: Improve documentation for typing._GenericAlias (GH-31026)
...
(These should arguably be docstrings per convention in the rest of the file, but it doesn't really matter.)
2022-02-06 17:59:22 -08:00
Gregory Beauregard
77b025be4a
bpo-46655: allow stringized TypeAlias with get_type_hints (GH-31156)
2022-02-06 15:16:22 -08:00
Gregory Beauregard
2f077b6991
Fix __init_subclass__ using self instead of class ( #31135 )
2022-02-05 07:50:00 -08:00
Jelle Zijlstra
abcc3d75f6
bpo-46414: Add typing.reveal_type ( #30646 )
...
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2022-02-01 18:48:55 -08:00
Zackery Spytz
ffa505b580
bpo-46560: Fix a typo in `typing.ParamSpec's` doc string (GH-30995)
2022-01-29 02:08:11 +08:00
Gregory Beauregard
5445e173e7
bpo-46553: allow bare typing.ClassVar annotations ( #30983 )
...
These are used in the wild and covered by dataclasses unit tests.
Several static type checkers support this pattern.
2022-01-28 08:58:39 -08:00
Serhiy Storchaka
ecfacc362d
bpo-44791: Fix substitution of ParamSpec in Concatenate with different parameter expressions (GH-27518)
...
* Substitution with a list of types returns now a tuple of types.
* Substitution with Concatenate returns now a Concatenate with
concatenated lists of arguments.
* Substitution with Ellipsis is not supported.
2022-01-27 14:34:55 +02:00
Gregory Beauregard
ced50051bb
bpo-46539: Pass status of special typeforms to forward references (GH-30926)
...
Previously this didn't matter because there weren't any valid code paths
that could trigger a type check with a special form, but after the bug
fix for `Annotated` wrapping special forms it's now possible to annotate
something like `Annotated['ClassVar[int]', (3, 4)]`. This change would
also be needed for proposed future changes, such as allowing `ClassVar`
and `Final` to nest each other in dataclasses.
2022-01-26 19:11:51 -08:00
Gregory Beauregard
e1abffca45
bpo-46491: Allow Annotated on outside of Final/ClassVar (GH-30864)
...
We treat Annotated type arg as class-level annotation. This exempts it from checks against Final and ClassVar in order to allow using them in any nesting order.
Automerge-Triggered-By: GH:gvanrossum
2022-01-24 22:37:15 -08:00
Nikita Sobolev
c144d93631
bpo-46470: remove unused branch from `typing._remove_dups_flatten` (GH-30780)
...
The branch was a remnant of old 3.6 typing.Union implementation.
2022-01-24 23:42:54 +08:00
Jelle Zijlstra
0bbf30e2b9
bpo-46342: make @typing.final introspectable (GH-30530)
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2022-01-12 11:38:25 -08:00
Arie Bovenberg
081a214008
bpo-46244: Remove __slots__ from typing.TypeVar, .ParamSpec ( #30444 )
...
* add missing __slots__ to typing._TypeVarLike
* add news entry
* remove slots from _TypeVarLike base classes
* cleanup diff
* fix broken link in blurb
2022-01-11 07:43:39 +08:00
Ken Jin
d6e1374716
bpo-45755: [typing] Reveal class attributes of generic in generic aliases in `dir()` (GH-29962)
2021-12-16 22:29:59 +08:00
Alex Waygood
93c65df83c
bpo-44353: Correct docstring for `NewType` ( #29785 )
...
The docstring for `typing.NewType` is no longer strictly accurate, now that `NewType` is a class, rather than a function
2021-11-25 20:55:15 -08:00
Serhiy Storchaka
634984d7db
bpo-45679: Fix caching of multi-value typing.Literal (GH-29334)
...
Literal[True, 2] is no longer equal to Literal[1, 2].
2021-10-31 10:22:16 +02:00
Dong-hee Na
15ad52fbf6
bpo-45489: Update ForwardRef to support | operator. (GH-28991)
2021-10-17 00:12:58 +09:00
Nikita Sobolev
784905dbef
bpo-45166: fixes `get_type_hints` failure on `Final` (GH-28279)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-09-25 10:56:22 +02:00
Yurii Karabas
c11956a8bd
bpo-45121: Fix RecursionError when calling Protocol.__init__ from a subclass' __init__ (GH-28206)
2021-09-08 18:25:09 +08:00
Yurii Karabas
0635e201be
bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121)
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-09-02 18:17:13 +02:00
Ken Jin
23384a1749
bpo-44524: Don't modify MRO when inheriting from typing.Annotated (GH-27841)
2021-08-25 21:13:59 +03:00
Serhiy Storchaka
4ceec49559
bpo-44524: Do not set _name of _SpecialForm without need (GH-27861)
...
Because setting non-empty _name affects behavior of other code.
In most cases __name__ can be derived from __origin__.__name__.
2021-08-21 09:47:59 +03:00
Yurii Karabas
a3a4d20d67
bpo-44524: Fix cryptic TypeError message when trying to subclass special forms in `typing` (GH-27710)
...
This was a Python 3.9 regression.
2021-08-18 21:08:32 +02:00
Bas van Beek
8bdf12e99a
bpo-44524: Fix an issue wherein `_GenericAlias._name` was not properly set for specialforms (GH-27614)
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-08-06 15:36:35 +02:00
Serhiy Storchaka
3875a69547
bpo-44801: Check arguments in substitution of ParamSpec in Callable (GH-27585)
2021-08-04 20:07:01 +02:00
Serhiy Storchaka
043cd60abe
bpo-44806: Fix __init__ in subclasses of protocols (GH-27545)
...
Non-protocol subclasses of protocol ignore now the __init__ method
inherited from protocol base classes.
2021-08-02 18:23:22 +02:00
Serhiy Storchaka
f92b9133ef
bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515)
...
For example Callable[P, T][[int], str, float] will now raise an error.
Use also term "arguments" instead of "parameters" in error
message for too few/many arguments.
2021-08-02 09:17:46 +03:00
Yurii Karabas
ea4673ed07
bpo-44747: Refactor usage of sys._getframe at typing module ( #27387 )
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-07-30 15:49:24 +02:00
Yurii Karabas
7b975f81e4
bpo-44761: Change default value of NewType __module__ attr (GH-27406)
2021-07-30 14:56:12 +02:00
Hasan
2b8ad9e6c5
bpo-44732: Rename types.Union to types.UnionType ( #27342 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2021-07-26 18:00:21 +02:00
Serhiy Storchaka
435a0334d3
bpo-44676: Serialize the union type using only public API (GH-27323)
...
Remove also the _from_args() constructor.
2021-07-24 21:26:02 +03:00
Serhiy Storchaka
0828423127
bpo-44731: Simplify the union type implementation (GH-27318)
...
Remove direct support of typing types in the C code because they are already supported by defining methods __or__ and __ror__ in the Python code.
2021-07-24 14:34:48 +01:00
Serhiy Storchaka
e89ef0ad2a
bpo-44353: Expand NewType tests for complex __qualname__. ( #27311 )
...
Make NewType pickleable by name.
2021-07-24 09:40:08 +02:00
Yurii Karabas
fe13f0b0f6
bpo-44676: Add ability to serialize types.Union (GH-27244)
2021-07-23 11:47:00 +02:00
Yurii Karabas
96c4cbd96c
bpo-44353: Implement typing.NewType __call__ method in C ( #27262 )
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Co-authored-by: Denis Laxalde <denis@laxalde.org>
2021-07-22 23:06:54 +02:00
Yurii Karabas
965dd76e90
bpo-44353: Refactor typing.NewType into callable class (GH-27250)
2021-07-20 15:20:38 +02:00
Yurii Karabas
bce1418541
bpo-44524: Add missed __name__ and __qualname__ to typing module objects ( #27237 )
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-07-19 19:22:12 +02:00
Serhiy Storchaka
0fd27375ca
bpo-44654: Refactor and clean up the union type implementation (GH-27196)
2021-07-17 22:44:10 +03:00