
    zi)                       d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZmZ er,ddlmZ ddlmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)  ej*        e+          Z, ej-        d          Z. G d dee/                   Z0d(dZ1 G d de0          Z2 G d de0          Z3 G d  d!e0          Z4 G d" d#e          Z5d)d'Z6dS )*zThe reStructuredText domain.    )annotationsN)TYPE_CHECKINGAnycast)
directives)addnodes)ObjectDescription)DomainObjType)___)XRefRole)logging)make_idmake_refnode)Iterator)Element)desc_signaturepending_xref)Sphinx)Builder)BuildEnvironment)
OptionSpecz\.\. (.+?)::(.*)$c                      e Zd ZU dZej        ej        ej        ej        ej        ej        ej        dZded<   ddZddZ	ddZ
ddZdS )
ReSTMarkupz-
    Description of generic reST markup.
    )zno-indexno-index-entryzno-contents-entryzno-typesettingnoindexnoindexentrynocontentsentryr   option_specnamestrsigsignoder   returnNonec                   t          | j        | j        j        | j        |          }|d                             |           | j        j                            |           t          t          | j        	                    d                    }|
                    | j        |||           d| j        vrD|                     | j        |          }|r)| j        d                             d||dd f           d S d S d S )Nidsrstlocationr   entriessingle )r   envstatedocumentobjtypeappendnote_explicit_targetr   
ReSTDomain
get_domainnote_objectoptionsget_index_text	indexnode)selfr!   r#   r$   node_iddomain	indextexts          ]/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/domains/rst.pyadd_target_and_indexzReSTMarkup.add_target_and_index0   s    $(DJ$7tLLg&&&
00999j$("5"5e"<"<==4<wIII4<//++DL$??I [y)00(IwPRTX1YZZZZZ 0/[ [    
objectnamec                    dS )Nr.    r;   rB   r!   s      r?   r9   zReSTMarkup.get_index_text=   s    rrA   sig_nodetuple[str, ...]c                    d|vrdS g }| j         j                            dd          D ]}||                    d          z  }|d         }t	          ||                    d          z             S )NfullnamerD   rst:directives:)r/   ref_contextgetsplittuple)r;   rF   directive_namesparentr!   s        r?   _object_hierarchy_partsz"ReSTMarkup._object_hierarchy_parts@   s{    X%%2h*../?DD 	1 	1Fv||C000OO
#_tzz#6777rA   c                0   |                     d          sdS | j        j        j        }|j                             d          }|d         ^ }}|dk    rd| dS |j        dv rd                    |d                   }|dk    rd| dS |dk    rd	| d
S dS )N
_toc_partsr.   r2   directive:optionrK   >   allr=   role	directive.. ::)rM   r/   appconfigrQ   toc_object_entries_show_parentsjoin)r;   rF   r\   r2   parentsr!   s         r?   _toc_entry_namezReSTMarkup._toc_entry_nameI   s    ||L)) 	2$/%%i00!,/$(((t;;;15FFF88H\233Dft;;;k!!!>>>!rrA   Nr!   r"   r#   r"   r$   r   r%   r&   rB   r"   r!   r"   r%   r"   )rF   r   r%   rG   )rF   r   r%   r"   )__name__
__module____qualname____doc__r   flagr    __annotations__r@   r9   rR   r`   rD   rA   r?   r   r   "   s           O$/'_$/?"%? K    [ [ [ [   8 8 8 8     rA   r   dr"   r%   tuple[str, str]c                t   |                                  }|                    d          s|dfS t                              |          }|s|dfS |                                \  }}|                                 r+|                                 d|                                 z   fS |                                 dfS )zParse a directive signature.

    Returns (directive, arguments) string tuple.  If no arguments are given,
    returns (directive, '').
    .r.    )strip
startswith
dir_sig_rematchgroups)ri   dirm
parsed_dirparsed_argss        r?   parse_directiverw   [   s     ''))C>># RyA RyhhjjJ (  ""C+*;*;*=*=$=>>  ""B''rA   c                  2    e Zd ZdZddZdd
ZddZddZdS )ReSTDirectivez*
    Description of a reST directive.
    r#   r"   r$   r   r%   c                    t          |          \  }}d| d}|                                |d<   |t          j        ||          z  }t	          |          dk    r|t          j        ||          z  }|S )NrY   rZ   rI   r   )rw   rn   r   	desc_namelendesc_addname)r;   r#   r$   r!   argsr{   s         r?   handle_signaturezReSTDirective.handle_signatures   st    $S))
d"$NNN	"jjll
8%i;;;t99q==x,T4888GrA   rB   r!   c                &    t          d          |z  S )N%s (directive)r   rE   s      r?   r9   zReSTDirective.get_index_text|   s    !""T))rA   r&   c                    | j         r=| j        j                            dg           } |j        | j         d                    d S d S )NrJ   r   )namesr/   rL   
setdefaultr3   r;   r   s     r?   before_contentzReSTDirective.before_content   sP    : 	--889I2NNJJdjm,,,,,	- 	-rA   c                l    | j         j                            dg           }|r |j                     d S d S )NrJ   )r/   rL   r   popr   s     r?   after_contentzReSTDirective.after_content   sE    X)445ErJJ
 	JN	 	rA   Nr#   r"   r$   r   r%   r"   rb   )r%   r&   )rc   rd   re   rf   r   r9   r   r   rD   rA   r?   ry   ry   o   sn            * * * *- - - -
     rA   ry   c                      e Zd ZU dZej                                        Zded<   e                    de	j
        i           dd
ZddZedd            ZdS )ReSTDirectiveOptionz6
    Description of an option for reST directive.
    r   r    typer#   r"   r$   r   r%   c                   	 t          j        d|                                d          \  }}n# t          $ r |d }}Y nw xY wd| d}|                                |d<   |t	          j        ||          z  }|r|t	          j        d|z   d|z             z  }| j                            d          r(d| j        d         z  }|t	          j        ||          z  }|S )	Nz\s*:\s+   )maxsplitrK   rI   rm   r   z (%s))	rerN   rn   
ValueErrorr   r{   desc_annotationr8   rM   )r;   r#   r$   r!   argumentr{   texts          r?   r   z$ReSTDirectiveOption.handle_signature   s    	'Xj#))++JJJND(( 	' 	' 	' $(DDD	'  KKK	"jjll
8%i;;; 	Px/hhOOOG<F## 	<T\&11Dx/d;;;Gs   ,/ A A r!   r&   c                t   t          t          | j                            d                    }| j        }|r4d                    | j        |g          }d                    ||g          }n	| j        }|}t          | j        | j        j	        ||          }|d         
                    |           | j        j	                            |           |                    | j        |||           |rx|d                                         }	t          d          |z  t          d          |z  g}
| j        d	         
                    d
d                    |
          |d|	f           d S |d                                         }	t          d          |z  }| j        d	         
                    d||d|	f           d S )Nr)   -rK   r(   r*   r   r   z:%s: (directive option)r,   pairz; r.   r-   )r   r5   r/   r6   current_directiver^   r2   r   r0   r1   r3   r4   r7   upperr   r:   )r;   r!   r#   r$   r=   directive_nameprefixobjnamer<   keyr   r   s               r?   r@   z(ReSTDirectiveOption.add_target_and_index   s   j$("5"5e"<"<==/ 	XXt|^<==Fhh566GG\FG$(DJ$7FFg&&&
009994<'GLLL 	Qq'--//C&''.8/00479DN9%,,fdiioowPRTW-XYYYYYq'--//C.//$6DN9%,,hgr3-OPPPPPrA   c                X    | j         j                            d          }|r|d         S dS )NrJ   r.   )r/   rL   rM   r   s     r?   r   z%ReSTDirectiveOption.current_directive   s2    X)--.>??
 	b>!2rA   Nr   ra   )r%   r"   )rc   rd   re   rf   r   r    copyrh   updater   	unchangedr   r@   propertyr   rD   rA   r?   r   r      s           )499;;K;;;;
$       Q Q Q Q4    X  rA   r   c                  "    e Zd ZdZddZdd
ZdS )ReSTRolez%
    Description of a reST role.
    r#   r"   r$   r   r%   c                p    d| d}|                                 |d<   |t          j        ||          z  }|S )NrK   rI   )rn   r   r{   )r;   r#   r$   r{   s       r?   r   zReSTRole.handle_signature   s=    JJJ	!iikk
8%i;;;
rA   rB   r!   c                &    t          d          |z  S )Nz	%s (role)r   rE   s      r?   r9   zReSTRole.get_index_text   s    ~~$$rA   Nr   rb   )rc   rd   re   rf   r   r9   rD   rA   r?   r   r      sF            % % % % % %rA   r   c                  ,   e Zd ZU dZdZdZ e ed          d           e ed          d           e ed          d          dZe	e
edZ e             e            d	Zd
i iZded<   ed1d            Zd2d3dZd4dZd5dZd6d,Zd7d.Zd8d0ZdS )9r5   zReStructuredText domain.r)   reStructuredTextrX   rs   zdirective-optionrW   )rX   rU   rW   )rs   rW   objectsz%dict[str, dict[tuple[str, str], str]]initial_datar%   &dict[tuple[str, str], tuple[str, str]]c                8    | j                             di           S Nr   )datar   )r;   s    r?   r   zReSTDomain.objects   s    y##Ir222rA   Nr2   r"   r!   r<   r+   r   r&   c                    ||f| j         v rA| j         ||f         \  }}t                              t          d          |||fz  |           | j        j        |f| j         ||f<   d S )Nz4duplicate description of %s %s, other instance in %sr*   )r   loggerwarningr   r/   docname)r;   r2   r!   r<   r+   r   s         r?   r7   zReSTDomain.note_object   s    T?dl**#|GTM:GWNN2TUU#T734>F  H H H (,x'7&AWd]###rA   r   c                    t          | j                                                  D ]\  \  }}\  }}||k    r
| j        ||f= d S N)listr   items)r;   r   typr!   doc_node_ids         r?   	clear_doczReSTDomain.clear_doc   sV    ,01C1C1E1E,F,F 	, 	,(KS$#xg~~Ld+	, 	,rA   docnames	list[str]	otherdatadict[str, Any]c                v    |d                                          D ]\  \  }}\  }}||v r||f| j        ||f<   d S r   )r   r   )r;   r   r   r   r!   r   r<   s          r?   merge_domaindatazReSTDomain.merge_domaindata   sW    +4Y+?+E+E+G+G 	9 	9'KS$#wh+..S$Y'	9 	9rA   r/   r   fromdocnamebuilderr   r   targetnoder   contnoder   Element | Nonec           
         |                      |          }|sd S |D ]A}	| j                            |	|f          }
|
r!|
\  }}t          ||||||dz   |	z             c S Bd S )Nrm   )objtypes_for_roler   rM   r   )r;   r/   r   r   r   r   r   r   objtypesr2   result	todocnamer<   s                r?   resolve_xrefzReSTDomain.resolve_xref  s     ))#.. 	4 	F 	FG\%%w&788F F%+"	7#G[)W$,fslW.DF F F F FF trA   list[tuple[str, Element]]c                    g }| j         D ]j}| j                            ||f          }	|	rJ|	\  }
}|                    d|                     |          z   t          |||
|||dz   |z             f           k|S )Nzrst:rm   )object_typesr   rM   r3   role_for_objtyper   )r;   r/   r   r   r   r   r   resultsr2   r   r   r<   s               r?   resolve_any_xrefzReSTDomain.resolve_any_xref  s     .0( 	F 	FG\%%w&788F F%+"	7d33G<<<!';	7"*FSL7,BD DEF F F rA   -Iterator[tuple[str, str, str, str, str, int]]c              #  t   K   | j         d                                         D ]\  \  }}\  }}|||||dfV  d S )Nr   r   )r   r   )r;   r   r!   r   r<   s        r?   get_objectszReSTDomain.get_objects  s\      /3y/C/I/I/K/K 	7 	7+KS$+'7c7GQ66666	7 	7rA   )r%   r   r   )
r2   r"   r!   r"   r<   r"   r+   r   r%   r&   )r   r"   r%   r&   )r   r   r   r   r%   r&   )r/   r   r   r"   r   r   r   r"   r   r"   r   r   r   r   r%   r   )r/   r   r   r"   r   r   r   r"   r   r   r   r   r%   r   )r%   r   )rc   rd   re   rf   r!   labelr   r   r   ry   r   r   r   r   rolesr   rh   r   r   r7   r   r   r   r   r   rD   rA   r?   r5   r5      sw        ""DE $GAAkNN5AA#GAA&8$9$95AA#GAAfII6BB L #/ J 



 E
 	2;L     3 3 3 X3B B B B B, , , ,
9 9 9 9      7 7 7 7 7 7rA   r5   r[   r   r   c                D    |                      t                     dddddS )Nbuiltin   T)versionenv_versionparallel_read_safeparallel_write_safe)
add_domainr5   )r[   s    r?   setupr   #  s1    NN: "#	  rA   )ri   r"   r%   rj   )r[   r   r%   r   )7rf   
__future__r   r   typingr   r   r   docutils.parsers.rstr   sphinxr   sphinx.directivesr	   sphinx.domainsr
   r   sphinx.localer   r   sphinx.rolesr   sphinx.utilr   sphinx.util.nodesr   r   collections.abcr   docutils.nodesr   sphinx.addnodesr   r   sphinx.applicationr   sphinx.buildersr   sphinx.environmentr   sphinx.util.typingr   	getLoggerrc   r   compilerp   r"   r   rw   ry   r   r   r5   r   rD   rA   r?   <module>r      s   " " " " " " " " 				 + + + + + + + + + + + + + + + +       / / / / / / * * * * * * * *         ! ! ! ! ! !       3 3 3 3 3 3 3 3 	.((((((&&&&&&<<<<<<<<))))))''''''333333------		8	$	$RZ,--
6 6 6 6 6"3' 6 6 6r( ( ( ((    J   69 9 9 9 9* 9 9 9x% % % % %z % % %L7 L7 L7 L7 L7 L7 L7 L7^     rA   