
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \¾0  ã               @   sÀ   d dddddgZ dZddlmZ dd	lZdd	lZdd	lZdd	lZydd
l	m
Z
 W n  ek
rp   dd
lm
Z
 Y nX ddlmZmZ dZdZdZG dd „ d ejƒZddd„Zddd„Zdd„ Zd	S )ÚBZ2FileÚBZ2CompressorÚBZ2DecompressorÚopenÚcompressÚ
decompressz%Nadeem Vawda <nadeem.vawda@gmail.com>é    )r   N)ÚRLock)r   r   é   é   c               @   sª   e Zd Zd(dd„Zdd„ Zedd	„ ƒZd
d„ Zdd„ Zdd„ Z	dd„ Z
d)dd„Zd+dd„Zd-dd„Zdd„ Zd/dd„Zd1dd„Zd d!„ Zd"d#„ Zejfd$d%„Zd&d'„ ZdS )2r   ÚrNé	   c             C   sT  t ƒ | _d | _d| _t| _|d k	r.tjdtƒ d|  ko@dkn  sNt	dƒ‚|dkr`d}t
}nb|dkr|d
}t}t|ƒ| _nF|dkr˜d}t}t|ƒ| _n*|dkr´d}t}t|ƒ| _nt	d|f ƒ‚t|tttjfƒ� rðt||ƒ| _d| _|| _n.t|dƒ�st|dƒ�r|| _|| _ntdƒ‚| jt
k�rJtj| jttd�}tj|ƒ| _nd| _d S )NFz)Use of 'buffering' argument is deprecatedr	   r   z%compresslevel must be between 1 and 9Ú r   ÚrbÚwÚwbÚxÚxbÚaÚabzInvalid mode: %rTÚreadÚwritez6filename must be a str, bytes, file or PathLike object)Ztrailing_errorr   )r   r   r   )r   r   )r   r   )r   r   )r   Ú_lockÚ_fpÚ_closefpÚ_MODE_CLOSEDÚ_modeÚwarningsÚwarnÚDeprecationWarningÚ
ValueErrorÚ
_MODE_READÚ_MODE_WRITEr   Ú_compressorÚ
isinstanceÚstrÚbytesÚosÚPathLikeÚ_builtin_openÚhasattrÚ	TypeErrorÚ_compressionZDecompressReaderr   ÚOSErrorÚioÚBufferedReaderÚ_bufferÚ_pos)ÚselfÚfilenameÚmodeÚ	bufferingÚcompresslevelZ	mode_codeÚraw© r7   ú/usr/lib64/python3.6/bz2.pyÚ__init__+   sL    
zBZ2File.__init__c             C   s”   | j �„ | jtkrd S z<| jtkr.| jjƒ  n"| jtkrP| jj| j	j
ƒ ƒ d | _	W d z| jrf| jjƒ  W d d | _d| _t| _d | _X X W d Q R X d S )NF)r   r   r   r    r/   Úcloser!   r   r   r"   Úflushr   )r1   r7   r7   r8   r:   p   s     



zBZ2File.closec             C   s
   | j tkS )N)r   r   )r1   r7   r7   r8   Úclosed‰   s    zBZ2File.closedc             C   s   | j ƒ  | jjƒ S )N)Ú_check_not_closedr   Úfileno)r1   r7   r7   r8   r>   Ž   s    zBZ2File.filenoc             C   s   | j ƒ o| jjƒ S )N)Úreadabler/   Úseekable)r1   r7   r7   r8   r@   “   s    zBZ2File.seekablec             C   s   | j ƒ  | jtkS )N)r=   r   r    )r1   r7   r7   r8   r?   —   s    zBZ2File.readablec             C   s   | j ƒ  | jtkS )N)r=   r   r!   )r1   r7   r7   r8   Úwritableœ   s    zBZ2File.writabler   c          	   C   s&   | j � | jƒ  | jj|ƒS Q R X d S )N)r   Ú_check_can_readr/   Úpeek)r1   Únr7   r7   r8   rC   ¡   s    zBZ2File.peekr	   c          	   C   s&   | j � | jƒ  | jj|ƒS Q R X d S )N)r   rB   r/   r   )r1   Úsizer7   r7   r8   r   ®   s    zBZ2File.readc          	   C   s4   | j �$ | jƒ  |dk rtj}| jj|ƒS Q R X d S )Nr   )r   rB   r-   ÚDEFAULT_BUFFER_SIZEr/   Úread1)r1   rE   r7   r7   r8   rG   ¸   s
    zBZ2File.read1c          	   C   s&   | j � | jƒ  | jj|ƒS Q R X d S )N)r   rB   r/   Úreadinto)r1   Úbr7   r7   r8   rH   Å   s    zBZ2File.readintoc          	   C   sJ   t |tƒs$t|dƒstdƒ‚|jƒ }| j� | jƒ  | jj|ƒS Q R X d S )NÚ	__index__zInteger argument expected)	r#   Úintr)   r*   rJ   r   rB   r/   Úreadline)r1   rE   r7   r7   r8   rL   Î   s    

zBZ2File.readlinec          	   C   sJ   t |tƒs$t|dƒstdƒ‚|jƒ }| j� | jƒ  | jj|ƒS Q R X d S )NrJ   zInteger argument expected)	r#   rK   r)   r*   rJ   r   rB   r/   Ú	readlines)r1   rE   r7   r7   r8   rM   Ý   s    

zBZ2File.readlinesc             C   sL   | j �< | jƒ  | jj|ƒ}| jj|ƒ |  jt|ƒ7  _t|ƒS Q R X d S )N)r   Z_check_can_writer"   r   r   r   r0   Úlen)r1   ÚdataZ
compressedr7   r7   r8   r   ì   s    zBZ2File.writec          
   C   s    | j � tjj| |ƒS Q R X d S )N)r   r+   Ú
BaseStreamÚ
writelines)r1   Úseqr7   r7   r8   rQ   ú   s    zBZ2File.writelinesc          
   C   s(   | j � | jƒ  | jj||ƒS Q R X d S )N)r   Z_check_can_seekr/   Úseek)r1   ÚoffsetÚwhencer7   r7   r8   rS     s    zBZ2File.seekc          	   C   s4   | j �$ | jƒ  | jtkr$| jjƒ S | jS Q R X d S )N)r   r=   r   r    r/   Útellr0   )r1   r7   r7   r8   rV     s
    

zBZ2File.tell)r   Nr   )r   éÿÿÿÿ)rW   rW   )rW   rW   )rW   rW   )rW   )Ú__name__Ú
__module__Ú__qualname__r9   r:   Úpropertyr<   r>   r@   r?   rA   rC   r   rG   rH   rL   rM   r   rQ   r-   ÚSEEK_SETrS   rV   r7   r7   r7   r8   r       s"   
E



	

r   r   c             C   sŠ   d|kr d|krPt d|f ƒ‚n0|d k	r0t dƒ‚|d k	r@t dƒ‚|d k	rPt dƒ‚|jddƒ}t| ||d�}d|kr‚tj||||ƒS |S d S )	NÚtrI   zInvalid mode: %rz0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary moder   )r5   )r   Úreplacer   r-   ÚTextIOWrapper)r2   r3   r5   ÚencodingÚerrorsÚnewlineZbz_modeZbinary_filer7   r7   r8   r   !  s    c             C   s   t |ƒ}|j| ƒ|jƒ  S )N)r   r   r;   )rO   r5   Úcompr7   r7   r8   r   J  s    c             C   sj   g }xZ| r^t ƒ }y|j| ƒ}W n tk
r<   |r6P n‚ Y nX |j|ƒ |jsVtdƒ‚|j} qW dj|ƒS )NzACompressed data ended before the end-of-stream marker was reachedó    )r   r   r,   ÚappendÚeofr   Zunused_dataÚjoin)rO   ZresultsZdecompÚresr7   r7   r8   r   U  s    

)r   r   NNN)r   )Ú__all__Ú
__author__Úbuiltinsr   r(   r-   r&   r   r+   Z	threadingr   ÚImportErrorZdummy_threadingZ_bz2r   r   r   r    r!   rP   r   r   r   r7   r7   r7   r8   Ú<module>   s,   
   
(
