o
    f                     @   s   d Z ddlZddlZdddZdddZG dd	 d	ejZG d
d dejZG dd dejZG dd deejZG dd deej	Z	dd Z
dS )a  Python 'bz2_codec' Codec - bz2 compression encoding.

This codec de/encodes from bytes to bytes and is therefore usable with
bytes.transform() and bytes.untransform().

Adapted by Raymond Hettinger from zlib_codec.py which was written
by Marc-Andre Lemburg (mal@lemburg.com).
    Nstrictc                 C      |dksJ t | t| fS Nr   )bz2compressleninputerrors r   */usr/lib/python3.10/encodings/bz2_codec.py
bz2_encode      r   c                 C   r   r   )r   
decompressr   r   r   r   r   
bz2_decode   r   r   c                   @   s    e Zd ZdddZdddZdS )Codecr   c                 C   
   t ||S N)r   selfr	   r
   r   r   r   encode      
zCodec.encodec                 C   r   r   )r   r   r   r   r   decode   r   zCodec.decodeNr   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                   @   (   e Zd Zd
ddZdddZdd Zd	S )IncrementalEncoderr   c                 C       |dksJ || _ t | _d S r   )r
   r   BZ2Compressorcompressobjr   r
   r   r   r   __init__      zIncrementalEncoder.__init__Fc                 C   s*   |r| j |}|| j   S | j |S r   )r!   r   flush)r   r	   finalcr   r   r   r   #   s   zIncrementalEncoder.encodec                 C      t  | _d S r   )r   r    r!   r   r   r   r   reset*      zIncrementalEncoder.resetNr   F)r   r   r   r#   r   r*   r   r   r   r   r      s    

r   c                   @   r   )IncrementalDecoderr   c                 C   r   r   )r
   r   BZ2Decompressordecompressobjr"   r   r   r   r#   .   r$   zIncrementalDecoder.__init__Fc                 C   s$   z| j |W S  ty   Y dS w )N )r/   r   EOFError)r   r	   r&   r   r   r   r   3   s
   zIncrementalDecoder.decodec                 C   r(   r   )r   r.   r/   r)   r   r   r   r*   9   r+   zIncrementalDecoder.resetNr   r,   )r   r   r   r#   r   r*   r   r   r   r   r-   -   s    

r-   c                   @      e Zd ZeZdS )StreamWriterNr   r   r   bytescharbuffertyper   r   r   r   r3   <       r3   c                   @   r2   )StreamReaderNr4   r   r   r   r   r8   ?   r7   r8   c                
   C   s   t jdttttttddS )Nr   F)namer   r   incrementalencoderincrementaldecoderstreamwriterstreamreader_is_text_encoding)codecs	CodecInfor   r   r   r-   r3   r8   r   r   r   r   getregentryD   s   rA   r   )__doc__r?   r   r   r   r   r   r-   r3   r8   rA   r   r   r   r   <module>   s    	

