B
    18\2              $   @   s   d ddddddddd	d
dddddddddddddddddddddd d!d"d#g$Z d$d%lZd$d%lZd$d%lZd$d&lT d$d'lmZmZ d$d%lZd$Zd(Z	d)Z
G d*d dejZd1d%d,d%d%d%d%d%d-d.d Zed,d%d%fd/d!Zed%d%fd0d"Zd%S )2Z
CHECK_NONEZCHECK_CRC32ZCHECK_CRC64ZCHECK_SHA256ZCHECK_ID_MAXZCHECK_UNKNOWNZFILTER_LZMA1ZFILTER_LZMA2ZFILTER_DELTAZ
FILTER_X86ZFILTER_IA64Z
FILTER_ARMZFILTER_ARMTHUMBZFILTER_POWERPCZFILTER_SPARCFORMAT_AUTO	FORMAT_XZZFORMAT_ALONEZ
FORMAT_RAWZMF_HC3ZMF_HC4ZMF_BT2ZMF_BT3ZMF_BT4Z	MODE_FASTZMODE_NORMALZPRESET_DEFAULTZPRESET_EXTREMELZMACompressorLZMADecompressorLZMAFile	LZMAErroropencompress
decompressZis_check_supported    N)*)_encode_filter_properties_decode_filter_properties      c               @   s   e Zd Zd!dddd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dZdd ZejfddZdd  ZdS )&r   Nr)formatcheckpresetfiltersc      	      C   s&  d | _ d| _t| _|dkrL|dkr*td|d k	r:td|d krFt}t}n@|dkr~|d kr`t}t}t	||||d| _
d| _ntd	|t|tttjfrd
|kr|d
7 }t||| _ d| _|| _n*t|dst|dr|| _ || _ntd| jtkr"tj| j tt||d}t|| _d S )NF)r   rbr   zACannot specify an integrity check when opening a file for readingzICannot specify a preset compression level when opening a file for reading)wwbaabxxb)r   r   r   r   r
   zInvalid mode: {!r}bTreadwritez6filename must be a str, bytes, file or PathLike object)trailing_errorr   r   )_fp_closefp_MODE_CLOSED_mode
ValueErrorr   
_MODE_READr   _MODE_WRITEr   _compressor_posr   
isinstancestrbytesosPathLikebuiltinsr   hasattr	TypeError_compressionDecompressReaderr   r   ioBufferedReader_buffer)	selffilenamemoder   r   r   r   	mode_coderaw r<   H/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/lzma.py__init__1   sB    ,
zLZMAFile.__init__c             C   s   | j tkrd S zB| j tkr,| j  d | _n"| j tkrN| j| j	  d | _W d z| j
rd| j  W d d | _d| _
t| _ X X d S )NF)r$   r#   r&   r6   closer'   r!   r   r(   flushr"   )r7   r<   r<   r=   r?      s    




zLZMAFile.closec             C   s
   | j tkS )N)r$   r#   )r7   r<   r<   r=   closed   s    zLZMAFile.closedc             C   s   |    | j S )N)_check_not_closedr!   fileno)r7   r<   r<   r=   rC      s    zLZMAFile.filenoc             C   s   |   o| j S )N)readabler6   seekable)r7   r<   r<   r=   rE      s    zLZMAFile.seekablec             C   s   |    | jtkS )N)rB   r$   r&   )r7   r<   r<   r=   rD      s    zLZMAFile.readablec             C   s   |    | jtkS )N)rB   r$   r'   )r7   r<   r<   r=   writable   s    zLZMAFile.writablec             C   s   |    | j|S )N)_check_can_readr6   peek)r7   sizer<   r<   r=   rH      s    zLZMAFile.peekc             C   s   |    | j|S )N)rG   r6   r   )r7   rI   r<   r<   r=   r      s    zLZMAFile.readc             C   s"   |    |dk rtj}| j|S )Nr
   )rG   r4   DEFAULT_BUFFER_SIZEr6   read1)r7   rI   r<   r<   r=   rK      s    zLZMAFile.read1c             C   s   |    | j|S )N)rG   r6   readline)r7   rI   r<   r<   r=   rL      s    zLZMAFile.readlinec             C   s:   |    | j|}| j| |  jt|7  _t|S )N)_check_can_writer(   r   r!   r   r)   len)r7   data
compressedr<   r<   r=   r      s
    zLZMAFile.writec             C   s   |    | j||S )N)_check_can_seekr6   seek)r7   offsetwhencer<   r<   r=   rR      s    zLZMAFile.seekc             C   s"   |    | jtkr| j S | jS )N)rB   r$   r&   r6   tellr)   )r7   r<   r<   r=   rU      s    

zLZMAFile.tell)Nr   )r   )r   )r   )r   )__name__
__module____qualname__r>   r?   propertyrA   rC   rE   rD   rF   rH   r   rK   rL   r   r4   SEEK_SETrR   rU   r<   r<   r<   r=   r   &   s   T

	


r   r   )r   r   r   r   encodingerrorsnewlinec            C   s   d|kr d|krPt d|f n0|d k	r0t d|d k	r@t d|d k	rPt d|dd}	t| |	||||d}
d|krt|
|||S |
S d S )	Ntr   zInvalid mode: %rz0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary mode )r   r   r   r   )r%   replacer   r4   TextIOWrapper)r8   r9   r   r   r   r   r[   r\   r]   Zlz_modebinary_filer<   r<   r=   r     s    

c             C   s    t ||||}|| |  S )N)r   r   r@   )rO   r   r   r   r   compr<   r<   r=   r   6  s    c             C   sr   g }xbt |||}y|| }W n tk
r>   |r8P n Y nX || |jsXtd|j} | sP qW d|S )NzACompressed data ended before the end-of-stream marker was reached    )r   r	   r   appendeofunused_datajoin)rO   r   memlimitr   resultsdecompresr<   r<   r=   r	   B  s     
)r   )__all__r/   r4   r-   Z_lzmar   r   r2   r#   r&   r'   
BaseStreamr   r   r   r   r   r	   r<   r<   r<   r=   <module>   s0   

 b-