HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sphinx/util/__pycache__/inventory.cpython-310.pyc
o

�$�a�@s�dZddlZddlZddlZddlmZmZmZmZddl	m
Z
ddlmZdZ
e
�e�Zer;ddlmZddlmZGd	d
�d
�ZGdd�d�ZdS)
z�
    sphinx.util.inventory
    ~~~~~~~~~~~~~~~~~~~~~

    Inventory utility functions for Sphinx.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�IO�
TYPE_CHECKING�Callable�Iterator)�logging)�	Inventoryi@)�Builder)�BuildEnvironmentc@speZdZdZdeddfdd�Zddd�Zdefd	d
�Zde	efdd�Z
de	efd
d�Zde	efdd�Z
dS)�InventoryFileReaderzjA file reader for an inventory file.

    This reader supports mixture of texts and compressed texts.
    �stream�returnNcCs||_d|_d|_dS)N�F)r�buffer�eof)�selfr�r�7/usr/lib/python3/dist-packages/sphinx/util/inventory.py�__init__ s
zInventoryFileReader.__init__cCs,|j�t�}|dkr
d|_|j|7_dS)Nr
T)r�read�BUFSIZErr)r�chunkrrr�read_buffer%szInventoryFileReader.read_buffercCsl|j�d�}|dkr|jd|���}|j|dd�|_|S|jr,|j��}d|_|S|��|��}|S)N�
����r
)r�find�decoderr�readline)r�pos�linerrrr+s�
�zInventoryFileReader.readlineccs(�|js|��}|r
|V|jrdSdS)N)rr)rrrrr�	readlines9s��zInventoryFileReader.readlinesccs@�t��}|js|��|�|j�Vd|_|jr|��VdS)Nr
)�zlib�
decompressobjrr�
decompressr�flush)r�decompressorrrr�read_compressed_chunks?s��z*InventoryFileReader.read_compressed_chunksccsf�d}|��D])}||7}|�d�}|dkr0|d|���V||dd�}|�d�}|dksqdS)Nr
rrr)r&rr)r�bufrrrrr�read_compressed_linesGs�

���z)InventoryFileReader.read_compressed_lines)rN)�__name__�
__module__�__qualname__�__doc__rrr�strrrr �bytesr&r(rrrrr
s
r
c	@s�eZdZededededefdd��Zede	dededefdd	��Z
ede	dededefd
d��Zeded
dddddfdd��ZdS)�
InventoryFiler�uri�joinfuncrcCsLt|�}|����}|dkr|�|||�S|dkr |�|||�Std|��)Nz# Sphinx inventory version 1z# Sphinx inventory version 2zinvalid inventory header: %s)r
r�rstrip�load_v1�load_v2�
ValueError)�clsrr0r1�readerrrrr�loadSszInventoryFile.load�joincCs�i}|����dd�}|����dd�}|��D]5}|���dd�\}}	}
|||
�}
|	dkr9d}	|
d|7}
n
d|	}	|
d|7}
|||
df|�|	i�|<q|S)	N���mod�	py:modulez#module-zpy:�#�-)rr2r �split�
setdefault)r6rr0r9�invdata�projname�versionr�name�type�locationrrrr3^s
zInventoryFile.load_v1cCs�i}|����dd�}|����dd�}|��}d|vr$td|��|��D]H}t�d|���}|s5q(|��\}	}
}}}
d|
vrCq(|
dkrR|
|vrR|	||
vrRq(|�d�r_|dd�|	}|||�}||||
f|�|
i�|	<q(|S)	Nr:r!z-invalid inventory header (not compressed): %sz+(?x)(.+?)\s+(\S+)\s+(-?\d+)\s+?(\S*)\s+(.*)�:r=�$r)	rr2r5r(�re�match�groups�endswithrA)r6rr0r9rBrCrDr�mrErF�priorG�dispnamerrrr4ps0�

�zInventoryFile.load_v2�filename�envr	�builderrNc
Cs,dtdtfdd�}ttj�|�d��z}|�d||jj�||jj�f�	��t
�d�}t|j
���D]J\}}t|���D]?\}	}
}}}
}|
�|	�rT|
dt|	��d}
|�|�}|
ra|d	|
7}|
|	krgd
}
d|	|||||
f}|�|�|�	���q<q2|�|���Wd�dS1s�wYdS)N�stringrcSst�dd|�S)Nz\s+� )rJ�sub)rTrrr�escape�sz"InventoryFile.dump.<locals>.escape�wbzp# Sphinx inventory version 2
# Project: %s
# Version: %s
# The remainder of this file is compressed using zlib.
�	rIr>r?z%s %s:%s %s %s %s
)r-�open�os�pathr9�write�config�projectrD�encoder!�compressobj�sorted�domains�items�get_objectsrM�len�get_target_uri�compressr$)r6rQrRrSrW�f�
compressor�
domainname�domainrErP�typ�docname�anchorrOr0�entryrrr�dump�s6

���

�

��
"�zInventoryFile.dump)
r)r*r+�classmethodrr-rrr8r
r3r4rqrrrrr/Rs
! r/)r,r[rJr!�typingrrrr�sphinx.utilr�sphinx.util.typingrr�	getLoggerr)�logger�sphinx.buildersr�sphinx.environmentr	r
r/rrrr�<module>s	
8