a
    ãze;  ã                   @   s   G d d„ dƒZ dS )c                   @   sZ   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zddd„Zdd„ Z	ddd„Z
dd„ ZdS )ÚChunkTFc              	   C   sÐ   dd l }d| _|| _|rd}nd}|| _| d¡| _t| jƒdk rFt‚z | |d | d¡¡d | _	W n |j
y€   td ‚Y n0 |r’| j	d | _	d| _z| j ¡ | _W n ttfyÄ   d| _Y n0 d| _d S )	Né    Fú>ú<é   ÚLé   T)ÚstructÚclosedÚalignÚfileÚreadÚ	chunknameÚlenÚEOFErrorÚunpack_fromÚ	chunksizeÚerrorÚ	size_readÚtellÚoffsetÚAttributeErrorÚOSErrorÚseekable)Úselfr   r
   Z	bigendianZ
inclheaderr   Zstrflag© r   ú/usr/lib/python3.9/chunk.pyÚ__init__4   s,     zChunk.__init__c                 C   s   | j S ©N)r   ©r   r   r   r   ÚgetnameN   s    zChunk.getnamec                 C   s   | j S r   )r   r   r   r   r   ÚgetsizeR   s    zChunk.getsizec                 C   s&   | j s"z|  ¡  W d| _ nd| _ 0 d S )NT)r	   Úskipr   r   r   r   ÚcloseV   s    
zChunk.closec                 C   s   | j rtdƒ‚dS )NúI/O operation on closed fileF)r	   Ú
ValueErrorr   r   r   r   Úisatty]   s    zChunk.isattyr   c                 C   sv   | j rtdƒ‚| jstdƒ‚|dkr0|| j }n|dkrB|| j }|dk sT|| jkrXt‚| j | j	| d¡ || _d S )Nr#   zcannot seeké   é   r   )
r	   r$   r   r   r   r   ÚRuntimeErrorr   Úseekr   )r   ÚposÚwhencer   r   r   r)   b   s    
z
Chunk.seekc                 C   s   | j rtdƒ‚| jS )Nr#   )r	   r$   r   r   r   r   r   r   u   s    z
Chunk.telléÿÿÿÿc                 C   s¦   | j rtdƒ‚| j| jkrdS |dk r2| j| j }|| j| j krN| j| j }| j |¡}| jt|ƒ | _| j| jkr¢| jr¢| jd@ r¢| j d¡}| jt|ƒ | _|S )Nr#   ó    r   r&   )r	   r$   r   r   r   r   r   r
   )r   ÚsizeÚdataÚdummyr   r   r   r   z   s$    ÿþz
Chunk.readc                 C   s¢   | j rtdƒ‚| jrlzD| j| j }| jr:| jd@ r:|d }| j |d¡ | j| | _W d S  tyj   Y n0 | j| jk ržt	d| j| j ƒ}|  
|¡}|slt‚qld S )Nr#   r&   i    )r	   r$   r   r   r   r
   r   r)   r   Úminr   r   )r   Únr0   r   r   r   r!   ‘   s"    
z
Chunk.skipN)TTF)r   )r,   )Ú__name__Ú
__module__Ú__qualname__r   r   r    r"   r%   r)   r   r   r!   r   r   r   r   r   3   s   


r   N)r   r   r   r   r   Ú<module>3   r-   