a �DOg�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�|dur|durtd��|j��D]0}||vr@t||||�q"t|||j|�q"|��D]}||jvr\td|��q\|dur�|�|�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)�selfrr�options�opt�r�+/usr/lib64/python3.9/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|_|��dS�N)rrr�close)rrrrrrvs zTextFile.closecCsjg}|dur|j}|�|jd�t|ttf�rD|�dt|��n|�d|�|�t|��d�|�S)Nz, z lines %d-%d: z line %d: �)r�appendr� isinstance�list�tuple�str�join)r�msg�lineZoutmsgrrr� gen_errorszTextFile.gen_errorcCstd|�||���dS)Nzerror: )� ValueErrorr)�rr'r(rrr�error�szTextFile.errorcCs tj�d|�||�d�dS)Nz warning: � )�sys�stderr�writer)r+rrr�warn�sz TextFile.warncCs�|jr|jd}|jd=|Sd}|j��}|dkr6d}|jr�|r�|�d�}|dkrTnX|dksl||ddkr�|ddkr|dp~d}|d|�|}|��dkr�q n |�dd�}|j�r|�r|dur�|�d �|S|j r�|� �}||}t |j t ��r |j dd|j d<n|j |j dg|_ n:|du�r,dSt |j t ��rL|j dd|_ n |j d|_ |j�rr|j�rr|��}n"|j�r�|� �}n|j�r�|��}|dk�s�|dk�r�|j�r�q |j�r�|ddk�r�|dd�}q |d d�d k�r�|dd �d}q |S) N�����r �#rr�\r-z\#z2continuation line immediately precedes end-of-file�����z\ )rr�readliner�find�strip�replacer r1r �lstripr"rr#rr�rstripr)rr(Z buildup_line�posZeolrrrr6�sf      �     zTextFile.readlinecCs(g}|��}|dur|S|�|�qdSr)r6r!)r�linesr(rrr� readliness zTextFile.readlinescCs|j�|�dSr)rr!)rr(rrr� unreadlineszTextFile.unreadline)NN)N)N)N) �__name__� __module__� __qualname__r rrrr)r,r1r6r>r?rrrrr s";� !  x r)r.rrrrrr�s