3 \�8� @s�ddlZddlZdddddddd d d d d g Zdad dd�Zdd�Zdd�Zdd�Zdd�Zdd�Z dd�Z dd �Z dd �Z Gdd �d �Z dd �Zd!dd �Zdd�Zedkr�e�dS)"�N�input�close�nextfile�filename�lineno� filelineno�fileno� isfirstline�isstdin� FileInput�hook_compressed� hook_encodedF��rcCs(trtjrtd��t||||||�atS)Nzinput() already active)�_state�_file� RuntimeErrorr )�files�inplace�backup�bufsize�mode�openhook�r�!/usr/lib64/python3.6/fileinput.pyrSs cCst}da|r|j�dS)N)rr)�staterrrrascCsts td��tj�S)Nzno active input())rrrrrrrris cCsts td��tj�S)Nzno active input())rrrrrrrrwscCsts td��tj�S)Nzno active input())rrrrrrrr�scCsts td��tj�S)Nzno active input())rrrrrrrr�scCsts td��tj�S)Nzno active input())rrrrrrrr�scCsts td��tj�S)Nzno active input())rrr rrrrr �scCsts td��tj�S)Nzno active input())rrr rrrrr �sc@s�eZdZd(dd�Zdd �Zd d �Zd d �Zdd�Zdd�Zdd�Z dd�Z dd�Z dd�Z dd�Z dd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�ZdS))r NFrrrcCs�t|t�r|f}n(|dkr(tjdd�}|s2d}nt|�}||_||_||_|rhddl}|j dt dd�d|_ d|_ d|_ d|_d|_d|_d|_d|_|dkr�td ��d |kr�ddl}|j d t d�||_|r�|r�td��t|�s�td��||_dS)N��-rz!bufsize is deprecated and ignored�)� stacklevelFr�rU�U�rbz=FileInput opening mode must be one of 'r', 'rU', 'U' and 'rb'z'U' mode is deprecatedz4FileInput cannot use an opening hook in inplace modez#FileInput openhook must be callable)r)rr r!r")� isinstance�str�sys�argv�tuple�_files�_inplace�_backup�warnings�warn�DeprecationWarning� _savestdout�_output� _filename� _startlineno� _filelinenor�_isstdin�_backupfilename� ValueError�_mode�callable� _openhook)�selfrrrrrrr+rrr�__init__�sF  zFileInput.__init__cCs |j�dS)N)r)r9rrr�__del__�szFileInput.__del__c Csz |j�Wdf|_XdS)N)rr()r9rrrr�s zFileInput.closecCs|S)Nr)r9rrr� __enter__�szFileInput.__enter__cCs |j�dS)N)r)r9�type�value� tracebackrrr�__exit__�szFileInput.__exit__cCs|S)Nr)r9rrr�__iter__�szFileInput.__iter__cCs:x4|j�}|r |jd7_|S|js*t�|j�qWdS)Nr)� _readliner2r� StopIterationr)r9�linerrr�__next__�szFileInput.__next__c Cs>||j�krtd��y|j�Stk r8td��YnXdS)Nzaccessing lines out of orderzend of input reached)rrrErC� IndexError)r9�irrr� __getitem__s  zFileInput.__getitem__c%Cs�|j}d|_|r|t_|j}d|_z|r0|j�Wd|j}d|_y|`Wntk r\YnXz|rt|j rt|j�Wd|j }d|_ |r�|j r�yt j |�Wnt k r�YnXd|_XXdS)NF)r.r%�stdoutr/rrrB�AttributeErrorr3r4r*�os�unlink�OSError)r9Z savestdout�output�fileZbackupfilenamerrrr s4    zFileInput.nextfilecCs:x4|j�}|r |jd7_|S|js*|S|j�qWdS)Nr)rBr2rr)r9rDrrr�readline)szFileInput.readlinecCs�|jsd|jkrdSdS|jd|_|jdd�|_|j�|_d|_d|_d|_d|_|jdkr�d|_d|jkr�t t j d t j �|_nt j |_d |_�nV|j �r�|j|j p�d |_ytj|j�Wntk r�YnXtj|j|j�t|j|j�|_ytj|jj��j}Wn$tk �r0t|jd �|_Yn~XtjtjBtjB}ttd ��rZ|tjO}tj|j||�}tj|d �|_yttd��r�tj|j|�Wntk �r�YnXt j|_|jt _n,|j �r�|j |j|j�|_nt|j|j�|_|jj!|_"|j"�S)N�b�rrrFrz�bufferTz.bak�w�O_BINARY�chmod)#r(r6r0rr1r2rr3r4�getattrr%�stdinr)r*rKrLrM�rename�open�fstatr�st_moder/�O_CREAT�O_WRONLY�O_TRUNC�hasattrrU�fdopenrVrIr.r8rPrB)r9Zpermr�fdrrrrB4s\           zFileInput._readlinecCs|jS)N)r0)r9rrrrnszFileInput.filenamecCs |j|jS)N)r1r2)r9rrrrqszFileInput.linenocCs|jS)N)r2)r9rrrrtszFileInput.filelinenoc Cs0|jr(y |jj�Stk r$dSXndSdS)Nr�����rc)rrr5)r9rrrrws  zFileInput.filenocCs |jdkS)Nr)r2)r9rrrr �szFileInput.isfirstlinecCs|jS)N)r3)r9rrrr �szFileInput.isstdin)NFrrrN)�__name__� __module__� __qualname__r:r;rr<r@rArErHrrPrBrrrrr r rrrrr �s$  )  : cCsVtjj|�d}|dkr,ddl}|j||�S|dkrHddl}|j||�St||�SdS)Nrz.gzrz.bz2)rK�path�splitext�gziprZ�bz2ZBZ2File)rrZextrirjrrrr �s  cs��fdd�}|S)Ncst||��d�S)N)�encoding�errors)rZ)rr)rkrlrrr�szhook_encoded..openhookr)rkrlrr)rkrlrr �scCs�ddl}d}d}|jtjdd�d�\}}x(|D] \}}|dkrDd}|dkr0|}q0Wxtt|||d�D]b}|dd�d kr�|dd�}|dd�d kr�|dd�}td t�t�t�t�r�d p�d |f�qdWtdt�t�t�f�dS)NrFrzib:z-iTz-b)rr� � z%d: %s[%d]%s %s�*rz %d: %s[%d]rcrcrcrc) �getoptr%r&r�printrrrr )rprrZopts�args�o�arDrrr�_test�s"  ru�__main__)NFrrrN)N)r%rK�__all__rrrrrrrrr r r r r rurdrrrr�Ks*         Y