
    z%i|                     J    	 d dl Z  e j                  ed        G d d      Zy)    N)      )removec                   H    e Zd ZddZd Zd Zd Zd ZddZd Z	ddZ
d	 Zy
)Chunkc                    dd l }d| _        || _        |rd}nd}|| _        |j	                  d      | _        t        | j
                        dk  rt        	 |j                  |dz   |j	                  d            d   | _	        |r| j                  dz
  | _	        d| _        	 | j                  j                         | _        d| _        y # |j                  $ r t        d w xY w# t        t         f$ r
 d| _        Y y w xY w)	Nr   F><   L   T)structclosedalignfileread	chunknamelenEOFErrorunpack_from	chunksizeerror	size_readtelloffsetseekableAttributeErrorOSError)selfr   r   	bigendian
inclheaderr   strflags          9/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/chunk.py__init__zChunk.__init__8   s    
GG	1t~~"N	%#//TYYq\J1MDN !^^a/DN	!))..*DK !DM || 	%$	% ( 	"!DM	"s   ,C  C! C!C:9C:c                     	 | j                   S N)r   r   s    r#   getnamezChunk.getnameR   s    8~~    c                     	 | j                   S r&   )r   r'   s    r#   getsizezChunk.getsizeV   s    3~~r)   c                 f    | j                   s	 | j                          d| _         y y # d| _         w xY w)NT)r   skipr'   s    r#   closezChunk.closeZ   s.    {{#		"	  #s   ' 	0c                 2    | j                   rt        d      y)NI/O operation on closed fileF)r   
ValueErrorr'   s    r#   isattyzChunk.isattya   s    ;;;<<r)   c                 H   	 | j                   rt        d      | j                  st        d      |dk(  r|| j                  z   }n|dk(  r|| j
                  z   }|dk  s|| j
                  kD  rt        | j                  j                  | j                  |z   d       || _        y )Nr0   zcannot seek      r   )
r   r1   r   r   r   r   RuntimeErrorr   seekr   )r   poswhences      r#   r7   z
Chunk.seekf   s    	
 ;;;<<}}-((Q;&Cq[&C7cDNN*		t{{S(!,r)   c                 H    | j                   rt        d      | j                  S )Nr0   )r   r1   r   r'   s    r#   r   z
Chunk.telly   s    ;;;<<~~r)   c                 X   	 | j                   rt        d      | j                  | j                  k\  ry|dk  r| j                  | j                  z
  }|| j                  | j                  z
  kD  r| j                  | j                  z
  }| j                  j                  |      }| j                  t        |      z   | _        | j                  | j                  k(  rS| j                  rG| j                  dz  r8| j                  j                  d      }| j                  t        |      z   | _        |S )Nr0   r)   r   r4   )r   r1   r   r   r   r   r   r   )r   sizedatadummys       r#   r   z
Chunk.read~   s    	
 ;;;<<>>T^^+!8>>DNN2D$..4>>11>>DNN2Dyy~~d##d)3>>T^^+::NNQIINN1%E!^^c%j8DNr)   c                     	 | j                   rt        d      | j                  rk	 | j                  | j                  z
  }| j
                  r| j                  dz  r|dz   }| j                  j                  |d       | j                  |z   | _        y | j                  | j                  k  rWt        d| j                  | j                  z
        }| j                  |      }|st        | j                  | j                  k  rVy y # t        $ r Y |w xY w)Nr0   r4   i    )r   r1   r   r   r   r   r   r7   r   minr   r   )r   nr>   s      r#   r-   z
Chunk.skip   s    	 ;;;<<==	NNT^^3::4>>A#5AA		q!$!%!!3 nnt~~-D$..4>>9:AIIaLE	 nnt~~-  s   A)D 	DDN)TTF)r   ))__name__
__module____qualname__r$   r(   r+   r.   r2   r7   r   r   r-    r)   r#   r   r   7   s/    !4#
&
.r)   r   )warnings_deprecatedrC   r   rF   r)   r#   <module>rI      s.   0d    Xg .v vr)   