
    ;e0                     2    	 d dl Z d dlZ G d d          ZdS )    Nc                   b    e Zd Z	 ddddddddZddZd Zd Zdd	Zdd
ZddZ	d Z
d Zd ZdS )TextFile   r   strict)strip_commentsskip_blanks	lstrip_ws	rstrip_ws
join_linescollapse_joinerrorsNc                    	 ||t          d          | j                                        D ]:}||v rt          | |||                    t          | || j        |                    ;|                                D ]}|| j        vrt	          d|z            ||                     |           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opts        */usr/lib/python3.11/distutils/text_file.py__init__zTextFile.__init__N   s   	3 XYYY ',,.. 	> 	>Cg~~c73<0000c4#7#<==== <<>> 	E 	EC$...=CDDD / <IIh$DMDI !D
     c                 p    	 || _         t          j        | j         d| j                  | _        d| _        d S )Nr)r   r   )r   ior   r   r   r   )r   r   s     r   r   zTextFile.openo   s9    	B GDM3t{CCC	r   c                 h    	 | j         }d | _         d | _        d | _        |                                 d S N)r   r   r   close)r   r   s     r   r$   zTextFile.closev   s5    	/y	 

r   c                 t   g }|| j         }|                    | j        dz              t          |t          t
          f          r&|                    dt          |          z             n|                    d|z             |                    t          |                     d                    |          S )Nz, zlines %d-%d: z	line %d:  )r   appendr   
isinstancelisttuplestrjoin)r   msglineoutmsgs       r   	gen_errorzTextFile.gen_error   s    <$Ddmd*+++dT5M** 	.MM/E$KK78888MM+,---c#hhwwvr   c                 N    t          d|                     ||          z             )Nzerror: )
ValueErrorr0   r   r-   r.   s      r   errorzTextFile.error   s#    T^^C%>%>>???r   c                 z    	 t           j                            d|                     ||          z   dz              d S )Nz	warning: 
)sysstderrwriter0   r3   s      r   warnzTextFile.warn   s=    	 	
t~~c4'@'@@4GHHHHHr   c                    	 | j         r| j         d         }| j         d= |S d}	 | j                                        }|dk    rd }| j        r|r~|                    d          }|dk    rnb|dk    s||dz
           dk    r7|d         dk    rdpd}|d|         |z   }|                                dk    rn|                    d	d          }| j        r|r||                     d
           |S | j	        r|
                                }||z   }t          | j        t                    r| j        d         dz   | j        d<   nZ| j        | j        dz   g| _        nC|d S t          | j        t                    r| j        d         dz   | _        n| j        dz   | _        | j        r| j        r|                                }n7| j        r|
                                }n| j        r|                                }|dk    s|dk    r	| j        r| j        r5|d         dk    r|d d         }|dd          dk    r|dd         dz   }#|S )Nr&   T#r   r   \r6   z\#z2continuation line immediately precedes end-of-filez\
)r   r   readliner   findstripreplacer   r:   r   lstripr(   r   r)   r	   r
   rstripr   )r   r.   buildup_lineposeols        r   r@   zTextFile.readline   s   	 < 	<#DR Ka	9%%''Drzz" $4t $4 iinn"99 AXXc!e!4!4  8t+5;C#;,D zz||r))  *  <<s33D  >< ><II , - - -''% );;==D#d* d/66 @+/+<Q+?!+CD%a(()-):)-):Q)>)@D%% <4 d/66 >(,(9!(<q(@D%%(,(9A(=D% ~ %$. %zz|| %{{}} %{{}} 

ddll0@l 8t###'9L9&&#'":#4L Kr   c                 f    	 g }	 |                                  }||S |                    |           .r#   )r@   r'   )r   linesr.   s      r   	readlineszTextFile.readlines  s?    		==??D|LL		r   c                 <    	 | j                             |           d S r#   )r   r'   )r   r.   s     r   
unreadlinezTextFile.unreadline  s%    	6 	D!!!!!r   )NNr#   )__name__
__module____qualname__r   r   r   r$   r0   r4   r:   r@   rK   rM    r   r   r   r   
   s        8t +,*+*+*+*+*+*2 O   B    
 
 
 
@ @ @ @I I I Iv v vp  " " " " "r   r   )r7   r!   r   rQ   r   r   <module>rR      sY   . T" T" T" T" T" T" T" T" T" T"r   