3 \1�@sGdd�d�ZdS)c@sZeZdZddd�Zdd�Zdd�Zd d �Zd d �Zddd�Zdd�Z ddd�Z dd�Z dS)�ChunkTFcCs�ddl}d|_||_|rd}nd}||_|jd�|_t|j�dkrFt�y |j|d|jd��d|_ Wn|j k r�t�YnX|r�|j d|_ d|_ y|jj �|_ Wnttfk r�d|_YnXd|_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�/usr/lib64/python3.6/chunk.py�__init__4s,     zChunk.__init__cCs|jS)N)r )rrrr�getnameNsz Chunk.getnamecCs|jS)N)r)rrrr�getsizeRsz Chunk.getsizec Cs |jsz |j�Wdd|_XdS)NT)r �skip)rrrr�closeVs z Chunk.closecCs|jrtd��dS)NzI/O operation on closed fileF)r � ValueError)rrrr�isatty]sz Chunk.isattyrcCsv|jrtd��|jstd��|dkr0||j}n|dkrB||j}|dksT||jkrXt�|jj|j |d�||_dS)NzI/O operation on closed filez cannot seek��r) r r rrrr� RuntimeErrorr �seekr)r�pos�whencerrrr%bs  z Chunk.seekcCs|jrtd��|jS)NzI/O operation on closed file)r r r)rrrrrusz Chunk.tellr"cCs�|jrtd��|j|jkrdS|dkr2|j|j}||j|jkrN|j|j}|jj|�}|jt|�|_|j|jkr�|jr�|jd@r�|jjd�}|jt|�|_|S)NzI/O operation on closed file�rr")r r rrr r rr )r�size�data�dummyrrrr zs        z Chunk.readc Cs�|jrtd��|jrlyB|j|j}|jr:|jd@r:|d}|jj|d�|j||_dStk rjYnXx4|j|jkr�t d|j|j�}|j |�}|snt �qnWdS)NzI/O operation on closed filer"i ) r r rrrr r r%r�minr r)r�nr+rrrr�s"   z Chunk.skipN)TTF)r�����)r.) �__name__� __module__� __qualname__rrrrr!r%rr rrrrrr3s   rN)rrrrr�3s