
    Ri0                    L   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mZ ddl	m
Z
 ddlmZ ddlmZ dZ ej                   e      Zer<ddl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  G d de      Z ee!e!ge!f   Z"ddZ# G d d      Z$ G d d      Z% G d d      Z&y)z'Inventory utility functions for Sphinx.    )annotationsN)TYPE_CHECKING)RemovedInSphinx10Warning)__)loggingi @  )CallableIteratorSequence)NoReturnProtocol)Builder)BuildEnvironment)	Inventoryc                      e Zd ZdddZy)_SupportsReadc                     y N )selfsizes     M/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/util/inventory.pyreadz_SupportsRead.read   s        N).)r   intreturnbytes)__name__
__module____qualname__r   r   r   r   r   r      s    5r   r   c                J    | dk(  rddl m} |S dt        d| }t        |      )NInventoryFileReaderr   )r!   zmodule z has no attribute )"sphinx.util._inventory_file_readerr!   r   AttributeError)namer!   msgs      r   __getattr__r&   "   s2    $$J""H<1$
:C

r   c                      e Zd Ze	 	 	 	 	 	 dd       Zedd       Zed	d       Zed
d       Ze	 	 	 	 	 	 	 	 dd       Zy)InventoryFilec                  |j                  d      \  }}}|j                         }|dk(  r| j                  ||      S |dk(  r1|j                         j	                         }| j                  ||      S |j                  d      r#|dd  j                         }d|}t        |      d|j                          }t        |      )	N   
s   # Sphinx inventory version 2uris   # Sphinx inventory version 1s   # Sphinx inventory version    z*unknown or unsupported inventory version: zinvalid inventory header: )	partitionrstrip	_loads_v2decode
splitlines	_loads_v1
startswith
ValueError)clscontentr,   format_line_linesunknown_versionr%   s           r   loadszInventoryFile.loads,   s     #*"3"3E":Q!((*99==c=2299NN$//1E==C=00!!"@A)"#.557O>>QRCS/!*;+=+=+?*@Aor   c                X    | j                  |j                         |      j                  S )Nr+   )r<   r   data)r6   streamr,   joinfuncs       r   loadzInventoryFile.loadA   s!    yyCy0555r   c                  t        |      dk  rd}t        |      t        i       }|d   j                         dd  }|d   j                         dd  }|dd  D ]n  }|j                         j	                  d d      \  }}	}
t        j                  ||
      }
|	dk(  rd}	|
d	| z  }
nd
|	 }	|
d| z  }
t        |||
d      ||	|f<   p |S )N   9invalid inventory header: missing project name or versionr         maxsplitmod	py:modulez#module-zpy:#-project_nameproject_versionr,   display_name)lenr5   
_Inventoryr/   split	posixpathjoin_InventoryItem)r6   r:   r,   r%   invprojnameversionliner$   	item_typelocations              r   r3   zInventoryFile._loads_v1E   s    u:>MCS/!n8??$RS)(//#BC(!"I 	D(,(;(;D1(;(M%D)X ~~c84HE!'	htf--!)-	avJ&#1% ' 	$C	4 	  
r   c               <   	 |j                  dd      \  }}}}t        i       }|j                         dd  j	                         }	|j                         dd  j	                         }
i }t               }d|vrd|j	                          }t        |      t        j                  |      }|j	                         j                         D ]  }t        j                  d|j                         t        j                  	      }|s;|j                         \  }}}}}d
|vrV|dk(  r||f|v rb|dv rc| d
| }|||f}|j                         }||v r>||   |k7  r|j                  |       n)t        j!                  t#        d      ||dd       n|||<   |j%                  d      r|d d |z   }t'        j(                  ||      }t+        |	|
||      |||f<    |D ]%  }t        j-                  t#        d      ||dd       ' |S # t        $ r d}t        |      d w xY w)Nr*      rG   rD   rE   s   zlibz+invalid inventory header (not compressed): z'(.+?)\s+(\S+)\s+(-?\d+)\s+?(\S*)\s+(.*))flags:rJ   >   std:term	std:labelz3inventory <%s> contains duplicate definitions of %sintersphinxexternal)typesubtype$rM   z3inventory <%s> contains multiple definitions for %s)rS   r5   rR   r/   r1   setzlib
decompressr2   rematchVERBOSEgroupsloweraddloggerdebugr   endswithrT   rU   rV   info)r6   inv_datar,   line_1line_2
check_line
compressedr%   rW   rX   rY   potential_ambiguitiesactual_ambiguitiesdecompressed_contentrZ   mr$   re   prior\   dispname
definitionr7   lowercase_definition	ambiguitys                            r   r0   zInventoryFile._loads_v2_   sm   	,5=^^ETU^5V2FFJ
 n==?23'..0--/"#&--/AC U*$?
@Q@Q@S?TUCS/!#z:(//1<<> 2	D:jjA
 3488:0D$h$
 {"d|s':
 00 !%vQtf-
(2'1'7'7'9$'+@@,-ABgM*..z:TU&!.$. %  CJ)*>?  %#CR=4/ ~~c84H,% '%	Cd
O[2	f , 	IKKHI""  	 
S  	,MCS/t+	,s   H Hc                   dd}t        |d      5 }|j                  d ||j                  j                         d ||j                  j                         dj                                t        j                  d      }|j                  j                         D ]  }t        |j                               }|D ]  \  }	}
}}}}|j                  |	      r|j                  |	      dz   }|j                  |      }|r|d|z   z  }|
|	k(  rd	}
|	 d
|j                   d| d
| d
| d
|
 d}|j                  |j                  |j                                        |j                  |j!                                d d d        y # 1 sw Y   y xY w)Nc                0    t        j                  dd|       S )Nz\s+ )rl   sub)strings    r   escapez"InventoryFile.dump.<locals>.escape   s    66&#v..r   wbz(# Sphinx inventory version 2
# Project: z
# Version: z8
# The remainder of this file is compressed using zlib.
	   rg   rK   rL   r   r`   
)r   strr   r   )openwriteconfigprojectrY   encoderj   compressobjdomainssortedget_objectsrt   removesuffixget_target_urir$   compressflush)r6   filenameenvbuilderr   f
compressordomainsorted_objectsfullnamer   re   docnameanchorr   r,   entrys                    r   dumpzInventoryFile.dump   s   	/ (D! 	(QGG""(););"<!= >""(););"<!= >OO &( ))!,J++,,. A!'(:(:(<!=GU 
ACHhgvtx0!'!4!4X!>!D!009CsV|+8+#&'j&++avQtfAcU!H:UWXEGGJ//?@
AA GGJ$$&'5	( 	( 	(s   E(FFN)r7   r   r,   r   r   rR   )r?   r   r,   r   r@   	_JoinFuncr   r   )r:   zSequence[str]r,   r   r   rR   )rv   r   r,   r   r   rR   )r   zstr | os.PathLike[str]r   r   r   r   r   None)	r   r   r   classmethodr<   rA   r3   r0   r   r   r   r   r(   r(   +   s     	
 
 ( 6 6  2 L L\  (- (4D (OV (	 (  (r   r(   c                  X    e Zd ZU dZdZded<   ddZddZddZddZ	dd	Z
dd
ZddZy)rR   zInventory data in memory.r>   $dict[str, dict[str, _InventoryItem]]r>   c                   || _         y r   r   )r   r>   s     r   __init__z_Inventory.__init__   s	    :>	r   c                "    d| j                   dS )Nz_Inventory()r   r   s    r   __repr__z_Inventory.__repr__   s    TYYM++r   c                `    t        |t              st        S | j                  |j                  k(  S r   )
isinstancerR   NotImplementedr>   r   others     r   __eq__z_Inventory.__eq__   s%    %,!!yyEJJ&&r   c                ,    t        | j                        S r   )hashr>   r   s    r   __hash__z_Inventory.__hash__   s    DIIr   c                J    |\  }}| j                   j                  |i       |   S r   r>   
setdefaultr   itemobj_typer$   s       r   __getitem__z_Inventory.__getitem__   s'    $yy##Hb1$77r   c                L    |\  }}|| j                   j                  |i       |<   y r   r   )r   r   valuer   r$   s        r   __setitem__z_Inventory.__setitem__   s&    $38		Xr*40r   c                N    |\  }}|| j                   v xr || j                   |   v S r   r   r   s       r   __contains__z_Inventory.__contains__   s-    $499$D81D)DDr   N)r>   r   r   r   r   r   r   objectr   boolr   r   )r   tuple[str, str]r   rV   )r   r   r   rV   r   r   )r   r   r   r   )r   r   r   __doc__	__slots____annotations__r   r   r   r   r   r   r   r   r   r   rR   rR      s4    #I
..?,'
89Er   rR   c                      e Zd ZU dZded<   ded<   ded<   ded<   	 	 	 	 	 	 	 	 	 	 ddZddZdd	Zdd
ZddZ	ddZ
ddZddZddZddZy)rV   rM   r   rN   rO   r,   rP   c                   t         j                  | d|       t         j                  | d|       t         j                  | d|       t         j                  | d|       y NrN   rO   r,   rP   r   __setattr__)r   rN   rO   r,   rP   s        r   r   z_InventoryItem.__init__   sM     	4>4!2OD4,4>r   c           	     p    d| j                   d| j                  d| j                  d| j                  d	S )Nz_InventoryItem(project_name=z, project_version=z, uri=z, display_name=r   rM   r   s    r   r   z_InventoryItem.__repr__
  sP     --0 1#336 788,  --0	
r   c                   t        |t              st        S | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j
                  |j
                  k(  xr | j                  |j                  k(  S r   )r   rV   r   rN   rO   r,   rP   r   s     r   r   z_InventoryItem.__eq__  st    %0!!!3!33 8$$(=(==8EII%8 !!U%7%77		
r   c                p    t        | j                  | j                  | j                  | j                  f      S r   )r   rN   rO   r,   rP   r   s    r   r   z_InventoryItem.__hash__  s6      HH	
  	r   c                    d}t        |      Nz_InventoryItem is immutabler#   )r   keyr   r%   s       r   r   z_InventoryItem.__setattr__&      +S!!r   c                    d}t        |      r   r   )r   r   r%   s      r   __delattr__z_InventoryItem.__delattr__*  r   r   c                ^    | j                   | j                  | j                  | j                  fS r   rM   r   s    r   __getstate__z_InventoryItem.__getstate__.  s'      $"6"6$BSBSSSr   c                    |\  }}}}t         j                  | d|       t         j                  | d|       t         j                  | d|       t         j                  | d|       y r   r   )r   staterN   rO   r,   rP   s         r   __setstate__z_InventoryItem.__setstate__1  sY    ;@8osL4>4!2OD4,4>r   c                    t        j                  dt        d       | j                  | j                  | j
                  | j                  f}||   S )NzThe tuple interface for _InventoryItem objects is deprecated. Please access the `project_name`, `project_version`, `uri`, and `displayname` attributes directly.rC   
stacklevel)warningswarnr   rN   rO   r,   rP   )r   r   tpls      r   r   z_InventoryItem.__getitem__8  sJ    < %	
 !5!5txxARARR3xr   c                    t        j                  dt        d       | j                  | j                  | j
                  | j                  f}t        |      S )NzThe iter() interface for _InventoryItem objects is deprecated. Please access the `project_name`, `project_version`, `uri`, and `displayname` attributes directly.rC   r   )r   r   r   rN   rO   r,   rP   iter)r   r   s     r   __iter__z_InventoryItem.__iter__C  sK    < %	
 !5!5txxARARRCyr   N)
rN   r   rO   r   r,   r   rP   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   tuple[str, str, str, str])r   r   r   r   )r   zint | slicer   zstr | tuple[str, ...])r   zIterator[str])r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rV   rV      s    HI	H? ? 	?
 ? ? 
?

""T?		r   rV   )r$   r   r   r   )'r   
__future__r   rT   rl   r   rj   typingr   sphinx.deprecationr   sphinx.localer   sphinx.utilr   BUFSIZE	getLoggerr   rr   oscollections.abcr   r	   r
   r   r   sphinx.buildersr   sphinx.environmentr   sphinx.util.typingr   r   r   r   r&   r(   rR   rV   r   r   r   <module>r      s    - "  	     7  
			8	$<<)'3,6 6 #sS)Id( d(N E  EFW Wr   