3 \8 @sddlZddlZdddddddd d d d d g Zdad ddZddZddZddZddZddZ ddZ dd Z dd Z Gdd d Z dd Zd!dd ZddZedkredS)"Ninputclosenextfilefilenamelineno filelinenofileno isfirstlineisstdin FileInputhook_compressed hook_encodedFrcCs(trtjrtdt||||||atS)Nzinput() already active)_state_file RuntimeErrorr )filesinplacebackupbufsizemodeopenhookr!/usr/lib64/python3.6/fileinput.pyrSs cCst}da|r|jdS)N)rr)staterrrrascCsts tdtjS)Nzno active input())rrrrrrrris cCsts tdtjS)Nzno active input())rrrrrrrrwscCsts tdtjS)Nzno active input())rrrrrrrrscCsts tdtjS)Nzno active input())rrrrrrrrscCsts tdtjS)Nzno active input())rrrrrrrrscCsts tdtjS)Nzno active input())rrr rrrrr scCsts tdtjS)Nzno active input())rrr rrrrr sc@seZdZd(ddZdd Zd d Zd d ZddZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&d'ZdS))r NFrrrcCst|tr|f}n(|dkr(tjdd}|s2d}nt|}||_||_||_|rhddl}|j dt ddd|_ d|_ d|_ d|_d|_d|_d|_d|_|dkrtd d |krddl}|j d t d||_|r|rtdt|std||_dS)N-rz!bufsize is deprecated and ignored) stacklevelFrrUUrbz=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") isinstancestrsysargvtuple_files_inplace_backupwarningswarnDeprecationWarning _savestdout_output _filename _startlineno _filelinenor_isstdin_backupfilename ValueError_modecallable _openhook)selfrrrrrrr+rrr__init__sF  zFileInput.__init__cCs |jdS)N)r)r9rrr__del__szFileInput.__del__c Csz |jWdf|_XdS)N)rr()r9rrrrs zFileInput.closecCs|S)Nr)r9rrr __enter__szFileInput.__enter__cCs |jdS)N)r)r9typevalue tracebackrrr__exit__szFileInput.__exit__cCs|S)Nr)r9rrr__iter__szFileInput.__iter__cCs:x4|j}|r |jd7_|S|js*t|jqWdS)Nr) _readliner2r StopIterationr)r9linerrr__next__szFileInput.__next__c Cs>||jkrtdy|jStk r8tdYnXdS)Nzaccessing lines out of orderzend of input reached)rrrErC IndexError)r9irrr __getitem__s  zFileInput.__getitem__c%Cs|j}d|_|r|t_|j}d|_z|r0|jWd|j}d|_y|`Wntk r\YnXz|rt|j rt|jWd|j }d|_ |r|j ryt j |Wnt k rYnXd|_XXdS)NF)r.r%stdoutr/rrrBAttributeErrorr3r4r*osunlinkOSError)r9Z savestdoutoutputfileZbackupfilenamerrrr s4    zFileInput.nextfilecCs:x4|j}|r |jd7_|S|js*|S|jqWdS)Nr)rBr2rr)r9rDrrrreadline)szFileInput.readlinecCs|jsd|jkrdSdS|jd|_|jdd|_|j|_d|_d|_d|_d|_|jdkrd|_d|jkrt t j d t j |_nt j |_d |_nV|j r|j|j pd |_ytj|jWntk rYnXtj|j|jt|j|j|_ytj|jjj}Wn$tk r0t|jd |_Yn~XtjtjBtjB}ttd rZ|tjO}tj|j||}tj|d |_yttdrtj|j|Wntk rYnXt j|_|jt _n,|j r|j |j|j|_nt|j|j|_|jj!|_"|j"S)NbrrrFrzbufferTz.bakwO_BINARYchmod)#r(r6r0rr1r2rr3r4getattrr%stdinr)r*rKrLrMrenameopenfstatrst_moder/O_CREATO_WRONLYO_TRUNChasattrrUfdopenrVrIr.r8rPrB)r9ZpermrfdrrrrB4s\           zFileInput._readlinecCs|jS)N)r0)r9rrrrnszFileInput.filenamecCs |j|jS)N)r1r2)r9rrrrqszFileInput.linenocCs|jS)N)r2)r9rrrrtszFileInput.filelinenoc Cs0|jr(y |jjStk r$dSXndSdS)Nrrc)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)rKpathsplitextgziprZbz2ZBZ2File)rrZextrirjrrrr s  csfdd}|S)Ncst||dS)N)encodingerrors)rZ)rr)rkrlrrrszhook_encoded..openhookr)rkrlrr)rkrlrr scCsddl}d}d}|jtjddd\}}x(|D] \}}|dkrDd}|dkr0|}q0Wxtt|||dD]b}|ddd kr|dd}|ddd kr|dd}td ttttrd pd |fqdWtdtttfdS)NrFrzib:z-iTz-b)rr  z%d: %s[%d]%s %s*rz %d: %s[%d]rcrcrcrc) getoptr%r&rprintrrrr )rprrZoptsargsoarDrrr_tests"  ru__main__)NFrrrN)N)r%rK__all__rrrrrrrrr r r r r rurdrrrrKs*         Y