
    z%ib=                         	 d dl Z d dlZd dlZd dlmZ g dZdadddddddZd Zd Z	d	 Z
d
 Zd Zd Zd Zd Z G d d      ZddddZddZd Zedk(  r e        yy)    N)GenericAlias)inputclosenextfilefilenamelineno
filelinenofilenoisfirstlineisstdin	FileInputhook_compressedhook_encodedrmodeopenhookencodingerrorsc          	      v    	 t         rt         j                  rt        d      t        | ||||||      a t         S )Nzinput() already activer   )_state_fileRuntimeErrorr   )filesinplacebackupr   r   r   r   s          =/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/fileinput.pyr   r   N   s<     &,,344ugvD8 (9FM    c                  <    	 t         } d a | r| j                          y y N)r   r   )states    r   r   r   ]   s     EF r   c                  N    	 t         st        d      t         j                         S Nzno active input())r   r   r    r   r   r   r   e   s%     .//??r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r   r$   r   r   r   r   s   s%     .//??r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r   r$   r   r   r   r   |   s$    
 .//==?r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r	   r$   r   r   r	   r	      s'    
 .//r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r
   r$   r   r   r
   r
      s$     .//==?r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r   r$   r   r   r   r      s'     .//r   c                  N    	 t         st        d      t         j                         S r#   )r   r   r   r$   r   r   r   r      s%     .//>>r   c                       e Zd Z	 dddddddZd Zd Zd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Z ee      Zy)r   Nr   r   c                   t        |t              r|f}nVt        |t        j                        rt        j                  |      f}n%|t
        j                  dd  }|sd}nt        |      }|| _        || _	        || _
        d | _        d | _        d | _        d| _        d| _        d | _        d| _        d | _        || _        || _        t
        j*                  j,                  r#d|vr||dd l}|j1                  dt2        d       |dvrt5        d	      || _        |j9                  d
d      | _        |r#|rt5        d      t=        |      st5        d      || _        y )N   )-r   Fbz"'encoding' argument not specified.   )r   rbz*FileInput opening mode must be 'r' or 'rb'r   wz4FileInput cannot use an opening hook in inplace modez#FileInput openhook must be callable) 
isinstancestrosPathLikefspathsysargvtuple_files_inplace_backup_savestdout_output	_filename_startlineno_filelinenor   _isstdin_backupfilename	_encoding_errorsflagswarn_default_encodingwarningswarnEncodingWarning
ValueError_modereplace_write_modecallable	_openhook)	selfr   r   r   r   r   r   r   rI   s	            r   __init__zFileInput.__init__   sJ   eS!HEr{{+YYu%(E}e
#! II++4H$49IMM>)1. {"IJJ
<<S1 !WXXH% !FGG!r   c                 $    | j                          y r    r   rR   s    r   __del__zFileInput.__del__       

r   c                 L    	 | j                          d| _        y # d| _        w xY w)Nr$   )r   r;   rV   s    r   r   zFileInput.close   s    	MMODK"DKs    	#c                     | S r    r$   rV   s    r   	__enter__zFileInput.__enter__       r   c                 $    | j                          y r    rU   )rR   typevalue	tracebacks       r   __exit__zFileInput.__exit__   rX   r   c                     | S r    r$   rV   s    r   __iter__zFileInput.__iter__   r\   r   c                     	 | j                         }|r| xj                  dz  c_        |S | j                  st        | j	                          LNr-   )	_readlinerB   r   StopIterationr   rR   lines     r   __next__zFileInput.__next__   sE    >>#D  A% ::##MMO r   c                 z   | j                   }d | _         |r|t        _        | j                  }d | _        	 |r|j	                          | j
                  }d | _        	 | `	 |r| j                  s|j	                          | j                  }d | _	        |r!| j                  st        j                  |       d| _        y # t        $ r Y hw xY w# t        $ r Y "w xY w# | j                  }d | _	        |r?| j                  s3t        j                  |       d| _        w # t        $ r
 Y d| _        w w xY wd| _        w xY w# | j
                  }d | _        	 | `n# t        $ r Y nw xY w	 |r| j                  s|j	                          | j                  }d | _	        |r?| j                  s3t        j                  |       d| _        w # t        $ r
 Y d| _        w w xY wd| _        w # | j                  }d | _	        |r?| j                  s3t        j                  |       d| _        w # t        $ r
 Y d| _        w w xY wd| _        w xY wxY w)NF)r>   r8   stdoutr?   r   r   rf   AttributeErrorrC   rD   r=   r5   unlinkOSError)rR   
savestdoutoutputfilebackupfilenames        r   r   zFileInput.nextfile  s    %%
#CJ	&::DDJN
&JJL!%!5!5'+$!$,,>2 !& "  #(D(	 "&!5!5'+$!$,,>2 !& #(D % ) %! ::DDJN! 
&JJL!%!5!5'+$!$,,>2 !& #(D % ) % "&!5!5'+$!$,,>2 !& #(D % ) %s   D8 B: C C	 :	CC		CC"D5:DD5	D* 	D5)D**D58H:EH:	EH:EH: G>!H:F<4H:<	G	H:GH:"H7<HH7	H,"	H7+H,,H77H:c                     	 | j                         }|r| xj                  dz  c_        |S | j                  s|S | j                          Hre   )rf   rB   r   r   rh   s     r   readlinezFileInput.readline"  sD    >>#D  A% ::MMO r   c                 p   | j                   sd| j                  v ryy| j                   d   | _        | j                   dd  | _         | j                         | _        d| _        d | _        d| _        d| _        d| j                  vr| j                  xs d}nd }| j                  dk(  rbd	| _        d| j                  v r/t        t        j                  d
t        j                        | _        nt        j                  | _        d| _        n| j                  rt        j                  | j                        | j                   xs dz   | _        	 t        j"                  | j                         t        j&                  | j                  | j                         t)        | j                  | j                  || j*                        | _        	 t        j,                  | j                  j/                               j0                  }t        j2                  t        j4                  z  t        j6                  z  }t9        t        d      r|t        j:                  z  }t        j(                  | j                  ||      }t        j<                  || j>                  || j*                        | _         	 t        jB                  | j                  |       t        jD                  | _#        | j@                  t        _"        n| jH                  r{| j                  ,| jI                  | j                  | j                        | _        nu| jI                  | j                  | j                  | j                  | j*                        | _        n2t)        | j                  | j                  || j*                        | _        | j                  jJ                  | _&        | jM                         S # t$        $ r Y xw xY w# t$        $ r Y +w xY w# t$        $ r6 t)        | j                  | j>                  || j*                        | _         Y mw xY w)Nr/   r    r   r-   Flocaler.   z<stdin>bufferTz.bakr   r   O_BINARY)'r;   rM   r@   r   rA   rB   r   rC   rD   rE   getattrr8   stdinr<   r5   r7   r=   rn   ro   renameopenrF   fstatr
   st_modeO_CREATO_WRONLYO_TRUNChasattrr{   fdopenrO   r?   chmodrl   r>   rQ   ru   rf   )rR   r   permr   fds        r   rf   zFileInput._readline-  s   {{djj Qkk!"o KKM
  djj ~~1HH>>S &DNdjj $SYY#))D
 YY
 DM}}IIdnn-1GH $IId223 		$..$*>*>?!$"6"6

+3DLLJ
88DJJ$5$5$78@@D
 ::3bjj@Dr:.+t<B#%99R1A1A6>t||$UDL6 $':: !\\
 >> ~~-%)^^DNNDJJ%O
%)^^ NNDJJX\XdXd &4 &f
 "&dnndjj8\`\h\h!iDJ,,~~M  * #   P#'8H8H19$,,$PDLPs6   O 7O6 ' O& 	O#"O#&	O32O36;P54P5c                     | j                   S r    )r@   rV   s    r   r   zFileInput.filenamev  s    ~~r   c                 4    | j                   | j                  z   S r    )rA   rB   rV   s    r   r   zFileInput.linenoy  s      4#3#333r   c                     | j                   S r    rB   rV   s    r   r	   zFileInput.filelineno|  s    r   c                 p    | j                   r	 | j                   j                         S y# t        $ r Y yw xY w)N)r   r
   rL   rV   s    r   r
   zFileInput.fileno  s:    ::zz((**   s   ) 	55c                      | j                   dk(  S re   r   rV   s    r   r   zFileInput.isfirstline  s    1$$r   c                     | j                   S r    )rC   rV   s    r   r   zFileInput.isstdin  s    }}r   NFrw   )__name__
__module____qualname__rS   rW   r   r[   ra   rc   rj   r   ru   rf   r   r   r	   r
   r   r   classmethodr   __class_getitem__r$   r   r   r   r      su    
-"D4-"^&<G R4 % $L1r   r   rz   c                    |d|vrd}t         j                  j                  |       d   }|dk(  rdd l}|j	                  | |      }n+|dk(  rdd l}|j                  | |      }nt	        | |||      S d|vrt        j                  |||      }|S )Nr/   rx   r-   z.gzr   z.bz2rz   )	r5   pathsplitextgzipr   bz2BZ2FileioTextIOWrapper)r   r   r   r   extr   streamr   s           r   r   r     s    CtO
''

8
$Q
'C
e|8T*	Xt,HdXfEE $!!&8FKMr   c                       fd}|S )Nc                 "    t        | |      S )Nrz   )r   )r   r   r   r   s     r   r   zhook_encoded.<locals>.openhook  s    HdXfEEr   r$   )r   r   r   s   `` r   r   r     s    FOr   c            	         dd l } d}d}| j                  t        j                  dd  d      \  }}|D ]  \  }}|dk(  rd}|dk(  s|} t        |||      D ]W  }|d	d  d
k(  r|d d	 }|d	d  dk(  r|d d	 }t	        dt               t               t               t               xr dxs d|fz         Y t	        dt               t               t               fz         y )Nr   Fr-   zib:z-iTz-b)r   r   r   
z%d: %s[%d]%s %s*rw   z
%d: %s[%d])	getoptr8   r9   r   printr   r   r	   r   )r   r   r   optsargsoari   s           r   _testr     s    GFsxx|U3JD$ !19g9qf! dGF; G9T#2Yd9T#2Yd68XZ#.=#8S#>B#F F 	GG
 
,&(HJ
=
=>r   __main__r   r    )r   r8   r5   typesr   __all__r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r$   r   r   <module>r      s   AF 
   
d c2 c2L 15T &? z	G r   