
    7 fq                    R   d Z ddlmZ ddlZddlZddlZddlZddlZddl	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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! ddl"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) er[ddl*m+Z+ ddl,m-Z- ddlm.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4 ddlm5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z?m@Z@mAZA eBe0eCdf         eDe?f         ZE e#jF        eG          ZH G d d          ZIddd ZJded$ZKddd%ZLdfd+ZMdgd5ZNdhd7ZOdidBZPdjdHZQdkdLZRdldMZSdmdNZTdndOZUdodPZVdpdQZWdqdRZX G dS dTe&          ZY G dU dVe'          ZZ G dW dXe!          Z[drd\Z\dsd]Z]dtd_Z^dudaZ_eGdbk    r4ddl#Z` e`ja                      eb e_ejc        dcd                             dS )va  Insert links to objects documented in remote Sphinx documentation.

This works as follows:

* Each Sphinx HTML build creates a file named "objects.inv" that contains a
  mapping from object names to URIs relative to the HTML set's root.

* Projects using the Intersphinx extension can specify links to such mapping
  files in the `intersphinx_mapping` config value.  The mapping will then be
  used to resolve otherwise missing references to objects into links to the
  other documentation.

* By default, the mapping file is assumed to be at the same location as the
  rest of the documentation; however, the location of the mapping file can
  also be specified individually, e.g. if the docs should be buildable
  without Internet access.
    )annotationsN)path)TYPE_CHECKINGcast)urlsplit
urlunsplit)nodes)relative_path)pending_xref)INVENTORY_FILENAME)ExtensionError)___)ReferencesResolver)loggingrequests)CustomReSTDispatcher
SphinxRole)InventoryFile)Iterable)
ModuleType)IOAnyUnion)NodeTextElementsystem_message)Reporter)Sphinx)Config)Domain)BuildEnvironment)	InventoryInventoryItemRoleFunctionc                  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"   returnNonec                    || _         t          |d          s&i | j         _        i | j         _        i | j         _        d S d S )Nintersphinx_cache)r(   hasattrr,   intersphinx_inventoryintersphinx_named_inventory)selfr(   s     L/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/ext/intersphinx.py__init__zInventoryAdapter.__init__B   sJ    s/00 	6)+DH&-/DH*35DH000	6 	6    dict[str, 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 intersphinx_mapping
          configuration value
        - Element two is a time value for cache invalidation, a float
        - Element three is the loaded remote inventory, type Inventory
        )r(   r,   r0   s    r1   cachezInventoryAdapter.cacheL   s     x))r3   r#   c                    | j         j        S N)r(   r.   r6   s    r1   main_inventoryzInventoryAdapter.main_inventoryX   s    x--r3   dict[str, Inventory]c                    | j         j        S r9   )r(   r/   r6   s    r1   named_inventoryz InventoryAdapter.named_inventory\   s    x33r3   c                ~    | j         j                                         | j         j                                         d S r9   )r(   r.   clearr/   r6   s    r1   r?   zInventoryAdapter.clear`   s6    &,,...,2244444r3   N)r(   r"   r)   r*   )r)   r4   )r)   r#   )r)   r;   )r)   r*   )
__name__
__module____qualname____doc__r2   propertyr7   r:   r=   r?    r3   r1   r'   r'   ?   s        ++6 6 6 6 	* 	* 	* X	* . . . X. 4 4 4 X45 5 5 5 5 5r3   r'   urlstrr)   c                    t          t          |                     }d|d         v r$|d                             d          d         |d<   t          |          S )a  Returns *url* with basic auth credentials removed. Also returns the
    basic auth username and password if they're present in *url*.

    E.g.: https://user:pass@example.com => https://example.com

    *url* need not include basic auth credentials.

    :param url: url which may or may not contain basic auth credentials
    :type url: ``str``

    :return: *url* with any basic auth creds removed
    :rtype: ``str``
    @   )listr   splitr   )rF   fragss     r1   _strip_basic_authrN   e   sP     #E
eAh8>>#&&q)aer3   configr    r   c                  t          j        | d|j        |j        |j        |j        f          }|                                 |j        |j        _        t          j
        |j        j        d          |j        _        |j        S )u  Reads data from *url* with an HTTP *GET*.

    This function supports fetching from resources which use basic HTTP auth as
    laid out by RFC1738 § 3.1. See § 5 for grammar definitions for URLs.

    .. seealso:

       https://www.ietf.org/rfc/rfc1738.txt

    :param url: URL of an HTTP resource
    :type url: ``str``

    :return: data read from resource described by *url*
    :rtype: ``file``-like object
    T)streamtimeout_user_agent	_tls_info)decode_content)r   getintersphinx_timeout
user_agent
tls_verifytls_cacertsraise_for_statusrF   raw	functoolspartialread)rF   rO   rs      r1   _read_from_urlra   z   s      	Sv/I!'!2 & 163EF	H 	H 	HA AEI "15:dCCCAEJ5Lr3   c                    t          |           }|j        | S t          |          }|j        r|j         d|j         d|j         |d<   n|j         d|j         |d<   t          |          S )a5  Gets version of *url* with basic auth passwords obscured. This function
    returns results suitable for printing and logging.

    E.g.: https://user:12345@example.com => https://user@example.com

    :param url: a url
    :type url: ``str``

    :return: *url* with password removed
    :rtype: ``str``
    NrI   :rJ   )r   usernamerK   porthostnamer   )rF   partsrM   s      r1   _get_safe_urlrh      s     SMME~
U: 	<.HH5>HHEJHHE!HH.;;5>;;E!H%   r3   appr   uriinvr#   c                V   d|v rt          |          }	 d|v rt          || j                  }n(t          t	          j        | j        |          d          }n0# t          $ r#}d||j        t          |          f|_
         d}~ww xY w	 t          |d          rx|j        }||k    rkt                              t          d          ||           ||t	          j        |          t	          j        |          dz   fv rt	          j        |          }|5  	 t#          j        ||t&          j                  }n%# t(          $ r}t)          d	|z            |d}~ww xY w	 ddd           n# 1 swxY w Y   |S # t          $ r(}d
||j        j        t          |          f|_
         d}~ww xY w)z6Fetch, parse and return an intersphinx inventory file.://)rO   rbz4intersphinx inventory %r not fetchable due to %s: %sNrF   z)intersphinx inventory has moved: %s -> %s/z,unknown or unsupported inventory version: %rz3intersphinx inventory %r not readable due to %s: %s)rN   ra   rO   openr   joinsrcdir	Exception	__class__rG   argsr-   rF   loggerinfor   dirnamer   load	posixpath
ValueErrorr@   )ri   rj   rk   ferrnewinvinvdataexcs           r1   fetch_inventoryr      s-    ||$$C<<s3:666AATYsz3//66A   JC21e 	/UFf}}BJKKSRXYYY3S 1 14<3D3Ds3JKKK,v..C 	` 	``',QY^DD ` ` ` !ORU!UVV\__` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	`     I/S;sy   AA 
B#BB
B
E6 E) D76E)7
EEEE)E6 )E--E6 0E-1E6 6
F( #F##F(name
str | Noneinvstuple[str | None, ...]r7   r4   nowintboolc                   ||j         j        dz  z
  }g }	 |D ]r}|st          j        |t                    }d|vs||vs||         d         |k     r8t          |          }	t                              t          d          |	           	 t          |||          }
n1# t          $ r$}|                    |j                   Y d }~d }~ww xY w|
r| ||
f||<    |g k    rd	S t          |          t          |          k     r<t                              t          d                     |D ]}t          j        |  d	S d                    d |D                       }t                              t          d          dz   |z              d	S t	 |g k    rd
S t          |          t          |          k     r<t                              t          d                     |D ]}t          j        |  d
S d                    d |D                       }t                              t          d          dz   |z              d
S # |g k    rw t          |          t          |          k     r;t                              t          d                     |D ]}t          j        |  w d                    d |D                       }t                              t          d          dz   |z              w xY w)NiQ rm   rJ   z(loading intersphinx inventory from %s...zXencountered some issues with some of the inventories, but they had working alternatives:
c                4    g | ]}|d          |dd         z  S )r   rJ   NrE   .0r|   s     r1   
<listcomp>z)fetch_inventory_group.<locals>.<listcomp>   s(    ???!qu???r3   zAfailed to reach any of the inventories with the following issues:TF)rO   intersphinx_cache_limitrz   rq   r   rh   rv   rw   r   r   rs   appendru   lenwarning)r   rj   r   r7   ri   r   
cache_timefailuresrk   safe_inv_urlr   r}   failissuess                 r1   fetch_inventory_groupr      s    sz9EAAJHM 	  	 C >nS*<== C3e#3#3uSz!}z7Q7Q,S11BIJJLYYY-c3<<GG    OOCH---HHHH   !%sG!3E#J r>>D]]SYY&&KK A B B C C C  # #T"""# # YY??h???@@FNN2 ; < <>BCEKL M M M M M r>>D]]SYY&&KK A B B C C C  # #T"""# # YY??h???@@FNN2 ; < <>BCEKL M M M M M r>>]]SYY&&KK A B B C C C  # #T"""# YY??h???@@FNN2 ; < <>BCEKL M M M Ms=   A3H? 
BH? 
C
&C H? C

H? 
H? ?B0K/r*   c                   t          t          j                              }t          | j        j                  }|j        }t          j                                        5 }g }| j	        j
                                        D ];\  }\  }}|                    |                    t          ||||| |                     <d t          j                            |          D             }	ddd           n# 1 swxY w Y   t!          |	          r|                                 g }
g }|                                D ]7\  }}}|r|
                    ||f            |                    ||f           8t%          |
          |z   D ][\  }}|r
||j        |<   |                                D ]3\  }}|j                            |i                               |           4ZdS dS )z3Load all intersphinx mappings into the environment.c                6    g | ]}|                                 S rE   )resultr   s     r1   r   z!load_mappings.<locals>.<listcomp>  s     PPP!188::PPPr3   N)r   timer'   builderr(   r7   
concurrentfuturesThreadPoolExecutorrO   intersphinx_mappingvaluesr   submitr   as_completedanyr?   sortedr=   itemsr:   
setdefaultupdate)ri   r   inventoriesr,   poolr   r   rj   r   updated
named_valsunnamed_vals_expiryr   typeobjectss                   r1   load_mappingsr      sd   
dikk

C"3;?33K8C8I			.	.	0	0 	QD "%!?!F!F!H!H 	 	D+3NN4;;%tS$8I3PS      QPz'9'F'Fw'O'OPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 7|| P 
&7&>&>&@&@ 	5 	5"D'7 5!!4/2222##T7O4444#J//,> 	P 	PMD' <4;+D1!( P Pg*55dB??FFwOOOOP)P P"	P 	Ps   BC11C58C5domainr!   inv_namedatar$   noder   contnoder   nodes.referencec           	     <   |\  }}}}d|vr>|                     d          r)t          j        t          |d         d          |          }|rt	          d          ||fz  }	nt	          d          |fz  }	t          j        ddd||	          }
|                     d	          r|
                    |           n|d
k    s| j        dk    r|d         dk    r|	                                }|r|
                    |dz             rZ|
                    |                    |t          |          dz   d          |t          |          dz   d                               n?|
                    |           n)|
                    |                    ||                     |
S )Nrm   refdoc.z(in %s v%s)z(in %s) F)internalrefurireftitlerefexplicit-stdreftypekeywordrc   rJ   )rV   rz   rq   r
   r   r	   	referencer   r   astext
startswithrt   r   )r   r   r   r   r   projversionrj   dispnamer   newnodetitles               r1   _create_element_from_resultr   &  s    $( D'3CDHHX..n]4>3??EE *]##tWo5Y<<4')ob"uS8TTTGxx ?x    	S[E!!d9o&B&B!!E$4$4X^$D$DNN8--eCMMA4E4F4F.G.3CMMA4E4F4F.GI I J J J J NN8$$$$ 	x))(H==>>>Nr3   	inventoryobjtypesIterable[str]targetnodes.reference | Nonec                L  
 |D ]}||vr|||         v r||         |         }nk|dk    rd|                                 
t          t          
fd||                                                             }	|	r||         |	d                  }nt	          || |||          c S d S )Nzstd:termc                4    |                                  k    S r9   )lower)ktarget_lowers    r1   <lambda>z8_resolve_reference_in_domain_by_target.<locals>.<lambda>T  s    		\8Q r3   r   )r   rK   filterkeysr   )r   r   r   r   r   r   r   objtyper   insensitive_matchesr   s             @r1   &_resolve_reference_in_domain_by_targetr   D  s    
  S S)##Yw'''W%f-DD
""!<<>>L"&v.Q.Q.Q.Q.7.@.E.E.G.G(I (I #J #J"  )*=a*@A 
 *68T4RRRRR4r3   r(   r"   honor_disabled_refsc           	        i                      |          }|j        dk    r	d|v rd |d<   |j        dk    r	d|v rd |d<   |j        fd|D             }|r't          | j        j                  fd|D             }g |                                }t          |||||d	         ||          }	|	|	S |                    |          }
|
d S t          |||||
||          S )
Nr   	cmdoptionoptionpy	attributemethodc                     i | ]
} d | dS )rc   NrE   )r   obj_typedomain_names     r1   
<dictcomp>z0_resolve_reference_in_domain.<locals>.<dictcomp>v  s)    MMMxK,,(,,dMMMr3   c                    i | ]	}|v|d 
S r9   rE   )r   r   disableds     r1   r   z0_resolve_reference_in_domain.<locals>.<dictcomp>{  s0     2 2 2! 00 t000r3   	reftarget)fromkeysr   setrO   intersphinx_disabled_reftypesr   r   get_full_qualified_name)r(   r   r   r   r   r   r   r   	obj_typesresfull_qualified_namer   r   s              @@r1   _resolve_reference_in_domainr   d  sM    "$X!6!6I {ey 8 8"	({d{i77"	( +KMMMM9MMMI  2sz?@@2 2 2 2%.2 2 2	 #!!"H 19fh15k1BD(T TC

 !88>>"t1(Ivx2EtXW W Wr3   c                
   |o|d u }|rd| j         j        v rd S |d         }|dk    rj| j                                        D ]N\  }}|r|dz   | j         j        v r|j                                        }	t          | |||||	||          }
|
|
c S Od S |                    d          }|sd S |r|dz   | j         j        v rd S |                     |          }|	                    |          pd}	|	sd S t          | |||||	||          S )N*r   r   z:*	refdomainrE   )
rO   r   domainsr   object_typesr   r   rV   
get_domainobjtypes_for_role)r(   r   r   r   r   r   typr   r   r   r   s              r1   _resolve_referencer     so    .B(d2B scj&NNNt
y/C
e||#&;#4#4#6#6 
	 
	K# $t+
0XXX&,&9&>&>&@&@H.sHi/B/5x/3X? ?C 


 thh{++ 	4 	 4'CJ,TTT4,,++C006B 	4+C9,?,2H,0(< < 	<r3   c                .    |t          |           j        v S r9   )r'   r=   )r(   r   s     r1   inventory_existsr     s    ',,<<<r3   c                ~    t          | |          sJ t          | |t          |           j        |         d||          S )zAttempt to resolve a missing reference via intersphinx references.

    Resolution is tried in the given inventory with the target as is.

    Requires ``inventory_exists(env, inv_name)``.
    F)r   r   r'   r=   )r(   r   r   r   s       r1   resolve_reference_in_inventoryr     sK     C*****c8-=c-B-B-RS[-\#T85 5 5r3   c                N    t          | dt          |           j        |||          S )zAttempt to resolve a missing reference via intersphinx references.

    Resolution is tried with the target as is in any inventory.
    N)r   r'   r:   )r(   r   r   r   s       r1   resolve_reference_any_inventoryr    s0     c4)9#)>)>)M1"H. . .r3   c                    t          | d||          }||S |d         }d|vrdS |                    dd          \  }}t          | |          sdS ||d<   t          | |||          }||d<   |S )ag  Attempt to resolve a missing reference via intersphinx references.

    Resolution is tried first with the target as is in any inventory.
    If this does not succeed, then the target is split by the first ``:``,
    to form ``inv_name:newtarget``. If ``inv_name`` is a named inventory, then resolution
    is tried in that inventory with the new target.
    TNr   rc   rJ   )r  rL   r   r   )r(   r   r   r   r   r   	newtargetres_invs           r1   "resolve_reference_detect_inventoryr    s     *#tT8
D
DC

 +F
&t ,,sA..HiC** t!D,S(D(KKGDNr3   c                $    t          |||          S )zBAttempt to resolve a missing reference via intersphinx references.)r  )ri   r(   r   r   s       r1   missing_referencer    s     .c4BBBr3   c                  $     e Zd ZdZd fdZ xZS )IntersphinxDispatcherzyCustom dispatcher for external role.

    This enables :external:***:/:external+***: roles on parsing reST document.
    	role_namerG   language_moduler   linenor   reporterr   r)   )tuple[RoleFunction, list[system_message]]c                    t          |          dk    r&|                    d          rt          |          g fS t                                          ||||          S )N	   )z	external:z	external+)r   r   IntersphinxRolesuperrole)r0   r  r  r  r  rt   s        r1   r  zIntersphinxDispatcher.role  sY     y>>A)"6"67Q"R"R"9--r1177<<	?FHMMMr3   )
r  rG   r  r   r  r   r  r   r)   r  )r@   rA   rB   rC   r  __classcell__)rt   s   @r1   r
  r
    sQ         
N N N N N N N N N Nr3   r
  c                  ^    e Zd Z ej        d          ZddZddZddZddZ	ddZ
ddZdS )r  z(\+([^:]+))?:(.*)	orig_namerG   r)   r*   c                    || _         d S r9   )r  )r0   r  s     r1   r2   zIntersphinxRole.__init__  s    "r3   'tuple[list[Node], list[system_message]]c                \   | j         | j                                        k    sJ |                     | j                  \  }}|rTt	          | j        |          s?t                              t          d          || j        j	        | j
        f           g g fS |                     |          }|?t                              t          d          || j        j	        | j
        f           g g fS |                     |          \  }}|D ]!}t          |t                    r
d|d<   ||d<   "||fS )Nz4inventory for external cross-reference not found: %s)locationz/role for external cross-reference not found: %sTintersphinxr   )r   r  r   get_inventory_and_name_suffixr   r(   rv   r   r   docnamer  get_role_nameinvoke_role
isinstancer   )r0   r   name_suffixr  r   messagesr   s          r1   runzIntersphinxRole.run  sR   yDN00222222!%!C!CDN!S!S	; 	-dh	BB 	NN2TUU$0@$+/N  P P Pr6M&&{33	NN2OPPR]%)X%5t{$C  E E Er6M++I66 	. 	.D$-- .&*]#$-[!xr3   r   tuple[str | None, str]c                    |                     d          s
J |            |dd          }|d         dk    r|                    dd          \  }}||fS |d         dk    rd |fS d| }t          |          )Nexternalr     +rc   rJ   z Malformed :external: role name: )r   rL   r{   )r0   r   suffixr   msgs        r1   r  z-IntersphinxRole.get_inventory_and_name_suffix*  s    z**00D00* abb7c>>%||C33HfV##!W^^<;T;;CS//!r3   tuple[str, str] | Nonec                t   |                     d          }t          |          dk    r3| j        j                            d          }|r|j        nd }|d         }n&t          |          dk    r|d         }|d         }nd S |r|                     ||          r||fS |                     d|          rd|fS d S )Nrc   rJ   default_domainr      r   )rL   r   r(   	temp_datarV   r   is_existent_role)r0   r   namesr.  r   r  s         r1   r  zIntersphinxRole.get_role_name<  s    

3u::??!X/334DEEN,:D^((F8DDZZ1__1XF8DD4 	d++FD99 	D>!""5$// 	4= 4r3   r   r  r   c                l    	 | j                             |          }||j        v S # t          $ r Y dS w xY w)NF)r(   r   rolesr   )r0   r   r  r   s       r1   r1  z IntersphinxRole.is_existent_roleQ  sK    	X((55F,, 	 	 	55	s   "% 
33r  tuple[str, str]c           	        | j                             |d                   }|ra|                    |d                   }|J  |d                    |          | j        | j        | j        | j        | j        | j	                  S g g fS )Nr   rJ   rc   )
r(   r   r  rq   rawtexttextr  inlineroptionscontent)r0   r  r   	role_funcs       r1   r   zIntersphinxRole.invoke_roleX  s    $$T!W-- 	DG,,I(((9SXXd^^T\49dk!\4<G G G r6Mr3   N)r  rG   r)   r*   )r)   r  )r   rG   r)   r%  )r   rG   r)   r,  )r   rG   r  rG   r)   r   )r  r5  r)   r  )r@   rA   rB   recompile_re_inv_refr2   r$  r  r  r1  r   rE   r3   r1   r  r    s         "*122K# # # #       ," " " "$   *   	 	 	 	 	 	r3   r  c                  .    e Zd ZdZej        dz
  Zd	dZdS )
IntersphinxRoleResolverzpending_xref node resolver for intersphinx role.

    This resolves pending_xref nodes generated by :intersphinx:***: role.
    rJ   kwargsr   r)   r*   c                @   | j                             t                    D ]}d|vrt          t          j        |d                                                   }|d         }|/t          | j        |          sJ t          | j        |||          }nt          | j        d||          }|]|d         }t          d          |d         ||d         fz  }t                              ||d	|
           |                    |           |                    |           d S )Nr  r   r   Fr   z-external %s:%s reference target not found: %sr   r   ref)r  r   subtype)documentfindallr   r   r	   r   deepcopyr   r(   r   r  r   rv   r   replace_self)r0   rB  r   r   r   r   r   r+  s           r1   r$  zIntersphinxRoleResolver.runl  s/   M)),77 	+ 	+DD((E-tAw/?/?/A/ABBHK(H#'(;;;;;88TS[\\9$(E4QYZZ9oIJJ[)3[0ABCsTsKKK!!(++++!!'****#	+ 	+r3   N)rB  r   r)   r*   )r@   rA   rB   rC   r   default_priorityr$  rE   r3   r1   rA  rA  d  sB         
 *:Q>+ + + + + +r3   rA  r  source	list[str]c                J    t                      }|                                 dS )zEnable IntersphinxDispatcher.

    .. note:: The installed dispatcher will be uninstalled on disabling sphinx_domain
              automatically.
    N)r
  enable)ri   r  rK  
dispatchers       r1   install_dispatcherrP    s'     '((Jr3   c                   |j                                                                         D ]9\  }}	 t          |t          t
          f          ra||c}\  }}t          |t                    sCt                              t          d          |           |j         
                    |           n(d ||}}}d||fd}t                              |           t          |t
                    s|||fff|j         |<   n|||ff|j         |<   # t          $ rN}t                              t          d          ||           |j         
                    |           Y d }~3d }~ww xY wd S )Nz0intersphinx identifier %r is not string. IgnoredzThe pre-Sphinx 1.0 'intersphinx_mapping' format is deprecated and will be removed in Sphinx 8. Update to the current format as described in the documentation. Hint: "intersphinx_mapping = {'<name>': ze}".https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#confval-intersphinx_mappingz3Failed to read intersphinx_mapping[%s], ignored: %r)r   copyr   r!  rK   tuplerG   rv   r   r   poprs   )	ri   rO   keyvaluer   rj   rk   r+  r   s	            r1   normalize_intersphinx_mappingrW    s   05577==?? 0 0
U	0%$// $#& jsC!$,, NN2&X#Y#Y#') ) ).223777	 "&sE3cy CFsy y y  s###c5)) E37#v2G*3//37#s2D*3/ 	0 	0 	0NN2STTVY[^___&**3////////	070 0s    A;D/AD
E$AEE$dict[str, Any]c                   |                      di d           |                      ddd           |                      dd d           |                      ddgd           |                     d	t          d
           |                     dt                     |                     dt                     |                     dt
                     |                     t                     t          j	        dddS )Nr   Tr      FrW   r   zstd:doczconfig-initedi   )priorityzbuilder-initedzsource-readzmissing-referencerJ   )r   env_versionparallel_read_safe)
add_config_valueconnectrW  r   rP  r  add_post_transformrA  sphinx__display_version__)ri   s    r1   setuprc    s    .D9992Au===.e<<<89+tLLLKK!>KMMMKK -000KK1222KK#%67772333-"  r3   argvc          
        t          |           dk     rt          dt          j                   dS  G d d           G fdd          }	 | d         }t	           |            d	|          }t          |pi           D ]h}t          |           t          ||                                                   }|D ]-\  }\  }}}	}
|
|
d
k    z  }
t          d|dd|
dd|	            .i	 dS # t          $ rA}t          |j        d         |j        dd         z  t          j                   Y d}~dS d}~wt          $ r)}t          d|t          j                   Y d}~dS d}~ww xY w)z-Debug functionality to print out an inventoryrJ   zXPrint out an inventory file.
Error: must specify local path or URL to an inventory file.)filec                  >    e Zd ZU dZded<   dZdZded<   dZded	<   dS )
 inspect_main.<locals>.MockConfigNz
int | NonerW   Fzstr | dict[str, str] | NonerZ   r   rG   rX   )r@   rA   rB   rW   __annotations__rY   rZ   rX   rE   r3   r1   
MockConfigrh    sK         *.....
377777
r3   rj  c                  (    e Zd ZdZ              ZdS )inspect_main.<locals>.MockAppr   N)r@   rA   rB   rr   rO   )rj  s   r1   MockApprl    s        r3   rm  r   r   r   z    z<40 z: NzUnknown error: )
r   printsysstderrr   r   r   r{   ru   rs   )rd  rm  filenameinv_datarU  inv_entriesentry_proj_verurl_pathdisplay_namer   rj  s               @r1   inspect_mainrz    s	   
4yy1}} L:	 	 	 	 q                7"7799b(;;(.b)) 	I 	IC#JJJ #!4!4!6!677K@K I I<<tX|+|s/BCGUGGGGGGXGGHHHHI	I q    chqkCHQRRL(sz::::qqqqq   '''cj9999qqqqqs%   BC- -
E)76D33E) E$$E)__main__rJ   )rF   rG   r)   rG   )rF   rG   rO   r    r)   r   )ri   r   rj   rG   rk   rG   r)   r#   )r   r   rj   rG   r   r   r7   r4   ri   r   r   r   r)   r   )ri   r   r)   r*   )r   r!   r   r   r   r$   r   r   r   r   r)   r   )r   r   r   r#   r   r!   r   r   r   rG   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   rG   r)   r   )
r(   r"   r   rG   r   r   r   r   r)   r   )
r(   r"   r   r   r   r   r   r   r)   r   )r(   r"   r   r   r   r   r)   r   )
ri   r   r(   r"   r   r   r   r   r)   r   )ri   r   r  rG   rK  rL  r)   r*   )ri   r   rO   r    r)   r*   )ri   r   r)   rX  )rd  rL  r)   r   )drC   
__future__r   concurrent.futuresr   r]   rz   r=  rp  r   osr   typingr   r   urllib.parser   r   docutilsr	   docutils.utilsr
   ra  sphinx.addnodesr   sphinx.builders.htmlr   sphinx.errorsr   sphinx.localer   r   !sphinx.transforms.post_transformsr   sphinx.utilr   r   sphinx.util.docutilsr   r   sphinx.util.inventoryr   collections.abcr   typesr   r   r   r   docutils.nodesr   r   r   r   sphinx.applicationr   sphinx.configr    sphinx.domainsr!   sphinx.environmentr"   sphinx.util.typingr#   r$   r%   rS  rG   r   InventoryCacheEntry	getLoggerr@   rv   r'   rN   ra   rh   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  rA  rP  rW  rc  rz  _loggingbasicConfig
SystemExitrd  rE   r3   r1   <module>r     s%   $ # " " " " "             				 



        & & & & & & & & - - - - - - - -       ( ( ( ( ( (  ( ( ( ( ( ( 3 3 3 3 3 3 ( ( ( ( ( (         @ @ @ @ @ @ ) ) ) ) ) ) ) ) A A A A A A A A / / / / / / B((((((      %%%%%%%%%%@@@@@@@@@@''''''))))))$$$$$$%%%%%%333333IIIIIIIIIIc4i 0#y @A		8	$	$#5 #5 #5 #5 #5 #5 #5 #5L   *   6! ! ! !2" " " "J'M 'M 'M 'MT&P &P &P &PR   <   @(W (W (W (WV&< &< &< &<R= = = =5 5 5 5
. 
. 
. 
.   :C C C CN N N N N0 N N NV V V V Vj V V Vr+ + + + +0 + + +:   0 0 0 0B   "" " " "J zH
*\\#(122,//
0
00	 r3   