a
    ze0                     @   s"   d dl Z d dlZG dd dZdS )    Nc                   @   sp   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 ]0}||v r@t| |||  q"t| || j|  q"| D ]}|| jvr\td| q\|d u r| | 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.9/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rD|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| || d S )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r6d }| jr|r|d}|dkrTnX|dksl||d  dkr|d dkr|dp~d}|d| | }| dkrq n|dd}| jr|r|d u r| d	 |S | j	r|
 }|| }t| jtr
| jd d | jd< n| j| jd g| _n:|d u r,d S t| jtrL| jd d | _n| jd | _| jrr| jrr| }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    #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      sf    




	



zTextFile.readlinec                 C   s(   g }|   }|d u r|S || qd S 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)NN)N)N)N)__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   