*ec@sddlmZddlZddlZddlZdZdZeZidd6dd6dd 6d d 6d d 6Z dZ dZ dejfdYZ de fdYZ dddYZddZdZdS(i(tImageNiisimage buffer overrun errorsdecoding erroris unknown errorisbad configurationisout of memory erroricCs`ytjj|}Wn tk r8tj|}nX|sLd|}nt|ddS(Nsdecoder error %ds when reading image file(RtcoretgetcodecstatustAttributeErrortERRORStgettIOError(terrortmessage((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt raise_ioerror0s  cCs|dS(Ni((tt((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt _tilesort=st ImageFilecBsJeZdZdddZdZdZdZdZdZ RS(s*Base class for image file format handlers.cCstjj|d|_d|_d|_t|_tj|rat |d|_ ||_ n||_ ||_ y|j Wnt k r}tjdkrtjnt|ntk r}tjdkrtjnt|nutk r2}tjdkr#tjnt|n;tk rl}tjdkr]tjnt|nX|j s|jddkrtdndS(Nitrbisnot identified by this driver((Rt__init__tNonettiletreadonlyt decoderconfigtMAXBLOCKtdecodermaxblockt isStringTypetopentfptfilenamet_opent IndexErrortDEBUGt tracebackt print_exct SyntaxErrort TypeErrortKeyErrortEOFErrortmodetsize(tselfRRtv((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRKs<           cCsdS(sSet draft modeN((R$R"R#((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytdraftsscCs d|_dS(sCheck file integrityN(RR(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytverifyxsc Csctjj|}|jdkr0tdn|js=|Sd|_d}|jrt|jdkr|jd\}}}}|dkr|d|jkr|dtj kryt tj dr!tj j|j|_|jj ||jj |j|j|d|d|_nxddl}t|jd }tjj|j} |j|j| |_tj j|j|j|||||_d}Wqtttfk rd|_qXqn|jy |j} Wntk r|jj} nXy |j} Wntk r/|jj } nX|js|jjd t y |j!} Wntk rrd } nXxI|jD];\}}}}tj"|j|||j#}| |y|j$|j|Wnt%k rq}nX| } t| }xt&ry| |j'}Wn)t(k r>}t)r/Pq?t(|nX|sqg|_t)rXPqqtd t| n| |} |j*| \}}|dkrPn| |} ||}qWq}Wng|_||_+d|_t) s|dkr|j r|dkrt,|nt |d rI|jj-|j.|_|jj|_n|j/tjj|S(s"Load image data based on tile listscannot load this imageiitrawtmapiiNsr+tkeyts0image file is truncated (%d bytes not processed)ttile_post_rotate(0RtloadRRRR)RtlenR"t _MAPMODESthasattrRtseekt readimageR#timtmmapRtostpathtgetsizetfilenot map_bufferRtEnvironmentErrort ImportErrort load_preparet load_readRtreadt load_seektsortR t tile_prefixt _getdecoderRtsetimaget ValueErrortTrueRRtLOAD_TRUNCATED_IMAGEStdecodeRR trotateR,tload_end(R$tpixelRtdtetotaR4tfileR#R>R1tprefixtbR tstietn((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR-s  2 &  !                     )  cCs{|j s4|jj|jks4|jj|jkrUtjj|j|j|_n|jdkrwtjj|ndS(NtP(R3R"R#RRtnewR-(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR<s  *!cCsdS(N((R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRIsN( t__name__t __module__t__doc__RRR&R'R-R<RI(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR Hs(   t t StubImageFilecBs)eZdZdZdZdZRS(s"Base class for stub image loaders.cCstddS(Ns+StubImageFile subclass must implement _open(tNotImplementedError(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRscCsY|j}|dkr.td|jn|j|}|j|_|j|_dS(Ns#cannot find loader for this %s file(t_loadRRtformatR-t __class__t__dict__(R$tloadertimage((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR-s    cCstddS(Ns+StubImageFile subclass must implement _load(R[(R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyR\#s(RWRXRYRR-R\(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRZs  tParsercBsAeZdZdZdZdZdZdZdZ dZ RS(icCsdS(N((R$((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytreset9sc Csl|jr dS|jdkr(||_n|j||_|jr |jdkrtt|j|j}|j||_|j||_|jdks|j rdSn|jj|j\}}|dkr d|_d|_|dkrd|_t |q dSn|j||_nH|jr,n<y7z%t j |j}t j |}Wd|jXWntk rvnXt|dpt|d}|st|jdkrd|_n|j|jd\}}} } g|_t j|j|| |j|_|jj|j|| |_|jt|jkr_|j|j|_d|_n||_dS(NiiR?R=(tfinishedtdataRtdecodertoffsettminR.RGRaR tiotBytesIORRtcloseRR0RR<RBR"RRCR3( R$RetskipRTRLRR3tflagRKRMRN((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pytfeedBsX                cCs|jrA|jdd|_|_|jsAtdqAn|jsYtdn|jrz(tj|j}t j ||_Wd|jj |j Xn|jS(NR+simage was incompletescannot parse this image( RfRnRReRdRRaRiRjRRR-Rk(R$R((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRks      N( RWRXRt incrementalRaReRfRdRcRnRk(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyRb,s Uic Cs |jt|ds%d|_n|jdttt||jdd}y|j}|j Wnt t j fk rPxg|D]\}}}}t j|j|||j}|dkr|j|dn|j|j|x9tr)|j|\} } } |j| | rPqqW| dkrtd| qqWnXx|D]\}}}}t j|j|||j}|dkr|j|dn|j|j||j||} | dkrXtd| qXqXWy|j WnnXdS(s'Helper to save image based on tile listt encoderconfigR*iis(encoder error %d when writing image fileN((R-R0RpR@R tmaxRR#R8tflushRRitUnsupportedOperationRt _getencoderR"R1RCR3REtencodetwriteRtencode_to_file( R3RRtbufsizetfhRLRQRMRNtlRRRK((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt_savesB         cCs|dkrdS|tkr)|j|Sg}xO|dkr|jt|t}|s`Pn|j||t|}q2Wdj|S(NiR+(t SAFEBLOCKR>RhtappendR.tjoin(RR#Retblock((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyt _safe_reads    i((tPILRRR5RiRR|tFalseRFRR R R RZRbR{R(((s3/usr/lib64/python2.7/site-packages/PIL/ImageFile.pyts$    5