403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/site-packages/sphinx/domains/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/site-packages/sphinx/domains/__pycache__/std.cpython-39.opt-1.pyc
a

�ab���	@s�dZddlZddlZddlmZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZddlmZmZmZddlmZmZddlmZdd	lmZdd
lmZm Z ddl!m"Z"ddl#m$Z$dd
l%m&Z&m'Z'ddl(m)Z)m*Z*ddl+m,Z,ddl-m.Z.m/Z/m0Z0ddl1m2Z2ddl3m4Z4m5Z5m6Z6ddl7m8Z8m9Z9e�rbddl:m;Z;ddl<m=Z=ddl>m?Z?e/�@eA�ZBe�Cd�ZDe�CdejE�ZFGdd�de$eG�ZHGdd�deH�ZIGdd�de,�ZJGdd �d e2�ZKGd!d"�d"e$eG�ZLGd#d$�d$e2�ZMGd%d&�d&e,�ZNeGeeeGd'�d(d)�ZOd*e	eeGeGePeGejQejRd+�d,d-�ZSGd.d/�d/e2�ZTdAeGeGeed1�d2d3�ZUGd4d5�d5e2�ZVGd6d7�d7e,�ZWGd8d9�d9e&�ZXd:e&e eeYd;�d<d=�ZZd:eeGefd>�d?d@�Z[dS)Bz�
    sphinx.domains.std
    ~~~~~~~~~~~~~~~~~~

    The standard domain.

    :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�copy)�
TYPE_CHECKING�Any�Callable�Dict�Iterable�Iterator�List�Optional�Tuple�Type�Union�cast)�nodes)�Element�Node�system_message)�	Directive�
directives)�
StringList)�addnodes)�desc_signature�pending_xref)�RemovedInSphinx50Warning)�ObjectDescription)�Domain�ObjType)�_�__)�XRefRole)�docname_join�logging�ws_re)�SphinxDirective)�clean_astext�make_id�make_refnode)�
OptionSpec�RoleFunction)�Sphinx)�Builder)�BuildEnvironmentz ((?:/|--|-|\+)?[^\s=]+)(=?\s*.*)z`((~?\w*:)?\w+)`c@speZdZUdZdZeed<dZeddee	gefed<ee	ed�dd	�Z
eee	dd
�dd�Zeed
�dd�ZdS)�
GenericObjectzM
    A generic x-ref directive registered with Sphinx.add_object_type().
    ��
indextemplateNr+�
parse_node��sig�signode�returncCs@|jr|�|j||�}n$|��|t�||�7}t�d|�}|S)N� )r/�env�clearr�	desc_namer"�sub)�selfr1r2�name�r;�6/usr/lib/python3.9/site-packages/sphinx/domains/std.py�handle_signature7szGenericObject.handle_signature)r:r1r2r3c
Cst|j|jj|j|�}|d�|�|�|�}||jjjvrV||dvrV|d�|�|jj�|�|j	r�|j	�
d�}|dkr�|j	d|���}|j	|dd���|f}nd}|j	|f}|jd�|||ddf�t
t|j�d��}	|	j|j|||d	�dS)
N�ids�:�����single�entriesr-�std��location)r%r5�state�document�objtype�append�make_old_idr>�note_explicit_targetr.�find�strip�	indexnoder�StandardDomain�
get_domain�note_object)
r9r:r1r2�node_id�old_node_id�colon�	indextype�
indexentryrDr;r;r<�add_target_and_indexAs 
z"GenericObject.add_target_and_index�r:r3cCs|jd|S)z�Generate old styled node_id for generic objects.

        .. note:: Old Styled node_id was used until Sphinx-3.0.
                  This will be removed in Sphinx-5.0.
        �-)rI�r9r:r;r;r<rKZszGenericObject.make_old_id)
�__name__�
__module__�__qualname__�__doc__r.�str�__annotations__r/rrr=rXrKr;r;r;r<r,0s

r,c@seZdZed�ZdS)�EnvVar�environment variable; %sN)r\r]r^rr.r;r;r;r<rbcsrbc@s8eZdZdZejdeeee	e
e	efd�dd�ZdS)�EnvVarXRefRolezQ
    Cross-referencing role for environment variables (adds an index entry).
    r+)rHr5�node�is_refr3c	Cs~|s|ggfS|d}d|�d�}t��}d||ddfdtd�||ddfg|d<tjdd|gd�}|�|�|||ggfS)	N�	reftargetzindex-%s�indexrBr-rcrC�r>)Znew_serialnorrhrr�targetrL)	r9rHr5rerfZvarnameZtgtidrOZ
targetnoder;r;r<�result_nodesls
�
zEnvVarXRefRole.result_nodesN)
r\r]r^r_rrHr�boolrr	rrrkr;r;r;r<rdgs�rdc@sTeZdZUdZdZdZdZdZdZiZ	e
ed<ee
d�d	d
�Zeed�dd
�ZdS)�Targetz@
    Generic target for user-defined cross-reference types.
    r-FrArT�option_spec�r3c
CsJt�d|jd���}t|j|jj|j|�}t	j
dd|gd�}|�|�|�|�}||jjj
vrz||dvrz|d�|�|jj�|�|g}|jr�|j|f}d}|�d�}|dkr�|d|���}||d	d���}tj|||ddfgd
�}	|�d|	�|j}
d|jv�r"|j�dd	�\}}
tt|j�d��}|j|
|||d�|S)
Nr4rr-rir>rBr?r@rA)rCrDrE)r"r8�	argumentsrNr%r5rGrHr:rrj�set_source_inforKr>rJrLr.rMrrh�insert�splitrrPrQrR)
r9�fullnamerSrerT�retrWrVrU�inoder:rrDr;r;r<�run�s0


z
Target.runrYcCs|jd|S)z�Generate old styled node_id for targets.

        .. note:: Old Styled node_id was used until Sphinx-3.0.
                  This will be removed in Sphinx-5.0.
        rZ)r:r[r;r;r<rK�szTarget.make_old_idN)r\r]r^r_r.�has_content�required_arguments�optional_arguments�final_argument_whitespacernr'rar	rrwr`rKr;r;r;r<rm|s
!rmc@sHeZdZdZeeed�dd�Zeeedd�dd�Zeeed	�d
d�ZdS)�	Cmdoptionz;
    Description of a command-line option (.. option).
    r0c	Cs�d}d}|�d�D]�}|��}t�|�}|sBtjtd�||d�q|��\}}|�d�rv|�d�rv|dd	�}d|}|r�|t	�
dd�7}|t	�||�7}|t	�
||�7}|s�|}|g|d
<n|d
�|�|d7}q|s�t
�|S)z/Transform an option description into RST nodes.rr-z, znMalformed option description %r, should look like "opt", "-opt args", "--opt args", "/opt args" or "+opt args"rE�[�]Nr@�allnamesrA)rsrN�option_desc_re�match�logger�warningr�groups�endswithrZdesc_addnamer7rJ�
ValueError)	r9r1r2�count�	firstnameZpotential_option�m�optname�argsr;r;r<r=�s6

�
zCmdoption.handle_signatureN)r�r1r2r3cCsZ|jj�d�}|�dg�D]�}dg}|r2|�|�|�d�sF|�d�d�|�}t|j|jj||�}|d�|�|�	||�}	|	|jjj
vr|	|dvr|d�|	�q|jj�|�tt
|j�d��}
|�dg�D] }|
�|||jj|dd	�q�|�r
td
�|}ntd�}|�dg�D]6}d�||g�}
|jd
�d|
|dd	ddf��qdS)N�std:programr�	cmdoption)rZ�/�argrZr>rDrz%s command line optionzcommand line optionz; rCZpairr-)r5�ref_context�getrJ�
startswith�joinr%rGrHrKr>rLrrPrQ�add_program_option�docnamerrO)r9r�r1r2Zcurrprogramr��prefixes�prefixrSrT�domainZdescr�option�entryr;r;r<rX�s6




��zCmdoption.add_target_and_index)r�r�r3cCst�|d|�S)z�Generate old styled node_id for cmdoption.

        .. note:: Old Styled node_id was used until Sphinx-3.0.
                  This will be removed in Sphinx-5.0.
        rZ�rr%)r9r�r�r;r;r<rK�szCmdoption.make_old_id)	r\r]r^r_r`rr=rXrKr;r;r;r<r|�s!!r|c@s@eZdZUdZdZdZdZdZiZe	e
d<eed�dd	�Z
d
S)�ProgramzI
    Directive to name the program for which options are documented.
    FrArTrnrocCs@t�d|jd���}|dkr0|jj�dd�n||jjd<gS)NrZr�Noner�)r"r8rprNr5r��pop)r9�programr;r;r<rw
s
zProgram.runN)r\r]r^r_rxryrzr{rnr'rar	rrwr;r;r;r<r�s
r�c@s,eZdZdeeeeeeefd�dd�ZdS)�OptionXRefRoler+�r5�refnode�has_explicit_title�titlerjr3cCs|j�d�|d<||fS)Nr�)r�r�)r9r5r�r�r�rjr;r;r<�process_linkszOptionXRefRole.process_linkN�r\r]r^rrlr`rr�r;r;r;r<r�s�r�)�liner3cCst�d|�dg}|S)Nz +: +)�rers)r��partsr;r;r<�split_term_classifierssr�r+)r5�	textnodes�	index_key�source�linenorSrHr3cCs�tjddg|�R�}||_||_|��}|r<|d�|�n&t||d|�}|d�|�|�|�tt	|�
d��}	|	j|||d�t�
�}
d||d|fg|
d<|j|j|
_|
_|�|
�|S)	Nr-r>�termrDrErB�mainrC)rr�r�r��astextrJr%rLrrPrQ�
_note_termrrh)r5r�r�r�r�rSrHr�ZtermtextrDrOr;r;r<�make_glossary_term#s 

r�c@sFeZdZUdZdZdZdZdZdej	iZ
eed<e
ed�dd	�Zd
S)�Glossaryz[
    Directive to create a glossary with cross-reference targets for :term:
    roles.
    TrF�sortedrnrocCs�t��}|jj|_d|jv|d<g}d}d}d}g}t|j|jj�D�]t\}\}}	|sz|rt|rt|dd�d||	�d}qD|�rL|d�	��sL|�
d�r�d}qDnd}|r�|s�|�|jjjt
d	�||	d
��|�|||	fgt�f�d}nb|�r|�|jjjt
d�||	d
��|�r,|dd�|||	f�n|�|jjjt
d�||	d
��nj|�rTnb|�srd}t|�t|���}
|�r�|dd�||
d�||	�n|�|jjjt
d�||	d
��d}qDg}|D]�\}}
g}g}|D]d\}}}	t|�}|j�|d|	�\}}t|j||d||	d|jjd
�}||_|�|�|�|��q�|�|�t��}|
�rp|j�|
|
jdd|�|�|�|�tjdg|�R���q�tjdg|�R�}|d�d�||7}||gS)Nr�TFr@rAr-rz.. z,glossary term must be preceded by empty line)r�r�z3glossary terms must not be separated by empty linesz4glossary seems to be misformatted, check indentation)rSrH�classes�glossary)rr�rGrH�options�zipZcontent�itemsrJ�isspacer�Zreporterr�rr�len�lstripr�Zinline_textr�r5Z	rawsource�extendr�
definitionZnested_parseZdefinition_list_itemZdefinition_list)r9rerCZ
in_definitionZ
in_commentZ	was_empty�messagesr�r�r�Z
indent_lenr��termsr�Z	termnodesZsystem_messagesr�r�Zsysmsgr�ZdefnodeZdlistr;r;r<rwOs�

���
 ��

�
zGlossary.runN)r\r]r^r_rxryrzr{r�flagrnr'rar	rrwr;r;r;r<r�As
�r�r-)�text�productionGroupr3cCs4t|�dkr|d7}g}d}t�|�D]�}|��|krX|||���}|�t�||��|�d�}d|vr�|ddkr�|�d�\}}|dd�}	q�|ddkr�|dd�}|}	q�|}|}	n|}||}	t	|dd|	d�}
|
tj
||dgd	�7}
|�|
�|��}q&|t|�k�r0|�t�||d�||d���|S)
Nrr?rA�~�tokenrD)�reftypeZ	refdomainrgZxref�r�)r��token_re�finditer�startrJr�Text�grouprsr�literal�end)r�r�Zretnodes�posr�Ztxtr�rr�rjr�r;r;r<�token_xrefs�s:
�

"r�c@sPeZdZUdZdZdZdZdZiZe	e
d<eed�dd	�Z
eed
�dd�Zd
S)�ProductionListz0
    Directive to list grammar productions.
    FrArTrnroc	Cs�tt|j�d��}t��}|�|�t�d�}|�	d|j
d��d�}d}d}|D�]6}|dkrrd|vrr|��}qR|d7}z|�dd�\}}	Wnt
y�Y�q�Yn0t�|�}
|��}||
d<|
d�rpd	|}t|j|jj||�}|
d
�|�|�|�}
|
|jjjv�r.|
|
d
v�r.|
d
�|
�|jj�|
|
�t|�dk�rZd||f}n|}|jd|||d
�|
�t|	|��|�|
�qR|gS)NrDz\\\nr-r�
r?rAZ	tokennamezgrammar-token-%sr>z%s:%sr�rE)rrPr5rQr�productionlistrqr��compiler8rprsrNr�Z
productionr%rGrHrJrKr>Znote_implicit_targetr�rRr�r�)r9r�reZnl_escape_re�linesr��iZruler:�tokens�subnoder�rSrTZobjNamer;r;r<rw�sH






�zProductionList.run)r�r3cCst�d|�S)z�Generate old styled node_id for tokens.

        .. note:: Old Styled node_id was used until Sphinx-3.0.
                  This will be removed in Sphinx-5.0.
        zgrammar-token-r�)r9r�r;r;r<rKszProductionList.make_old_idN)r\r]r^r_rxryrzr{rnr'rar	rrwr`rKr;r;r;r<r��s
-r�c@s,eZdZdeeeeeeefd�dd�ZdS)�
TokenXRefRoler+r�cCsH|�d�}|js@|ddkr@d|vr4|�d�\}}n|dd�}||fS)Nr�rr?rA)r�r�rs)r9r5r�r�r�rjrr;r;r<r�s
zTokenXRefRole.process_linkNr�r;r;r;r<r�s�r�cs�eZdZUdZdZdZeed�ddd�eed�d	dd�eed
�dddd�eed
�d�eed�d�eed�ddd�d�Ze	e
efed<ee
e
eeed�Ze	e
eefed<edd�e�e�eejdd�edejdd�eddd�edd�edejd�d�Ze	e
eeeffed<iidd ed!�fd"d ed#�fd$d ed%�fd&�d'd(d)d&�d*�Zd+d,d-d.d/d0�Zejd1ej d2ej!d3iZ"e	ee#e$e
e%e&ffed4<d5d6d7��fd8d9�Z'd�e
e
e
e
d6d:�d;d<�Z(e)e	e$e
e
fe$e
e
ffd=�d>d?��Z*d�e
e
e
e+d6d@�dAdB�Z,e
e
e
e
d6dC�dDdE�Z-e)e	e
e$e
e
ffd=�dFdG��Z.d�e
e
e+d6dH�dIdJ�Z/e)e	e$e
e
fe$e
e
ffd=�dKdL��Z0e)e	e
e$e
e
e
ffd=�dMdN��Z1e)e	e
e$e
e
ffd=�dOdP��Z2e
d6dQ�dRdS�Z3e4e
e	d6dT�dUdV�Z5d5e
ej6d6dW�dXdY�Z7e
e
e
e
d6dZ�d[d\�Z8e
d]e
e
e
e
e+e9d^�d_d`�Z:d5e
d]e
e
e;e9e%e9da�dbdc�Z<d5e
d]e
e
e;e9e%e9da�ddde�Z=d5e
d]e
e
e;e9e%e9da�dfdg�Z>d5e
d]e
e
e;e9e%e9da�dhdi�Z?d5e
d]e
e
e;e9e%e9da�djdk�Z@d5e
d]e
e
e;e9e%e9da�dldm�ZAd5e
d]e
e
e;e9e9da�dndo�ZBd5e
d]e
e
e;e9e%e9da�dpdq�ZCd5e
d]e
e;e9e4e$e
e9fdr�dsdt�ZDeEe$e
e
e
e
e
eFfd=�dudv�ZGd�eeHe
dx�dydz�ZIe#eHd{�d|d}�ZJe#e%e
d{�d~d�ZKe#e%e
d{�d�d��ZLd5d]e
e
e9e$eFd�fd��d�d��ZMe9e%e
d{�d�d��ZN�ZOS)�rPzs
    Domain for all objects that don't fit into another domain or are added
    via the application interface.
    rDZDefaultz
glossary termr�r@)�
searchprioz
grammar tokenr�zreference label�ref�keywordzenvironment variable�envvarzprogram optionr�rH�doc)r�r��labelr�r�r��object_types)r�r�r�r�r�r�rT)�
warn_dangling)�innernodeclassr�)�	lowercaser�r�)r�r�)r�r�)r�r�r�r�r��numrefr�r��roles�genindexr-ZIndex�py-modindexzModule Index�searchzSearch Page)r�Zmodindexr�)r�r-)r�r-)r�r-)�progoptions�objects�labels�
anonlabelsz term not in glossary: %(target)szundefined label: %(target)szunknown keyword: %(target)szunknown document: %(target)szunknown option: %(target)s)r�r�r�r�r�)�figureN)�tableN)�
code-blockN�enumerable_nodesr+N)r5r3cs>t��|�t|j�|_|jjj��D]\}}||j|<q&dS�N)�super�__init__rr��app�registryr�)r9r5reZsettings��	__class__r;r<r�nszStandardDomain.__init__)r:r�rSr�r3cCsf||jvr@|j|||fkr@t�td�||j�|j|d��||f|j|<|rb|||f|j|<dS)aUAdd a hyperlink target for cross reference.

        .. warning::

           This is only for internal use.  Please don't use this from your extension.
           ``document.note_explicit_target()`` or ``note_implicit_target()`` are recommended to
           add a hyperlink target to the document.

           This only adds a hyperlink target to the StandardDomain.  And this does not add a
           node_id to node.  Therefore, it is very fragile to calling this without
           understanding hyperlink target framework in both docutils and Sphinx.

        .. versionadded:: 3.0
        �(duplicate label %s, other instance in %srN)r�r�r�rr5�doc2pathr�)r9r:r�rSr�r;r;r<�note_hyperlink_targetvs
�z$StandardDomain.note_hyperlink_targetrocCs|j�di�S)Nr���data�
setdefault�r9r;r;r<r��szStandardDomain.objects)rIr:�labelidrFr3cCsR||f|jvr8|j||fd}tjtd�||||d�|jj|f|j||f<dS)zRNote a generic object for cross reference.

        .. versionadded:: 3.0
        rz4duplicate %s description of %s, other instance in %srEN)r�r�r�rr5r�)r9rIr:rrFr�r;r;r<rR�s
�zStandardDomain.note_object)rIr:r�rr3cCs&tjdtdd�||f|j||f<dS)Nz*StandardDomain.add_object() is deprecated.�)�
stacklevel)�warnings�warnrr�)r9rIr:r�rr;r;r<�
add_object�s�zStandardDomain.add_objectcCs|j�di�S)z2.. note:: Will be removed soon. internal use only.r�r�r�r;r;r<�_terms�szStandardDomain._terms)r�rrFr3cCs*|�d|||�|jj|f|j|��<dS)zeNote a term for cross reference.

        .. note:: Will be removed soon. internal use only.
        r�N)rRr5r�r�lower)r9r�rrFr;r;r<r��szStandardDomain._note_termcCs|j�di�S)Nr�r�r�r;r;r<r��szStandardDomain.progoptionscCs|j�di�S)Nr�r�r�r;r;r<r��szStandardDomain.labelscCs|j�di�S)Nr�r�r�r;r;r<r��szStandardDomain.anonlabels)r�r3cCs�d}t|j���D]\}\}}||kr|j|=qt|j���D]\}\}}||kr>|j|=q>t|j���D]\}\}}||krj|j|=qjt|j���D]\}\}}}||kr�|j|=q�t|j���D]\}\}}||kr�|j|=q�dSr�)�listr�r�r�rr�r�)r9r��key�fnZ_lr;r;r<�	clear_doc�s 



zStandardDomain.clear_doc)�docnames�	otherdatar3cCs�|d��D]\}}|d|vr||j|<q|d��D]\}}|d|vr8||j|<q8|d��D]\}}|d|vrd||j|<qd|d��D]\}}|d|vr�||j|<q�|d��D]\}}|d|vr�||j|<q�dS)Nr�rr�r�r�r�)r�r�r�rr�r�)r9rr
r	r�r;r;r<�merge_domaindata�szStandardDomain.merge_domaindata)r5r�rHr3cCs�|j��D�]p\}}|sq
|j|}|dur.q
|j|}t|tj�rhd|vrh|j�|d�}|dd}|jdks
d|vs
|j�	d�r�q
||j
vr�tjt
d�||�|j
|d�|d�||f|j|<|jd	kr�ttj|d�}t|�}	n~|jd
kr�t|�}	nj|jdk�r"t|�dk�r"t|�}	nF|�|��r:|�|�}	n.t|�tj�d�}
|
r
|
�d�r
|
�d�}	nq
|	r
|||	f|j
|<q
dS)
N�refid�namesrZfootnote�refuriZdesc_r�rE�sectionZrubricrj�caption)Z	nametypesr�Znameidsr>�
isinstancerrjr�Ztagnamer�r�r�r�rr�r�rr�r$r��is_enumerable_node�get_numfig_title�next�findallr�toctree)r9r5r�rHr:Zexplicitrrer��sectnamerr;r;r<�process_doc�sJ


�
�

�




zStandardDomain.process_doc)r�r:r�rr3cCs||f|j||f<dSr�)r�)r9r�r:r�rr;r;r<r�sz!StandardDomain.add_program_optionr*)�fromdocname�builderr�rr�rolenamer�r3cKs�|�dtj�}|d
ddi|��}	t�||�}
|
�d�durZ|
d�d�|
d�d|�||krl||	d<n@td�}||d	<||d
<|�||�|	d<|r�|	dd|7<|	�|
�|	S)N�	nodeclassr-ZinternalTr�rDzstd-rZ
refdocnameZrefsectnamer�#)r-r-)r�rZ	reference�inliner�rJrZget_relative_uri)r9rrr�rrrr�rZnewnode�	innernode�contnoder;r;r<�build_reference_nodes$
�
z#StandardDomain.build_reference_node)r5rr�typrjrer#r3c	Csz|dkr|j}nV|dkr |j}nF|dkr0|j}n6|dkr@|j}n&|dkrP|j}n|dkr`|j}n|j}||||||||�S)Nr�r�r�r�r�r�)�_resolve_ref_xref�_resolve_numref_xref�_resolve_keyword_xref�_resolve_doc_xref�_resolve_option_xref�_resolve_term_xref�_resolve_obj_xref)	r9r5rrr%rjrer#Zresolverr;r;r<�resolve_xref(szStandardDomain.resolve_xrefcCsT|dr$|j�|d�\}}	|��}
n|j�|d�\}}	}
|s@dS|�||||	|
d�S)N�refexplicit�r-r-�r-r-r-r�)r�r�r�r�r$)r9r5rrr%rjrer#r�rrr;r;r<r&<s
�z StandardDomain._resolve_ref_xrefc
Cs||jvr |j�|d�\}}	}
n|j�|d�\}}	d}
|s>dS|�|�j�|	�}|�|�}|durfdS|dkr�|jjdur�tj	t
d�|d�|Sz$|�|||||�}
|
dur�|WSWn*ty�tj	t
d�|	|d�|YS0z�|dr�|�
�}n|jj�|d	�}|
du�r2d
|v�r2tj	t
d�||d�|WSd�tt|
��}d
|v�sVd
|v�rz|
�rl|j|
|d�}n|j|d�}n||}Wnjt�y�}z&tj	t
d�|||d�|WYd}~Sd}~0t�y�tj	t
d�||d�|YS0|j||||	|dtj|d�S)Nr0r/rFz(numfig is disabled. :numref: is ignored.rEzBFailed to create a cross reference. Any number is not assigned: %sr.r-z{name}zthe link has no caption: %s�.�number)r:r2)r2zinvalid numfig_format: %s (%r)zinvalid numfig_format: %sr�)rr�)r�r�r�Zget_doctreer>�get_enumerable_node_typeZconfigZnumfigr�r�r�
get_fignumberr�r�Z
numfig_formatr��mapr`�format�KeyError�	TypeErrorr$rZnumber_reference)r9r5rrr%rjrer#r�rZfigname�target_node�figtypeZ	fignumberr�ZfignumZnewtitle�excr;r;r<r'Ns\



�


�z#StandardDomain._resolve_numref_xrefcCs,|j�|d�\}}	}
|sdSt||||	|�S)Nr0)r�r�r&)r9r5rrr%rjrer#r�rrr;r;r<r(�s�z$StandardDomain._resolve_keyword_xrefcCsn|�d|�}t||d�}	|	|jvr(dS|dr:|��}
nt|j|	�}
tj|
|
dgd�}t|||	d|�SdS)N�refdocrgr.r�r�)	r�r �all_docsr�r$�titlesrr!r&)r9r5rrr%rjrer#r<r�rr"r;r;r<r)�s

z StandardDomain._resolve_doc_xrefc
Cs�|�d�}|��}|j�||fd�\}	}
|	s�g}t�|�r|t�|d�\}}|�|�d�|�}|j�||fd�\}	}
|	r0q�q0dSt|||	|
|�S)Nr�r/rArZ)	r�rNr�r"r�rsrJr�r&)
r9r5rrr%rjrer#�prognamer�rZcommandsZ
subcommandr;r;r<r*�s 



�z#StandardDomain._resolve_option_xrefc	CsV|�|||||||�}|r|S|��|jvrN|j|��\}	}
t|||	|
|�SdSdSr�)r,rrr&)r9r5rrr%rjrer#�resultr�rr;r;r<r+�s�z!StandardDomain._resolve_term_xrefcCs\|�|�pg}|D](}	|	|f|jvr|j|	|f\}
}qDqd\}
}|
sLdSt|||
||�S)Nr/)Zobjtypes_for_roler�r&)r9r5rrr%rjrer#ZobjtypesrIr�rr;r;r<r,�s�z StandardDomain._resolve_obj_xref)r5rrrjrer#r3c
Cs�g}|��}dD]<}	|�||||	|	dkr,|n|||�}
|
r|�d|	|
f�q|jD]X}||f}|dkrp||f}||jvrT|j|\}
}|�d|�|�t|||
||�f�qT|S)N)r�r�r�zstd:r�)rr-rJr�r�Zrole_for_objtyper&)r9r5rrrjrer#�resultsZltargetZrole�resrIr	r�rr;r;r<�resolve_any_xref�s*�

��zStandardDomain.resolve_any_xrefccs:|jjD]"}|t|jj|�d|ddfVq|j��D]T\\}}}|rpd�||g�}||d|d|ddfVq6||d|d|ddfVq6|j��D]2\\}}}||||d|d|j|j	dfVq�|j
��D] \}\}}	}
||
d	||	dfVq�t|j
�}|j��D]*\}\}}	||v�r
||d	||	dfV�q
dS)
Nr�r-r@r1r�rrAr�r�)
r5r=r$r>r�r�r�r�r��attrsr��setr�)r9r��progr��infort�typer:r�rZsectionnameZnon_anon_labelsr;r;r<�get_objects�s" �

zStandardDomain.get_objectsF)rH�primaryr3cCs|jSr�)Zlname)r9rHrJr;r;r<�
get_type_nameszStandardDomain.get_type_name)rer3cCs|j|jvSr�)r�r�)r9rer;r;r<rsz!StandardDomain.is_enumerable_nodecCs`|�|�r\tt|�}|j�|jd�\}}|r4||�S|D]"}t|tjtj	f�r8t
|�Sq8dS)z?Get the title of enumerable nodes to refer them using its title�NNN)rrrr�r�r�rrrr�r$)r9re�elemrZtitle_getterr�r;r;r<rs

zStandardDomain.get_numfig_titlecCsbtttd�dd�}t|tj�r"dSt|tj�rFd|vrF||tj�rFdS|j�	|j
d�\}}|SdS)	zGet type of enumerable nodes.)re�clsr3cst�fdd�|D��S)Nc3s|]}t|��VqdSr�)r)�.0�child�rNr;r<�	<genexpr> �zMStandardDomain.get_enumerable_node_type.<locals>.has_child.<locals>.<genexpr>)�any)rerNr;rQr<�	has_childsz:StandardDomain.get_enumerable_node_type.<locals>.has_childr�
literal_blockr�rLN)rrrlrrr�	containerrVr�r�r�)r9rerUr:rr;r;r<r3s�
�z'StandardDomain.get_enumerable_node_type.)r5rr:r�r9r3c	
Cs�|dkrh|jdkrt�S||jvr(t�q�d|dd}||j|vrV|j|�d�S|j|�|�SnPz |dd}|j|||WSttfy�}zt|�WYd}~n
d}~00dS)NrZlatexr r>rr-)r:�tupleZtoc_secnumbersr�r�Ztoc_fignumbersr7�
IndexError)	r9r5rr:r�r9Z
anchornameZ	figure_idr;r;r;r<r4-s

zStandardDomain.get_fignumbercCsf|�d�dkr^|�d�}t�|�d��}|r8|�d|�|��}|rXd�d�|�|g�SdSndSdS)Nr�r�r�rgrr1rZ)r�r"rsrrr�r�)r9rer?Zcommandr�r;r;r<�get_full_qualified_nameDs
z&StandardDomain.get_full_qualified_name)r-)N)N)F)Pr\r]r^r_r:r�rrr�rr`rar�r|rbr�r�rrrr�rdr�rrr!r�r
r(Zinitial_dataZdangling_warningsr�r�rWr�rrr
rr�r��propertyr�rrRrrr�r�r�r�rr	rrHrr�rr$rr-r&r'r(r)r*r+r,rCr�intrIrlrKrrr3r4rZ�
__classcell__r;r;r�r<rP!s
���	��������
�$	��(
� 	(" +���
�?
�

�
��
��"�rPr))r�r�rer3cCsd|r|jdks|ddkrdS|d}||jvr:td�}ntd�}tj|||d|dd�dSdS)	NrDr�r�rgzundefined label: %szDFailed to create a cross reference. A title or caption not found: %s)rFrHZsubtypeT)r:r�rr�r�)r�r�rerj�msgr;r;r<�warn_missing_referenceSs

r_)r�r3cCs$|�t�|�dt�ddddd�S)Nzwarn-missing-referenceZbuiltinrT)�versionZenv_versionZparallel_read_safeZparallel_write_safe)Z
add_domainrPZconnectr_)r�r;r;r<�setupbs
�ra)r-)\r_r�rr�typingrrrrrrr	r
rrr
rZdocutilsrZdocutils.nodesrrrZdocutils.parsers.rstrrZdocutils.statemachinerZsphinxrZsphinx.addnodesrrZsphinx.deprecationrZsphinx.directivesrZsphinx.domainsrrZ
sphinx.localerrZsphinx.rolesrZsphinx.utilr r!r"Zsphinx.util.docutilsr#Zsphinx.util.nodesr$r%r&Zsphinx.util.typingr'r(Zsphinx.applicationr)Zsphinx.buildersr*Zsphinx.environmentr+Z	getLoggerr\r�r�r��Ur�r`r,rbrdrmr|r�r�r�r\rHr�r�r�r�r�r�rPrlr_rar;r;r;r<�<module>sf
8

36P

�r!A6�

Youez - 2016 - github.com/yon3zu
LinuXploit