Ken Jin
b2f3f8e3d8
bpo-44098: Drop ParamSpec from most ``__parameters__`` in typing generics (GH-26013)
...
Added two new attributes to ``_GenericAlias``:
* ``_typevar_types``, a single type or tuple of types indicating what types are treated as a ``TypeVar``. Used for ``isinstance`` checks.
* ``_paramspec_tvars ``, a boolean flag which guards special behavior for dealing with ``ParamSpec``. Setting it to ``True`` means this class deals with ``ParamSpec``.
Automerge-Triggered-By: GH:gvanrossum
2021-05-12 22:24:35 -07:00
Yurii Karabas
c40486a32d
bpo-38908: Fix issue when non runtime_protocol failed to raise TypeError ( #26067 )
2021-05-12 08:47:49 -07:00
Dong-hee Na
f4013eba41
typing: format patch with make patchcheck (GH-25919)
2021-05-06 02:08:20 +09:00
Jelle Zijlstra
b115579734
bpo-38352: Add to typing.__all__ ( #25821 )
...
This adds IO, TextIO, BinaryIO, Match, and Pattern.
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-05-04 11:29:49 +02:00
larryhastings
2f2b69855d
bpo-43901: Lazy-create an empty annotations dict in all unannotated user classes and modules ( #25623 )
...
Change class and module objects to lazy-create empty annotations dicts on demand. The annotations dicts are stored in the object's `__dict__` for backwards compatibility.
2021-04-29 20:09:08 -07:00
Ken Jin
05ab4b60ab
bpo-43766: Implement PEP 647 (User-Defined Type Guards) in typing.py ( #25282 )
2021-04-27 07:31:04 -07:00
Ken Jin
1b1f9852bd
bpo-42904: Change search order of typing.get_type_hints eval ( #25632 )
...
While surprising (searching globals before locals in one specific case), this is needed for backwards compatibility.
2021-04-26 10:31:21 -07:00
Pablo Galindo
b0544ba77c
bpo-38605: Revert making 'from __future__ import annotations' the default (GH-25490)
...
This reverts commits 044a1048ca
and 1be456ae9d
, adapting the code to changes that happened after it.
2021-04-21 12:41:19 +01:00
Victor Stinner
a6a5c91b1e
bpo-40443: Remove unused imports (GH-25429)
...
* pyclbr no longer uses copy
* typing no longer uses ast
Issue discovered by pyflakes.
2021-04-16 11:26:06 +02:00
Karthikeyan Singaravelan
a9cf69df2e
bpo-41515: Fix KeyError raised in get_type_hints (GH-25352)
...
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Co-authored-by: efahl <36704995+efahl@users.noreply.github.com>
2021-04-12 11:17:25 -07:00
Ken Jin
852150ddfe
bpo-42904: Fix get_type_hints for class local namespaces (GH-24201)
2021-04-12 10:23:12 -07:00
Jelle Zijlstra
9045919bfa
bpo-43772: Fix TypeVar.__ror__ (GH-25339)
2021-04-10 20:00:05 -07:00
Jelle Zijlstra
522433601a
bpo-43783: Add ParamSpecArgs/Kwargs (GH-25298)
2021-04-10 19:57:05 -07:00
Ken Jin
ace008c531
Fix various ParamSpec errors in typing (GH-24176)
...
1. ParamSpec -> TypeVar for ``typing.Concatenate``
2. ParamSpec's call signature should align with its documentation.
Noticed in GH-24169
2021-01-10 16:11:41 -08:00
Ken Jin
11276cd9c4
bpo-41559: Documentation for PEP 612 (GH-24000)
2021-01-01 16:45:50 -08:00
Ross
c1af128f5a
bpo-41781: Fix typo in internal function name in typing (GH-23957)
2020-12-29 13:55:28 +02:00
Ken Jin
efb1f0918f
bpo-42740: Support PEP 604, 612 for typing.py get_args and get_origin (GH-23942)
2020-12-28 18:26:19 -08:00
Ken Jin
4140f10a16
bpo-42740: Fix get_args for PEP 585 collections.abc.Callable (GH-23963)
...
PR 1/2. Needs backport to 3.9.
2020-12-28 12:06:19 -08:00
kj
73607be686
bpo-41559: Implement PEP 612 - Add ParamSpec and Concatenate to typing ( #23702 )
2020-12-23 20:33:48 -08:00
kj
463c7d3d14
bpo-42195: Ensure consistency of Callable's __args__ in collections.abc and typing (GH-23060)
2020-12-13 10:38:24 -08:00
Alex Grönholm
67b769f515
bpo-42059: Fix required/optional keys for TypedDict(..., total=False) (GH-22736)
2020-12-10 13:49:05 -08:00
Yurii Karabas
1b54077ff6
bpo-42345: Fix hash implementation of typing.Literal (GH-23383)
...
Fix hash implementation of `typing.Literal`.
Update docs regarding `typing.Litaral` caching.
Base implementation was done in PR #23294 .
2020-11-19 08:17:38 -08:00
Yurii Karabas
f03d318ca4
bpo-42345: Fix three issues with typing.Literal parameters (GH-23294)
...
Literal equality no longer depends on the order of arguments.
Fix issue related to `typing.Literal` caching by adding `typed` parameter to `typing._tp_cache` function.
Add deduplication of `typing.Literal` arguments.
2020-11-16 18:23:19 -08:00
kj
1f7dfb277e
bpo-42233: Correctly repr GenericAlias when used with typing module (GH-23081)
...
Noticed by @serhiy-storchaka in the bpo. `typing`'s types were not showing the parameterized generic.
Eg. previously:
```python
>>> typing.Union[dict[str, float], list[int]]
'typing.Union[dict, list]'
```
Now:
```python
>>> typing.Union[dict[str, float], list[int]]
'typing.Union[dict[str, float], list[int]]'
```
Automerge-Triggered-By: GH:gvanrossum
2020-11-01 10:13:38 -08:00
Mikhail Golubev
4f3c25043d
bpo-41923: PEP 613: Add TypeAlias to typing module ( #22532 )
...
This special marker annotation is intended to help in distinguishing
proper PEP 484-compliant type aliases from regular top-level variable
assignments.
2020-10-07 14:44:31 -07:00
Batuhan Taskaya
044a1048ca
bpo-38605: Make 'from __future__ import annotations' the default (GH-20434)
...
The hard part was making all the tests pass; there are some subtle issues here, because apparently the future import wasn't tested very thoroughly in previous Python versions.
For example, `inspect.signature()` returned type objects normally (except for forward references), but strings with the future import. We changed it to try and return type objects by calling `typing.get_type_hints()`, but fall back on returning strings if that function fails (which it may do if there are future references in the annotations that require passing in a specific namespace to resolve).
2020-10-06 13:03:02 -07:00
Patrick Reader
0705ec8a14
bpo-41792: Add is_typeddict function to typing.py (GH-22254)
...
Closes issue41792.
Also closes https://github.com/python/typing/issues/751 .
2020-09-15 21:58:32 -07:00
Maggie Moss
1b4552c5e8
bpo-41428: Implementation for PEP 604 (GH-21515)
...
See https://www.python.org/dev/peps/pep-0604/ for more information.
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2020-09-09 21:23:24 +01:00
Graham Bleaney
84ef33c511
Fix typo in typing.py (GH-22121)
...
This is a trivial PR to fix a typo in a docstring in typing.py. From reverences -> references
2020-09-08 15:41:10 -07:00
Victor Stinner
0e95bbf085
bpo-41521, typing: Rename _PROTO_WHITELIST to _PROTO_ALLOWLIST ( #21825 )
2020-08-12 10:53:12 +02:00
wyfo
653f420b53
bpo-41341: Recursive evaluation of ForwardRef in get_type_hints ( #21553 )
...
The issue raised by recursive evaluation is infinite recursion with
recursive types. In that case, only the first recursive ForwardRef is
evaluated.
2020-07-22 12:47:28 -07:00
Zackery Spytz
7fed75597f
bpo-39168: Remove the __new__ method of typing.Generic (GH-21327)
...
Automerge-Triggered-By: @gvanrossum
2020-07-04 22:07:43 -07:00
Serhiy Storchaka
2fbc57af85
bpo-40257: Tweak docstrings for special generic aliases. (GH-20022)
...
* Add the terminating period.
* Omit module name for builtin types.
2020-05-10 15:14:27 +03:00
Serhiy Storchaka
0122d48681
bpo-40397: Fix subscription of nested generic alias without parameters. (GH-20021)
2020-05-10 13:39:40 +03:00
Serhiy Storchaka
fcb285609a
bpo-40397: Remove __args__ and __parameters__ from _SpecialGenericAlias (GH-19984)
2020-05-10 11:53:16 +03:00
Serhiy Storchaka
c1c7d8ead9
bpo-40397: Refactor typing._GenericAlias (GH-19719)
...
Make the design more object-oriented.
Split _GenericAlias on two almost independent classes: for special
generic aliases like List and for parametrized generic aliases like List[int].
Add specialized subclasses for Callable, Callable[...], Tuple and Union[...].
2020-05-07 04:09:33 +03:00
Vlad Serebrennikov
138a9b9c2a
bpo-40389: Improve repr of typing.Optional ( #19714 )
2020-04-29 18:06:39 -07:00
Serhiy Storchaka
6292be7adf
bpo-40398: Fix typing.get_args() for special generic aliases. (GH-19720)
2020-04-27 10:27:21 +03:00
Serhiy Storchaka
68b352a698
bpo-40396: Support GenericAlias in the typing functions. (GH-19718)
2020-04-26 21:21:08 +03:00
Nickolena Fisher
cfaf4c09ab
Fix typo in Lib/typing.py (GH-19717)
2020-04-26 10:49:11 -07:00
Serhiy Storchaka
40ded947f8
bpo-40336: Refactor typing._SpecialForm (GH-19620)
2020-04-23 21:26:48 +03:00
HongWeipeng
a25a04fea5
bpo-39942:Fix failure in `TypeVar` when missing `__name__` (GH-19616)
...
https://bugs.python.org/issue39942
2020-04-20 21:01:53 +01:00
Serhiy Storchaka
7e64414f57
bpo-40257: Improve help for the typing module (GH-19546)
...
* Show docstring for special forms.
* Show docstring for special generic aliases.
* Show documentation for __origin__ for generic aliases.
2020-04-18 17:13:21 +03:00
Serhiy Storchaka
f228bf2300
bpo-40187: Refactor typing.TypedDict. (GH-19372)
2020-04-08 11:03:27 +03:00
Serhiy Storchaka
a2ec06938f
bpo-40185: Refactor typing.NamedTuple (GH-19371)
2020-04-08 10:59:04 +03:00
Guido van Rossum
48b069a003
bpo-39481: Implementation for PEP 585 ( #18239 )
...
This implements things like `list[int]`,
which returns an object of type `types.GenericAlias`.
This object mostly acts as a proxy for `list`,
but has attributes `__origin__` and `__args__`
that allow recovering the parts (with values `list` and `(int,)`.
There is also an approximate notion of type variables;
e.g. `list[T]` has a `__parameters__` attribute equal to `(T,)`.
Type variables are objects of type `typing.TypeVar`.
2020-04-07 09:50:06 -07:00
Serhiy Storchaka
6fed3c8540
bpo-40182: Remove the _field_types attribute of the NamedTuple class (GH-19368)
2020-04-05 00:43:20 +03:00
Serhiy Storchaka
a94e6272f1
bpo-36517: Raise error on multiple inheritance with NamedTuple (GH-19363)
2020-04-04 21:31:30 +03:00
Raymond Hettinger
1ae6445391
Convert tuples to sets for faster searches (GH-19365)
2020-04-04 11:03:04 -07:00
ananthan-123
ab6423fe2d
bpo-39572: Document ’total’ flag of TypedDict (GH-18554)
2020-02-18 20:33:05 -08:00