B
    0*\1                 @   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 kr|d krt dx>| j D ]0}||krBt| |||  q$t| || j|  q$W x&| D ]}|| jkrbtd| qbW |d k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   >C:\ALexclude\prg\programme\Python37\Lib\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 k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   r   r   warn   s    zTextFile.warnc             C   s  | j r| j d }| j d= |S d}x| j }|dkr:d }| jr|r|d}|dkrXnX|dksp||d  dkr|d dkrdpd}|d| | }| dkrq$n|dd}| jr"|r"|d kr| d	 |S | j	r|
 }|| }t| jtr| jd d | jd< n| j| jd g| _n:|d kr0d S t| jtrP| jd d | _n| jd | _| jrv| jrv| }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 d S )Nr   #r   r   \r+   z\#z2continuation line immediately precedes end-of-filez\
)r   r   readliner   findstripreplacer	   r/   r
   lstripr!   r   r"   r   r   rstripr   )r   r'   Zbuildup_lineposZeolr   r   r   r4      sf    




	



zTextFile.readlinec             C   s,   g }x"|   }|d kr|S || qW d S )N)r4   r    )r   linesr'   r   r   r   	readlines  s    zTextFile.readlinesc             C   s   | j | d S )N)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*   r/   r4   r<   r=   r   r   r   r   r   
   s    ;
!	



x
r   )r,   r   r   r   r   r   r   <module>   s   