
    -Ph                        d 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
Z
ddl
mZ ddlmZ dd	lmZ erdd
lmZ ddlmZ ddlmZ ddgdgdgddgdZd%d&dZ G d de          Zd'd"Zd(d$ZdS ))z@Add external links to module code in Python object descriptions.    )annotations)FunctionTypeNoneType)TYPE_CHECKING)nodesN)addnodes)SphinxError)_)Node)Sphinx)ExtensionMetadatamodulefullnamenamesobject)pyccppjsFdomainstrkeys	list[str]overrideboolreturnNonec                N    |s	| t           vrt          |          t           | <   dS dS )zPRegister a new list of keys to use for a domain.

    .. versionadded:: 8.2
    N)_DOMAIN_KEYSlist)r   r   r   s      S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/ext/linkcode.pyadd_linkcode_domainr"      s4    
  *6--#DzzV .-    c                      e Zd ZdZdS )LinkcodeErrorzlinkcode errorN)__name__
__module____qualname__category r#   r!   r%   r%   '   s        HHHr#   r%   appr   doctreer   c           
     >   | j         }t          |j        dd           }t          |j        j                  sd}t          |          |J t          | j        dd          }t          |                    t          j
                            D ]}|                    d          }t                      }|D ]}	t          |	t          j                  si }
t                              |d          D ] }|	                    |          }|sd}||
|<   !|
s^ |||
          }|sm||v s|st|                    |           t#          j        dt'          d          d	g
          }t          j        |          }|t#          j        dd|d|          z  }|	|z  }	d S )Nlinkcode_resolvez3Function `linkcode_resolve` is not given in conf.pysupported_linkcodehtmlr   r*    z[source]zviewcode-link)classes)exprF)internalrefuri)envgetattrconfigcallabler.   r%   builderr    findallr   descgetset
isinstancedesc_signaturer   addr   inliner
   only	reference)r+   r,   r6   resolve_targetmsgnode_only_exprobjnoder   urissignodeinfokeyvalueurirB   onlynodes                   r!   doctree_readrP   +   s   
'CSZ);TBBNCJ/00 !CC   %%% S[*>GGN6677    X&& 	  	 Ggx'>??  D#''33 " "C(( E!S		  !...C d{{#{HHSMMM\"a
mmo=NOOOF}.999HBsSSSSHxGG9	    r#   r   c           	         |                      dt                     |                     dd dt          t          t
          h                     t          j        ddS )Nzdoctree-readr.   r1   )typesT)versionparallel_read_safe)connectrP   add_config_value	frozensetr   r   sphinx__display_version__)r+   s    r!   setuprZ   \   sc    KK---D"I|X6N,O,O     -"  r#   )F)r   r   r   r   r   r   r   r   )r+   r   r,   r   r   r   )r+   r   r   r   )__doc__
__future__r   rR   r   r   typingr   docutilsr   rX   r   sphinx.errorsr	   sphinx.localer
   docutils.nodesr   sphinx.applicationr   sphinx.util.typingr   r   r"   r%   rP   rZ   r*   r#   r!   <module>rd      st   F F " " " " " " ( ( ( ( ( ( ( (                          % % % % % %       5######))))))444444 Z
 
9Z
 	 * * * * *         K      .  .  .  . b     r#   