Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
gh-116126: Implement PEP 696#116129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
gh-116126: Implement PEP 696#116129
Changes fromall commits
e7ca092828679ed3b472b6e467eefa4858049b077b5cfd5e201b32707a69204a2650080c282978aa5b27bdd01bb2c28b9ab0d467fd7e91e235226b42e079eee0370527b15f1111bd102c54aeed71a348b900cd40c13420b8a08c62613159f4e0435e7d54ace12581d82b5a102a2c48c929b9435326de176f667757efa4ce29ad8432c04c147d4f3fd1a143675890d7919a7b48ef0616b9d4e8422686b9798d1decfbb6405e0ccfeb15aaff986f5aed3e0c0fcf5a3d4b92ea1085f6fdfdb3f053c8c3e0b4File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1616,7 +1616,7 @@ without the dedicated syntax, as documented below. | ||||||||||||||||||||||||||||||
| .. _typevar: | ||||||||||||||||||||||||||||||
| .. class:: TypeVar(name, *constraints, bound=None, covariant=False, contravariant=False, infer_variance=False, default=typing.NoDefault) | ||||||||||||||||||||||||||||||
| Type variable. | ||||||||||||||||||||||||||||||
| @@ -1754,15 +1754,35 @@ without the dedicated syntax, as documented below. | ||||||||||||||||||||||||||||||
| the constraints are evaluated only when the attribute is accessed, not when | ||||||||||||||||||||||||||||||
| the type variable is created (see :ref:`lazy-evaluation`). | ||||||||||||||||||||||||||||||
| .. attribute:: __default__ | ||||||||||||||||||||||||||||||
| The default value of the type variable, or :data:`typing.NoDefault` if it | ||||||||||||||||||||||||||||||
| has no default. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| .. method:: has_default() | ||||||||||||||||||||||||||||||
| Return whether or not the type variable has a default value. This is equivalent | ||||||||||||||||||||||||||||||
| to checking whether :attr:`__default__` is not the :data:`typing.NoDefault` | ||||||||||||||||||||||||||||||
| singleton, except that it does not force evaluation of the | ||||||||||||||||||||||||||||||
| :ref:`lazily evaluated <lazy-evaluation>` default value. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| .. versionchanged:: 3.12 | ||||||||||||||||||||||||||||||
| Type variables can now be declared using the | ||||||||||||||||||||||||||||||
| :ref:`type parameter <type-params>` syntax introduced by :pep:`695`. | ||||||||||||||||||||||||||||||
| The ``infer_variance`` parameter was added. | ||||||||||||||||||||||||||||||
| .. versionchanged:: 3.13 | ||||||||||||||||||||||||||||||
| Support for default values was added. | ||||||||||||||||||||||||||||||
| .. _typevartuple: | ||||||||||||||||||||||||||||||
| .. class:: TypeVarTuple(name, default=typing.NoDefault) | ||||||||||||||||||||||||||||||
| Type variable tuple. A specialized form of :ref:`type variable <typevar>` | ||||||||||||||||||||||||||||||
| that enables *variadic* generics. | ||||||||||||||||||||||||||||||
| @@ -1872,14 +1892,34 @@ without the dedicated syntax, as documented below. | ||||||||||||||||||||||||||||||
| The name of the type variable tuple. | ||||||||||||||||||||||||||||||
| .. attribute:: __default__ | ||||||||||||||||||||||||||||||
| The default value of the type variable tuple, or :data:`typing.NoDefault` if it | ||||||||||||||||||||||||||||||
| has no default. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| .. method:: has_default() | ||||||||||||||||||||||||||||||
| Return whether or not the type variable tuple has a default value. This is equivalent | ||||||||||||||||||||||||||||||
| to checking whether :attr:`__default__` is not the :data:`typing.NoDefault` | ||||||||||||||||||||||||||||||
| singleton, except that it does not force evaluation of the | ||||||||||||||||||||||||||||||
| :ref:`lazily evaluated <lazy-evaluation>` default value. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.11 | ||||||||||||||||||||||||||||||
| .. versionchanged:: 3.12 | ||||||||||||||||||||||||||||||
| Type variable tuples can now be declared using the | ||||||||||||||||||||||||||||||
| :ref:`type parameter <type-params>` syntax introduced by :pep:`695`. | ||||||||||||||||||||||||||||||
| .. versionchanged:: 3.13 | ||||||||||||||||||||||||||||||
| Support for default values was added. | ||||||||||||||||||||||||||||||
| .. class:: ParamSpec(name, *, bound=None, covariant=False, contravariant=False, default=typing.NoDefault) | ||||||||||||||||||||||||||||||
| Parameter specification variable. A specialized version of | ||||||||||||||||||||||||||||||
| :ref:`type variables <typevar>`. | ||||||||||||||||||||||||||||||
| @@ -1948,6 +1988,22 @@ without the dedicated syntax, as documented below. | ||||||||||||||||||||||||||||||
| The name of the parameter specification. | ||||||||||||||||||||||||||||||
| .. attribute:: __default__ | ||||||||||||||||||||||||||||||
| The default value of the parameter specification, or :data:`typing.NoDefault` if it | ||||||||||||||||||||||||||||||
| has no default. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| .. method:: has_default() | ||||||||||||||||||||||||||||||
| Return whether or not the parameter specification has a default value. This is equivalent | ||||||||||||||||||||||||||||||
| to checking whether :attr:`__default__` is not the :data:`typing.NoDefault` | ||||||||||||||||||||||||||||||
| singleton, except that it does not force evaluation of the | ||||||||||||||||||||||||||||||
| :ref:`lazily evaluated <lazy-evaluation>` default value. | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| Parameter specification variables created with ``covariant=True`` or | ||||||||||||||||||||||||||||||
| ``contravariant=True`` can be used to declare covariant or contravariant | ||||||||||||||||||||||||||||||
| generic types. The ``bound`` argument is also accepted, similar to | ||||||||||||||||||||||||||||||
| @@ -1961,6 +2017,10 @@ without the dedicated syntax, as documented below. | ||||||||||||||||||||||||||||||
| Parameter specifications can now be declared using the | ||||||||||||||||||||||||||||||
| :ref:`type parameter <type-params>` syntax introduced by :pep:`695`. | ||||||||||||||||||||||||||||||
| .. versionchanged:: 3.13 | ||||||||||||||||||||||||||||||
| Support for default values was added. | ||||||||||||||||||||||||||||||
| .. note:: | ||||||||||||||||||||||||||||||
| Only parameter specification variables defined in global scope can | ||||||||||||||||||||||||||||||
| be pickled. | ||||||||||||||||||||||||||||||
| @@ -3173,6 +3233,22 @@ Introspection helpers | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.7.4 | ||||||||||||||||||||||||||||||
| .. data:: NoDefault | ||||||||||||||||||||||||||||||
| A sentinel object used to indicate that a type parameter has no default | ||||||||||||||||||||||||||||||
| value. For example: | ||||||||||||||||||||||||||||||
| .. doctest:: | ||||||||||||||||||||||||||||||
| >>> T = TypeVar("T") | ||||||||||||||||||||||||||||||
| >>> T.__default__ is typing.NoDefault | ||||||||||||||||||||||||||||||
| True | ||||||||||||||||||||||||||||||
| >>> S = TypeVar("S", default=None) | ||||||||||||||||||||||||||||||
| >>> S.__default__ is None | ||||||||||||||||||||||||||||||
| True | ||||||||||||||||||||||||||||||
Comment on lines +3244 to +3248 Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Suggested change
MemberAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. I thought of that but it felt out of place in the docs for Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Fair enough -- I thought it was quite nice to see together in one example how the two concepts interrelate, but I definitely don't feel strongly! | ||||||||||||||||||||||||||||||
| .. versionadded:: 3.13 | ||||||||||||||||||||||||||||||
| Constant | ||||||||||||||||||||||||||||||
| -------- | ||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -89,6 +89,8 @@ Interpreter improvements: | ||
| New typing features: | ||
| * :pep:`696`: Type parameters (:data:`typing.TypeVar`, :data:`typing.ParamSpec`, | ||
| and :data:`typing.TypeVarTuple`) now support defaults. | ||
Comment on lines +92 to +93 Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. This feels like a very short description of the changes, considering that it involves a change to CPython's grammar 😃 but we can add a more expansive description later; this is non-blocking | ||
| * :pep:`742`: :data:`typing.TypeIs` was added, providing more intuitive | ||
| type narrowing behavior. | ||
| @@ -850,6 +852,10 @@ typing | ||
| an item of a :class:`typing.TypedDict` as read-only for type checkers. | ||
| See :pep:`705` for more details. | ||
| * Add :data:`typing.NoDefault`, a sentinel object used to represent the defaults | ||
| of some parameters in the :mod:`typing` module. (Contributed by Jelle Zijlstra in | ||
| :gh:`116126`.) | ||
| unicodedata | ||
| ----------- | ||
Uh oh!
There was an error while loading.Please reload this page.