File: //lib/python3/dist-packages/sphinx/util/__pycache__/inventory.cpython-310.pyc
o
�$�a � @ s� d Z ddlZddlZddlZddlmZmZmZmZ ddl m
Z
ddlmZ dZ
e
�e�Zer;ddlmZ ddlmZ G d d
� d
�ZG dd� 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 @ sp e Zd ZdZdeddfdd�Zddd�Zdefd d
�Zde e fdd�Z
de e fd
d�Zde e fdd�Z
dS )�InventoryFileReaderzjA file reader for an inventory file.
This reader supports mixture of texts and compressed texts.
�stream�returnNc C s || _ d| _d| _d S )N� F)r �buffer�eof)�selfr � r �7/usr/lib/python3/dist-packages/sphinx/util/inventory.py�__init__ s
zInventoryFileReader.__init__c C s, | j �t�}|dkr
d| _| j|7 _d S )Nr
T)r �read�BUFSIZEr r )r �chunkr r r �read_buffer% s zInventoryFileReader.read_bufferc C sl | j �d�}|dkr| j d |� �� }| j |d d � | _ |S | jr,| j �� }d| _ |S | �� | �� }|S )N�
���� r
)r �find�decoder r �readline)r �pos�liner r r r + s �
�zInventoryFileReader.readlinec c s( � | j s| �� }|r
|V | j rd S d S )N)r r )r r r r r � readlines9 s ��zInventoryFileReader.readlinesc c s@ � t �� }| js| �� |�| j�V d| _| jr|�� V d S )Nr
)�zlib�
decompressobjr r �
decompressr �flush)r �decompressorr r r �read_compressed_chunks? s ��z*InventoryFileReader.read_compressed_chunksc c sf � d}| � � D ])}||7 }|�d�}|dkr0|d |� �� V ||d d � }|�d�}|dksqd S )Nr
r r r )r&