
    O&ii                        d 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 ddlmZmZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZmZ dd	lmZm Z  ddl!Z!dd
l"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z?m@Z@  e6jA        eB          ZC G d d          ZDdeEdeEfdZFdLdeEdee)         defdZGdeEdeEfdZHde%d eEd!edefd"ZId#eEd eEd$ed%eded&eJdeKfd'ZLde%ddfd(ZMd)e+d*eeE         d+e?d,e#d-edefd.ZNd*eeE         d/e>d)e+d0eeE         d1eEd,e#d-edee         fd2ZOd3e-d*eeE         d/e>d4eKd)e+d0eeE         d,e#d-edee         fd5ZPd3e-d*eeE         d/e>d4eKd,e#d-edee         fd6ZQd3e-d*eEdeKfd7ZRd3e-d*eEd,e#d-edee         f
d8ZSd3e-d4eKd,e#d-edee         f
d9ZTd3e-d,e#d-edee         fd:ZUde%d3e-d,e#d-edee         f
d;ZV G d< d=e9          ZW G d> d?e:          ZX G d@ dAe4          ZYde%dBeEdCeeE         ddfdDZZde%de)ddfdEZ[de%deeEef         fdFZ\dGeeE         ddfdHZ]eBdIk    r.ddl6Z^ e^j_                      e]ej`        dJd         K           dS dS )Ma  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.
    N)path)
ModuleType)IOAnyDictListOptionalTuplecast)urlsplit
urlunsplit)nodes)ElementNodeTextElementsystem_message)Reporterrelative_path)pending_xref)Sphinx)INVENTORY_FILENAME)Config)Domain)BuildEnvironment)ExtensionError)___)ReferencesResolver)loggingrequests)CustomReSTDispatcher
SphinxRole)InventoryFile)	InventoryInventoryItemRoleFunctionc                       e Zd ZdZdeddfdZedeee	ee
ef         f         fd            Zedefd            Zedeeef         fd            Zd
d	ZdS )InventoryAdapterz!Inventory adapter for environmentenvreturnNc                     || _         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     c/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/ext/intersphinx.py__init__zInventoryAdapter.__init__7   sJ    s/00 	6)+DH&-/DH*35DH000	6 	6    c                     | j         j        S N)r)   r,   r0   s    r1   cachezInventoryAdapter.cache?   s    x))r3   c                     | j         j        S r5   )r)   r.   r6   s    r1   main_inventoryzInventoryAdapter.main_inventoryC   s    x--r3   c                     | j         j        S r5   )r)   r/   r6   s    r1   named_inventoryz InventoryAdapter.named_inventoryG   s    x33r3   c                 ~    | j         j                                         | j         j                                         d S r5   )r)   r.   clearr/   r6   s    r1   r=   zInventoryAdapter.clearK   s6    &,,...,2244444r3   )r*   N)__name__
__module____qualname____doc__r   r2   propertyr   strr
   intr$   r7   r9   r;   r=    r3   r1   r(   r(   4   s        ++6, 6 6 6 6 6 *tCsC':!;;< * * * X* .	 . . . X. 4c9n!5 4 4 4 X45 5 5 5 5 5r3   r(   urlr*   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_authrM   P   sP     #E
eAh8>>#&&q)aer3   configc                     t          j        | d||j                  }|                                 |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)streamrN   timeout)decode_content)	r    getintersphinx_timeoutraise_for_statusrF   raw	functoolspartialread)rF   rN   rs      r1   _read_from_urlr[   e   sb      	Sff>XYYYAAEI "15:dCCCAEJ5Lr3   c                    t          |           }|j        | S t          |          }|j        r*d                    |j        |j        |j                  |d<   n#d                    |j        |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``
    Nz{}@{}:{}rI   z{}@{})r   usernamerJ   portformathostnamer   )rF   partsrL   s      r1   _get_safe_urlrb   ~   s~     SMME~
U: 	F!((TTE!HH~~enenEEE!H%   r3   appuriinvc                 z   d|v}|s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  	 |rt          j        n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.://)rN   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)rM   r[   rN   openr   joinsrcdir	Exception	__class__rC   argsr-   rF   loggerinfor   dirname	posixpathr#   load
ValueErrorr>   )
rc   rd   re   localuriferrnewinvrk   invdataexcs
             r1   fetch_inventoryr|      sF    CH %$$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 	` 	``$,@tyy).',QT:: ` ` ` !ORU!UVV\__` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	`     I/S;sy   AA 
B%BBB
F E;0E	E;	
E+E&&E++E;/F ;E??F E?F 
F:#F55F:nameinvsr7   nowc                    ||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 rg   rI   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   rI   NrE   .0rw   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)rN   intersphinx_cache_limitrs   rk   r   rb   rp   rq   r   r|   rm   appendro   lenwarning)r}   rd   r~   r7   rc   r   
cache_timefailuresre   safe_inv_urlrz   rx   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   "&W!5E#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/c                    t          t          j                              }t          | j        j                  }t
          j                                        5 }g }| j        j	        
                                D ]@\  }\  }}|                    |                    t          ||||j        | |                     Ad t
          j                            |          D             }ddd           n# 1 swxY w Y   t!          |          r|                                 t%          |j        
                                          }	t'          d |	D                       }
d |	D             }|
|z   D ]\\  }}}|r
||j        |<   |                                D ]3\  }}|j                            |i                               |           4[d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   Nc              3   *   K   | ]}|d          
|V  dS )r   NrE   r   vs     r1   	<genexpr>z load_mappings.<locals>.<genexpr>   s+      ;;!ad;A;;;;;;r3   c                 "    g | ]}|d          
|S )r   rE   r   s     r1   r   z!load_mappings.<locals>.<listcomp>   s!    ;;;aad;;;;r3   )rD   timer(   builderr)   
concurrentfuturesThreadPoolExecutorrN   intersphinx_mappingvaluesr   submitr   r7   as_completedanyr=   rJ   sortedr;   itemsr9   
setdefaultupdate)rc   r   inventoriespoolr   r}   rd   r~   updatedcached_vals
named_valsunnamed_vals_xrz   typeobjectss                   r1   load_mappingsr      s7   
dikk

C"3;?33K			.	.	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 ;,335566;;{;;;;;
;;;;;;!+l!: 	P 	PD"g <4;+D1!( P Pg*55dB??FFwOOOOP!P P	P 	Ps   BC//C36C3domaininv_namedatanodecontnodec           	      <   |\  }}}}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 )Nrg   refdoc.z(in %s v%s)z(in %s) F)internalrefurireftitlerefexplicit-stdreftypekeyword:rI   )rS   r   rk   r   r   r   	referencer   r}   astext
startswithrn   r   )r   r   r   r   r   projversionrd   dispnamer   newnodetitles               r1   _create_element_from_resultr     s    $( D'3CDHHX..id8nc::C@@ *]##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targetc                 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 r5   )lower)ktarget_lowers    r1   <lambda>z8_resolve_reference_in_domain_by_target.<locals>.<lambda>2  s    		\8Q r3   r   )r   rJ   filterkeysr   )r   r   r   r   r   r   r   objtyper   insensitive_matchesr   s             @r1   &_resolve_reference_in_domain_by_targetr   "  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)   honor_disabled_refsc           	        
 j         dk    rd|v r|                    d           j         dk    rd|v r|                    d           fd|D             }|r| j        j        

fd|D             }t	          ||||d	         ||          }||S                     |          }	|	d S t	          ||||	||          S )
Nr   	cmdoptionoptionpy	attributemethodc                 F    g | ]}d                      j        |          S )z{}:{})r_   r}   )r   tr   s     r1   r   z0_resolve_reference_in_domain.<locals>.<listcomp>Q  s)    AAA1v{A..AAAr3   c                     g | ]}|v|	S rE   rE   )r   odisableds     r1   r   z0_resolve_reference_in_domain.<locals>.<listcomp>V  s#    ===!1H+<+<A+<+<+<r3   	reftarget)r}   r   rN   intersphinx_disabled_reftypesr   get_full_qualified_name)r)   r   r   r   r   r   r   r   resfull_qualified_namer   s       `     @r1   _resolve_reference_in_domainr   B  s    {ex 7 7!!!{d{h66!!! BAAAAAAH  >:;====x=== 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    re| j                                        D ]I\  }}|r|dz   | j         j        v rt	          |j                  }	t          | |||||	||          }
|
|
c S Jd S |                    d          }|sd S |r|dz   | j         j        v rd S |                     |          }|	                    |          }	|	sd S t          | |||||	||          S )N*r   r   z:*	refdomain)
rN   r   domainsr   rJ   object_typesr   rS   
get_domainobjtypes_for_role)r)   r   r   r   r   r   typdomain_namer   r   r   s              r1   _resolve_referencer   f  sf    .B(d2B scj&NNNt
y/C
e||#&;#4#4#6#6 
	 
	K" $t+
0XXXF/00H.sHi/B/5x/3X? ?C 


 thh{++ 	4 	 4'CJ,TTT4,,++C00 	4+C9,?,2H,0(< < 	<r3   c                 .    |t          |           j        v S r5   )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(   r9   )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   r   rI   )r   rK   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   )rc   r)   r   r   s       r1   missing_referencer     s     .c4BBBr3   c                   T     e Zd ZdZdededededee	e
e         f         f
 fdZ xZS )IntersphinxDispatcherzyCustom dispatcher for external role.

    This enables :external:***:/:external+***: roles on parsing reST document.
    	role_namelanguage_modulelinenoreporterr*   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  rn   s        r1   r  zIntersphinxDispatcher.role  sW    y>>A)"6"67Q"R"R"9--r1177<<	?FHMMMr3   )r>   r?   r@   rA   rC   r   rD   r   r
   r&   r   r   r  __classcell__)rn   s   @r1   r  r    s         
Nc NJ N NW_ Nd>&::;N N N N N N N N N Nr3   r  c                   &   e Zd Z ej        d          ZdeddfdZdee	e
         e	e         f         fdZdedeee         ef         fdZdedeeeef                  fd	Zd
ededefdZdeeef         dee	e
         e	e         f         fdZdS )r	  z(\+([^:]+))?:(.*)	orig_namer*   Nc                     || _         d S r5   )r  )r0   r  s     r1   r2   zIntersphinxRole.__init__  s    "r3   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)   rp   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}   c                     |                     d          s
J |            |d         dv s
J |            t          j                            |d                              dd          \  }}||fS )Nexternal   z:+      )r   r	  _re_inv_ref	fullmatchgroup)r0   r}   re   suffixs       r1   r  z-IntersphinxRole.get_inventory_and_name_suffix   sq    z**00D000Aw$ &1;;D!DDJJ1aPPVF{r3   c                 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 )Nr   rI   default_domainr   r  r   )rK   r   r)   	temp_datarS   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  c                 t    	 | j                             |          }||j        v rdS dS # t          $ r Y dS w xY w)NTF)r)   r   rolesr   )r0   r   r  r   s       r1   r'  z IntersphinxRole.is_existent_role!  sU    	X((55FFL((tu 	 	 	55	s   #) 
77r  c           	         | j                             |d                   }|r]|                    |d                   } |d                    |          | j        | j        | j        | j        | j        | j	                  S g g fS )Nr   rI   r   )
r)   r   r  rk   rawtexttextr  inlineroptionscontent)r0   r  r   	role_funcs       r1   r  zIntersphinxRole.invoke_role+  s    $$T!W-- 	DG,,I9SXXd^^T\49dk!\4<G G G r6Mr3   )r>   r?   r@   recompiler   rC   r2   r
   r   r   r   r  r	   r  r  boolr'  r  rE   r3   r1   r	  r	    s=        "*122K## #$ # # # # U4:tN';;<        ,
# 
%s@R:S 
 
 
 
# (5c?*C    *C C D    c3h E$t*d>FZ:Z4[      r3   r	  c                   6    e Zd ZdZej        dz
  ZdeddfdZdS )IntersphinxRoleResolverzpending_xref node resolver for intersphinx role.

    This resolves pending_xref nodes generated by :intersphinx:***: role.
    rI   kwargsr*   Nc                 @   | 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   rp   r   replace_self)r0   r7  r   r   r   r   r   msgs           r1   r  zIntersphinxRoleResolver.run>  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   )r>   r?   r@   rA   r   default_priorityr   r  rE   r3   r1   r6  r6  6  sP         
 *:Q>+C +D + + + + + +r3   r6  r  sourcec                 J    t                      }|                                 dS )zEnable IntersphinxDispatcher.

    .. note:: The installed dispatcher will be uninstalled on disabling sphinx_domain
              automatically.
    N)r  enable)rc   r  rA  
dispatchers       r1   install_dispatcherrE  S  s'     '((Jr3   c                    |j                                                                         D ]\  }}	 t          |t          t
          f          ra||c}\  }}t          |t                    sCt                              t          d          |           |j         
                    |           nd ||}}}t          |t
                    s|||fff|j         |<   n|||ff|j         |<   # t          $ rN}t                              t          d          ||           |j         
                    |           Y d }~d }~ww xY wd S )Nz0intersphinx identifier %r is not string. Ignoredz3Failed to read intersphinx_mapping[%s], ignored: %r)r   copyr   r  rJ   tuplerC   rp   r   r   poprm   )rc   rN   keyvaluer}   rd   re   r{   s           r1   normalize_intersphinx_mappingrL  ]  st   05577==?? 0 0
U	0%$// 
2#& jsC!$,, NN2&X#Y#Y#') ) ).223777	 "&sE3cc5)) E37#v2G*3//37#s2D*3/ 	0 	0 	0NN2STTVY[^___&**3////////	0%0 0s   A;C*/:C**
E4AD==E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      FrT   r   zstd:doczconfig-initedi   )priorityzbuilder-initedzsource-readzmissing-referencerI   )r   env_versionparallel_read_safe)
add_config_valueconnectrL  r   rE  r   add_post_transformr6  sphinx__display_version__)rc   s    r1   setuprW  u  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                   t          j        d            G d d           G fdd          }	 | d         }t           |            d	|          }t          |pi           D ]s}t          |           t          ||                                                   D ]:\  }}t          d
|dd|d         dk    rd|d         z  nd	|d                    ;tdS # t          $ r5}t          |j	        d         |j	        dd         z             Y d}~dS d}~wt          $ r}t          d|z             Y d}~dS d}~ww xY w)z-Debug functionality to print out an inventoryrI   zXPrint out an inventory file.
Error: must specify local path or URL to an inventory file.filec                   2    e Zd ZU dZee         ed<   dZdZdS ) inspect_main.<locals>.MockConfigNrT   F)	r>   r?   r@   rT   r	   rD   __annotations__
tls_verify
user_agentrE   r3   r1   
MockConfigr]    s/         -1Xc]111



r3   ra  c                   8    e Zd ZdZ              ZdeddfdZdS )inspect_main.<locals>.MockAppr   r?  r*   Nc                 <    t          |t          j                   d S )NrZ  )printsysstderr)r0   r?  s     r1   warnz"inspect_main.<locals>.MockApp.warn  s    #CJ''''''r3   )r>   r?   r@   rl   rN   rC   rh  )ra  s   r1   MockApprc    sG        	(C 	(D 	( 	( 	( 	( 	( 	(r3   ri  r   r   	40 r  r   z%-40s: r  NzUnknown error: %r)r   re  rf  rg  exitr|   r   r   ru   ro   rm   )	rX  ri  filenamerz   rJ  entryeinfor{   ra  s	           @r1   inspect_mainrq    s   
4yy1}} L:	 	 	 	 	       
( ( ( ( ( ( ( ( ( ()7!''))R::'-R(( 	3 	3C#JJJ &ws|'9'9';'; < < 3 3u@EaC	E!H(<(<UW(W(-a2 3 3 3 33	3 	3  * * *chqkCHQRRL())))))))) ) ) )!C'((((((((()s%   !B&D	 	
E-*EE-E((E-__main__rI   )rX  r5   )arA   concurrent.futuresr   rW   rs   r2  rf  r   osr   typesr   typingr   r   r   r   r	   r
   r   urllib.parser   r   docutilsr   docutils.nodesr   r   r   r   docutils.utilsr   r   rU  sphinx.addnodesr   sphinx.applicationr   sphinx.builders.htmlr   sphinx.configr   sphinx.domainsr   sphinx.environmentr   sphinx.errorsr   sphinx.localer   r   !sphinx.transforms.post_transformsr   sphinx.utilr   r    sphinx.util.docutilsr!   r"   sphinx.util.inventoryr#   sphinx.util.typingr$   r%   r&   	getLoggerr>   rp   r(   rC   rM   r[   rb   r|   floatr4  r   r   r   r   r   r   r   r   r   r   r   r  r	  r6  rE  rL  rW  rq  _loggingbasicConfigrX  rE   r3   r1   <module>r     s   $             				 



              = = = = = = = = = = = = = = = = = = - - - - - - - -       E E E E E E E E E E E E 2 2 2 2 2 2 2 2  ( ( ( ( ( ( % % % % % % 3 3 3 3 3 3             ! ! ! ! ! ! / / / / / / ( ( ( ( ( (         @ @ @ @ @ @ ) ) ) ) ) ) ) ) A A A A A A A A / / / / / / E E E E E E E E E E		8	$	$5 5 5 5 5 5 5 583 3    *  Xf%5     2!s !s ! ! ! !2$ $c $ $ $ $ $ $N"M
"M"M""M+."M58"M?D"M	"M "M "M "MJPv P$ P P P PB (3- &3&2>INU   <3-,5"&s)  	 '2	 7?w6G	   @!W&6 !W+3C=!WEN!W6:!W *0!W <@9!W (4	!W @K	!W
 '/w&7!W !W !W !WH&<, &< &<R[ &<,0&<)&<5@&<EMgEV&< &< &< &<R=* =c =d = = = =5(8 5-05)55AL5 )1(95 5 5 5
.)9 
.9=
.*6
.BM
. *2'):
. 
. 
. 
.,< -9EP,4W,=   :C6 C(8 C C +C080AC C C CN N N N N0 N N NR R R R Rj R R Rj+ + + + +0 + + +:F S $s)     0v 0v 0$ 0 0 0 00v $sCx.    " )tCy  )T  )  )  )  )F zHLchqrrl######	 r3   