a
    ze';                     @   s   d dl Z d dlZejdedd dZG dd dZG dd dZG d	d
 d
ZG dd deZG dd deZ	dddZ
edkre
  dS )    Nz"the formatter module is deprecated   )
stacklevelc                   @   s   e Zd Zd'ddZdd Zdd Zdd	 Zd(d
dZdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd)d#d$Zd*d%d&ZdS )+NullFormatterNc                 C   s   |d u rt  }|| _d S N)
NullWriterwriterselfr    r
   /usr/lib/python3.9/formatter.py__init__)   s    zNullFormatter.__init__c                 C   s   d S r   r
   r	   	blankliner
   r
   r   end_paragraph-       zNullFormatter.end_paragraphc                 C   s   d S r   r
   r	   r
   r
   r   add_line_break.   r   zNullFormatter.add_line_breakc                 O   s   d S r   r
   r	   argskwr
   r
   r   add_hor_rule/   r   zNullFormatter.add_hor_rulec                 C   s   d S r   r
   r	   formatcounterr   r
   r
   r   add_label_data0   r   zNullFormatter.add_label_datac                 C   s   d S r   r
   r	   datar
   r
   r   add_flowing_data1   r   zNullFormatter.add_flowing_datac                 C   s   d S r   r
   r   r
   r
   r   add_literal_data2   r   zNullFormatter.add_literal_datac                 C   s   d S r   r
   r   r
   r
   r   flush_softspace3   r   zNullFormatter.flush_softspacec                 C   s   d S r   r
   r	   alignr
   r
   r   push_alignment4   r   zNullFormatter.push_alignmentc                 C   s   d S r   r
   r   r
   r
   r   pop_alignment5   r   zNullFormatter.pop_alignmentc                 C   s   d S r   r
   )r	   xr
   r
   r   	push_font6   r   zNullFormatter.push_fontc                 C   s   d S r   r
   r   r
   r
   r   pop_font7   r   zNullFormatter.pop_fontc                 C   s   d S r   r
   )r	   marginr
   r
   r   push_margin8   r   zNullFormatter.push_marginc                 C   s   d S r   r
   r   r
   r
   r   
pop_margin9   r   zNullFormatter.pop_marginc                 C   s   d S r   r
   r	   spacingr
   r
   r   set_spacing:   r   zNullFormatter.set_spacingc                 G   s   d S r   r
   r	   stylesr
   r
   r   
push_style;   r   zNullFormatter.push_style   c                 C   s   d S r   r
   r	   nr
   r
   r   	pop_style<   r   zNullFormatter.pop_stylec                 C   s   d S r   r
   r	   flagr
   r
   r   assert_line_data=   r   zNullFormatter.assert_line_data)N)N)r0   )r0   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r"   r#   r%   r&   r(   r)   r,   r/   r3   r6   r
   r
   r
   r   r      s$   


r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd-d
dZdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd.d)d*Zd/d+d,Zd	S )0AbstractFormatterc                 C   sR   || _ d | _g | _g | _g | _d | _g | _d| _d| _d| _	d| _
d| _d| _d S Nr0   r   )r   r!   align_stack
font_stackmargin_stackr+   style_stacknospace	softspacepara_endparskip
hard_break
have_labelr   r
   r
   r   r   N   s    zAbstractFormatter.__init__c                 C   s`   | j s| j  d| _| j|k rD| jsD| j|| j  || _d| _d | _  | _| _d| _d S Nr   r0   )	rD   r   send_line_breakrE   rC   send_paragraphr@   rB   rA   r   r
   r
   r   r   ]   s    
zAbstractFormatter.end_paragraphc                 C   s8   | j s"| js"| j  d | _| _d | _ | _d| _d S rF   )rD   rB   r   rG   rE   rC   r@   rA   r   r
   r
   r   r   h   s
    
z AbstractFormatter.add_line_breakc                 O   sJ   | j s| j  | jj|i | d | _ | _d | _ | _ | _| _d S r;   )	rD   r   rG   send_hor_ruler@   rE   rB   rA   rC   r   r
   r
   r   r   o   s
    
zAbstractFormatter.add_hor_ruleNc                 C   s   | j s| js| j  | js0| j|r*dp,d t|trP| j| 	|| n| j| d | _
 | _  | _| _d | _| _d S r;   )rE   rD   r   rG   rB   rH   
isinstancestrsend_label_dataformat_counterr@   rA   rC   r   r
   r
   r   r   v   s    

z AbstractFormatter.add_label_datac                 C   st   d}|D ]f}|dkr"|d|  }q|dv rD|dkrn||  || }q|dv rf|dkrn|| || }q|| }q|S )N 1z%dZaAr   ZiI)format_letterformat_roman)r	   r   r   labelcr
   r
   r   rM      s    
z AbstractFormatter.format_counterc                 C   s<   d}|dkr8t |d d\}}tt|| }|| }q|S )NrN   r   r0      )divmodchrord)r	   caser   rR   r$   sr
   r
   r   rP      s    
zAbstractFormatter.format_letterc           	      C   s   g d}g d}d\}}|dkrt |d\}}|dkrP|| ||d   | }nT|dkrn|| ||  | }n6|d	kr|| }|d	 }nd
}||| |  }|| }|d }q|dkr| S |S )N)ir$   rS   m)vld)rN   r   r   
   	   r0         rN   I)rU   upper)	r	   rX   r   ZonesZfivesrR   indexr$   rY   r
   r
   r   rQ      s&    

zAbstractFormatter.format_romanc                 C   s   |sd S |d d   }|dd    }d| }| jrD|sDd S |sN| jrv|sh| jsdd| _d| _d S | jsvd| }d | _ | _ | _ | _| _|| _| j	
| d S )Nr0    r   )isspacejoinsplitr@   rA   rC   rD   rB   rE   r   send_flowing_data)r	   r   ZprespaceZ	postspacer
   r
   r   r      s&    

z"AbstractFormatter.add_flowing_datac                 C   sZ   |sd S | j r| jd |dd  dk| _d | _ | _ | _  | _| _| j| d S )Nrg   rf   
r   )	rA   r   rk   rD   r@   rB   rC   rE   send_literal_datar   r
   r
   r   r      s    z"AbstractFormatter.add_literal_datac                 C   s:   | j r6d | _ | _ | _ | _| _ d| _| jd d S Nr   r0   rg   )rA   rD   rB   rC   rE   r@   r   rk   r   r
   r
   r   r      s    z!AbstractFormatter.flush_softspacec                 C   s@   |r.|| j kr.| j| || _ | j| n| j| j  d S r   )r!   r   new_alignmentr<   appendr    r
   r
   r   r"      s
    z AbstractFormatter.push_alignmentc                 C   sH   | j r| j d= | j r2| j d  | _}| j| nd | _| jd  d S Nrf   )r<   r!   r   ro   r    r
   r
   r   r#      s    zAbstractFormatter.pop_alignmentc           
      C   s   |\}}}}| j r6d | _ | _| _ d| _| jd | jr~| jd \}}}}	|tu rZ|}|tu rf|}|tu rr|}|tu r~|	}||||f}| j| | j	| d S )Nr   r0   rg   rf   )
rA   rD   rB   r@   r   rk   r=   AS_ISrp   new_font)
r	   fontsizerZ   bttZcsizeZcicbZcttr
   r
   r   r%      s    zAbstractFormatter.push_fontc                 C   s4   | j r| j d= | j r | j d }nd }| j| d S rq   )r=   r   rs   r	   rt   r
   r
   r   r&      s    zAbstractFormatter.pop_fontc                 C   sB   | j | dd | j D }|s,|r,|d }| j|t| d S )Nc                 S   s   g | ]}|r|qS r
   r
   .0r[   r
   r
   r   
<listcomp>  r   z1AbstractFormatter.push_margin.<locals>.<listcomp>rf   )r>   rp   r   
new_marginlen)r	   r'   fstackr
   r
   r   r(     s
    zAbstractFormatter.push_marginc                 C   sF   | j r| j d= dd | j D }|r,|d }nd }| j|t| d S )Nrf   c                 S   s   g | ]}|r|qS r
   r
   rz   r
   r
   r   r|     r   z0AbstractFormatter.pop_margin.<locals>.<listcomp>)r>   r   r}   r~   )r	   r   r'   r
   r
   r   r)   
  s    
zAbstractFormatter.pop_marginc                 C   s   || _ | j| d S r   )r+   r   new_spacingr*   r
   r
   r   r,     s    zAbstractFormatter.set_spacingc                 G   sV   | j r*d | _ | _| _ d| _| jd |D ]}| j| q.| jt	| j d S rn   )
rA   rD   rB   r@   r   rk   r?   rp   
new_stylestuple)r	   r.   styler
   r
   r   r/     s    zAbstractFormatter.push_styler0   c                 C   s$   | j | d = | jt| j  d S r   )r?   r   r   r   r1   r
   r
   r   r3   !  s    zAbstractFormatter.pop_stylec                 C   s$   |  | _ | _d | _ | _| _d S Nr   )r@   rD   rB   rC   rE   r4   r
   r
   r   r6   %  s    z"AbstractFormatter.assert_line_data)N)r0   )r0   )r7   r8   r9   r   r   r   r   r   rM   rP   rQ   r   r   r   r"   r#   r%   r&   r(   r)   r,   r/   r3   r6   r
   r
   r
   r   r:   @   s*   
	
	
	
r:   c                   @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )r   c                 C   s   d S r   r
   r   r
   r
   r   r   2  r   zNullWriter.__init__c                 C   s   d S r   r
   r   r
   r
   r   flush3  r   zNullWriter.flushc                 C   s   d S r   r
   r    r
   r
   r   ro   4  r   zNullWriter.new_alignmentc                 C   s   d S r   r
   ry   r
   r
   r   rs   5  r   zNullWriter.new_fontc                 C   s   d S r   r
   r	   r'   levelr
   r
   r   r}   6  r   zNullWriter.new_marginc                 C   s   d S r   r
   r*   r
   r
   r   r   7  r   zNullWriter.new_spacingc                 C   s   d S r   r
   r-   r
   r
   r   r   8  r   zNullWriter.new_stylesc                 C   s   d S r   r
   r   r
   r
   r   rH   9  r   zNullWriter.send_paragraphc                 C   s   d S r   r
   r   r
   r
   r   rG   :  r   zNullWriter.send_line_breakc                 O   s   d S r   r
   r   r
   r
   r   rI   ;  r   zNullWriter.send_hor_rulec                 C   s   d S r   r
   r   r
   r
   r   rL   <  r   zNullWriter.send_label_datac                 C   s   d S r   r
   r   r
   r
   r   rk   =  r   zNullWriter.send_flowing_datac                 C   s   d S r   r
   r   r
   r
   r   rm   >  r   zNullWriter.send_literal_dataN)r7   r8   r9   r   r   ro   rs   r}   r   r   rH   rG   rI   rL   rk   rm   r
   r
   r
   r   r   *  s   r   c                   @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )AbstractWriterc                 C   s   t d|f  d S )Nznew_alignment(%r)printr    r
   r
   r   ro   I  s    zAbstractWriter.new_alignmentc                 C   s   t d|f  d S )Nznew_font(%r)r   ry   r
   r
   r   rs   L  s    zAbstractWriter.new_fontc                 C   s   t d||f  d S )Nznew_margin(%r, %d)r   r   r
   r
   r   r}   O  s    zAbstractWriter.new_marginc                 C   s   t d|f  d S )Nznew_spacing(%r)r   r*   r
   r
   r   r   R  s    zAbstractWriter.new_spacingc                 C   s   t d|f  d S )Nznew_styles(%r)r   r-   r
   r
   r   r   U  s    zAbstractWriter.new_stylesc                 C   s   t d|f  d S )Nzsend_paragraph(%r)r   r   r
   r
   r   rH   X  s    zAbstractWriter.send_paragraphc                 C   s   t d d S )Nzsend_line_break()r   r   r
   r
   r   rG   [  s    zAbstractWriter.send_line_breakc                 O   s   t d d S )Nzsend_hor_rule()r   r   r
   r
   r   rI   ^  s    zAbstractWriter.send_hor_rulec                 C   s   t d|f  d S )Nzsend_label_data(%r)r   r   r
   r
   r   rL   a  s    zAbstractWriter.send_label_datac                 C   s   t d|f  d S )Nzsend_flowing_data(%r)r   r   r
   r
   r   rk   d  s    z AbstractWriter.send_flowing_datac                 C   s   t d|f  d S )Nzsend_literal_data(%r)r   r   r
   r
   r   rm   g  s    z AbstractWriter.send_literal_dataN)r7   r8   r9   ro   rs   r}   r   r   rH   rG   rI   rL   rk   rm   r
   r
   r
   r   r   A  s   r   c                   @   sF   e Zd ZdddZdd Zdd Zd	d
 Zdd Zdd Zdd Z	dS )
DumbWriterNH   c                 C   s(   |pt j| _|| _t|  |   d S r   )sysstdoutfilemaxcolr   r   reset)r	   r   r   r
   r
   r   r   t  s    
zDumbWriter.__init__c                 C   s   d| _ d| _d S r   )colatbreakr   r
   r
   r   r   z  s    zDumbWriter.resetc                 C   s    | j d|  d| _d| _d S Nrl   r   r   writer   r   r   r
   r
   r   rH   ~  s    zDumbWriter.send_paragraphc                 C   s   | j d d| _d| _d S r   r   r   r
   r
   r   rG     s    zDumbWriter.send_line_breakc                 O   s:   | j d | j d| j  | j d d| _d| _d S )Nrl   -r   )r   r   r   r   r   r   r
   r
   r   rI     s
    zDumbWriter.send_hor_rulec                 C   sV   | j | |d}|dkr4d| _||d d  }| }| jt| | _d| _d S )Nrl   r   r0   )r   r   rfindr   
expandtabsr~   r   )r	   r   rZ   r
   r
   r   rm     s    
zDumbWriter.send_literal_datac                 C   s   |sd S | j p|d  }| j}| j}| jj}| D ]N}|rl|t| |kr\|d d}n|d |d }|| |t| }d}q6|| _|d  | _ d S )Nr   rl   rg   r0   rf   )r   rh   r   r   r   r   rj   r~   )r	   r   r   r   r   r   Zwordr
   r
   r   rk     s"    zDumbWriter.send_flowing_data)Nr   )
r7   r8   r9   r   r   rH   rG   rI   rm   rk   r
   r
   r
   r   r   k  s   	

r   c                 C   s   t  }t|}| d ur t| }n$tjdd  r>ttjd }ntj}z>|D ]"}|dkrb|d qJ|| qJW |tjur|  n|tjur|  0 |d d S )Nr0   rl   r   )	r   r:   openr   argvstdinr   r   close)r   wffpliner
   r
   r   test  s"    




r   __main__)N)r   warningswarnDeprecationWarningrr   r   r:   r   r   r   r   r7   r
   r
   r
   r   <module>   s   " k*C
