
    7 f                        d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	 ddl
mZ dZ ej        e          ZerddlmZ ddlmZ dd	lmZ dd
lmZmZ  G d d          Z G d d          ZdS )z'Inventory utility functions for Sphinx.    )annotationsN)IOTYPE_CHECKINGCallable)loggingi @  )Iterator)Builder)BuildEnvironment)	InventoryInventoryItemc                  B    e Zd ZdZddZddZdd	ZddZddZddZ	dS )InventoryFileReaderzjA file reader for an inventory file.

    This reader supports mixture of texts and compressed texts.
    streamr   returnNonec                0    || _         d| _        d| _        d S )N    F)r   buffereof)selfr   s     K/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/util/inventory.py__init__zInventoryFileReader.__init__   s    r   c                ~    | j                             t                    }|dk    rd| _        | xj        |z  c_        d S )Nr   T)r   readBUFSIZEr   r   )r   chunks     r   read_bufferzInventoryFileReader.read_buffer!   s;      ))C<<DHur   strc                X   | j                             d          }|dk    r9| j         d |                                         }| j         |dz   d          | _         nP| j        r!| j                                         }d| _         n(|                                  |                                 }|S )N   
   r   )r   finddecoder   r   readline)r   poslines      r   r%   zInventoryFileReader.readline'   s    ku%%"99;tt$++--D+cAghh/DKKX 	#;%%''DDKK==??Dr   Iterator[str]c              #  ^   K   | j         s#|                                 }|r|V  | j         !d S d S )N)r   r%   )r   r'   s     r   	readlineszInventoryFileReader.readlines5   sN      ( 	==??D 


 ( 	 	 	 	 	r   Iterator[bytes]c              #     K   t          j                    }| j        s>|                                  |                    | j                  V  d| _        | j        >|                                V  d S )Nr   )zlibdecompressobjr   r   
decompressr   flush)r   decompressors     r   read_compressed_chunksz*InventoryFileReader.read_compressed_chunks;   s      )++( 	))$+66666DK ( 	   """""""r   c              #    K   d}|                                  D ]h}||z  }|                    d          }|dk    rF|d |                                         V  ||dz   d          }|                    d          }|dk    Fid S )Nr   r    r!   r"   )r2   r#   r$   )r   bufr   r&   s       r   read_compressed_linesz)InventoryFileReader.read_compressed_linesC   s      0022 	& 	&E5LC((5//C))$3$i&&(((((#'((mhhuoo ))	& 	&r   N)r   r   r   r   )r   r   )r   r   )r   r(   )r   r+   )
__name__
__module____qualname____doc__r   r   r%   r*   r2   r5    r   r   r   r      s         
   
         # # # #& & & & & &r   r   c                  n    e Zd Zedd	            Zedd            Zedd            Zedd            ZdS )InventoryFiler   r   urir   joinfuncr   r   r   c                   t          |          }|                                                                }|dk    r|                     |||          S |dk    r|                     |||          S t          d|z            )Nz# Sphinx inventory version 1z# Sphinx inventory version 2zinvalid inventory header: %s)r   r%   rstripload_v1load_v2
ValueError)clsr   r=   r>   readerr'   s         r   loadzInventoryFile.loadO   s    $V,,  ''))111;;vsH555333;;vsH555;dBCCCr   r   joinc                   i }|                                                                 dd          }|                                                                 dd          }|                                D ]u}|                                                    d d          \  }}	}
 |||
          }
|	dk    rd}	|
d|z   z  }
nd|	z   }	|
d|z   z  }
|||
df|                    |	i           |<   v|S )	N      mod	py:modulez#module-zpy:#-)r%   r@   r*   split
setdefault)rD   r   r=   rG   invdataprojnameversionr'   nametypelocations              r   rA   zInventoryFile.load_v1Z   s   ??$$++--bcc2//##**,,RSS1$$&& 
	T 
	TD#';;==#6#6tQ#?#? D$tC**Hu}}"J--t|C$J&2:GXs1SGtR((..r   c                   i }|                                                                 dd          }|                                                                 dd          }|                                 }d|vrt          d|z            |                                D ]}t	          j        d|                                t          j                  }|s8|                                \  }	}
}}}d|
vrW|
dk    r|
|v r|	||
         v rl|                    d          r|d d	         |	z   } |||          }||||f}||	                    |
i           |	<   |S )
NrI   r-   z-invalid inventory header (not compressed): %sz'(.+?)\s+(\S+)\s+(-?\d+)\s+?(\S*)\s+(.*))flags:rL   $r!   )
r%   r@   rC   r5   rematchVERBOSEgroupsendswithrP   )rD   r   r=   rG   rQ   rR   rS   r'   mrT   rU   priorV   dispnameinv_items                  r   rB   zInventoryFile.load_v2l   s   ??$$++--bcc2//##**,,RSS1  LtSTTT0022 	: 	:DCbj: : :A 3488::0D$h$ {""tw474=;P;P
   %% 0#CRC=4/tC**H&.8&KH19GtR((..r   filenameenvr
   builderr	   r   c                   dd}t          t          j                            |          d          5 }|                    d ||j        j                  d ||j        j                  d                                           t          j
        d	          }t          |j                                                  D ]\  }}t          |                                          D ]\  }	}
}}}}|                    |	          r|d t!          |	                    d
z   }|                    |          }|r|d|z   z  }|
|	k    rd}
|	d|d|d|d|d|
d}|                    |                    |                                                     |                    |                                           d d d            d S # 1 swxY w Y   d S )Nstringr   r   c                .    t          j        dd|           S )Nz\s+ )r[   sub)rh   s    r   escapez"InventoryFile.dump.<locals>.escape   s    6&#v...r   wbz(# Sphinx inventory version 2
# Project: z
# Version: z8
# The remainder of this file is compressed using zlib.
	   rZ   rM   rN   rj   rY   
)rh   r   r   r   )openospathrG   writeconfigprojectrS   encoder-   compressobjsorteddomainsitemsget_objectsr_   lenget_target_uricompressr0   )rD   rd   re   rf   rl   f
compressor
domainnamedomainrT   rb   typdocnameanchorra   r=   entrys                    r   dumpzInventoryFile.dump   sG   	/ 	/ 	/ 	/ "',,x(($// 	(1GGG fSZ/0000fSZ/00002
 4:688= = = )!,,J&,S[->->-@-@&A&A A A"
Fv113344A A>D(C&$t,, ;!'#d))!4s!:!0099C ,sV|+4''#&"ddJJJTTT333JEGGJ//??@@@@A GGJ$$&&'''3	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   FGGGN)r   r   r=   r   r>   r   r   r   )r   r   r=   r   rG   r   r   r   )rd   r   re   r
   rf   r	   r   r   )r6   r7   r8   classmethodrF   rA   rB   r   r:   r   r   r<   r<   N   s        D D D [D    ["    [B ( ( ( [( ( (r   r<   )r9   
__future__r   rq   r[   r-   typingr   r   r   sphinx.utilr   r   	getLoggerr6   loggercollections.abcr   sphinx.buildersr	   sphinx.environmentr
   sphinx.util.typingr   r   r   r<   r:   r   r   <module>r      s:   - - " " " " " " 				 				  . . . . . . . . . .      
		8	$	$ <((((((''''''333333;;;;;;;;5& 5& 5& 5& 5& 5& 5& 5&p^( ^( ^( ^( ^( ^( ^( ^( ^( ^(r   