mirror of
https://github.com/python/cpython.git
synced 2025-11-24 12:20:42 +00:00
[3.14] gh-105812: Use the `:deco:` role in place of manual decorator markup (GH-139619) (#139627)
(cherry picked from commit 3195da0b1a)
This commit is contained in:
parent
04d75658ac
commit
b1fa3414b3
12 changed files with 36 additions and 37 deletions
|
|
@ -336,7 +336,7 @@ Collections Abstract Base Classes -- Detailed Descriptions
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
In CPython, generator-based coroutines (:term:`generators <generator>`
|
In CPython, generator-based coroutines (:term:`generators <generator>`
|
||||||
decorated with :func:`@types.coroutine <types.coroutine>`) are
|
decorated with :deco:`types.coroutine`) are
|
||||||
*awaitables*, even though they do not have an :meth:`~object.__await__` method.
|
*awaitables*, even though they do not have an :meth:`~object.__await__` method.
|
||||||
Using ``isinstance(gencoro, Awaitable)`` for them will return ``False``.
|
Using ``isinstance(gencoro, Awaitable)`` for them will return ``False``.
|
||||||
Use :func:`inspect.isawaitable` to detect them.
|
Use :func:`inspect.isawaitable` to detect them.
|
||||||
|
|
@ -354,7 +354,7 @@ Collections Abstract Base Classes -- Detailed Descriptions
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
In CPython, generator-based coroutines (:term:`generators <generator>`
|
In CPython, generator-based coroutines (:term:`generators <generator>`
|
||||||
decorated with :func:`@types.coroutine <types.coroutine>`) are
|
decorated with :deco:`types.coroutine`) are
|
||||||
*awaitables*, even though they do not have an :meth:`~object.__await__` method.
|
*awaitables*, even though they do not have an :meth:`~object.__await__` method.
|
||||||
Using ``isinstance(gencoro, Coroutine)`` for them will return ``False``.
|
Using ``isinstance(gencoro, Coroutine)`` for them will return ``False``.
|
||||||
Use :func:`inspect.isawaitable` to detect them.
|
Use :func:`inspect.isawaitable` to detect them.
|
||||||
|
|
|
||||||
|
|
@ -317,7 +317,7 @@ Module contents
|
||||||
:func:`!field`, then the class attribute for this field will be
|
:func:`!field`, then the class attribute for this field will be
|
||||||
replaced by the specified *default* value. If *default* is not
|
replaced by the specified *default* value. If *default* is not
|
||||||
provided, then the class attribute will be deleted. The intent is
|
provided, then the class attribute will be deleted. The intent is
|
||||||
that after the :func:`@dataclass <dataclass>` decorator runs, the class
|
that after the :deco:`dataclass` decorator runs, the class
|
||||||
attributes will all contain the default values for the fields, just
|
attributes will all contain the default values for the fields, just
|
||||||
as if the default value itself were specified. For example,
|
as if the default value itself were specified. For example,
|
||||||
after::
|
after::
|
||||||
|
|
@ -427,7 +427,7 @@ Module contents
|
||||||
:data:`typing.Any` is used for ``type``. The values of *init*,
|
:data:`typing.Any` is used for ``type``. The values of *init*,
|
||||||
*repr*, *eq*, *order*, *unsafe_hash*, *frozen*,
|
*repr*, *eq*, *order*, *unsafe_hash*, *frozen*,
|
||||||
*match_args*, *kw_only*, *slots*, and *weakref_slot* have
|
*match_args*, *kw_only*, *slots*, and *weakref_slot* have
|
||||||
the same meaning as they do in :func:`@dataclass <dataclass>`.
|
the same meaning as they do in :deco:`dataclass`.
|
||||||
|
|
||||||
If *module* is defined, the :attr:`!__module__` attribute
|
If *module* is defined, the :attr:`!__module__` attribute
|
||||||
of the dataclass is set to that value.
|
of the dataclass is set to that value.
|
||||||
|
|
@ -435,12 +435,12 @@ Module contents
|
||||||
|
|
||||||
The *decorator* parameter is a callable that will be used to create the dataclass.
|
The *decorator* parameter is a callable that will be used to create the dataclass.
|
||||||
It should take the class object as a first argument and the same keyword arguments
|
It should take the class object as a first argument and the same keyword arguments
|
||||||
as :func:`@dataclass <dataclass>`. By default, the :func:`@dataclass <dataclass>`
|
as :deco:`dataclass`. By default, the :deco:`dataclass`
|
||||||
function is used.
|
function is used.
|
||||||
|
|
||||||
This function is not strictly required, because any Python
|
This function is not strictly required, because any Python
|
||||||
mechanism for creating a new class with :attr:`~object.__annotations__` can
|
mechanism for creating a new class with :attr:`~object.__annotations__` can
|
||||||
then apply the :func:`@dataclass <dataclass>` function to convert that class to
|
then apply the :deco:`dataclass` function to convert that class to
|
||||||
a dataclass. This function is provided as a convenience. For
|
a dataclass. This function is provided as a convenience. For
|
||||||
example::
|
example::
|
||||||
|
|
||||||
|
|
@ -569,7 +569,7 @@ Post-init processing
|
||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
self.c = self.a + self.b
|
self.c = self.a + self.b
|
||||||
|
|
||||||
The :meth:`~object.__init__` method generated by :func:`@dataclass <dataclass>` does not call base
|
The :meth:`~object.__init__` method generated by :deco:`dataclass` does not call base
|
||||||
class :meth:`!__init__` methods. If the base class has an :meth:`!__init__` method
|
class :meth:`!__init__` methods. If the base class has an :meth:`!__init__` method
|
||||||
that has to be called, it is common to call this method in a
|
that has to be called, it is common to call this method in a
|
||||||
:meth:`__post_init__` method::
|
:meth:`__post_init__` method::
|
||||||
|
|
@ -599,7 +599,7 @@ parameters to :meth:`!__post_init__`. Also see the warning about how
|
||||||
Class variables
|
Class variables
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
One of the few places where :func:`@dataclass <dataclass>` actually inspects the type
|
One of the few places where :deco:`dataclass` actually inspects the type
|
||||||
of a field is to determine if a field is a class variable as defined
|
of a field is to determine if a field is a class variable as defined
|
||||||
in :pep:`526`. It does this by checking if the type of the field is
|
in :pep:`526`. It does this by checking if the type of the field is
|
||||||
:data:`typing.ClassVar`. If a field is a ``ClassVar``, it is excluded
|
:data:`typing.ClassVar`. If a field is a ``ClassVar``, it is excluded
|
||||||
|
|
@ -612,7 +612,7 @@ module-level :func:`fields` function.
|
||||||
Init-only variables
|
Init-only variables
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Another place where :func:`@dataclass <dataclass>` inspects a type annotation is to
|
Another place where :deco:`dataclass` inspects a type annotation is to
|
||||||
determine if a field is an init-only variable. It does this by seeing
|
determine if a field is an init-only variable. It does this by seeing
|
||||||
if the type of a field is of type :class:`InitVar`. If a field
|
if the type of a field is of type :class:`InitVar`. If a field
|
||||||
is an :class:`InitVar`, it is considered a pseudo-field called an init-only
|
is an :class:`InitVar`, it is considered a pseudo-field called an init-only
|
||||||
|
|
@ -646,7 +646,7 @@ Frozen instances
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
It is not possible to create truly immutable Python objects. However,
|
It is not possible to create truly immutable Python objects. However,
|
||||||
by passing ``frozen=True`` to the :func:`@dataclass <dataclass>` decorator you can
|
by passing ``frozen=True`` to the :deco:`dataclass` decorator you can
|
||||||
emulate immutability. In that case, dataclasses will add
|
emulate immutability. In that case, dataclasses will add
|
||||||
:meth:`~object.__setattr__` and :meth:`~object.__delattr__` methods to the class. These
|
:meth:`~object.__setattr__` and :meth:`~object.__delattr__` methods to the class. These
|
||||||
methods will raise a :exc:`FrozenInstanceError` when invoked.
|
methods will raise a :exc:`FrozenInstanceError` when invoked.
|
||||||
|
|
@ -662,7 +662,7 @@ must use :meth:`!object.__setattr__`.
|
||||||
Inheritance
|
Inheritance
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
When the dataclass is being created by the :func:`@dataclass <dataclass>` decorator,
|
When the dataclass is being created by the :deco:`dataclass` decorator,
|
||||||
it looks through all of the class's base classes in reverse MRO (that
|
it looks through all of the class's base classes in reverse MRO (that
|
||||||
is, starting at :class:`object`) and, for each dataclass that it finds,
|
is, starting at :class:`object`) and, for each dataclass that it finds,
|
||||||
adds the fields from that base class to an ordered mapping of fields.
|
adds the fields from that base class to an ordered mapping of fields.
|
||||||
|
|
@ -786,7 +786,7 @@ for :attr:`!x` when creating a class instance will share the same copy
|
||||||
of :attr:`!x`. Because dataclasses just use normal Python class
|
of :attr:`!x`. Because dataclasses just use normal Python class
|
||||||
creation they also share this behavior. There is no general way
|
creation they also share this behavior. There is no general way
|
||||||
for Data Classes to detect this condition. Instead, the
|
for Data Classes to detect this condition. Instead, the
|
||||||
:func:`@dataclass <dataclass>` decorator will raise a :exc:`ValueError` if it
|
:deco:`dataclass` decorator will raise a :exc:`ValueError` if it
|
||||||
detects an unhashable default parameter. The assumption is that if
|
detects an unhashable default parameter. The assumption is that if
|
||||||
a value is unhashable, it is mutable. This is a partial solution,
|
a value is unhashable, it is mutable. This is a partial solution,
|
||||||
but it does protect against many common errors.
|
but it does protect against many common errors.
|
||||||
|
|
@ -820,7 +820,7 @@ default value have the following special behaviors:
|
||||||
:meth:`~object.__get__` or :meth:`!__set__` method is called rather than returning or
|
:meth:`~object.__get__` or :meth:`!__set__` method is called rather than returning or
|
||||||
overwriting the descriptor object.
|
overwriting the descriptor object.
|
||||||
|
|
||||||
* To determine whether a field contains a default value, :func:`@dataclass <dataclass>`
|
* To determine whether a field contains a default value, :deco:`dataclass`
|
||||||
will call the descriptor's :meth:`!__get__` method using its class access
|
will call the descriptor's :meth:`!__get__` method using its class access
|
||||||
form: ``descriptor.__get__(obj=None, type=cls)``. If the
|
form: ``descriptor.__get__(obj=None, type=cls)``. If the
|
||||||
descriptor returns a value in this case, it will be used as the
|
descriptor returns a value in this case, it will be used as the
|
||||||
|
|
|
||||||
|
|
@ -690,7 +690,7 @@ The :mod:`functools` module defines the following functions:
|
||||||
return not arg
|
return not arg
|
||||||
|
|
||||||
``@singledispatchmethod`` supports nesting with other decorators such as
|
``@singledispatchmethod`` supports nesting with other decorators such as
|
||||||
:func:`@classmethod<classmethod>`. Note that to allow for
|
:deco:`classmethod`. Note that to allow for
|
||||||
``dispatcher.register``, ``singledispatchmethod`` must be the *outer most*
|
``dispatcher.register``, ``singledispatchmethod`` must be the *outer most*
|
||||||
decorator. Here is the ``Negator`` class with the ``neg`` methods bound to
|
decorator. Here is the ``Negator`` class with the ``neg`` methods bound to
|
||||||
the class, rather than an instance of the class::
|
the class, rather than an instance of the class::
|
||||||
|
|
@ -712,8 +712,7 @@ The :mod:`functools` module defines the following functions:
|
||||||
return not arg
|
return not arg
|
||||||
|
|
||||||
The same pattern can be used for other similar decorators:
|
The same pattern can be used for other similar decorators:
|
||||||
:func:`@staticmethod<staticmethod>`,
|
:deco:`staticmethod`, :deco:`~abc.abstractmethod`, and others.
|
||||||
:func:`@abstractmethod<abc.abstractmethod>`, and others.
|
|
||||||
|
|
||||||
.. versionadded:: 3.8
|
.. versionadded:: 3.8
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1390,7 +1390,7 @@ These can be used as types in annotations. They all support subscription using
|
||||||
Using ``Annotated[T, x]`` as an annotation still allows for static
|
Using ``Annotated[T, x]`` as an annotation still allows for static
|
||||||
typechecking of ``T``, as type checkers will simply ignore the metadata ``x``.
|
typechecking of ``T``, as type checkers will simply ignore the metadata ``x``.
|
||||||
In this way, ``Annotated`` differs from the
|
In this way, ``Annotated`` differs from the
|
||||||
:func:`@no_type_check <no_type_check>` decorator, which can also be used for
|
:deco:`no_type_check` decorator, which can also be used for
|
||||||
adding annotations outside the scope of the typing system, but
|
adding annotations outside the scope of the typing system, but
|
||||||
completely disables typechecking for a function or class.
|
completely disables typechecking for a function or class.
|
||||||
|
|
||||||
|
|
@ -2835,7 +2835,7 @@ Protocols
|
||||||
---------
|
---------
|
||||||
|
|
||||||
The following protocols are provided by the :mod:`!typing` module. All are decorated
|
The following protocols are provided by the :mod:`!typing` module. All are decorated
|
||||||
with :func:`@runtime_checkable <runtime_checkable>`.
|
with :deco:`runtime_checkable`.
|
||||||
|
|
||||||
.. class:: SupportsAbs
|
.. class:: SupportsAbs
|
||||||
|
|
||||||
|
|
@ -3016,7 +3016,7 @@ Functions and decorators
|
||||||
The presence of ``@dataclass_transform()`` tells a static type checker that the
|
The presence of ``@dataclass_transform()`` tells a static type checker that the
|
||||||
decorated object performs runtime "magic" that
|
decorated object performs runtime "magic" that
|
||||||
transforms a class in a similar way to
|
transforms a class in a similar way to
|
||||||
:func:`@dataclasses.dataclass <dataclasses.dataclass>`.
|
:deco:`dataclasses.dataclass`.
|
||||||
|
|
||||||
Example usage with a decorator function:
|
Example usage with a decorator function:
|
||||||
|
|
||||||
|
|
@ -3054,14 +3054,14 @@ Functions and decorators
|
||||||
|
|
||||||
The ``CustomerModel`` classes defined above will
|
The ``CustomerModel`` classes defined above will
|
||||||
be treated by type checkers similarly to classes created with
|
be treated by type checkers similarly to classes created with
|
||||||
:func:`@dataclasses.dataclass <dataclasses.dataclass>`.
|
:deco:`dataclasses.dataclass`.
|
||||||
For example, type checkers will assume these classes have
|
For example, type checkers will assume these classes have
|
||||||
``__init__`` methods that accept ``id`` and ``name``.
|
``__init__`` methods that accept ``id`` and ``name``.
|
||||||
|
|
||||||
The decorated class, metaclass, or function may accept the following bool
|
The decorated class, metaclass, or function may accept the following bool
|
||||||
arguments which type checkers will assume have the same effect as they
|
arguments which type checkers will assume have the same effect as they
|
||||||
would have on the
|
would have on the
|
||||||
:func:`@dataclasses.dataclass<dataclasses.dataclass>` decorator: ``init``,
|
:deco:`dataclasses.dataclass` decorator: ``init``,
|
||||||
``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``,
|
``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``,
|
||||||
``kw_only``, and ``slots``. It must be possible for the value of these
|
``kw_only``, and ``slots``. It must be possible for the value of these
|
||||||
arguments (``True`` or ``False``) to be statically evaluated.
|
arguments (``True`` or ``False``) to be statically evaluated.
|
||||||
|
|
@ -3189,12 +3189,12 @@ Functions and decorators
|
||||||
|
|
||||||
.. function:: get_overloads(func)
|
.. function:: get_overloads(func)
|
||||||
|
|
||||||
Return a sequence of :func:`@overload <overload>`-decorated definitions for
|
Return a sequence of :deco:`overload`-decorated definitions for
|
||||||
*func*.
|
*func*.
|
||||||
|
|
||||||
*func* is the function object for the implementation of the
|
*func* is the function object for the implementation of the
|
||||||
overloaded function. For example, given the definition of ``process`` in
|
overloaded function. For example, given the definition of ``process`` in
|
||||||
the documentation for :func:`@overload <overload>`,
|
the documentation for :deco:`overload`,
|
||||||
``get_overloads(process)`` will return a sequence of three function objects
|
``get_overloads(process)`` will return a sequence of three function objects
|
||||||
for the three defined overloads. If called on a function with no overloads,
|
for the three defined overloads. If called on a function with no overloads,
|
||||||
``get_overloads()`` returns an empty sequence.
|
``get_overloads()`` returns an empty sequence.
|
||||||
|
|
@ -3351,7 +3351,7 @@ Introspection helpers
|
||||||
If *globalns* or *localns* is not given, appropriate namespace
|
If *globalns* or *localns* is not given, appropriate namespace
|
||||||
dictionaries are inferred from *obj*.
|
dictionaries are inferred from *obj*.
|
||||||
* ``None`` is replaced with :class:`types.NoneType`.
|
* ``None`` is replaced with :class:`types.NoneType`.
|
||||||
* If :func:`@no_type_check <no_type_check>` has been applied to *obj*, an
|
* If :deco:`no_type_check` has been applied to *obj*, an
|
||||||
empty dictionary is returned.
|
empty dictionary is returned.
|
||||||
* If *obj* is a class ``C``, the function returns a dictionary that merges
|
* If *obj* is a class ``C``, the function returns a dictionary that merges
|
||||||
annotations from ``C``'s base classes with those on ``C`` directly. This
|
annotations from ``C``'s base classes with those on ``C`` directly. This
|
||||||
|
|
|
||||||
|
|
@ -586,7 +586,7 @@ Available Functions
|
||||||
The deprecation message passed to the decorator is saved in the
|
The deprecation message passed to the decorator is saved in the
|
||||||
``__deprecated__`` attribute on the decorated object.
|
``__deprecated__`` attribute on the decorated object.
|
||||||
If applied to an overload, the decorator
|
If applied to an overload, the decorator
|
||||||
must be after the :func:`@overload <typing.overload>` decorator
|
must be after the :deco:`~typing.overload` decorator
|
||||||
for the attribute to exist on the overload as returned by
|
for the attribute to exist on the overload as returned by
|
||||||
:func:`typing.get_overloads`.
|
:func:`typing.get_overloads`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2558,7 +2558,7 @@ instance dictionary. In contrast, non-data descriptors can be overridden by
|
||||||
instances.
|
instances.
|
||||||
|
|
||||||
Python methods (including those decorated with
|
Python methods (including those decorated with
|
||||||
:func:`@staticmethod <staticmethod>` and :func:`@classmethod <classmethod>`) are
|
:deco:`staticmethod` and :deco:`classmethod`) are
|
||||||
implemented as non-data descriptors. Accordingly, instances can redefine and
|
implemented as non-data descriptors. Accordingly, instances can redefine and
|
||||||
override methods. This allows individual instances to acquire behaviors that
|
override methods. This allows individual instances to acquire behaviors that
|
||||||
differ from other instances of the same class.
|
differ from other instances of the same class.
|
||||||
|
|
@ -2991,7 +2991,7 @@ class method ``__class_getitem__()``.
|
||||||
|
|
||||||
When defined on a class, ``__class_getitem__()`` is automatically a class
|
When defined on a class, ``__class_getitem__()`` is automatically a class
|
||||||
method. As such, there is no need for it to be decorated with
|
method. As such, there is no need for it to be decorated with
|
||||||
:func:`@classmethod<classmethod>` when it is defined.
|
:deco:`classmethod` when it is defined.
|
||||||
|
|
||||||
|
|
||||||
The purpose of *__class_getitem__*
|
The purpose of *__class_getitem__*
|
||||||
|
|
|
||||||
|
|
@ -858,8 +858,8 @@ Some smaller changes made to the core Python language are:
|
||||||
|
|
||||||
.. XXX bytearray doesn't seem to be documented
|
.. XXX bytearray doesn't seem to be documented
|
||||||
|
|
||||||
* When using :class:`@classmethod <classmethod>` and
|
* When using :deco:`classmethod` and
|
||||||
:class:`@staticmethod <staticmethod>` to wrap
|
:deco:`staticmethod` to wrap
|
||||||
methods as class or static methods, the wrapper object now
|
methods as class or static methods, the wrapper object now
|
||||||
exposes the wrapped function as their :attr:`~method.__func__`
|
exposes the wrapped function as their :attr:`~method.__func__`
|
||||||
attribute.
|
attribute.
|
||||||
|
|
|
||||||
|
|
@ -847,8 +847,8 @@ Other Language Changes
|
||||||
respectively.
|
respectively.
|
||||||
(Contributed by Joshua Bronson, Daniel Pope, and Justin Wang in :issue:`31861`.)
|
(Contributed by Joshua Bronson, Daniel Pope, and Justin Wang in :issue:`31861`.)
|
||||||
|
|
||||||
* Static methods (:func:`@staticmethod <staticmethod>`) and class methods
|
* Static methods (:deco:`staticmethod`) and class methods
|
||||||
(:func:`@classmethod <classmethod>`) now inherit the method attributes
|
(:deco:`classmethod`) now inherit the method attributes
|
||||||
(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``,
|
(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``,
|
||||||
``__annotations__``) and have a new ``__wrapped__`` attribute.
|
``__annotations__``) and have a new ``__wrapped__`` attribute.
|
||||||
Moreover, static methods are now callable as regular functions.
|
Moreover, static methods are now callable as regular functions.
|
||||||
|
|
|
||||||
|
|
@ -402,8 +402,8 @@ the heap. Should speed up dispatch in the interpreter.
|
||||||
.. nonce: eUn4p5
|
.. nonce: eUn4p5
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Static methods (:func:`@staticmethod <staticmethod>`) and class methods
|
Static methods (:deco:`staticmethod`) and class methods
|
||||||
(:func:`@classmethod <classmethod>`) now inherit the method attributes
|
(:deco:`classmethod`) now inherit the method attributes
|
||||||
(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``,
|
(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``,
|
||||||
``__annotations__``) and have a new ``__wrapped__`` attribute. Patch by
|
``__annotations__``) and have a new ``__wrapped__`` attribute. Patch by
|
||||||
Victor Stinner.
|
Victor Stinner.
|
||||||
|
|
@ -454,7 +454,7 @@ file locations.
|
||||||
.. nonce: VSF3vg
|
.. nonce: VSF3vg
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Static methods (:func:`@staticmethod <staticmethod>`) are now callable as
|
Static methods (:deco:`staticmethod`) are now callable as
|
||||||
regular functions. Patch by Victor Stinner.
|
regular functions. Patch by Victor Stinner.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
||||||
|
|
@ -2953,7 +2953,7 @@ support for Metadata 2.2.
|
||||||
.. nonce: xTUyyX
|
.. nonce: xTUyyX
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Remove the :func:`@asyncio.coroutine <asyncio.coroutine>` :term:`decorator`
|
Remove the :deco:`asyncio.coroutine` :term:`decorator`
|
||||||
enabling legacy generator-based coroutines to be compatible with async/await
|
enabling legacy generator-based coroutines to be compatible with async/await
|
||||||
code; remove :class:`asyncio.coroutines.CoroWrapper` used for wrapping
|
code; remove :class:`asyncio.coroutines.CoroWrapper` used for wrapping
|
||||||
legacy coroutine objects in the debug mode. The decorator has been
|
legacy coroutine objects in the debug mode. The decorator has been
|
||||||
|
|
|
||||||
|
|
@ -664,7 +664,7 @@ for :func:`os.fcopyfile` available in macOs.
|
||||||
.. nonce: l1p7CJ
|
.. nonce: l1p7CJ
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
For :func:`@dataclass <dataclasses.dataclass>`, add *weakref_slot*.
|
For :deco:`~dataclasses.dataclass`, add *weakref_slot*.
|
||||||
The new parameter defaults to ``False``. If true, and if
|
The new parameter defaults to ``False``. If true, and if
|
||||||
``slots=True``, add a slot named ``"__weakref__"``, which will allow instances to be
|
``slots=True``, add a slot named ``"__weakref__"``, which will allow instances to be
|
||||||
weakref'd. Contributed by Eric V. Smith
|
weakref'd. Contributed by Eric V. Smith
|
||||||
|
|
|
||||||
|
|
@ -1999,7 +1999,7 @@ with an escape character.
|
||||||
.. nonce: vi2bP-
|
.. nonce: vi2bP-
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`@warnings.deprecated <warnings.deprecated>` now copies the coroutine
|
:deco:`warnings.deprecated` now copies the coroutine
|
||||||
status of functions and methods so that :func:`inspect.iscoroutinefunction`
|
status of functions and methods so that :func:`inspect.iscoroutinefunction`
|
||||||
returns the correct result.
|
returns the correct result.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue