3 \Ã0ã@s"ddlZddlZGdd„dƒZdS)éNc@speZdZddddddddœZddd„Zdd „Zd d „Zdd d „Zddd„Zddd„Z dd„Z dd„Z dd„Z dS)ÚTextFileérÚstrict)Ústrip_commentsÚ skip_blanksÚ lstrip_wsÚ rstrip_wsÚ join_linesÚ collapse_joinÚerrorsNcKs°|dkr|dkrtdƒ‚x>|jjƒD]0}||krBt||||ƒq$t|||j|ƒq$Wx&|jƒD]}||jkrbtd|ƒ‚qbW|dkr”|j|ƒn||_||_d|_g|_ dS)Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) Ú RuntimeErrorÚdefault_optionsÚkeysÚsetattrÚKeyErrorÚopenÚfilenameÚfileÚ current_lineÚlinebuf)ÚselfrrZoptionsÚopt©rú+/usr/lib64/python3.6/distutils/text_file.pyÚ__init__Ns  zTextFile.__init__cCs&||_tj|jd|jd�|_d|_dS)NÚr)r r)rÚiorr rr)rrrrrrosz TextFile.opencCs$|j}d|_d|_d|_|jƒdS)N)rrrÚclose)rrrrrrvs zTextFile.closecCsjg}|dkr|j}|j|jdƒt|ttfƒrD|jdt|ƒƒn|jd|ƒ|jt|ƒƒdj|ƒS)Nz, z lines %d-%d: z line %d: Ú)rÚappendrÚ isinstanceÚlistÚtupleÚstrÚjoin)rÚmsgÚlineZoutmsgrrrÚ gen_errorszTextFile.gen_errorcCstd|j||ƒƒ‚dS)Nzerror: )Ú ValueErrorr')rr%r&rrrÚerror‹szTextFile.errorcCs tjjd|j||ƒdƒdS)Nz warning: Ú )ÚsysÚstderrÚwriter')rr%r&rrrÚwarnŽsz TextFile.warncCs|jr|jd }|jd =|Sd}�xÜ|jjƒ}|dkr:d}|jr°|r°|jdƒ}|d krXnX|dksp||ddkr¤|ddkr€dp‚d}|d|…|}|jƒdkr°q$n |jddƒ}|jo¸|�r |dkrÒ|jdƒ|S|j rà|j ƒ}||}t |j t ƒ�r |j dd|j d<n|j |j dg|_ n:|dk�r.dSt |j t ƒ�rN|j dd|_ n |j d|_ |j�rt|j�rt|jƒ}n"|j�r†|j ƒ}n|j�r–|jƒ}|dk�sª|dk�r´|j�r´q$|j�rü|ddk�rØ|dd…}q$|dd…d k�rü|dd…d}q$|SdS)Nrrú#rú\r*z\#z2continuation line immediately precedes end-of-fileéz\ éÿÿÿÿr2r2r2r2r2éþÿÿÿr3)rrÚreadlinerÚfindÚstripÚreplacer r.r Úlstripr rr!rrÚrstripr)rr&Z buildup_lineÚposZeolrrrr4˜sf            zTextFile.readlinecCs,g}x"|jƒ}|dkr|S|j|ƒqWdS)N)r4r)rÚlinesr&rrrÚ readliness zTextFile.readlinescCs|jj|ƒ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+rrrrrrÚs