a
´iÇ9 ã @ s´ d dl Z d dlZd dlmZ g d¢Zdad#dddœdd „Zd
d„ Zdd
„ Zdd„ Z dd„ Z
dd„ Zdd„ Zdd„ Z
dd„ ZG dd„ dƒZdd„ Zd$dd„Zd d!„ Zed"kr°eƒ dS )%é N)ÚGenericAlias)ÚinputÚcloseÚnextfileÚfilenameÚlinenoÚ
filelinenoÚfilenoÚisfirstlineÚisstdinÚ FileInputÚhook_compressedÚhook_encodedFÚ Úr©ÚmodeÚopenhookc C s( t rt jrtdƒ‚t| ||||d�a t S )Nzinput() already activer )Ú_stateÚ_fileÚRuntimeErrorr )ÚfilesÚinplaceÚbackupr r © r ú!/usr/lib64/python3.9/fileinput.pyr T s
r c C s t } d a | r| ¡ d S ©N)r r )Ústater r r r a s r c C s t stdƒ‚t ¡ S ©Nzno active input())r r r r r r r r i s
r c C s t stdƒ‚t ¡ S r )r r r r r r r r w s r c C s t stdƒ‚t ¡ S r )r r r r r r r r € s r c C s t stdƒ‚t ¡ S r )r r r r r r r r Š s r c C s t stdƒ‚t ¡ S r )r r r r r r r r ” s r c C s t stdƒ‚t ¡ S r )r r r
r r r r r
� s r
c C s t stdƒ‚t ¡ S r )r r r r r r r r ¦ s r c @ s¦ e Zd Zd(dddœdd„Zdd „ Zd
d„ Zdd
„ Zdd„ Zdd„ Zdd„ Z dd„ Z
dd„ Zdd„ Zdd„ Z
dd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ ZeeƒZdS ))r NFr r r c C s t |tƒr|f}nBt |tjƒr,t |¡f}n(|d u rBtjdd … }|sLd}nt|ƒ}|| _|| _ || _
d | _d | _d | _
d| _d| _d | _d| _d | _|dvr¦tdƒ‚d|v rÄdd l}| dtd ¡ || _d|vrÞ| d
d¡nd| _|�r|rötdƒ‚t|ƒ�std
ƒ‚|| _d S )Né )ú-r F)r ZrUÚ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 r8 r r r Ú__init__¼ sF
ÿ
zFileInput.__init__c C s | ¡ d S r ©r ©r@ r r r Ú__del__å s zFileInput.__del__c C s z| ¡ W d| _nd| _0 d S )Nr )r r- rC r r r r è s
zFileInput.closec C s | S r r rC r r r Ú __enter__î s zFileInput.__enter__c C s | ¡ d S r rB )r@ ÚtypeÚvalueÚ tracebackr r r Ú__exit__ñ s zFileInput.__exit__c C s | S r r rC r r r Ú__iter__ô s zFileInput.__iter__c C s6 | ¡ }|r| jd7 _|S | js(t‚| ¡ q d S ©Nr )Ú _readliner4 r Ú
StopIterationr ©r@ Úliner r r Ú__next__÷ s zFileInput.__next__c C sV dd l }|jdtdd� || ¡ kr,tdƒ‚z
| ¡ W S tyP tdƒ‚Y n0 d S )Nr zTSupport for indexing FileInput objects is deprecated. Use iterator protocol instead.r# )Ú
stacklevelzaccessing lines out of orderzend of input reached)r8 r9 r: r r rP rM Ú
IndexError)r@ Úir8 r r r Ú__getitem__ s ü
zFileInput.__getitem__c C sÈ | j }d | _ |r|t_| j}d | _zÎ|r0| ¡ W | j}d | _z| `W n tyX Y n0 zT|rn| jsn| ¡ W | j }d | _ |r¨| j
s¨zt |¡ W n t
y¦ Y n0 d| _n@| j }d | _ |rè| j
sèzt |¡ W n t
yæ Y n0 d| _0 nÒ| j}d | _z| `W n t�y Y n0 z^|�r4| j�s4| ¡ W | j }d | _ |�rt| j
�stzt |¡ W n t
�yr Y n0 d| _nF| j }d | _ |�rº| j
�sºzt |¡ W n t
�y¸ Y n0 d| _0 0 d S )NF)r0 r* Ústdoutr1 r r rL ÚAttributeErrorr5 r6 r/ r' ÚunlinkÚOSError)r@ Z
savestdoutÚoutputÚfileZbackupfilenamer r r r sf
ú
ð
úzFileInput.nextfilec C s6 | ¡ }|r| jd7 _|S | js(|S | ¡ q d S rK )rL r4 r r rN r r r Úreadline/ s zFileInput.readlinec C sö | j sd| jv rdS dS | j d | _| j dd … | _ | ¡ | _d| _d | _d| _d| _| jdkr–d| _d| jv r„t t
jd t
jƒ| _nt
j| _d
| _�nN| j�r¸t
| j¡| jp°d | _zt
| j¡ W n tyØ Y n0 t
| j| j¡ t| j| jƒ| _zt
| j ¡ ¡j}W n$ t�y4 t| j| jƒ| _Y nr0 t
jt
jB t
jB }tt
dƒ�r^|t
jO }t
| j||¡}t
|| j¡| _zt
| j|¡ W n t�y¤ Y n0 t
j | _!| jt
_ n,| j"�rÔ| "| j| j¡| _nt| j| jƒ| _| jj#| _$| $¡ S )
NÚbó r r r Fr z