File: //lib/python3.12/__pycache__/bz2.cpython-312.pyc
�
    )!�hG.  �                   �   � d Z g d�ZdZddlmZ ddlZddlZddlZddl	m
Z
mZ dZdZ
dZ G d	� d
ej                  �      Z	 	 dd�Zdd�Zd
� Zy)z�Interface to the libbzip2 compression library.
This module provides a file interface, classes for incremental
(de)compression, and functions for one-shot (de)compression.
)�BZ2File�
BZ2Compressor�BZ2Decompressor�open�compress�
decompressz%Nadeem Vawda <nadeem.vawda@gmail.com>�    )r   N)r   r   �   �   c                   �   � e Zd ZdZddd�d�Zd� Zed� �       Zd� Zd� Z	d	� Z
d
� Zdd�Zdd�Z
dd
�Zd� Zdd�Zdd�Zd� Zd� Zej*                  fd�Zd� Zy)r   a@  A file object providing transparent bzip2 (de)compression.
    A BZ2File can act as a wrapper for an existing file object, or refer
    directly to a named file on disk.
    Note that BZ2File provides a *binary* file interface - data read is
    returned as bytes, and data to be written should be given as bytes.
    �	   ��
compresslevelc                �
  � d| _         d| _        t        | _        d|cxk  rdk  st	        d�      � t	        d�      �|dv r	d}t
        }ne|dv rd	}t        }t        |�      | _        nH|d
v rd}t        }t        |�      | _        n+|dv rd
}t        }t        |�      | _        nt	        d|���      �t        |t        t        t        j                  f�      r t        ||�      | _         d| _        || _        n2t        |d�      st        |d�      r|| _         || _        nt!        d�      �| j                  t
        k(  rEt#        j$                  | j                   t&