B ,~L3@s"ddlZddlZGdddZdS)Nc@speZdZddddddddZdddZdd Zd d Zdd d ZdddZdddZ ddZ ddZ ddZ dS)TextFilerstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNcKs|dkr|dkrtdx>|jD]0}||krBt||||q$t|||j|q$Wx&|D]}||jkrbtd|qbW|dkr||n||_||_d|_g|_ dS)Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrroptionsoptr6/opt/alt/python37/lib/python3.7/distutils/text_file.py__init__Ns  zTextFile.__init__cCs&||_tj|jd|jd|_d|_dS)Nr)r r)riorr rr)rrrrrrosz TextFile.opencCs$|j}d|_d|_d|_|dS)N)rrrclose)rrrrrrvs zTextFile.closecCsjg}|dkr|j}||jdt|ttfrD|dt|n|d||t|d|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errorszTextFile.gen_errorcCstd|||dS)Nzerror: ) ValueErrorr()rr&r'rrrerrorszTextFile.errorcCs tjd|||ddS)Nz warning:  )sysstderrwriter()rr&r'rrrwarnsz TextFile.warncCs|jr|jd}|jd=|Sd}x|j}|dkr:d}|jr|r|d}|dkrXnX|dksp||ddkr|ddkrdpd}|d||}|dkrq$n |dd}|jr"|r"|dkr|d |S|j r| }||}t |j t r|j dd|j d<n|j |j dg|_ n:|dkr0dSt |j t rP|j dd|_ n |j d|_ |jrv|jrv|}n"|jr| }n|jr|}|dks|dkr|jrq$|jr|ddkr|dd}q$|d dd kr|dd d}q$|SdS) Nr#rr\r+z\#z2continuation line immediately precedes end-of-filez\ )rrreadlinerfindstripreplacer r/r lstripr!rr"rrrstripr)rr'Z buildup_lineposZeolrrrr4sf           zTextFile.readlinecCs,g}x"|}|dkr|S||qWdS)N)r4r )rlinesr'rrr readliness zTextFile.readlinescCs|j|dS)N)rr )rr'rrr unreadlineszTextFile.unreadline)NN)N)N)N) __name__ __module__ __qualname__r rrrr(r*r/r4r<r=rrrrr s ; !  x r)r,rrrrrrs