U ifu9 @sddlZddlZdddddddd d d d d g Zdad!dddddZddZddZddZddZddZ ddZ dd Z dd Z Gdd d Z dd Zd"dd ZddZed kredS)#Ninputclosenextfilefilenamelineno filelinenofileno isfirstlineisstdin FileInputhook_compressed hook_encodedFrmodeopenhookcCs(trtjrtdt|||||datS)Nzinput() already activer)_state_file RuntimeErrorr )filesinplacebackuprrr./opt/alt/python38/lib64/python3.8/fileinput.pyrSs cCst}da|r|dSN)rr)staterrrr`scCsts tdtSNzno active input())rrrrrrrrhs cCsts tdtSr)rrrrrrrrvscCsts tdtSr)rrrrrrrrscCsts tdtSr)rrrrrrrrscCsts tdtSr)rrrrrrrrscCsts tdtSr)rrr rrrrr scCsts tdtSr)rrr rrrrr sc@seZdZd(dddddZdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&d'ZdS))r NFrrrcCst|tr|f}nBt|tjr,t|f}n(|dkrBtjdd}|sLd}nt|}||_||_ ||_ d|_ d|_ d|_ d|_d|_d|_d|_d|_|dkrtdd|krddl}|dtd ||_d|kr|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)selfrrrrrr7rrr__init__sH   zFileInput.__init__cCs |dSrrr?rrr__del__szFileInput.__del__cCsz |W5d|_XdS)Nr)r,rrBrrrrs zFileInput.closecCs|SrrrBrrr __enter__szFileInput.__enter__cCs |dSrrA)r?typevalue tracebackrrr__exit__szFileInput.__exit__cCs|SrrrBrrr__iter__szFileInput.__iter__cCs6|}|r|jd7_|S|js(t|qdSNr) _readliner3r StopIterationrr?linerrr__next__szFileInput.__next__cCsXddl}|jdtdd||kr,tdz |WStk rRtdYnXdS)NrzTSupport for indexing FileInput objects is deprecated. Use iterator protocol instead.r") stacklevelzaccessing lines out of orderzend of input reached)r7r8r9rrrOrL IndexError)r?ir7rrr __getitem__s  zFileInput.__getitem__cCs|j}d|_|r|t_|j}d|_z|r0| W5|j}d|_z|`Wntk r\YnXz|rr|j sr| W5|j}d|_|r|jszt |Wnt k rYnXd|_ XXdS)NF)r/r)stdoutr0rrKAttributeErrorr5r.r&unlinkOSErrorr4r)r?Z savestdoutoutputfileZbackupfilenamerrrrs4    zFileInput.nextfilecCs6|}|r|jd7_|S|js(|S|qdSrJ)rKr3rrrMrrrreadline.szFileInput.readlinecCs|jsd|jkrdSdS|jd|_|jdd|_||_d|_d|_d|_d|_|jdkrd|_d|jkrt t j d t j |_nt j |_d |_nT|j rt |j|jpd |_zt |jWntk rYnXt |j|jt|j|j|_zt |jj}Wn&tk r8t|j|j|_YntXt jt jBt jB}tt d rb|t jO}t |j||}t ||j|_zt |j|Wntk rYnXt j |_!|jt _ n,|j"r|"|j|j|_nt|j|j|_|jj#|_$|$S) NbrrrFrzbufferTz.bakO_BINARY)%r,r:r1rr2r3rr4r5getattrr)stdinr-r&r(r.rVrWrenameopenfstatrst_moder<r0O_CREATO_WRONLYO_TRUNChasattrr^fdopenchmodrTr/r>rZrK)r?ZpermrfdrrrrK9s\          zFileInput._readlinecCs|jSr)r1rBrrrrrszFileInput.filenamecCs |j|jSr)r2r3rBrrrruszFileInput.linenocCs|jSrr3rBrrrrxszFileInput.filelinenocCs4|jr,z |jWStk r(YdSXndSdS)N)rrr6rBrrrr{s   zFileInput.filenocCs |jdkSrJrlrBrrrr szFileInput.isfirstlinecCs|jSr)r4rBrrrr szFileInput.isstdin)NFr)__name__ __module__ __qualname__r@rCrrDrHrIrOrSrrZrKrrrrr r rrrrr s(  )  9 cCsVtj|d}|dkr,ddl}|||S|dkrHddl}|||St||SdS)Nrz.gzrz.bz2)r&pathsplitextgziprbbz2ZBZ2File)rrZextrsrtrrrr s  csfdd}|S)Ncst||dS)Nencodingerrors)rb)rrrurrrszhook_encoded..openhookr)rvrwrrrurr scCsddl}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)rrrm  z%d: %s[%d]%s %s*rz %d: %s[%d]) getoptr)r*rprintrrrr )r{rrZoptsargsoarNrrr_tests&     r__main__)NFr)N)r)r&__all__rrrrrrrrr r r r r rrnrrrrKs2        ^