
    -Ph+                       d Z ddlmZ ddlZddl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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$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-  ej.        e/          Z0 ej1        d          Z2 G d dee3                   Z4d*dZ5 G d de4          Z6 G d  d!e4          Z7 G d" d#e4          Z8 G d$ d%e          Z9d+d)Z:dS ),zThe reStructuredText domain.    )annotationsN)TYPE_CHECKING)
directives)addnodes)ObjectDescription)DomainObjType)___)XRefRole)logging)make_idmake_refnode)IteratorSet)AnyClassVar)nodes)Element)desc_signaturepending_xref)Sphinx)Builder)BuildEnvironment)ExtensionMetadata
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nocontentsentryClassVar[OptionSpec]option_specnamestrsigsignoder   returnNonec                   t          | j        | j        j        | j        |          }|d                             |           | j        j                            |           | j        j        j        }|	                    | j        |||           d| j
        vrD|                     | j        |          x}r)| j        d                             d||dd f           d S d S d S )Nidslocationr   entriessingle )r   envstatedocumentobjtypeappendnote_explicit_targetdomainsrestructuredtext_domainnote_objectoptionsget_index_text	indexnode)selfr%   r'   r(   node_iddomain
index_texts          R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/domains/rst.pyadd_target_and_indexzReSTMarkup.add_target_and_index1   s     $(DJ$7tLLg&&&
00999!94<wIII4<//!00tDDDz y)002      0/     
objectnamec                    dS )Nr1    r>   rE   r%   s      rB   r<   zReSTMarkup.get_index_textE   s    rrD   sig_nodetuple[str, ...]c                    d|vrdS g }| j         j                            dd          D ]}||                    d          z  }|d         }t	          ||                    d          z             S )NfullnamerG   rst:directives:)r2   ref_contextgetsplittuple)r>   rI   directive_namesparentr%   s        rB   _object_hierarchy_partsz"ReSTMarkup._object_hierarchy_partsH   s{    X%%2h*../?DD 	1 	1Fv||C000OO
#_tzz#6777rD   c                   |                     d          sdS |j                             d          }|d         ^ }}|dk    rd| dS | j        j        dv rd                    |d                   }|dk    rd| dS |dk    rd	| d
S dS )N
_toc_partsr1   r5   directive:optionrN   >   allr@   role	directive.. ::)rP   rT   configtoc_object_entries_show_parentsjoin)r>   rI   r5   parentsr%   s        rB   _toc_entry_namezReSTMarkup._toc_entry_nameQ   s    ||L)) 	2/%%i00!,/$(((t;;;;6:KKK88H\233Dft;;;k!!!>>>!rrD   Nr%   r&   r'   r&   r(   r   r)   r*   rE   r&   r%   r&   r)   r&   )rI   r   r)   rJ   )rI   r   r)   r&   )__name__
__module____qualname____doc__r   flagr$   __annotations__rC   r<   rU   rb   rG   rD   rB   r   r   $   s         -- O$/'_$/?"%?) )K       (   8 8 8 8     rD   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, '').
    .r1    )strip
startswith
dir_sig_rematchgroups)rk   dirm
parsed_dirparsed_argss        rB   parse_directivery   b   s     ''))C>># BwA BwhhjjJ &!!3):):)<)<#<<<!!2%%rD   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 )Nr\   r]   rL   r   )ry   rp   r   	desc_namelendesc_addname)r>   r'   r(   r%   argsr}   s         rB   handle_signaturezReSTDirective.handle_signaturey   st    $S))
d"$NNN	"jjll
8%i;;;t99q==x,T4888GrD   rE   r%   c                &    t          d          |z  S )N%s (directive)r
   rH   s      rB   r<   zReSTDirective.get_index_text   s    !""T))rD   r*   c                    | j         r=| j        j                            dg           } |j        | j         d                    d S d S )NrM   r   )namesr2   rO   
setdefaultr6   r>   r   s     rB   before_contentzReSTDirective.before_content   sP    : 	--889I2NNJJdjm,,,,,	- 	-rD   c                l    | j         j                            dg           }|r |j                     d S d S )NrM   )r2   rO   r   popr   s     rB   after_contentzReSTDirective.after_content   sE    X)445ErJJ
 	JN	 	rD   Nr'   r&   r(   r   r)   r&   rd   )r)   r*   )re   rf   rg   rh   r   r<   r   r   rG   rD   rB   r{   r{   v   sj        **   * * * *- - - -
     rD   r{   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 )ReSTDirectiveOptionz,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d| }|t	          j        ||          z  }| j                            d          r(d| j        d         z  }|t	          j        ||          z  }|S )	Nz\s*:\s+   )maxsplitrN   rL   ro   r   z (%s))	rerQ   rp   
ValueErrorr   r}   desc_annotationr;   rP   )r>   r'   r(   r%   argumentr}   texts          rB   r   z$ReSTDirectiveOption.handle_signature   s    	'Xj#))++JJJND(( 	' 	' 	' $(DDD	'  KKK	"jjll
8%i;;; 	<!x>>Dx/d;;;G<F## 	<T\&11Dx/d;;;Gs   ,/ A A r%   r*   c                   | j         j        j        }| j        }|r| j         d| }| d| }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 )N-rN   r,   r-   r   r   z:%s: (directive option)r/   pairz; r1   r0   )r2   r8   r9   current_directiver5   r   r3   r4   r6   r7   r:   upperr
   r=   r`   )r>   r%   r'   r(   r@   directive_nameprefixobjnamer?   keyr   r   s               rB   rC   z(ReSTDirectiveOption.add_target_and_index   s    !9/ 	77~77F'00$00GG\FG$(DJ$7FFg&&&
009994<'GLLL 	Qq'--//C"##n4+,,t3D N9%,,		$.      q'--//C.//$6DN9%,,hgr3-OPPPPPrD   c                X    | j         j                            d          }|r|d         S dS )NrM   r1   )r2   rO   rP   r   s     rB   r   z%ReSTDirectiveOption.current_directive   s2    X)--.>??
 	b>!2rD   Nr   rc   )r)   r&   )re   rf   rg   rh   r   r$   copyrj   updater   	unchangedr   rC   propertyr   rG   rD   rB   r   r      s         66(2(>(C(C(E(EKEEEE
$      ""Q "Q "Q "QH    X  rD   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 )NrN   rL   )rp   r   r}   )r>   r'   r(   r}   s       rB   r   zReSTRole.handle_signature   s=    JJJ	!iikk
8%i;;;
rD   rE   r%   c                &    t          d          |z  S )Nz	%s (role)r   rH   s      rB   r<   zReSTRole.get_index_text   s    ~~$$rD   Nr   rd   )re   rf   rg   rh   r   r<   rG   rD   rB   r   r      sB        %%   % % % % % %rD   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 )9
ReSTDomainzReStructuredText domain.rstreStructuredTextr[   ru   zdirective-optionrZ   )r[   rX   rZ   )ru   rZ   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    rB   r   zReSTDomain.objects   s     y##Ir222rD   Nr5   r&   r%   r?   r.   r   r*   c                    ||f| j         v r>| j         ||f         \  }}t                              t          d          ||||           | j        j        |f| j         ||f<   d S )Nz4duplicate description of %s %s, other instance in %sr-   )r   loggerwarningr   r2   docname)r>   r5   r%   r?   r.   r   s         rB   r:   zReSTDomain.note_object   s     T?dl**#|GTM:GWNNIJJ!     (,x'7&AWd]###rD   r   c                    t          | j                                                  D ]\  \  }}\  }}||k    r
| j        ||f= d S N)listr   items)r>   r   typr%   doc_node_ids         rB   	clear_doczReSTDomain.clear_doc  sV    ,01C1C1E1E,F,F 	, 	,(KS$#xg~~Ld+	, 	,rD   docnamesSet[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          rB   merge_domaindatazReSTDomain.merge_domaindata  sW    +4Y+?+E+E+G+G 	9 	9'KS$#wh+..S$Y'	9 	9rD   r2   r   fromdocnamebuilderr   r   targetnoder   contnoder   nodes.reference | Nonec                    |                      |          }|sd S |D ]@}	| j                            |	|f          }
|
r |
\  }}t          |||||| d|	           c S Ad S )Nro   )objtypes_for_roler   rP   r   )r>   r2   r   r   r   r   r   r   objtypesr5   result	todocnamer?   s                rB   resolve_xrefzReSTDomain.resolve_xref  s     ))#.. 	4 	 	G\%%w&788F 	%+"	7#))))    	 trD   !list[tuple[str, nodes.reference]]c                    g }| j         D ]i}| j                            ||f          }	|	rI|	\  }
}|                    d|                     |           t          |||
||| d|           f           j|S )Nzrst:ro   )object_typesr   rP   r6   role_for_objtyper   )r>   r2   r   r   r   r   r   resultsr5   r   r   r?   s               rB   resolve_any_xrefzReSTDomain.resolve_any_xref5  s     68( 	 	G\%%w&788F %+"	7;40099;; #! !--G-- 
  
 
 
 rD   -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        rB   get_objectszReSTDomain.get_objectsP  s\      /3y/C/I/I/K/K 	7 	7+KS$+'7c7GQ66666	7 	7rD   )r)   r   r   )
r5   r&   r%   r&   r?   r&   r.   r   r)   r*   )r   r&   r)   r*   )r   r   r   r   r)   r*   )r2   r   r   r&   r   r   r   r&   r   r&   r   r   r   r   r)   r   )r2   r   r   r&   r   r   r   r&   r   r   r   r   r)   r   )r)   r   )re   rf   rg   rh   r%   labelr	   r
   r   r{   r   r   r   r   rolesr   rj   r   r   r:   r   r   r   r   r   rG   rD   rB   r   r      s~        ""DE WQQ{^^U33#GAA&8$9$95AA&		6** L #/ J xzz

 E
 	2;L     3 3 3 X3
 FJB B B B B, , , ,
9 9 9 9   6   67 7 7 7 7 7rD   r   appr   r   c                D    |                      t                     dddddS )Nbuiltin   T)versionenv_versionparallel_read_safeparallel_write_safe)
add_domainr   )r   s    rB   setupr   U  s1    NN: "#	  rD   )rk   r&   r)   rl   )r   r   r)   r   );rh   
__future__r   r   typingr   docutils.parsers.rstr   sphinxr   sphinx.directivesr   sphinx.domainsr   r	   sphinx.localer
   r   sphinx.rolesr   sphinx.utilr   sphinx.util.nodesr   r   collections.abcr   r   r   r   docutilsr   docutils.nodesr   sphinx.addnodesr   r   sphinx.applicationr   sphinx.buildersr   sphinx.environmentr   sphinx.util.typingr   r   	getLoggerre   r   compilerr   r&   r   ry   r{   r   r   r   r   rG   rD   rB   <module>r      s   " " " " " " " " 				             + + + + + +       / / / / / / * * * * * * * *         ! ! ! ! ! !       3 3 3 3 3 3 3 3 A--------$$$$$$$$&&&&&&<<<<<<<<))))))''''''333333@@@@@@@@		8	$	$RZ,--
; ; ; ; ;"3' ; ; ;|& & & &(    J   4C C C C C* C C CL
% 
% 
% 
% 
%z 
% 
% 
%o7 o7 o7 o7 o7 o7 o7 o7d     rD   