� zfc@s�dZddlZddlZddlZddlZddlZddlZddlZddgZddddd f\Z Z Z Z Z ddf\ZZd �Zd �Zd d d�Zdejfd��YZd�Zedkr�e�ndS(s�Functions that read and write gzipped files. The user of the file doesn't have to worry about the compression, but random access is not allowed.i����NtGzipFiletopeniiiiicCs|jtjd|��dS(NsRiitridtwtasMode s not supportedN(treplacetNonet __builtin__Rt myfileobjtgetattrt isinstancet basestringthasattrRtREADtTruet _new_membertextrabuft extrasizet extrastartRt min_readsizetWRITEt _init_writetzlibt compressobjtDEFLATEDt MAX_WBITSt DEF_MEM_LEVELtcompresstIOErrortfileobjtoffsettmtimet_write_gzip_header(tselfR RRR/R1((s/usr/lib64/python2.7/gzip.pyt__init__-sH*  "            &      cCsSddl}|jdtd�|jtkrL|jddkrL|jdS|jS(Ni����suse the name attributeii����s.gz(twarningstwarntDeprecationWarningRR&R(R3R5((s/usr/lib64/python2.7/gzip.pyR �s  " cCs6t|j�}d|dd!dtt|��dS(Ns(treprR/thextid(R3ts((s/usr/lib64/python2.7/gzip.pyt__repr__�scCs|jrtd��ndS(sLRaises a ValueError if the underlying file object has been closed. sI/O operation on closed file.N(tclosedt ValueError(R3((s/usr/lib64/python2.7/gzip.pyt _check_closed�s cCs>||_tjd�d@|_d|_g|_d|_dS(NRl��i(RR(tcrc32tcrctsizetwritebuftbufsize(R3R ((s/usr/lib64/python2.7/gzip.pyR'�s    cCs6|jjd�|jjd�yVtjj|j�}t|t�sY|jd�}n|j d�ru|d }nWnt k r�d}nXd}|r�t }n|jjt |��|j }|dkr�tj�}nt|jt|��|jjd�|jjd �|r2|jj|d �ndS( Ns�sslatin-1s.gzi����Riss�s(R/RtostpathtbasenameRRtstrtencodetendswithtUnicodeEncodeErrortFNAMEtchrR1RttimeRtlong(R3tfnametflagsR1((s/usr/lib64/python2.7/gzip.pyR2�s,     cCs#tjd�d@|_d|_dS(NRl��i(R(RBRCRD(R3((s/usr/lib64/python2.7/gzip.pyt _init_read�scCs�|jjd�}|dkr*td�nt|jjd��}|dkrZtd�nt|jjd��}t|j�|_|jjd�|t@r�t|jjd��}|dt|jjd��}|jj|�n|t@r,x6tr(|jjd�}| s!|dkr�Pq�q�Wn|t @rox6trk|jjd�}| sd|dkr9Pq9q9Wn|t @r�|jjd�ndS( Nis�sNot a gzipped fileiisUnknown compression methodis( R/R R.tordR R1tFEXTRARNR tFCOMMENTtFHCRC(R3tmagictmethodtflagtxlenR=((s/usr/lib64/python2.7/gzip.pyt_read_gzip_header�s2             cCs�|j�|jtkr:ddl}t|jd��n|jdkrUtd�nt |t �rs|j �}nt |�dkr�|jj |jj|��|jt |�7_tj||j�d@|_|jt |�7_nt |�S(Ni����s$write() on read-only GzipFile objects!write() on closed GzipFile objectil��(RARR&terrnoR.tEBADFR/RR@Rt memoryviewttobytestlenRR-RDR(RBRCR0(R3tdataR^((s/usr/lib64/python2.7/gzip.pyR�s   i����cCsu|j�|jtkr:ddl}t|jd��n|jdkr\|jdkr\dSd}|dkr�y4x-t r�|j |�t |j |d�}qtWWq.t k r�|j}q.Xnly=x6||jkr�|j |�t |j |d�}q�WWn,t k r-||jkr.|j}q.nX|j|j}|j|||!}|j||_|j|7_|S(Ni����s$read() on write-only GzipFile objectiRii(RARRR^R.R_R#R/RR t_readtmintmax_read_chunktEOFErrorR0R$R"(R3RDR^treadsizeR0tchunk((s/usr/lib64/python2.7/gzip.pyR �s4        cCs/t|�|j|_|jt|�8_dS(N(RbR#R0(R3tbuf((s/usr/lib64/python2.7/gzip.pyt_unreadscCsl|jdkrtd�n|jr�|jj�}|jjdd�||jj�krgtd�n|jj|�|j�|j�tj tj �|_ t |_n|jj |�}|dkr�|j j�}|j�|j|�td�n|j j |�}|j|�|j jdkrh|jjt|j j� dd�|j�t|_ndS(Ns Reached EOFiiRii(R/RRgR!ttelltseekRTR]R(t decompressobjR+t decompresstFalseR tflusht _read_eoft_add_read_datat unused_dataRbR (R3RDtposRjt uncompress((s/usr/lib64/python2.7/gzip.pyRds0           $ cCs|tj||j�d@|_|j|j}|j|||_|jt|�|_|j|_|jt|�|_dS(Nl��( R(RBRCR0R$R"R#RbRD(R3RcR0((s/usr/lib64/python2.7/gzip.pyRsNs  cCs�|jjdd�t|j�}t|j�}||jkrhtdt|�t|j�f��n||jd@kr�td�nd}x"|dkr�|jjd�}q�W|r�|jjdd�ndS(Ni����isCRC check failed %s != %sl��s!Incorrect length of data producedsi����(R/RmR RCR.R;RDR (R3RBtisizetc((s/usr/lib64/python2.7/gzip.pyRrVs cCs |jdkS(N(R/R(R3((s/usr/lib64/python2.7/gzip.pyR?nscCs�|j}|dkrdSd|_zP|jtkrq|j|jj��t||j�t||j d@�nWd|j }|r�d|_ |j �nXdS(Nl��( R/RRR&RR-RqRRCRDRtclose(R3R/R((s/usr/lib64/python2.7/gzip.pyRyrs     cCsI|j�|jtkrE|jj|jj|��|jj�ndS(N(RARR&R/RR-Rq(R3t zlib_mode((s/usr/lib64/python2.7/gzip.pyRq�s cCs |jj�S(s�Invoke the underlying file object's fileno() method. This will raise AttributeError if the underlying file object doesn't support fileno(). (R/tfileno(R3((s/usr/lib64/python2.7/gzip.pyR{�scCs_|jtkrtd��n|jjd�t|_d|_d|_d|_ d|_ dS(s[Return the uncompressed stream file position indicator to the beginning of the filesCan't rewind in write modeiRN( RRR.R/RmR R!R"R#R$R0(R3((s/usr/lib64/python2.7/gzip.pytrewind�s    cCs |jtkS(N(RR(R3((s/usr/lib64/python2.7/gzip.pytreadable�scCs |jtkS(N(RR&(R3((s/usr/lib64/python2.7/gzip.pytwritable�scCstS(N(R (R3((s/usr/lib64/python2.7/gzip.pytseekable�sicCs*|r1|dkr"|j|}q1td��n|jtkr�||jkr^td��n||j}x)t|d�D]}|jdd�q|W|j|dd�nt|jtkr#||jkr�|j�n||j}x%t|d�D]}|j d�q�W|j |d�n|jS(NisSeek from end not supportedsNegative seek in write modeis( R0R@RR&R.txrangeRRR|R (R3R0twhencetcountti((s/usr/lib64/python2.7/gzip.pyRm�s&    cCs�|dkr�|j|j}|jjd|�d}|dkru|j||8_|j||7_|j||!Stj}|j}n|}g}x�|dkrs|j|�}|jd�}||ks�|dkr�t |�|kr�|d}n|dks|dkr@|j ||d �|j ||d�Pn|j |�|t |�}t ||d�}q�W||jkr�t ||jdd�|_ndj |�S(Nis ii����Rii(R0R$R"tfindR#tsystmaxintR%R RbtappendRkRetjoin(R3RDR0R�RhtbufsRx((s/usr/lib64/python2.7/gzip.pytreadline�s4    *  Ni(i�(!t__name__t __module__t__doc__RRRfR4tpropertyR R>RAR'R2RTR]RR RkRdRsRrR?RyR(t Z_SYNC_FLUSHRqR{R|R}R~RRmR�(((s/usr/lib64/python2.7/gzip.pyR$s8[      !  !  2        cCs�tjd}|o |ddk}|r6|d}n|sHdg}nx]|D]U}|r�|dkr�tddddd tj�}tj}q9|d d kr�d Gt|�GHqOnt|d�}tj|d d �}n[|dkrtj}tdddd d tj�}n%tj|d�}t|d d �}x0trk|j d�}|s[Pn|j |�q<W|tjk r�|j �n|tjk rO|j �qOqOWdS(Niis-dt-R RRR R/i����s.gzsfilename doesn't end in .gz:twbi( R�targvRtstdintstdoutR:RRR R RRy(targsRotargtftgRi((s/usr/lib64/python2.7/gzip.pyt_test�s<        !  t__main__(R�RR�RPRGR(tioRt__all__tFTEXTRXRVRNRWRR&RR RtBufferedIOBaseRR�R�(((s/usr/lib64/python2.7/gzip.pyts0    $   �� &