ó ő^‚Rc@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 myfileobjthasattrRRtREADtTruet _new_membertextrabuft extrasizet extrastartt min_readsizetWRITEt _init_writetzlibt compressobjtDEFLATEDt MAX_WBITSt DEF_MEM_LEVELtcompresstIOErrortfileobjtoffsettmtimet_write_gzip_header(tselfR RRR,R.((s/usr/lib/python2.7/gzip.pyt__init__-sH*  "             &      cCsSddl}|jdtdƒ|jtkrL|jddkrL|jdS|jS(Ni˙˙˙˙suse the name attributeiiý˙˙˙s.gz(twarningstwarntDeprecationWarningRR#R(R0R2((s/usr/lib/python2.7/gzip.pyR Šs  " cCs6t|jƒ}d|dd!dtt|ƒƒdS(Ns(treprR,thextid(R0ts((s/usr/lib/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(R0((s/usr/lib/python2.7/gzip.pyt _check_closed–s cCs>||_tjdƒd@|_d|_g|_d|_dS(NRl˙˙i(RR%tcrc32tcrctsizetwritebuftbufsize(R0R ((s/usr/lib/python2.7/gzip.pyR$s    cCs÷|jjdƒ|jjdƒtjj|jƒ}|jdƒrQ|d }nd}|rft}n|jjt|ƒƒ|j }|dkr t j ƒ}nt |jt |ƒƒ|jjdƒ|jjdƒ|ró|jj|dƒndS( Ns‹ss.gziý˙˙˙iss˙t(R,RtostpathtbasenameRtendswithtFNAMEtchrR.RttimeRtlong(R0tfnametflagsR.((s/usr/lib/python2.7/gzip.pyR/¤s"    cCs#tjdƒd@|_d|_dS(NRl˙˙i(R%R?R@RA(R0((s/usr/lib/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 methodiRD( R,R R+tordR R.tFEXTRARIRtFCOMMENTtFHCRC(R0tmagictmethodtflagtxlenR:((s/usr/lib/python2.7/gzip.pyt_read_gzip_headerťs2             cCső|jƒ|jtkr:ddl}t|jdƒ‚n|jdkrUtd‚nt |t ƒrs|j ƒ}nt |ƒdkrë|j t |ƒ|_ tj||jƒd@|_|jj|jj|ƒƒ|jt |ƒ7_nt |ƒS(Ni˙˙˙˙s$write() on read-only GzipFile objects!write() on closed GzipFile objectil˙˙(R>RR#terrnoR+tEBADFR,RR=t isinstancet memoryviewttobytestlenRAR%R?R@RR*R-(R0tdataRY((s/usr/lib/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(R>RRRYR+RZR R,RRt_readtmintmax_read_chunktEOFErrorR-R!R(R0RARYtreadsizeR-tchunk((s/usr/lib/python2.7/gzip.pyR ńs4        cCs/t|ƒ|j|_|jt|ƒ8_dS(N(R^R R-(R0tbuf((s/usr/lib/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,RRcRttelltseekRORXR%t decompressobjR(t decompresstFalseR tflusht _read_eoft_add_read_datat unused_dataR^R(R0RAtposRft uncompress((s/usr/lib/python2.7/gzip.pyR`s0           $ cCs|tj||jƒd@|_|j|j}|j|||_|jt|ƒ|_|j|_|jt|ƒ|_dS(Nl˙˙( R%R?R@R-R!RR R^RA(R0R_R-((s/usr/lib/python2.7/gzip.pyRoHs  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 producedRDi˙˙˙˙(R,RiR R@R+R8RAR (R0R?tisizetc((s/usr/lib/python2.7/gzip.pyRnPs cCs |jdkS(N(R,R(R0((s/usr/lib/python2.7/gzip.pyR<hscCs˛|jdkrdS|jtkrq|jj|jjƒƒt|j|jƒt|j|j d@ƒd|_n|jt krŒd|_n|j rŽ|j j ƒd|_ ndS(Nl˙˙( R,RRR#RR*RmRR@RARRtclose(R0((s/usr/lib/python2.7/gzip.pyRuls    cCsI|jƒ|jtkrE|jj|jj|ƒƒ|jjƒndS(N(R>RR#R,RR*Rm(R0t zlib_mode((s/usr/lib/python2.7/gzip.pyRm{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(R0((s/usr/lib/python2.7/gzip.pyRw‚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,RiRRRR R!R-(R0((s/usr/lib/python2.7/gzip.pytrewindŠs    cCs |jtkS(N(RR(R0((s/usr/lib/python2.7/gzip.pytreadable–scCs |jtkS(N(RR#(R0((s/usr/lib/python2.7/gzip.pytwritable™scCstS(N(R(R0((s/usr/lib/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 modeiRD( R-R=RR#R+txrangeRRRxR (R0R-twhencetcountti((s/usr/lib/python2.7/gzip.pyRiŸ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(R-R!RtfindR tsystmaxintR"R R^tappendRgRatjoin(R0RAR-RRdtbufsRt((s/usr/lib/python2.7/gzip.pytreadlineˇs4    *  Ni(i (!t__name__t __module__t__doc__RRRbR1tpropertyR R;R>R$R/RORXRR RgR`RoRnR<RuR%t Z_SYNC_FLUSHRmRwRxRyRzR{RiR†(((s/usr/lib/python2.7/gzip.pyR$s8\      !  !  2        c CsŹ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targvRtstdintstdoutR7RRRR RRu(targsRktargtftgRe((s/usr/lib/python2.7/gzip.pyt_testßs<        !  t__main__(R‰RRRKRER%tioRt__all__tFTEXTRSRQRIRRRR#RR RtBufferedIOBaseRR•R‡(((s/usr/lib/python2.7/gzip.pyts0    $   ˙ź &