a DOg9@sddlZddlZddlmZgdZdad#ddddd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZGdddZddZd$ddZd d!Zed"kredS)%N) GenericAlias) inputclosenextfilefilenamelineno filelinenofileno isfirstlineisstdin FileInputhook_compressed hook_encodedFrmodeopenhookcCs(trtjrtdt|||||datS)Nzinput() already activer)_state_file RuntimeErrorr )filesinplacebackuprrr./opt/alt/python39/lib64/python3.9/fileinput.pyrTs rcCst}da|r|dSN)rr)staterrrrasrcCsts tdtSNzno active input())rrrrrrrris rcCsts tdtSr)rrrrrrrrwsrcCsts tdtSr)rrrrrrrrsrcCsts tdtSr)rrrrrrrrsrcCsts tdtSr)rrr rrrrr sr cCsts tdtSr)rrr rrrrr sr cCsts tdtSr)rrr rrrrr sr c@seZdZd(dddddZdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&d'ZeeZdS))r NFrrrcCst|tr|f}nBt|tjr,t|f}n(|durBtjdd}|sLd}nt|}||_||_ ||_ d|_ d|_ d|_ d|_d|_d|_d|_d|_|dvrtdd|vrddl}|dtd ||_d|vr|d d nd |_|r|rtd t|std ||_dS)N)-rF)rZrUUrbz=FileInput opening mode must be one of 'r', 'rU', 'U' and 'rb'r!z'U' mode is deprecatedrwz4FileInput cannot use an opening hook in inplace modez#FileInput openhook must be callable) isinstancestrosPathLikefspathsysargvtuple_files_inplace_backup _savestdout_output _filename _startlineno _filelinenor_isstdin_backupfilename ValueErrorwarningswarnDeprecationWarning_modereplace _write_modecallable _openhook)selfrrrrrr8rrr__init__sF   zFileInput.__init__cCs |dSrrr@rrr__del__szFileInput.__del__cCs z|Wd|_nd|_0dS)Nr)rr-rCrrrrs zFileInput.closecCs|SrrrCrrr __enter__szFileInput.__enter__cCs |dSrrB)r@typevalue tracebackrrr__exit__szFileInput.__exit__cCs|SrrrCrrr__iter__szFileInput.__iter__cCs6|}|r|jd7_|S|js(t|qdSNr) _readliner4r StopIterationrr@linerrr__next__szFileInput.__next__cCsVddl}|jdtdd||kr,tdz |WStyPtdYn0dS)NrzTSupport for indexing FileInput objects is deprecated. Use iterator protocol instead.r#) stacklevelzaccessing lines out of orderzend of input reached)r8r9r:rrrPrM IndexError)r@ir8rrr __getitem__s   zFileInput.__getitem__cCs|j}d|_|r|t_|j}d|_z|r0|W|j}d|_z|`WntyXYn0zT|rn|jsn|W|j }d|_ |r|j szt |Wnt yYn0d|_n@|j }d|_ |r|j szt |Wnt yYn0d|_0n|j}d|_z|`WntyYn0z^|r4|js4|W|j }d|_ |rt|j stzt |Wnt yrYn0d|_nF|j }d|_ |r|j szt |Wnt yYn0d|_00dS)NF)r0r*stdoutr1rrrLAttributeErrorr5r6r/r'unlinkOSError)r@Z savestdoutoutputfileZbackupfilenamerrrrsf        zFileInput.nextfilecCs6|}|r|jd7_|S|js(|S|qdSrK)rLr4rrrNrrrreadline/szFileInput.readlinecCs|jsd|jvrdSdS|jd|_|jdd|_||_d|_d|_d|_d|_|jdkrd|_d|jvrt t j d t j |_nt j |_d |_nN|j rt |j|jpd |_zt |jWntyYn0t |j|jt|j|j|_zt |jj}Wn$ty4t|j|j|_Ynr0t jt jBt jB}tt d r^|t jO}t |j||}t ||j|_zt |j|WntyYn0t j |_!|jt _ n,|j"r|"|j|j|_nt|j|j|_|jj#|_$|$S) NbrrrFr zbufferTz.bakO_BINARY)%r-r;r2rr3r4rr5r6getattrr*stdinr.r'r)r/rWrXrenameopenfstatr st_moder=r1O_CREATO_WRONLYO_TRUNChasattrr_fdopenchmodrUr0r?r[rL)r@ZpermrfdrrrrL:s\           zFileInput._readlinecCs|jSr)r2rCrrrrsszFileInput.filenamecCs |j|jSr)r3r4rCrrrrvszFileInput.linenocCs|jSrr4rCrrrryszFileInput.filelinenocCs2|jr*z |jWSty&YdS0ndSdS)N)rr r7rCrrrr |s    zFileInput.filenocCs |jdkSrKrmrCrrrr szFileInput.isfirstlinecCs|jSr)r5rCrrrr szFileInput.isstdin)NFr)__name__ __module__ __qualname__rArDrrErIrJrPrTrr[rLrrrr r r classmethodr__class_getitem__rrrrr s(  )  9 r cCsVtj|d}|dkr,ddl}|||S|dkrHddl}|||St||SdS)Nrz.gzrz.bz2)r'pathsplitextgziprcbz2ZBZ2File)rrZextrvrwrrrr s  r csfdd}|S)Ncst||dS)Nencodingerrors)rc)rrrxrrrszhook_encoded..openhookr)ryrzrrrxrrsrcCsddl}d}d}|tjddd\}}|D] \}}|dkrBd}|dkr.|}q.t|||dD]b}|d dd kr~|dd }|d dd kr|dd }td ttttrd pd|fq^tdtttfdS)NrFrzib:z-iTz-b)rrrn  z%d: %s[%d]%s %s*rz %d: %s[%d]) getoptr*r+rprintrrrr )r~rrZoptsargsoarOrrr_tests   r__main__)NFr)N)r*r'typesr__all__rrrrrrrr r r r r rrrorrrrKs&        `