
    -Phr              	      D   U d Z ddlmZ ddlmZ ddlmZ erYddlmZ ddlm	Z	m
Z
mZmZ ddlmZ ddlmZ eZeZed	z  Zeeeef         Zd
ed<   eeeeeeeedf         f         f         f         Z ej        d          Zded<    G d d          Z G d d          Zd	S )z=This module contains code shared between intersphinx modules.    )annotations)TYPE_CHECKING)logging)Sequence)AnyFinalNoReturn	TypeAlias)BuildEnvironment)	InventoryNr
   InventoryCacheEntry.zsphinx.ext.intersphinxz"Final[logging.SphinxLoggerAdapter]LOGGERc                  j    e Zd ZU ded<   ded<   ded<   ddd	d
ZddZddZd dZd!dZd"dZ	d#dZ
dS )$_IntersphinxProjectInventoryNamenameInventoryURI
target_uriztuple[InventoryLocation, ...]	locationszOThe inventory name. It is unique and in bijection with an remote inventory URL.zlThe inventory project URL to which links are resolved. It is unique and in bijection with an inventory name.zzA tuple of local or remote targets containing the inventory data to fetch. None indicates the default inventory file name.)r   r   r   Sequence[InventoryLocation]returnNonec                  |rt          |t                    sd}t          |          |rt          |t                    sd}t          |          |rt          |t                    sd}t          |          t	          d |D                       rd}t          |          t
                              | d|           t
                              | d|           t
                              | dt          |                     d S )	Nzname must be a non-empty stringz%target_uri must be a non-empty stringz#locations must be a non-empty tuplec              3  P   K   | ]!}|d uo| pt          |t                     V  "d S N)
isinstancestr).0locations     ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/ext/intersphinx/_shared.py	<genexpr>z/_IntersphinxProject.__init__.<locals>.<genexpr>K   sT       
 
 D T(l&S*Xs:S:S6S
 
 
 
 
 
    z,locations must be a tuple of strings or Noner   r   r   )r   r   
ValueErrortupleanyobject__setattr__)selfr   r   r   msgs        r    __init__z_IntersphinxProject.__init__;   s     	":dC00 	"3CS//! 	"J!<!< 	"9CS//! 	"
9e < < 	"7CS//! 
 
%
 
 
 
 
 	" ACS//!4...4z:::4eI.>.>?????r"   r   c                P    | j         j         d| j        d| j        d| j        dS )Nz(name=z, target_uri=z, locations=))	__class____name__r   r   r   r(   s    r    __repr__z_IntersphinxProject.__repr__U   sM    ~& - -I- -/- - - - -	
r"   otherr&   boolc                    t          |t                    st          S | j        |j        k    o| j        |j        k    o| j        |j        k    S r   )r   r   NotImplementedr   r   r   )r(   r1   s     r    __eq__z_IntersphinxProject.__eq__]   sO    %!455 	"!!I# 25#332%/1	
r"   intc                D    t          | j        | j        | j        f          S r   )hashr   r   r   r/   s    r    __hash__z_IntersphinxProject.__hash__f   s    TY@AAAr"   keyvaluer   r	   c                >    | j         j         d}t          |          Nz is immutabler-   r.   AttributeError)r(   r:   r;   r)   s       r    r'   z_IntersphinxProject.__setattr__i   #    (777S!!!r"   c                >    | j         j         d}t          |          r=   r>   )r(   r:   r)   s      r    __delattr__z_IntersphinxProject.__delattr__m   r@   r"   N)r   r   r   r   r   r   r   r   )r   r   )r1   r&   r   r2   )r   r6   )r:   r   r;   r   r   r	   )r:   r   r   r	   )r.   
__module____qualname____annotations__	__slots__r*   r0   r5   r9   r'   rB    r"   r    r   r   ,   s         ,,,,TNH I@ @ @ @4
 
 
 

 
 
 
B B B B" " " "" " " " " "r"   r   c                  j    e Zd ZdZddZedd            Zedd
            Zedd            ZddZ	dS )InventoryAdapterz!Inventory adapter for environmentenvr   r   r   c                    || _         t          |d          s&i | j         _        i | j         _        i | j         _        d S d S )Nintersphinx_cache)rJ   hasattrrL   intersphinx_inventoryintersphinx_named_inventory)r(   rJ   s     r    r*   zInventoryAdapter.__init__u   sJ    s/00 	6)+DH&-/DH*35DH000	6 	6r"   'dict[InventoryURI, InventoryCacheEntry]c                    | j         j        S )aA  Intersphinx cache.

        - Key is the URI of the remote inventory.
        - Element one is the key given in the Sphinx :confval:`intersphinx_mapping`.
        - Element two is a time value for cache invalidation, an integer.
        - Element three is the loaded remote inventory of type :class:`!Inventory`.
        )rJ   rL   r/   s    r    cachezInventoryAdapter.cache   s     x))r"   r   c                    | j         j        S r   )rJ   rN   r/   s    r    main_inventoryzInventoryAdapter.main_inventory   s    x--r"   dict[InventoryName, Inventory]c                    | j         j        S r   )rJ   rO   r/   s    r    named_inventoryz InventoryAdapter.named_inventory   s    x33r"   c                ~    | j         j                                         | j         j                                         d S r   )rJ   rN   clearrO   r/   s    r    rY   zInventoryAdapter.clear   s6    &,,...,2244444r"   N)rJ   r   r   r   )r   rP   )r   r   )r   rU   )r   r   )
r.   rC   rD   __doc__r*   propertyrR   rT   rW   rY   rG   r"   r    rI   rI   r   s        ++6 6 6 6 * * * X* . . . X. 4 4 4 X45 5 5 5 5 5r"   rI   )rZ   
__future__r   typingr   sphinx.utilr   collections.abcr   r   r   r	   r
   sphinx.environmentr   sphinx.util.typingr   r   r   r   InventoryLocationr$   r6   r   rE   dictIntersphinxMapping	getLoggerr   r   rI   rG   r"   r    <module>rf      s   C C C " " " " " "                   ((((((666666666666333333,,,,,,
 L
 M d
 &+=#y+H%IIIII mU<7H#7M1N#NOOP	R
 .?W->?W-X-X X X X XC" C" C" C" C" C" C" C"L"5 "5 "5 "5 "5 "5 "5 "5 "5 "5r"   