a ;jg~@sxdZddlZddlZddlmZgZeeeddddZedd d Zed d d edd dede edeZ dS)z=A module for creating docstrings for sphinx ``data`` domains.N)NDArray)namevaluedocreturncCst|||fdS)zAppend ``_docstrings_list`` with a docstring for `name`. Parameters ---------- name : str The name of the object. value : str A string-representation of the object. doc : str The docstring of the object. N)_docstrings_listappend)rrrr F/usr/local/lib/python3.9/site-packages/numpy/_typing/_add_docstring.py add_newdoc s r )rc Csg}tD]\}}}t|dd}|d}g}d}|D]}td|} | r|rt|} | dkrd}|| dd| nd}|| dd | |dq:|||q:d |}d |d |d|} || qd |S) zaConvert all docstrings in ``_docstrings_list`` into a single sphinx-legible text block.  z z^(\s+)[-=]+\s*$ZExamplesrz .. rubric:: z z.. admonition:: z .. data:: z :value: ) rtextwrapdedentreplacesplitrematchpopr groupjoin) Z type_list_retrrrslines new_linesindentlinemprevZs_blockr r r _parse_docstringss*     rZ ArrayLikeztyping.Union[...]ag A `~typing.Union` representing objects that can be coerced into an `~numpy.ndarray`. Among others this includes the likes of: * Scalars. * (Nested) sequences. * Objects implementing the `~class.__array__` protocol. .. versionadded:: 1.20 See Also -------- :term:`array_like`: Any scalar or sequence that can be interpreted as an ndarray. Examples -------- .. code-block:: python >>> import numpy as np >>> import numpy.typing as npt >>> def as_array(a: npt.ArrayLike) -> np.ndarray: ... return np.array(a) Z DTypeLikea A `~typing.Union` representing objects that can be coerced into a `~numpy.dtype`. Among others this includes the likes of: * :class:`type` objects. * Character codes or the names of :class:`type` objects. * Objects with the ``.dtype`` attribute. .. versionadded:: 1.20 See Also -------- :ref:`Specifying and constructing data types ` A comprehensive overview of all objects that can be coerced into data types. Examples -------- .. code-block:: python >>> import numpy as np >>> import numpy.typing as npt >>> def as_dtype(d: npt.DTypeLike) -> np.dtype: ... return np.dtype(d) ra A `np.ndarray[Any, np.dtype[+ScalarType]] ` type alias :term:`generic ` w.r.t. its `dtype.type `. Can be used during runtime for typing arrays with a given dtype and unspecified shape. .. versionadded:: 1.21 Examples -------- .. code-block:: python >>> import numpy as np >>> import numpy.typing as npt >>> print(npt.NDArray) numpy.ndarray[typing.Any, numpy.dtype[+ScalarType]] >>> print(npt.NDArray[np.float64]) numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]] >>> NDArrayInt = npt.NDArray[np.int_] >>> a: NDArrayInt = np.arange(10) >>> def func(a: npt.ArrayLike) -> npt.NDArray[Any]: ... return np.array(a) ) __doc__rrZ _array_likerrstrr rreprZ _docstringsr r r r s  !