
    Rh                        d Z ddlZddlZddZddZ G d dej
                        Z G d dej                        Z G d	 d
ej                        Z G d deej                        Z G d deej                        Z	d Z
y)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).
    Nc                 P    |dk(  sJ t        j                  |       t        |       fS Nstrict)bz2compressleninputerrorss     */usr/lib/python3.12/encodings/bz2_codec.py
bz2_encoder      s(    XLLU,,    c                 P    |dk(  sJ t        j                  |       t        |       fS r   )r   
decompressr   r	   s     r   
bz2_decoder      s(    XNN5!3u:..r   c                       e Zd ZddZddZy)Codecc                     t        ||      S N)r   selfr
   r   s      r   encodezCodec.encode       %((r   c                     t        ||      S r   )r   r   s      r   decodezCodec.decode   r   r   Nr   )__name__
__module____qualname__r   r    r   r   r   r      s    ))r   r   c                   "    e Zd ZddZddZd Zy)IncrementalEncoderc                 R    |dk(  sJ || _         t        j                         | _        y r   )r   r   BZ2Compressorcompressobjr   r   s     r   __init__zIncrementalEncoder.__init__   s(    !!!,,.r   c                     |r8| j                   j                  |      }|| j                   j                         z   S | j                   j                  |      S r   )r%   r   flush)r   r
   finalcs       r   r   zIncrementalEncoder.encode#   sL      ))%0At''--///##,,U33r   c                 6    t        j                         | _        y r   )r   r$   r%   r   s    r   resetzIncrementalEncoder.reset*   s    ,,.r   Nr   F)r   r   r   r'   r   r.   r    r   r   r"   r"      s    /
4/r   r"   c                   "    e Zd ZddZddZd Zy)IncrementalDecoderc                 R    |dk(  sJ || _         t        j                         | _        y r   )r   r   BZ2Decompressordecompressobjr&   s     r   r'   zIncrementalDecoder.__init__.   s(    !!! 002r   c                 X    	 | j                   j                  |      S # t        $ r Y yw xY w)N )r4   r   EOFError)r   r
   r*   s      r   r   zIncrementalDecoder.decode3   s0    	%%0077 		s    	))c                 6    t        j                         | _        y r   )r   r3   r4   r-   s    r   r.   zIncrementalDecoder.reset9   s     002r   Nr   r/   )r   r   r   r'   r   r.   r    r   r   r1   r1   -   s    3
3r   r1   c                       e Zd ZeZy)StreamWriterNr   r   r   bytescharbuffertyper    r   r   r:   r:   <       Nr   r:   c                       e Zd ZeZy)StreamReaderNr;   r    r   r   r@   r@   ?   r>   r   r@   c            
      l    t        j                  dt        t        t        t
        t        t        d      S )Nr   F)namer   r   incrementalencoderincrementaldecoderstreamwriterstreamreader_is_text_encoding)codecs	CodecInfor   r   r"   r1   r:   r@   r    r   r   getregentryrJ   D   s-    --!!	 	r   r   )__doc__rH   r   r   r   r   r"   r1   r:   r@   rJ   r    r   r   <module>rL      s}     
-/)FLL )/22 / 322 35&-- 5&-- 

r   