Modernize docstring, imports
diff --git a/src/attrs/custom_fields.py b/src/attrs/custom_fields.py
index db2ee7a..3eec031 100644
--- a/src/attrs/custom_fields.py
+++ b/src/attrs/custom_fields.py
@@ -1,8 +1,6 @@
from __future__ import annotations
-import typing
-
-from typing_extensions import Protocol
+from typing import Protocol, TypeVar
from attr._make import _make_attr_tuple_class
from attrs import Attribute, AttrsInstance, fields
@@ -11,7 +9,7 @@
__all__ = ["custom_fields"]
-T = typing.TypeVar("T")
+T = TypeVar("T")
class AttributeModel(Protocol[T]):
@@ -35,17 +33,20 @@
"""
Return the attrs fields tuple for cls with the provided attribute model.
- :param type cls: Class to introspect.
- :param attribute_model: The attribute model to use.
- :param resolve_types: Whether to resolve the class types first.
+ Args:
+ cls: Class to introspect.
+ attribute_model: The attribute model to use.
+ resolve_types: Whether to resolve the class types first.
- :raise TypeError: If *cls* is not a class.
- :raise attrs.exceptions.NotAnAttrsClassError: If *cls* is not an *attrs*
- class.
+ Raises:
+ TypeError: If *cls* is not a class.
+ attrs.exceptions.NotAnAttrsClassError: If *cls* is not an *attrs*
+ class.
- :rtype: tuple (with name accessors) of `attribute_model`.
+ Returns:
+ tuple (with name accessors) of `attribute_model`.
- .. versionadded:: 23.2.0
+ .. versionadded:: 25.1.0
"""
attrs = getattr(cls, f"__attrs_{id(attribute_model)}__", None)