File: //lib/python3/dist-packages/sphinx/util/__pycache__/docfields.cpython-310.pyc
o
�$�as@ � @ s� d Z ddlmZmZmZmZmZmZmZm Z ddl
mZ ddlm
Z
ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZ erNddlmZ e�e�Zdejd
e fdd�Z!G dd� d�Z"G dd� de"�Z#G dd� de#�Z$G dd� d�Z%dS )a8
sphinx.util.docfields
~~~~~~~~~~~~~~~~~~~~~
"Doc fields" are reST field lists in object descriptions that will
be domain-specifically transformed to a more appealing presentation.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
TYPE_CHECKING�Any�Dict�List�Tuple�Type�Union�cast)�nodes)�Node)�Inliner)�addnodes)�BuildEnvironment)�__)�logging)�TextlikeNode)�ObjectDescription�node�returnc C sX t | �dkrdS t | �dkr | dd� D ]}t|tj�s dS qt| d tj�r*dS dS )zCTrue if the node only contains one paragraph (and system messages).r F� NT)�len�
isinstancer
�system_message� paragraph)r �subnode� r �7/usr/lib/python3/dist-packages/sphinx/util/docfields.py�_is_single_paragraph s �r c @ s0 e Zd ZdZdZdZ d#dedeedf d ed
ededed
dfdd�Z e
jddddfdedededee
dedededed
efdd�Ze
jddddfdedededee
dedededed
ee fdd�Zdedee d
eeee f fdd�Z d$deeee f ded edededed
ejfd!d"�ZdS )%�Fielda� A doc field that is never grouped. It can have an argument or not, the
argument can be linked using a specified *rolename*. Field should be used
for doc fields that usually don't occur more than once.
The body can be linked using a specified *bodyrolename* if the content is
just a single inline or text node.
Example::
:returns: description of the return value
:rtype: description of the return type
Fr NT�name�names.�label�has_arg�rolename�bodyrolenamer c C s( || _ || _|| _|| _|| _|| _d S �N)r r r! r"