FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-91860: documentation for typing.dataclass_transform field specifier params by debonte · Pull Request #94354 · python/cpython · GitHub

Repository navigation

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .rst  (1) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
36 changes: 35 additions & 1 deletion Doc/library/typing.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ annotations. These include:
*Introducing* :data:`Self`
* :pep:`675`: Arbitrary Literal String Type
*Introducing* :data:`LiteralString`
* :pep:`681`: Data Class Transforms
*Introducing* the :func:`@dataclass_transform<dataclass_transform>` decorator

.. _type-aliases:

Expand Down Expand Up @@ -2528,7 +2530,17 @@ Functions and decorators
For example, type checkers will assume these classes have
``__init__`` methods that accept ``id`` and ``name``.

The arguments to this decorator can be used to customize this behavior:
The decorated class, metaclass, or function may accept the following bool
arguments which type checkers will assume have the same effect as they
would have on the
:func:`@dataclasses.dataclass<dataclasses.dataclass>` decorator: ``init``,
``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``,
``kw_only``, and ``slots``. It must be possible for the value of these
arguments (``True`` or ``False``) to be statically evaluated.

The arguments to the ``dataclass_transform`` decorator can be used to
customize the default behaviors of the decorated class, metaclass, or
function:

* ``eq_default`` indicates whether the ``eq`` parameter is assumed to be
``True`` or ``False`` if it is omitted by the caller.
Expand All @@ -2541,6 +2553,28 @@ Functions and decorators
* Arbitrary other keyword arguments are accepted in order to allow for
possible future extensions.

Type checkers recognize the following optional arguments on field
specifiers:

* ``init`` indicates whether the field should be included in the
synthesized ``__init__`` method. If unspecified, ``init`` defaults to
``True``.
* ``default`` provides the default value for the field.
* ``default_factory`` provides a runtime callback that returns the
default value for the field. If neither ``default`` nor
``default_factory`` are specified, the field is assumed to have no
default value and must be provided a value when the class is
instantiated.
* ``factory`` is an alias for ``default_factory``.
* ``kw_only`` indicates whether the field should be marked as
keyword-only. If ``True``, the field will be keyword-only. If
``False``, it will not be keyword-only. If unspecified, the value of
the ``kw_only`` parameter on the object decorated with
``dataclass_transform`` will be used, or if that is unspecified, the
value of ``kw_only_default`` on ``dataclass_transform`` will be used.
* ``alias`` provides an alternative name for the field. This alternative
name is used in the synthesized ``__init__`` method.

At runtime, this decorator records its arguments in the
``__dataclass_transform__`` attribute on the decorated object.
It has no other runtime effect.
Expand Down

Back | FazBrowse Home | New Git URL