o !Qçd;ã@s Gdd„dƒZdS)c@sZeZdZddd„Zdd„Zdd„Zd d „Zd d „Zddd„Zdd„Z ddd„Z dd„Z dS)ÚChunkTFc CsÎddl}d|_||_|rd}nd}||_| d¡|_t|jƒdkr#t‚z| |d| d¡¡d|_ Wn |j y>td‚w|rG|j d|_ d|_ z|j  ¡|_ Wnttfyad|_YdSwd|_dS) NéFú>ú<éÚLéT)ÚstructÚclosedÚalignÚfileÚreadÚ chunknameÚlenÚEOFErrorZ unpack_fromÚ chunksizeÚerrorÚ size_readÚtellÚoffsetÚAttributeErrorÚOSErrorÚseekable)Úselfr r Z bigendianZ inclheaderrZstrflag©rú,/opt/alt/python310/lib64/python3.10/chunk.pyÚ__init__4s0  ÿ  ÿ zChunk.__init__cCó |jS©N)r ©rrrrÚgetnameNóz Chunk.getnamecCrr)rrrrrÚgetsizeRr z Chunk.getsizecCs(|jsz | ¡Wd|_dSd|_wdS)NT)r ÚskiprrrrÚcloseVs  üz Chunk.closecCs|jrtdƒ‚dS)NúI/O operation on closed fileF)r Ú ValueErrorrrrrÚisatty]sz Chunk.isattyrcCsx |jrtdƒ‚|jstdƒ‚|dkr||j}n |dkr"||j}|dks+||jkr-t‚|j |j |d¡||_dS)Nr$z cannot seekéér) r r%rrrrÚ RuntimeErrorr Úseekr)rÚposÚwhencerrrr*bs   z Chunk.seekcCs|jrtdƒ‚|jS)Nr$)r r%rrrrrrusz Chunk.telléÿÿÿÿcCs¨ |jrtdƒ‚|j|jkrdS|dkr|j|j}||j|jkr(|j|j}|j |¡}|jt|ƒ|_|j|jkrR|jrR|jd@rR|j d¡}|jt|ƒ|_|S)Nr$órr')r r%rrr r rr )rÚsizeÚdataÚdummyrrrr zs&     ÿþ z Chunk.readcCs² |jrtdƒ‚|jr7z"|j|j}|jr|jd@r|d}|j |d¡|j||_WdSty6Ynw|j|jkrWt d|j|jƒ}|  |¡}|sOt ‚|j|jks=dSdS)Nr$r'i ) r r%rrrr r r*rÚminr r)rÚnr1rrrr"‘s(   ÿ  üz Chunk.skipN)TTF)r)r-) Ú__name__Ú __module__Ú __qualname__rrr!r#r&r*rr r"rrrrr3s    rN)rrrrrÚs2