o
     JAf0                     @   s$   	 d dl Z d dlZG dd dZdS )    Nc                   @   sr   e Zd Z	 ddddddddZdddZdd	 Zd
d ZdddZdddZdddZ	dd Z
dd Zdd ZdS )TextFile   r   strict)strip_commentsskip_blanks	lstrip_ws	rstrip_ws
join_linescollapse_joinerrorsNc                 K   s   	 |d u r|d u rt d| j D ]}||v r!t| |||  qt| || j|  q| D ]}|| jvr<td| q/|d u rG| | n	|| _|| _d| _g | _	d S )Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r   )
RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefilecurrent_linelinebuf)selfr   r   optionsopt r   */usr/lib/python3.10/distutils/text_file.py__init__N   s"   

zTextFile.__init__c                 C   s(   	 || _ tj| j d| jd| _d| _d S )Nr)r   r   )r   ior   r   r   r   )r   r   r   r   r   r   o   s   
zTextFile.openc                 C   s&   	 | j }d | _ d | _d | _|  d S N)r   r   r   close)r   r   r   r   r   r   v   s   zTextFile.closec                 C   sj   g }|d u r	| j }|| jd  t|ttfr"|dt|  n|d|  |t| d|S )Nz, zlines %d-%d: z	line %d:  )r   appendr   
isinstancelisttuplestrjoin)r   msglineZoutmsgr   r   r   	gen_error   s   
zTextFile.gen_errorc                 C   s   t d| || )Nzerror: )
ValueErrorr)   r   r'   r(   r   r   r   error   s   zTextFile.errorc                 C   s"   	 t jd| || d  d S )Nz	warning: 
)sysstderrwriter)   r+   r   r   r   warn   s    zTextFile.warnc                 C   s  	 | j r| j d }| j d= |S d}	 | j }|dkrd }| jrX|rX|d}|dkr,n,|dks8||d  dkrR|d dkr@dpAd}|d| | }| dkrQqn|d	d}| jr|r|d u rh| d
 |S | j	ro|
 }|| }t| jtr| jd d | jd< n%| j| jd g| _n|d u rd S t| jtr| jd d | _n| jd | _| jr| jr| }n| jr|
 }n| jr| }|dks|dkr| jrq| jr|d dkr|d d }q|dd  dkr|dd d }q|S )Nr    T#r   r   \r-   z\#z2continuation line immediately precedes end-of-filez\
)r   r   readliner   findstripreplacer	   r1   r
   lstripr"   r   r#   r   r   rstripr   )r   r(   Zbuildup_lineposZeolr   r   r   r6      sl   




	



zTextFile.readlinec                 C   s(   	 g }	 |   }|d u r|S || qr   )r6   r!   )r   linesr(   r   r   r   	readlines  s   
zTextFile.readlinesc                 C   s   	 | j | d S r   )r   r!   )r   r(   r   r   r   
unreadline  s   zTextFile.unreadline)NNr   )__name__
__module____qualname__r   r   r   r   r)   r,   r1   r6   r>   r?   r   r   r   r   r   
   s&    :
	!
	


x
r   )r.   r   r   r   r   r   r   <module>   s    