???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5du9                     @   s   d dl Z d dlZdddddddd	d
dddgZdad!dddddZdd Zdd Zdd Zdd Zdd Z	dd Z
dd	 Zdd
 ZG dd dZdd Zd"ddZdd Zed kre  dS )#    Ninputclosenextfilefilenamelineno
filelinenofilenoisfirstlineisstdin	FileInputhook_compressedhook_encodedF rmodeopenhookc                C   s(   t rt jrtdt| ||||da t S )Nzinput() already activer   )_state_fileRuntimeErrorr   )filesinplacebackupr   r    r   !/usr/lib64/python3.8/fileinput.pyr   S   s    
c                  C   s   t } d a | r|   d S N)r   r   )stater   r   r   r   `   s    c                   C   s   t stdt  S Nzno active input())r   r   r   r   r   r   r   r   h   s    
c                   C   s   t stdt  S r   )r   r   r   r   r   r   r   r   v   s    c                   C   s   t stdt  S r   )r   r   r   r   r   r   r   r      s    c                   C   s   t stdt  S r   )r   r   r   r   r   r   r   r      s    c                   C   s   t stdt  S r   )r   r   r   r   r   r   r   r      s    c                   C   s   t stdt  S r   )r   r   r	   r   r   r   r   r	      s    c                   C   s   t stdt  S r   )r   r   r
   r   r   r   r   r
      s    c                   @   s   e Zd Zd(dddddZdd	 Zd
d Zdd Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' ZdS ))r   NFr   r   r   c                C   s  t |tr|f}nBt |tjr,t|f}n(|d krBtjdd  }|sLd}nt|}|| _|| _	|| _
d | _d | _d | _d| _d| _d | _d| _d | _|dkrtdd|krdd l}|dtd	 || _d|kr|d
dnd| _|r|rtdt|std|| _d S )N   )-r   F)r   ZrUUrbz=FileInput opening mode must be one of 'r', 'rU', 'U' and 'rb'r    z'U' mode is deprecated   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
ValueErrorwarningswarnDeprecationWarning_modereplace_write_modecallable	_openhook)selfr   r   r   r   r   r7   r   r   r   __init__   sH    
 
zFileInput.__init__c                 C   s   |    d S r   r   r?   r   r   r   __del__   s    zFileInput.__del__c                 C   s   z|   W 5 d| _ X d S )Nr   )r,   r   rB   r   r   r   r      s    zFileInput.closec                 C   s   | S r   r   rB   r   r   r   	__enter__   s    zFileInput.__enter__c                 C   s   |    d S r   rA   )r?   typevalue	tracebackr   r   r   __exit__   s    zFileInput.__exit__c                 C   s   | S r   r   rB   r   r   r   __iter__   s    zFileInput.__iter__c                 C   s6   |   }|r|  jd7  _|S | js(t|   q d S Nr   )	_readliner3   r   StopIterationr   r?   liner   r   r   __next__   s    zFileInput.__next__c                 C   sX   dd l }|jdtdd ||  kr,tdz
|  W S  tk
rR   tdY nX d S )Nr   zTSupport for indexing FileInput objects is deprecated. Use iterator protocol instead.r"   )
stacklevelzaccessing lines out of orderzend of input reached)r7   r8   r9   r   r   rO   rL   
IndexError)r?   ir7   r   r   r   __getitem__  s    
zFileInput.__getitem__c                 C   s   | j }d | _ |r|t_| j}d | _z|r0|  W 5 | j}d | _z| `W n tk
r\   Y nX z|rr| jsr|  W 5 | j}d | _|r| jszt	
| W n tk
r   Y nX d| _X X d S )NF)r/   r)   stdoutr0   r   rK   AttributeErrorr5   r.   r&   unlinkOSErrorr4   r   )r?   Z
savestdoutoutputfileZbackupfilenamer   r   r   r     s4    

  zFileInput.nextfilec                 C   s6   |   }|r|  jd7  _|S | js(|S |   q d S rJ   )rK   r3   r   r   rM   r   r   r   readline.  s    zFileInput.readlinec                 C   s  | j sd| jkrdS dS | j d | _| j dd  | _ |  | _d| _d | _d| _d| _| jdkrd| _d| jkrt	t
jd	t
j| _nt
j| _d
| _nT| jrt| j| jpd | _zt| j W n tk
r   Y nX t| j| j t| j| j| _zt| j j}W n& tk
r8   t| j| j| _Y ntX tjtjB tjB }ttdrb|tjO }t| j||}t|| j| _zt| j| W n tk
r   Y nX t
j | _!| jt
_ n,| j"r| "| j| j| _nt| j| j| _| jj#| _$| $ S )Nb    r   r   r   Fr   z<stdin>bufferTz.bakO_BINARY)%r,   r:   r1   r   r2   r3   r   r4   r5   getattrr)   stdinr-   r&   r(   r.   rV   rW   renameopenfstatr   st_moder<   r0   O_CREATO_WRONLYO_TRUNChasattrr^   fdopenchmodrT   r/   r>   rZ   rK   )r?   Zpermr   fdr   r   r   rK   9  s\    







zFileInput._readlinec                 C   s   | j S r   )r1   rB   r   r   r   r   r  s    zFileInput.filenamec                 C   s   | j | j S r   )r2   r3   rB   r   r   r   r   u  s    zFileInput.linenoc                 C   s   | j S r   r3   rB   r   r   r   r   x  s    zFileInput.filelinenoc                 C   s4   | j r,z| j  W S  tk
r(   Y dS X ndS d S )N)r   r   r6   rB   r   r   r   r   {  s    
zFileInput.filenoc                 C   s
   | j dkS rJ   rl   rB   r   r   r   r	     s    zFileInput.isfirstlinec                 C   s   | j S r   )r4   rB   r   r   r   r
     s    zFileInput.isstdin)NFr   )__name__
__module____qualname__r@   rC   r   rD   rH   rI   rO   rS   r   rZ   rK   r   r   r   r   r	   r
   r   r   r   r   r      s(    )9	c                 C   sV   t j| d }|dkr,dd l}|| |S |dkrHdd l}|| |S t| |S d S )Nr   z.gzr   z.bz2)r&   pathsplitextgziprb   bz2ZBZ2File)r   r   Zextrs   rt   r   r   r   r     s    c                    s    fdd}|S )Nc                    s   t | | dS )Nencodingerrors)rb   )r   r   ru   r   r   r     s    zhook_encoded.<locals>.openhookr   )rv   rw   r   r   ru   r   r     s    c                  C   s   dd l } d}d}|  tjdd  d\}}|D ] \}}|dkrBd}|dkr.|}q.t|||dD ]b}|d	d  d
kr~|d d	 }|d	d  dkr|d d	 }tdt t t t rdpd|f  q^tdt t t f  d S )Nr   Fr   zib:z-iTz-b)r   r   rm   
z%d: %s[%d]%s %s*r   z
%d: %s[%d])	getoptr)   r*   r   printr   r   r   r	   )r{   r   r   ZoptsargsoarN   r   r   r   _test  s&         
r   __main__)NFr   )N)r)   r&   __all__r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   rn   r   r   r   r   <module>K   s2       	

			 ^
