File: //lib/python3.10/__pycache__/_compression.cpython-310.pyc
o
    E�h1  �                   @   sB   d Z ddlZddlZejZG dd� dej�ZG dd� dej�ZdS )z7Internal classes used by the gzip, lzma and bz2 modules�    Nc                   @   s0   e Zd ZdZdd� Zdd� Zdd� Zdd	� Zd
S )�
BaseStreamzMode-checking helper functions.c                 C   s   | j rtd��d S )NzI/O operation on closed file)�closed�
ValueError��self� r   �#/usr/lib/python3.10/_compression.py�_check_not_closed   s   �zBaseStream._check_not_closedc                 C   �   | � � s	t�d��d S )NzFile not open for reading)�readable�io�UnsupportedOperationr   r   r   r   �_check_can_read   �   
�zBaseStream._check_can_readc                 C   r
   )NzFile not open for writing)�writabler   r
   r   r   r   r   �_check_can_write   r   zBaseStream._check_can_writec                 C   s(   | � � s	t�d��| �� st�d��d S )Nz3Seeking is only supported on files open for readingz3The underlying file object does not support seeking)r   r   r
   �seekabler   r   r   r   �_check_can_seek   s
   
�zBaseStream._check_can_seekN)�__name__�
__module__�__qualname__�__doc__r	   r   r   r   r   r   r   r   r   	   s    r   c                       sr   e Zd ZdZdd� Zddd�Z� fdd�Zd	d
� Zdd� Zddd�Z	dd� Z
dd� Zej
fdd�Zdd� Z�  ZS )�DecompressReaderz5Adapts the decompressor API to a RawIOBase reader APIc                 C   s   dS )NTr   r   r   r   r   r   $   s   zDecompressReader.readabler   c                 K   sB   || _ d| _d| _d| _|| _|| _| jdi | j��| _|| _d S )NFr   ���r   )�_fp�_eof�_pos�_size�_decomp_factory�_decomp_args�
_decompressor�_trailing_error)r   �fp�decomp_factory�trailing_error�decomp_argsr   r   r   �__init__'