� !A?h1 � �t � d Z ddlZddlZej Z G d� dej � � Z G d� dej � � ZdS )z7Internal classes used by the gzip, lzma and bz2 modules� Nc �* � e Zd ZdZd� Zd� Zd� Zd� ZdS )� BaseStreamzMode-checking helper functions.c �2 � | j rt d� � �d S )NzI/O operation on closed file)�closed� ValueError��selfs �9/opt/alt/python-internal/lib64/python3.11/_compression.py�_check_not_closedzBaseStream._check_not_closed s% � ��;� =��;�<�<�<� =� =� c �V � | � � � st j d� � �d S )NzFile not open for reading)�readable�io�UnsupportedOperationr s r �_check_can_readzBaseStream._check_can_read �1 � ��}�}��� G��)�*E�F�F�F� G� Gr c �V � | � � � st j d� � �d S )NzFile not open for writing)�writabler r r s r �_check_can_writezBaseStream._check_can_write r r c � � | � � � st j d� � �| � � � st j d� � �d S )Nz3Seeking is only supported on files open for readingz3The underlying file object does not support seeking)r r r �seekabler s r �_check_can_seekzBaseStream._check_can_seek sl � ��}�}��� G��)� +F� G� G� G��}�}��� F��)� +E� F� F� F� F� Fr N)�__name__� __module__�__qualname__�__doc__r r r r � r r r r sa � � � � � �)�)�=� =� =�G� G� G�G� G� G�F� F� F� F� Fr r c �j � � e Zd ZdZd� Zdd�Z� fd�Zd� Zd� Zdd �Z d � Z d� Zej fd�Zd � Z� xZS )�DecompressReaderz5Adapts the decompressor API to a RawIOBase reader APIc � � dS )NTr r s r r zDecompressReader.readable$ s � ��tr r c � � || _ d| _ d| _ d| _ || _ || _ | j di | j ��| _ || _ d S )NFr �����r )�_fp�_eof�_pos�_size�_decomp_factory�_decomp_args� _decompressor�_trailing_error)r �fp�decomp_factory�trailing_error�decomp_argss r �__init__zDecompressReader.__init__' s` � ������ ��� � �� � .���'���1�T�1�F�F�D�4E�F�F��� .����r c �R �� d | _ t � � � � � S �N)r) �super�close)r � __class__s �r r3 zDecompressReader.close; s �� �!����w�w�}�}���r c �4 � | j � � � S r1 )r# r r s r r zDecompressReader.seekable? s � ��x� � �"�"�"r c �4 � t |� � 5 }|� d� � 5 }| � t |� � � � }||d t |� � �<