3
4^^                 @   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   s   |dkst tj| t| fS )Nr   )AssertionErrorbz2compresslen)inputerrors r	   )/usr/lib/python3.6/encodings/bz2_codec.py
bz2_encode   s    r   c             C   s   |dkst tj| t| fS )Nr   )r   r   
decompressr   )r   r   r	   r	   r
   
bz2_decode   s    r   c               @   s    e Zd ZdddZdddZdS )	Codecr   c             C   s
   t ||S )N)r   )selfr   r   r	   r	   r
   encode   s    zCodec.encodec             C   s
   t ||S )N)r   )r   r   r   r	   r	   r
   decode   s    zCodec.decodeN)r   )r   )__name__
__module____qualname__r   r   r	   r	   r	   r
   r      s   
r   c               @   s(   e Zd Zd
ddZdddZdd Zd	S )IncrementalEncoderr   c             C   s    |dkst || _tj | _d S )Nr   )r   r   r   BZ2Compressorcompressobj)r   r   r	   r	   r
   __init__   s    zIncrementalEncoder.__init__Fc             C   s.   |r| j j|}|| j j  S | j j|S d S )N)r   r   flush)r   r   finalcr	   r	   r
   r   #   s    zIncrementalEncoder.encodec             C   s   t j | _d S )N)r   r   r   )r   r	   r	   r
   reset*   s    zIncrementalEncoder.resetN)r   )F)r   r   r   r   r   r   r	   r	   r	   r
   r      s   

r   c               @   s(   e Zd Zd
ddZdddZdd Zd	S )IncrementalDecoderr   c             C   s    |dkst || _tj | _d S )Nr   )r   r   r   BZ2Decompressordecompressobj)r   r   r	   r	   r
   r   .   s    zIncrementalDecoder.__init__Fc             C   s&   y| j j|S  tk
r    dS X d S )N )r   r   EOFError)r   r   r   r	   r	   r
   r   3   s    zIncrementalDecoder.decodec             C   s   t j | _d S )N)r   r   r   )r   r	   r	   r
   r   9   s    zIncrementalDecoder.resetN)r   )F)r   r   r   r   r   r   r	   r	   r	   r
   r   -   s   

r   c               @   s   e Zd ZeZdS )StreamWriterN)r   r   r   bytescharbuffertyper	   r	   r	   r
   r"   <   s   r"   c               @   s   e Zd ZeZdS )StreamReaderN)r   r   r   r#   r$   r	   r	   r	   r
   r%   ?   s   r%   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   r"   r%   r	   r	   r	   r
   getregentryD   s    r.   )r   )r   )__doc__r,   r   r   r   r   r   r   r"   r%   r.   r	   r	   r	   r
   <module>   s   

