
    ziB                    P   d Z ddlmZ ddlZddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZ ddlmZ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mZm Z  ddl!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0 er"ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z<  e)j=        e>          Z? ej@        d          ZA ej@        dejB                  ZC e%            ZD G d deeE                   ZF G d deF          ZG G d de&          ZH G d  d!e,          ZI G d" d#eeE                   ZJ G d$ d%e,          ZK G d& d'e&          ZLdRd,ZMdSd:ZN G d; d<e,          ZOdTdUdAZP G dB dCe,          ZQ G dD dEe&          ZR G dF dGe          ZSdVdOZTdWdQZUdS )XzThe standard domain.    )annotationsN)copy)TYPE_CHECKINGAnyCallableFinalcast)nodes)ElementNodesystem_message)	Directive
directives)
StringList)addnodes)desc_signaturepending_xref)ObjectDescription)DomainObjTypeTitleGetter)___)EmphasizedLiteralXRefRole)docname_joinloggingws_re)SphinxDirective)clean_astextmake_idmake_refnode)IterableIterator)Sphinx)Builder)BuildEnvironment)
OptionSpecRoleFunctionz ((?:/|--|-|\+)?[^\s=]+)(=?\s*.*)z`((~?\w*:)?\w+)`c                  @    e Zd ZU dZdZded<   dZded<   ddZddZdS )GenericObjectzM
    A generic x-ref directive registered with Sphinx.add_object_type().
     strindextemplateNz=Callable[[BuildEnvironment, str, desc_signature], str] | None
parse_nodesigsignoder   returnc                    | j         r|                      | j        ||          }nA|                                 |t          j        ||          z  }t          j        d|          }|S )N )r/   envclearr   	desc_namer   sub)selfr0   r1   names       ]/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/domains/std.pyhandle_signaturezGenericObject.handle_signature1   s_    ? 	'??48S'::DDMMOOOx)#s333G9S#&&D    r:   Nonec                   t          | j        | j        j        | j        |          }|d                             |           | j        j                            |           | j        r| j                            d          }|dk    rJ| j        d |         	                                }| j        |dz   d          	                                |fz  }nd}| j        |fz  }| j
        d                             |||dd f           t          t          | j                            d                    }|                    | j        |||	           d S )
Nids:   singleentriesr,   stdlocation)r!   r5   statedocumentobjtypeappendnote_explicit_targetr.   findstrip	indexnoder	   StandardDomain
get_domainnote_object)	r9   r:   r0   r1   node_idcolon	indextype
indexentryrF   s	            r;   add_target_and_indexz"GenericObject.add_target_and_index;   s=   $(DJ$7tLLg&&&
00999 	Y&++C00E{{ .vv6<<>>	!/	

;AACCtgM

$	!/4'9
N9%,,iWbRV-WXXX>48#6#6u#=#=>>dGgFFFFFr=   r0   r-   r1   r   r2   r-   )r:   r-   r0   r-   r1   r   r2   r>   )	__name__
__module____qualname____doc__r.   __annotations__r/   r<   rX    r=   r;   r+   r+   *   sr           MPTJTTTT   G G G G G Gr=   r+   c                  $    e Zd Z ed          ZdS )EnvVarenvironment variable; %sN)rZ   r[   r\   r   r.   r_   r=   r;   ra   ra   N   s        A011MMMr=   ra   c                      e Zd ZdZddZdS )EnvVarXRefRolezQ
    Cross-referencing role for environment variables (adds an index entry).
    rJ   nodes.documentr5   r'   noder   is_refboolr2   'tuple[list[Node], list[system_message]]c                    |s|gg fS |d         }d|                     d          z  }t          j                    }d||dd fdt          d          |z  |dd fg|d<   t	          j        dd|g          }|                    |           |||gg fS )	N	reftargetzindex-%sindexrD   r,   rb   rE   r@   )new_serialnor   rl   r   r
   targetrM   )	r9   rJ   r5   rf   rg   varnametgtidrP   
targetnodes	            r;   result_nodeszEnvVarXRefRole.result_nodesW   s     	62:{#S--g666N$$	wr40q344w>r4P 
	) \"bug666
%%j111:t,b00r=   N)
rJ   re   r5   r'   rf   r   rg   rh   r2   ri   )rZ   r[   r\   r]   rs   r_   r=   r;   rd   rd   R   s2         1 1 1 1 1 1r=   rd   c                  >    e Zd ZU dZdZdZdZdZdZi Z	de
d<   ddZdS )Targetz@
    Generic target for user-defined cross-reference types.
    r,   FrC   r   Tr(   option_specr2   
list[Node]c                r   t          j        d| j        d                                                   }t	          | j        | j        j        | j        |          }t          j
        dd|g          }|                     |           | j        j                            |           |g}| j        r| j        |fz  }d}|                    d          }|dk    r;|d |                                         }||dz   d                                          }t          j        |||dd fg	          }|                    d|           | j        }	d| j        v r| j                            dd          \  }
}	t'          t(          | j                            d
                    }|                    |	|||           |S )Nr4   r   r,   rm   rD   rA   rB   rC   )rE   rF   rG   )r   r8   	argumentsrO   r!   r5   rI   rJ   r:   r
   ro   set_source_inforM   r.   rN   r   rl   insertsplitr	   rQ   rR   rS   )r9   fullnamerT   rf   retrW   rV   rU   inoder:   r   rF   s               r;   runz
Target.runs   s   9S$."3"9"9";";<<$(DJ$7HMM|B	222T"""
00666& 	!+xk9J IOOC((E{{&vv.4466	'	

399;;
NY
GRQU,V+WXXXEJJq%   y$)iooc1--GAt>48#6#6u#=#=>>h$???
r=   Nr2   rw   )rZ   r[   r\   r]   r.   has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacerv   r^   r   r_   r=   r;   ru   ru   g   sc           MK $ K         r=   ru   c                  "    e Zd ZdZddZdd
ZdS )	Cmdoptionz;
    Description of a command-line option (.. option).
    r0   r-   r1   r   r2   c                d   d}d}|                     d          D ]}|                                }t                              |          }|s+t                              t          d          ||           ^|                                \  }}|d         dk    r|d         dk    r|d	d         }d|z   }|rX| j        j	        j
        r/|t          j        d
d
          z  }|t          j                    z  }n|t          j        dd          z  }|t          j        ||          z  }| j        j	        j
        r(d}	|r|d         dk    r1|d         dk    r%d}	|t          j        dd          z  }|dd         }ne|d         dk    r+|t          j                    z  }|                                }n.|d         dk    r"|t          j        dd          z  }|dd	         }t                               |          D ]K}
t%          |
t&          j                  r*|t'          j        |
                                          z  }F||
z  }L|	r|t          j        dd          z  }n|t          j        ||          z  }|s	|}|g|d<   n|d                             |           |dz  }|st.          |S )z/Transform an option description into RST nodes.r   r,   z, znMalformed option description %r, should look like "opt", "-opt args", "--opt args", "/opt args" or "+opt args"rG   rB   []N,FTrC   r4   =allnames)r|   rO   option_desc_rematchloggerwarningr   groupsr5   configoption_emphasise_placeholdersr   desc_sig_punctuationdesc_sig_spacedesc_addnamer7   	samp_roleparse
isinstancer
   TextastextrL   
ValueError)r9   r0   r1   count	firstnamepotential_optionmoptnameargsadd_end_bracketparts              r;   r<   zCmdoption.handle_signature   s   	 #		$ 1	 1	/5577$$%566A r #?  @  @AQ(/  1 1 1 HHJJMGTr{c!!d2h#oo!#2#,Tz A8?@ Ax<S#FFFGx6888GGx4T4@@@Gx)'7;;;Gx< ="' ,Aw#~~$r(c//*.8#@c#J#JJ#AbDzaC8#:#<#<<#zz||aC8#@c#J#JJ#ABBx ) 5 5 , ,%dEJ77 ,#uz$++--'@'@@GG#tOGG" Gx<S#FFFG80t<<< 4#	'.i
##
#**7333QJEE 	r=   r   r>   c                   | j         j                            d          }|                    dg           D ]}dg}|r|                    |           |                    d          s|                    d           d                    |          }t          | j         | j        j        ||          }|d                             |           | j        j        	                    |           | j         j
        d         }	|                    dg           D ]0}|	                    ||| j         j        |d         d	                    1|rt          d
          |z  }
nt          d          }
|                    dg           D ]J}d                    |
|g          }| j        d                             d||d         d	         dd f           Kd S )Nstd:programr   	cmdoption)-/argr   r@   rF   r   z%s command line optionzcommand line optionz; rE   pairr,   )r5   ref_contextgetrL   
startswithjoinr!   rI   rJ   rM   domainsadd_program_optiondocnamer   rP   )r9   r   r0   r1   currprogramr   prefixesprefixrT   domaindescroptionentrys                r;   rX   zCmdoption.add_target_and_index   s   h*..}=={{:r22 	+ 	+G#}H -,,,%%j11 '&&&XXh''Fdh
(;VWMMGEN!!'****
00999!%({{:r22 	K 	KG%%k7&*h&6q8IK K K K  	-.//+=EE+,,Ekk*b11 	[ 	[FIIufo..EN9%,,feWU^A=NPRTX-YZZZZ	[ 	[r=   NrY   )r   r-   r0   r-   r1   r   r2   r>   )rZ   r[   r\   r]   r<   rX   r_   r=   r;   r   r      sM         8 8 8 8t[ [ [ [ [ [r=   r   c                  :    e Zd ZU dZdZdZdZdZi Zde	d<   dd
Z
dS )ProgramzI
    Directive to name the program for which options are documented.
    FrC   r   Tr(   rv   r2   rw   c                    t          j        d| j        d                                                   }|dk    r!| j        j                            dd            n|| j        j        d<   g S )Nr   r   r>   r   )r   r8   ry   rO   r5   r   pop)r9   programs     r;   r   zProgram.run   sc    )C!2!8!8!:!:;;fH $$]D999929DH /	r=   Nr   rZ   r[   r\   r]   r   r   r   r   rv   r^   r   r_   r=   r;   r   r      s^           K $ K         r=   r   c                      e Zd ZddZdS )OptionXRefRoler5   r'   refnoder   has_explicit_titlerh   titler-   ro   r2   tuple[str, str]c                D    |j                             d          |d<   ||fS )Nr   )r   r   )r9   r5   r   r   r   ro   s         r;   process_linkzOptionXRefRole.process_link   s&    !$!4!4]!C!Cf}r=   Nr5   r'   r   r   r   rh   r   r-   ro   r-   r2   r   rZ   r[   r\   r   r_   r=   r;   r   r      s(             r=   r   liner-   r2   list[str | None]c                8    t          j        d|           d gz   }|S )Nz +: +)rer|   )r   partss     r;   split_term_classifiersr     s     hw55>ELr=   r5   r'   	textnodesIterable[Node]	index_keysourcelinenointrT   
str | NonerJ   re   
nodes.termc                H   t          j        ddg|R  }||_        ||_        |                                }|r|d                             |           nBt          | |d|          }|d                             |           |                    |           t          t          | 
                    d                    }	|	                    |||           t          j                    }
d||d|fg|
d<   |j        |j        c|
_        |
_        |                    |
           |S )	Nr,   r@   termrF   rG   rD   mainrE   )r
   r   r   r   r   rL   r!   rM   r	   rQ   rR   
_note_termr   rl   )r5   r   r   r   r   rT   rJ   r   termtextrF   rP   s              r;   make_glossary_termr     s    
 :b")y)))DDKDI{{}}H ,U7#####x::U7###%%d+++
~s~~e44
5
5CNN8WtN444   I%x&)LMIi'+{DI$IinKK	Kr=   c                  H    e Zd ZU dZdZdZdZdZdej	        iZ
ded<   dd
ZdS )Glossaryz[
    Directive to create a glossary with cross-reference targets for :term:
    roles.
    Tr   Fsortedr(   rv   r2   rw   c                   t          j                    }| j        j        |_        d| j        v |d<   g }d}d}d}g }t          | j        | j        j                  D ]6\  }\  }}	|s*|r%|r#|d         d                             d||	           d}5|rT|d         	                                s9|
                    d          rd}kd}|ro|sB|                    | j        j                            t          d	          ||	
                     |                    |||	fgt                      f           d}nV|rB|                    | j        j                            t          d          ||	
                     |r%|d         d                             |||	f           n|                    | j        j                            t          d          ||	
                     n|rn|s3d}t          |          t          |                                          z
  }
|r,|d         d                             ||
d          ||	           nB|                    | j        j                            t          d          ||	
                     d}8g }|D ]3\  }}g }g }|D ]\  }}}	t#          |          }| j                            |d         |	          \  }}t'          | j        ||d         ||	d | j        j                  }||_        |                    |           |                    |           |                    |           t/          j                    }|r-| j                            ||j        d         d         |           |                    |           |                    t/          j        dg|R             5t/          j        dg|R  }|d                             d           ||z  }||gz   S )Nr   TFrB   rC   r,   r   z.. 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)rT   rJ   classesglossary)r   r   rI   rJ   optionszipcontentitemsrL   isspacer   reporterr   r   r   lenlstripr   inline_textr   r5   	rawsourceextendr
   
definitionnested_parsedefinition_list_itemdefinition_list)r9   rf   rE   in_definition
in_comment	was_emptymessagesr   r   r   
indent_lenr   termsr   	termnodessystem_messagesr   r   sysmsgr   defnodedlists                         r;   r   zGlossary.run7  s    ""
+"dl2X HJ
	!&)$,8J&K&K 0	 0	"D"66   >W >BKN))"ff=== 	 '5DGOO-- '5??5)) !%J"
 ! 9$ 9 
(;(C(CLMM#) )D )8 )8 9 9 9 NNdFF%;$<jll#KLLL$)MM ! 9 
(;(C(CSTT#) )D )8 )8 9 9 9  9A--tVV.DEEEE 
(;(C(CTUU#) )D )8 )8 9 9 9 9  5$ @$(M!$TS-?-?!?J 5BKN))$z{{*;VVLLLLOODJ$7$?$?PQQ%F %@ %4 %4 5 5 5 II 35!( 	E 	EE:$&I*,O(- ' '$ff.t44 %)J$:$:58;A%C %C!	6 *$(I*/(FF26ATV V V "&&&v...  &&&&_---&((G 1
''
J4DQ4G4J(/1 1 1W%%%LL3BCCCCDDDD%b15111i
+++4&  r=   Nr   )rZ   r[   r\   r]   r   r   r   r   r   flagrv   r^   r   r_   r=   r;   r   r   )  su          
 K %*/K    b! b! b! b! b! b!r=   r   r,   textproductionGrouprw   c                >   t          |          dk    r|dz  }g }d}t                              |           D ]"}|                                |k    rC| ||                                         }|                    t          j        |                     |                    d          }d|v rM|d         dk    r#|                    d          \  }}|dd          }	n%|d         dk    r|dd          }|}	n|}|}	n|}||z   }	t          |dd|	          }
|
t          j
        ||dg	          z  }
|                    |
           |                                }$|t          |           k     r/|                    t          j        | |d                               |S )
Nr   rA   rC   ~tokenrF   )reftype	refdomainrk   xrefr   )r   token_refinditerstartrL   r
   r   groupr|   r   literalend)r   r  retnodesposr   txtr  r   r   ro   r   s              r;   token_xrefsr    s   
?q  3H
Ct$$  7799s??s17799}%COOEJsOO,,,

%<<Qx3 ;;s++5qrrqSabb	E$u,Fug)/1 1 15=x@@@@   eegg
SYY
4:..///Or=   c                  :    e Zd ZU dZdZdZdZdZi Zde	d<   dd
Z
dS )ProductionListz0
    Directive to list grammar productions.
    FrC   r   Tr(   rv   r2   rw   c                   t          t          | j                            d                    }t	          j                    }|                     |           t          j        d          }|	                    d| j
        d                                       d          }d}d}|D ]Q}|sd|vr|                                }d}	 |                    dd	          \  }}	n# t          $ r Y  n
w xY wt	          j        |          }
|                                }||
d
<   |
d
         rd|z  }t          | j        | j        j        ||          }|
d                             |           | j        j                            |
|
           t)          |          dk    r| d| }n|}|                    d|||           |
                    t/          |	|                     |                    |
           S|gS )NrF   z\\\nr,   r   
FrA   TrC   	tokennamezgrammar-token-%sr@   r  rG   )r	   rQ   r5   rR   r   productionlistrz   r   compiler8   ry   r|   rO   r   
productionr!   rI   rJ   rL   note_implicit_targetr   rS   r   r  )r9   r   rf   nl_escape_relinesr  first_rule_seenruler:   tokenssubnoder   rT   objNames                 r;   r   zProductionList.run  s   ndh&9&9%&@&@AA /11T"""z'**  T^A%677==dCC 	! 	!D" s$"&**,,"O#zz#q11ff   )$//G::<<D#'GK {# 
M+o=!$(DJ,?NN%%g...
#88'JJJ''1,,!099499GG"G""7GWt"LLLNN;v??@@@KK    vs   C
C.-C.Nr   r   r_   r=   r;   r  r    s^           K $ K    # # # # # #r=   r  c                      e Zd ZddZdS )TokenXRefRoler5   r'   r   r   r   rh   r   r-   ro   r2   r   c                    |                     d          }| j        s3|d         dk    r'd|v r|                    d          \  }}n
|dd          }||fS )Nr  r   rA   rC   )r   r   r|   )r9   r5   r   r   r   ro   r   s          r;   r   zTokenXRefRole.process_link  sa    s##& 	"58s??e|| ;;s++55abb	f}r=   Nr   r   r_   r=   r;   r$  r$    s(             r=   r$  c                      e Zd ZU dZdZdZ e ed          dd           e ed          d	d           e ed
          ddd           e ed          d           e ed          d           e ed          dd          dZde	d<   e
eeeeedZde	d<    ed           e             e             eej        d           edej        d           edd           ed           edej                  dZd e	d!<   i i d"d# ed$          fd%d# ed&          fd'd# ed(          fd)d*d+d,d)d-Zd.e	d/<   d" ed$          fd% ed&          fd' ed(          fd)Zd0e	d1<   d2d3d4d5d6d7Zej        d8ej        d9ej        d:iZd;e	d<<   d fdAZ	 dddGZe ddI            Z!dddOZ"e ddP            Z#dddQZ$e ddS            Z%e ddU            Z&e ddV            Z'ddWZ(dd\Z)dd^Z*ddaZ+ddiZ,ddpZ-ddqZ.ddrZ/ddsZ0ddtZ1dduZ2ddvZ3ddwZ4ddyZ5dd{Z6dddZ7ddZ8ddZ9ddZ:ddZ;ddZ< xZ=S )rQ   zs
    Domain for all objects that don't fit into another domain or are added
    via the application interface.
    rF   Defaultzglossary termr   rB   )
searchpriozgrammar tokenr  zreference labelrefkeywordzenvironment variableenvvarzprogram optionr   rJ   doc)r   r  labelr+  r   r,  zdict[str, ObjType]object_types)r   r   r   r+  r   r  zdict[str, type[Directive]]r   T)warn_dangling)innernodeclassr/  )	lowercaser0  r/  )r1  r/  )r/  r0  )r   r+  r  r   r)  numrefr*  r,  z"dict[str, RoleFunction | XRefRole]rolesgenindexr,   Indexpy-modindexzModule IndexsearchzSearch Page)r4  modindexr7  )r4  r,   )r6  r,   )r7  r,   )progoptionsobjectslabels
anonlabelsr   initial_datadict[str, tuple[str, str]]_virtual_doc_namesz term not in glossary: %(target)rzundefined label: %(target)rzunknown keyword: %(target)rzunknown document: %(target)rzunknown option: %(target)r)r   r2  r*  r,  r   )figureN)tableN)
code-blockNz0dict[type[Node], tuple[str, TitleGetter | None]]enumerable_nodesr5   r'   r2   r>   c                    t                                          |           t          | j                  | _        |j        j        j                                        D ]\  }}|| j        |<   d S N)super__init__r   rC  appregistryr   )r9   r5   rf   settings	__class__s       r;   rG  zStandardDomain.__init__M  sq     !%T%: ; ;!g.?EEGG 	3 	3ND(*2D!$''	3 	3r=   r:   r-   r   rT   r   c                   || j         v re| j         |         ||fk    rRt                              t          d          || j                            | j         |         d                              ||f| j         |<   |r|||f| j        |<   dS dS )aU  Add 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 %sr   N)r<  r   r   r   r5   doc2pathr;  )r9   r:   r   rT   r   s        r;   note_hyperlink_targetz$StandardDomain.note_hyperlink_targetU  s      4?""tt'<'@R'R'RNN2HII!2!24?43H3K!L!LN N N ")' 2 	:!('5 9DK	: 	:r=   &dict[tuple[str, str], tuple[str, str]]c                8    | j                             di           S )Nr:  data
setdefaultr9   s    r;   r:  zStandardDomain.objectsm  s    y##Ir222r=   NrK   labelidrH   r   c                    ||f| j         v rA| j         ||f         d         }t                              t          d          ||||           | j        j        |f| j         ||f<   dS )zRNote a generic object for cross reference.

        .. versionadded:: 3.0
        r   z4duplicate %s description of %s, other instance in %srG   N)r:  r   r   r   r5   r   )r9   rK   r:   rV  rH   r   s         r;   rS   zStandardDomain.note_objectq  s|     T?dl**l7D=1!4GNN2TUU"D'H  F F F'+x'7&AWd]###r=   c                8    | j                             di           S )z2.. note:: Will be removed soon. internal use only.r   rR  rU  s    r;   _termszStandardDomain._terms}  s     y##GR000r=   c                    |                      d|||           | j        j        |f| j        |                                <   dS )zeNote a term for cross reference.

        .. note:: Will be removed soon. internal use only.
        r   N)rS   r5   r   rY  lower)r9   r   rV  rH   s       r;   r   zStandardDomain._note_term  sB    
 	w999%)X%5w$?DJJLL!!!r=   -dict[tuple[str | None, str], tuple[str, str]]c                8    | j                             di           S )Nr9  rR  rU  s    r;   r9  zStandardDomain.progoptions  s    y##M2666r=   dict[str, tuple[str, str, str]]c                8    | j                             di           S )Nr;  rR  rU  s    r;   r;  zStandardDomain.labels  s    y##Hb111r=   c                8    | j                             di           S )Nr<  rR  rU  s    r;   r<  zStandardDomain.anonlabels  s    y##L"555r=   c                n   d }t          | j                                                  D ]\  }\  }}||k    r| j        |= t          | j                                                  D ]\  }\  }}||k    r| j        |= t          | j                                                  D ]\  }\  }}||k    r| j        |= t          | j                                                  D ]\  }\  }}}||k    r| j        |= t          | j                                                  D ]\  }\  }}||k    r| j        |= d S rE  )listr9  r   r:  rY  r;  r<  )r9   r   keyfn_ls        r;   	clear_doczStandardDomain.clear_doc  s[   !$"2"8"8":":;; 	* 	*MC"bW}}$S)!$,"4"4"6"677 	& 	&MC"bW}}L%!$+"3"3"5"566 	% 	%MC"bW}}K$!%dk&7&7&9&9!:!: 	% 	%C"b"W}}K$!$/"7"7"9"9:: 	) 	)MC"bW}}OC(	) 	)r=   docnames	list[str]	otherdatadict[str, Any]c                   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   |d                                          D ]\  }}|d         |v r
|| j        |<   d S )Nr9  r   r:  r   r;  r<  )r   r9  r:  rY  r;  r<  )r9   rg  ri  rc  rS  s        r;   merge_domaindatazStandardDomain.merge_domaindata  sM   "=17799 	- 	-ICAw(""(, %"9-3355 	) 	)ICAw(""$(S!"7+1133 	( 	(ICAw(""#'C "8,2244 	( 	(ICAw(""#'C "<06688 	, 	,ICAw(""'+$	, 	,r=   re   c           	        |j                                         D ]\  }}|s	|j        |         }||j        |         }t	          |t
          j                  r2d|v r.|j                            |d                   }|d         d         }|j        dk    sd|v s|j        	                    d          r|| j
        v rOt                              t          d          ||                    | j
        |         d                   |           ||f| j        |<   |j        d	k    r1t!          t
          j        |d                   }t%          |          }	np|j        d
k    rt%          |          }	nT|                     |          r|                     |          pd}	|	sn"t	          |t
          j        t
          j        f          r,|j        r%t!          t
          j        |j        d                   }t	          |t
          j        t
          j        f          r%t!          t
          j        |j        d                   }t	          |t
          j        t
          j        f          rt%          |          }	nOt;          |                    t>          j                   d           }
|
r|
                    d          r	|
d         }	n|||	f| j
        |<   d S )Nrefidnamesr   footnoterefuridesc_rM  rG   sectionrubricr,   caption)!	nametypesr   nameidsr@   r   r
   ro   r   tagnamer   r;  r   r   r   rN  r<  r	   r   r    is_enumerable_nodeget_numfig_titler   
field_listchildrenr   fieldr   r   
field_namenextfindallr   toctree)r9   r5   r   rJ   r:   explicitrV  rf   r   sectnamer  s              r;   process_doczStandardDomain.process_doc  s    '06688 /	; /	;ND( &t,G<(D$-- +'T//|''W66w-*
**$$L++G44 % t{""r"LMM#S\\$+d2CA2F%G%G(,  . . . %,W$4DOD!|y((U[$q'22'..))'--((.. !0066<"  te&;&+&6&8 9 9 AA  t}Q/?@@DdU[%2L$MNN At}Q/?@@DdUZ1A$BCC !+D11HH"4<<0@#A#A4HHG !7;;y#9#9 !#*9#5 ! '( :DK_/	; /	;r=   r   r   c                <    ||f| j         vr||f| j         ||f<   d S d S rE  )r9  )r9   r   r:   r   rV  s        r;   r   z!StandardDomain.add_program_option  s:     T?$"222/6.@DWd]+++ 32r=   fromdocnamebuilderr&   r  rolenamer   r   c                   |                     dt          j                  } |dddi|}	t          j        ||          }
|
                    d          9|
d                             d           |
d                             d|z              ||k    r||	d<   nGt          d          }||d	<   ||d
<   |                    ||          |	d<   |r|	dxx         d|z   z  cc<   |	                    |
           |	S )N	nodeclassr,   internalTr   rF   zstd-rn  
refdocnamerefsectnamerq  #r,   r,   )r   r
   	referenceinliner   rL   r   get_relative_uri)r9   r  r  r   rV  r  r  r   r  newnode	innernodecontnodes               r;   build_reference_nodez#StandardDomain.build_reference_node  s&    KKU_==	)==T=W==L844	==##/i ''...i ''(9:::k!!&GG
 $B''H%,H\"&.H]# ' 8 8W!& !&GH 3!!!S7]2!!!y!!!r=   typro   rf   r   r  Element | Nonec           	         |dk    r| j         }nM|dk    r| j        }n?|dk    r| j        }n1|dk    r| j        }n#|dk    r| j        }n|dk    r| j        }n| j        } ||||||||          S )Nr)  r2  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)	r9   r5   r  r  r  ro   rf   r  resolvers	            r;   resolve_xrefzStandardDomain.resolve_xref  s     %<<-HHH__0HHI1HHE\\-HHH__0HHF]].HH-Hx['3hOOOr=   c                    |d         r3| j                             |d          \  }}	|                                }
n| j                            |d          \  }}	}
|sd S |                     ||||	|
d          S )Nrefexplicitr  r,   r,   r,   r)  )r<  r   r   r;  r  )r9   r5   r  r  r  ro   rf   r  r   rV  r  s              r;   r  z StandardDomain._resolve_ref_xref"  s      	O  $2268DDGW{{}}HH *.)N)N&GWh 	4((g)0'8UL L 	Lr=   c           
     V   || j         v r | j                             |d          \  }}	}
n | j                            |d          \  }}	d }
|sd S |                    |          j                            |	          }|J |                     |          }|d S |dk    r9|j        j        du r+t          	                    t          d          |           |S 	 |                     |||||          }||S n<# t          $ r/ t          	                    t          d          |	|           |cY S w xY w	 |d         r|                                }n |j        j                            |d	          }|
0d
|v r,t          	                    t          d          ||           |S d                    t!          t"          |                    }d
|v sd|v r1|
r|                    |
|          }n|                    |          }n||z  }n{# t&          $ r7}t          	                    t          d          |||           |cY d }~S d }~wt(          $ r/ t          	                    t          d          ||           |cY S w xY w|                     ||||	|dt,          j        |          S )Nr  r  rs  Fz(numfig is disabled. :numref: is ignored.rG   zBFailed to create a cross reference. Any number is not assigned: %sr  r,   z{name}zthe link has no caption: %s.number)r:   r  )r  zinvalid numfig_format: %s (%r)zinvalid numfig_format: %sr2  )r  r   )r;  r   r<  get_doctreer@   get_enumerable_node_typer   numfigr   r   r   get_fignumberr   r   numfig_formatr   mapr-   formatKeyError	TypeErrorr  r   number_reference)r9   r5   r  r  r  ro   rf   r  r   rV  fignametarget_nodefigtype	fignumberr   fignumnewtitleexcs                     r;   r  z#StandardDomain._resolve_numref_xref4  s    T[  (,(M(M%GWgg#2268DDGWG 	4oog..266w??&&&//<<?4iCJ$5$>$>NN2HIITXNYYYO	**3';WWI  ! 	 	 	NN2 - . ."T  3 3 3 OOO			M" B ))
044WbAA8u#4#4r"?@@%RVWWW#c9"5"566u$$E(9(9 ?#(<<WV<#L#L#(<<v<#>#>  %v~H 	 	 	NN2>??VZN[[[OOOOOO 	 	 	NN29::EDNQQQOOO	 ((g)0'8X3;3L/4 ) 6 6 	6s>   C6 66D/.D/3A.H	 "A&H	 	
J,I?J9J Jc                n    | j                             |d          \  }}	}
|sd S t          ||||	|          S )Nr  )r;  r   r"   )r9   r5   r  r  r  ro   rf   r  r   rV  r   s              r;   r  z$StandardDomain._resolve_keyword_xreft  sJ     #kooflCC! 	4G['#X/ / 	/r=   c                4   |                     d|          }t          ||d                   }	|	|j        vrd S |d         r|                                }
nt	          |j        |	                   }
t          j        |
|
dg          }t          |||	d |          S )Nrefdocrk   r  r,  r  )	r   r   all_docsr   r    titlesr
   r  r"   )r9   r5   r  r  r  ro   rf   r  r  r   ru  r  s               r;   r  z StandardDomain._resolve_doc_xref~  s     (K00vtK'899#,&&4M" <++--&sz'':;;WgwGGGIgtYOOOr=   c                p   |                     d          }|                                }| j                             ||fd          \  }	}
|	sFdD ]C}||v r=|                    |          \  }}}| j                             ||fd          \  }	}
|	r nD|	sg }t	          j        |          ryt	          j        |d          \  }}|                    |           d                    |          }| j                             ||fd          \  }	}
|	rnt	          j        |          yd S t          |||	|
|          S )Nr   r  >   [=r4   r   rC   r   )
r   rO   r9  	partitionr   r7  r|   rL   r   r"   )r9   r5   r  r  r  ro   rf   r  prognamer   rV  needlestemr   commands
subcommands                   r;   r  z#StandardDomain._resolve_option_xref  sn    88M**+//60BHMM 
	
 +  V##!'!1!1&!9!9JD!Q'+'7';';Xt<Lh'W'W$GW  	H,v&& 	%*[%;%;"
F
+++88H--#'#3#7#768JH#U#U   ,v&& 	 tG['#X/ / 	/r=   c           	         |                      |||||||          }|r|S |                                | j        v r5| j        |                                         \  }	}
t          |||	|
|          S d S rE  )r  r[  rY  r"   )r9   r5   r  r  r  ro   rf   r  resultr   rV  s              r;   r  z!StandardDomain._resolve_term_xref  s     ''['3(.h@ @ 	M ||~~,,#';v||~~#> #G['7HUUUtr=   c                    |                      |          pg }|D ]!}	|	|f| j        v r| j        |	|f         \  }
} n"d\  }
}|
sd S t          |||
||          S )Nr  )objtypes_for_roler:  r"   )r9   r5   r  r  r  ro   rf   r  objtypesrK   r   rV  s               r;   r  z StandardDomain._resolve_obj_xref  s     ))#..4" 	& 	&G DL00#'<#@  1  &GW 	4G['#X/ / 	/r=   list[tuple[str, Element]]c                   g }|                                 }dD ]A}	|                     ||||	|	dk    r|n|||          }
|
r|                    d|	z   |
f           B| j        D ]i}||f}|dk    r||f}|| j        v rP| j        |         \  }}d|                     |          z   }	|                    |	t          |||||          f           j|S )N)r)  r   r)  zstd:r   )r[  r  rL   r.  r:  role_for_objtyper"   )r9   r5   r  r  ro   rf   r  resultsltargetroleresrK   rc  r   rV  s                  r;   resolve_any_xrefzStandardDomain.resolve_any_xref  s%    .0,,..% 	5 	5D##Cgt/3u}}GG&$((4 4C  5s3444( 	H 	HGF#C&  (dl""#'<#4  5 5g > >>l7K3:H'F 'F  G H H Hr=   -Iterator[tuple[str, str, str, str, str, int]]c              #    K   | j         j        D ])}|t          | j         j        |                   d|ddfV  *| j                                        D ]N\  \  }}}|r.d                    ||g          }||d|d         |d         dfV  8||d|d         |d         dfV  O| j                                        D ]4\  \  }}}||||d         |d         | j        |         j	        d         fV  5| j
                                        D ]\  }\  }}	}
||
d	||	dfV  t          | j
                  }| j                                        D ]\  }\  }}	||vr
||d	||	dfV  d S )
Nr,  r,   rB   r  r   r   rC   r(  r-  )r5   r  r    r  r9  r   r   r:  r.  attrsr;  setr<  )r9   r,  progr   infor}   typer:   r   rV  sectionnamenon_anon_labelss               r;   get_objectszStandardDomain.get_objects  s     8$ 	P 	PCTX_S%9::E3BOOOOO$($4$:$:$<$< 	I 	I NT6D I88T6N33;Qa!LLLLLv{DGT!WaHHHHH"&,"4"4"6"6 	@ 	@LT4$tT!Wd1g$T*0>@ @ @ @ @59[5F5F5H5H 	E 	E1D17G[gwDDDDDdk**(,(=(=(?(? 	B 	B$D$7G?**T7GWbAAAA	B 	Br=   Fr  r   primaryrh   c                    |j         S rE  )lname)r9   r  r  s      r;   get_type_namezStandardDomain.get_type_name  s
    zr=   r   c                    |j         | j        v S rE  )rK  rC  )r9   rf   s     r;   ry  z!StandardDomain.is_enumerable_node  s    ~!666r=   c                2   |                      |          rt          t          |          }| j                            |j        d          \  }}|r ||          S |D ]9}t          |t          j        t          j	        f          rt          |          c S :dS )z?Get the title of enumerable nodes to refer them using its titleNNN)ry  r	   r   rC  r   rK  r   r
   ru  r   r    )r9   rf   elemr   title_getterr!  s         r;   rz  zStandardDomain.get_numfig_title  s    ""4(( 	5&&D"377UUOA| 5#|D)))# 5 5G!'EM5;+GHH 5+G444445 tr=   c                    dd}t          |t          j                  rdS t          |t          j                  rd	|v r ||t          j                  rd
S | j                            |j        d          \  }}|S )zGet type of enumerable nodes.rf   r   clsr  r2   rh   c                :    t          fd| D                       S )Nc              3  8   K   | ]}t          |          V  d S rE  )r   ).0childr  s     r;   	<genexpr>zMStandardDomain.get_enumerable_node_type.<locals>.has_child.<locals>.<genexpr>  s-      @@%z%--@@@@@@r=   )any)rf   r  s    `r;   	has_childz:StandardDomain.get_enumerable_node_type.<locals>.has_child  s&    @@@@4@@@@@@r=   rs  literal_blockrB  r  N)rf   r   r  r  r2   rh   )r   r
   rs  	containerr  rC  r   rK  )r9   rf   r  r  r   s        r;   r  z'StandardDomain.get_enumerable_node_type  s    	A 	A 	A 	A dEM** 		9u// 	%%ie122 &  <.224><PPJGQNr=   r  r  tuple[int, ...] | Nonec                   |dk    r}|j         dk    rdS ||j        vrt          d|d         d         z   }||j        |         vr |j        |                             d          S |j        |                             |          S 	 |d         d         }|j        |         |         |         S # t
          t          f$ r}t          |d }~ww xY w)Nrs  latexr_   r  r@   r   r,   )r:   toc_secnumbersr   r   toc_fignumbersr  
IndexError)	r9   r5   r  r  r   r  
anchorname	figure_idr  s	            r;   r  zStandardDomain.get_fignumber  s     i|w&&r 222   ;u#5a#88
S%7%@@@-g6::2>>>-g6:::FFF*'.q1	)'27;IFFj) * * * !c)*s   &B, ,C
=CC
c                d   |                     d          dk    r|                     d          }t          j        |                     d                    }|r|                    d|           |                                }|r*d                    d                    |          |g          S d S d S )Nr  r   r   rk   r   r  r   )r   r   r|   r{   r   r   )r9   rf   r  commandr   s        r;   get_full_qualified_namez&StandardDomain.get_full_qualified_name<  s    88I(**xx..Hk$((;"7"788G ,q(+++[[]]F xx'!2!2F ;<<<t4r=   )r5   r'   r2   r>   r,   )
r:   r-   r   r-   rT   r-   r   r-   r2   r>   )r2   rP  rE  )
rK   r-   r:   r-   rV  r-   rH   r   r2   r>   )r2   r>  )r   r-   rV  r-   rH   r   r2   r>   )r2   r\  )r2   r^  )r   r-   r2   r>   )rg  rh  ri  rj  r2   r>   )r5   r'   r   r-   rJ   re   r2   r>   )
r   r   r:   r-   r   r-   rV  r-   r2   r>   )r  r-   r  r&   r   r-   rV  r-   r  r-   r  r-   r   r   r2   r   )r5   r'   r  r-   r  r&   r  r-   ro   r-   rf   r   r  r   r2   r  )r5   r'   r  r-   r  r&   ro   r-   rf   r   r  r   r2   r  )r2   r  )F)r  r   r  rh   r2   r-   )rf   r   r2   rh   )rf   r   r2   r   )r5   r'   r  r&   r  r-   r   r-   r  r   r2   r  )rf   r   r2   r   )>rZ   r[   r\   r]   r:   r-  r   r   r.  r^   r   r   ra   r   r  r   r   rd   r$  r   r
   r  r3  r=  r?  dangling_warningsr@  rA  r  rC  rG  rO  propertyr:  rS   rY  r   r9  r;  r<  rf  rl  r  r   r  r  r  r  r  r  r  r  r  r  r  r  ry  rz  r  r  r  __classcell__)rK  s   @r;   rQ   rQ     s         
 DE /**FrBBB?++WDDD,--ui$&( ( ('!!233X>>WQQ/00(;;wqq}}e;;;( (L     (. .J     ">555!>## =??85<*.0 0 0 8d5<*.0 0 0 8d*.0 0 0 8$///8$u|LLL#1 1E    * #R74&AAn,=,=>!2qq'7'78
 
 )+&
 
 L       7,"AAn$5$56QQ}--.6 6     300-.  	&_-J    3 3 3 3 3 3 ,.: : : : :0 3 3 3 X3
B 
B 
B 
B 
B 1 1 1 X1@ @ @ @ @ 7 7 7 X7 2 2 2 X2 6 6 6 X6) ) ) )$, , , ,$2; 2; 2; 2;hA A A A   2P P P P(L L L L$>6 >6 >6 >6@/ / / /P P P P"/ / / /B   / / / /   .B B B B*    7 7 7 7       * * * *:       r=   rQ   rH  r%   r   r   rf   r   bool | Nonec                    |r|j         dk    s|d         dk    rd S |d         }||j        vrt          d          }nt          d          }t                              ||z  |d|d                    dS )	NrF   r  r)  rk   zundefined label: %rzDFailed to create a cross reference. A title or caption not found: %r)rH   r  subtypeT)r:   r<  r   r   r   )rH  r   rf   ro   msgs        r;   warn_missing_referencer  K  s     
6;%''DOu,D,Dtk"****++CC[\\CsV|dYXXXtr=   rj  c                z    |                      t                     |                     dt                     dddddS )Nzwarn-missing-referencebuiltin   T)versionenv_versionparallel_read_safeparallel_write_safe)
add_domainrQ   connectr  )rH  s    r;   setupr  Z  sG    NN>"""KK(*@AAA "#	  r=   )r   r-   r2   r   )r5   r'   r   r   r   r-   r   r-   r   r   rT   r   rJ   re   r2   r   r  )r   r-   r  r-   r2   rw   )rH  r%   r   r   rf   r   r2   r  )rH  r%   r2   rj  )Vr]   
__future__r   r   r   typingr   r   r   r   r	   docutilsr
   docutils.nodesr   r   r   docutils.parsers.rstr   r   docutils.statemachiner   sphinxr   sphinx.addnodesr   r   sphinx.directivesr   sphinx.domainsr   r   r   sphinx.localer   r   sphinx.rolesr   r   sphinx.utilr   r   r   sphinx.util.docutilsr   sphinx.util.nodesr    r!   r"   collections.abcr#   r$   sphinx.applicationr%   sphinx.buildersr&   sphinx.environmentr'   sphinx.util.typingr(   r)   	getLoggerrZ   r   r  r   Ur	  r   r-   r+   ra   rd   ru   r   r   r   r   r   r   r  r  r$  rQ   r  r  r_   r=   r;   <module>r&     s     " " " " " " 				       < < < < < < < < < < < < < <       8 8 8 8 8 8 8 8 8 8 6 6 6 6 6 6 6 6 , , , , , ,       8 8 8 8 8 8 8 8 / / / / / / 7 7 7 7 7 7 7 7 7 7         4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 A A A A A A A A A A <22222222))))))''''''333333;;;;;;;;		8	$	$ ?@@2:)2400	!G !G !G !G !G%c* !G !G !GH2 2 2 2 2] 2 2 21 1 1 1 1X 1 1 1*$ $ $ $ $_ $ $ $NY[ Y[ Y[ Y[ Y[!#& Y[ Y[ Y[x    o   (    X         <p! p! p! p! p! p! p! p!f    B. . . . ._ . . .b	 	 	 	 	H 	 	 	N	 N	 N	 N	 N	V N	 N	 N	b   	 	 	 	 	 	r=   