
    dafM                         	 d dl Z g dZdZ G d d      ZddZddZd Z e j                  d	e j                        Z	 e j                  d
e j                        Z
d ZddZedk(  r e ed             yy)    N)TextWrapperwrapfilldedentindentshortenz	
 c                      e Zd Z	 ej	                   eee       ed            ZdZ	dZ
d ej                  e      z  Zdedd z   Z ej                  de	e
eed	z  ej                         Z[	[
[ ej                  d
ez        Z[ ej                  d      Z	 	 	 	 	 	 	 	 	 	 dddddZd Zd Zd Zd Zd Zd Zd Zd Zy)r    z[\w!"\'&.,?]z[^\d\W]z[%s]z[^   Na  
        ( # any whitespace
          %(ws)s+
        | # em-dash between words
          (?<=%(wp)s) -{2,} (?=\w)
        | # word, possibly hyphenated
          %(nws)s+? (?:
            # hyphenated word
              -(?: (?<=%(lt)s{2}-) | (?<=%(lt)s-%(lt)s-))
              (?= %(lt)s -? %(lt)s)
            | # end of word
              (?=%(ws)s|\Z)
            | # em-dash
              (?<=%(wp)s) (?=-{2,}\w)
            )
        ))wpltwsnwsz(%s+)z[a-z][\.\!\?][\"\']?\Zz [...])	max_linesplaceholderc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        y N)widthinitial_indentsubsequent_indentexpand_tabsreplace_whitespacefix_sentence_endingsbreak_long_wordsdrop_whitespacebreak_on_hyphenstabsizer   r   )selfr   r   r   r   r   r   r   r   r   r   r   r   s                #/root/Python-3.12.4/Lib/textwrap.py__init__zTextWrapper.__init__p   sa     
,!2&"4$8! 0. 0"&    c                     	 | j                   r|j                  | j                        }| j                  r|j	                  | j
                        }|S r   )r   
expandtabsr   r   	translateunicode_whitespace_transr   texts     r   _munge_whitespacezTextWrapper._munge_whitespace   sF    	 ??4<<0D"">>$"?"?@Dr!   c                     	 | j                   du r| j                  j                  |      }n| j                  j                  |      }|D cg c]  }|s|	 }}|S c c}w NT)r   
wordsep_resplitwordsep_simple_re)r   r'   chunkscs       r   _splitzTextWrapper._split   s`    	   D(__**40F++11$7F#)q!)) *s   AAc                     	 d}| j                   j                  }|t        |      dz
  k  r<||dz      dk(  r |||         rd||dz   <   |dz  }n|dz  }|t        |      dz
  k  r;y y )Nr   r   r
   z     )sentence_end_researchlen)r   r.   i	patsearchs       r   _fix_sentence_endingsz!TextWrapper._fix_sentence_endings   s{    	 ((//	#f+a-ac{c!iq	&:"qsQQ #f+a-r!   c                 \   	 |dk  rd}n||z
  }| j                   rp|}|d   }| j                  r@t        |      |kD  r2|j                  dd|      }|dkD  rt	        d |d | D              r|dz   }|j                  |d |        ||d  |d<   y |s |j                  |j                                y y )Nr   -r   c              3   &   K   | ]	  }|d k7    yw)r;   N ).0r/   s     r   	<genexpr>z0TextWrapper._handle_long_word.<locals>.<genexpr>   s     %G1a3h%Gs   )r   r   r5   rfindanyappendpop)	r   reversed_chunkscur_linecur_lenr   
space_leftendchunkhyphens	            r   _handle_long_wordzTextWrapper._handle_long_word   s    	 19JJ   C#B'E$$Uj)@ S!Z8A:#%Ggv%G"G 1*COOE$3K("'+OB
 OOO//12 r!   c                    	 g }| j                   dk  rt        d| j                   z        | j                  o| j                  dkD  r| j                  }n| j                  }t        |      t        | j                  j                               z   | j                   kD  rt        d      |j                          |rg }d}|r| j                  }n| j                  }| j                   t        |      z
  }| j                  r|d   j                         dk(  r|r|d= |r?t        |d         }||z   |k  r%|j                  |j                                ||z  }nn|r?|r>t        |d         |kD  r-| j                  ||||       t        t        t
        |            }| j                  r,|r*|d   j                         dk(  r|t        |d         z  }|d= |r| j                  Ot        |      dz   | j                  k  s4|r-| j                  rKt        |      dk(  r=|d   j                         s*||k  r%|j                  |dj!                  |      z          n|r|d   j                         r]|t        | j                        z   |k  rB|j                  | j                         |j                  |dj!                  |      z          	 	 |S |t        |d         z  }|d= |r|rV|d   j#                         }t        |      t        | j                        z   | j                   k  r|| j                  z   |d<   	 |S |j                  || j                  j                         z          	 |S |r|S )Nr   zinvalid width %r (must be > 0)r   z#placeholder too large for max widthr:    )r   
ValueErrorr   r   r   r5   r   lstripreverser   striprB   rC   rK   summapjoinrstrip)	r   r.   linesr   rE   rF   r   l	prev_lines	            r   _wrap_chunkszTextWrapper._wrap_chunks   s7   	 ::?=

JKK>>%~~!//,,6{S!1!1!8!8!:;;djjH !FGG 	 HG //,, JJV,E ##r
(8(8(:b(@U2Jr
O Q;%'OOFJJL1qLG   #fRj/E1&&vx%Hc#x01 ##Xb\5G5G5IR5O3x|,,RLNN*JNT^^3))[A%*50@ LL"''(*;!;<"$RL..0#c$*:*:&;;uD$OOD,<,<=!LL"''(2C)CD!   3x|#44$RL # !(-b	(8(8(:I #IT5E5E1F F$(JJ!/,58H8H,Hb	 %  Vd.>.>.E.E.G%GHS R r!   c                 F    | j                  |      }| j                  |      S r   )r(   r0   r&   s     r   _split_chunkszTextWrapper._split_chunksU  s!    %%d+{{4  r!   c                     	 | j                  |      }| j                  r| j                  |       | j                  |      S r   )r[   r   r8   rY   )r   r'   r.   s      r   r   zTextWrapper.wrap[  sA    	 ##D)$$&&v.  ((r!   c                 D    	 dj                  | j                  |            S )N
)rT   r   r&   s     r   r   zTextWrapper.filli  s     	 yy4))r!   )
F   rM   rM   TTFTTT   )__name__
__module____qualname__dictfromkeysrS   ord_whitespacer%   
word_punctletterreescape
whitespacenowhitespacecompileVERBOSEr+   r-   r3   r    r(   r0   r8   rK   rY   r[   r   r   r=   r!   r   r   r      s#   .`  $}}Sk-BCHM !JF9299[11J*QR.(L  ! 77" 	

#J$ 	FL #

8j#89 !bjj "' (O  "#%!$(&+"&!%"&'  %'>,$!3ReN!)*r!   r   c                 @    	 t        dd|i|}|j                  |       S Nr   r=   )r   r   r'   r   kwargsws       r   r   r   u  s)     	*%*6*A66$<r!   c                 @    	 t        dd|i|}|j                  |       S rq   )r   r   rr   s       r   r   r     s)     	*%*6*A66$<r!   c                     	 t        d|dd|}|j                  dj                  | j                         j	                                     S )Nr   )r   r   r
   r=   )r   r   rT   rQ   r,   rr   s       r   r   r     sD    
 	7%177A66#((4::<--/011r!   z^[ 	]+$z(^[ 	]*)(?:[^ 	
])c                 X   	 d }t         j                  d|       } t        j                  |       }|D ]Y  }||}|j	                  |      r|j	                  |      r|}.t        t        ||            D ]  \  }\  }}||k7  s|d | } Y [ 	 |rt        j                  d|z   d|       } | S )NrM   z(?m)^)	_whitespace_only_resub_leading_whitespace_refindall
startswith	enumeratezipr,   rj   )r'   marginindentsr   r6   xylines           r   r   r     s     F""2t,D$,,T2G >F v& v&F
 's66':; 	6Aq6#BQZF#. 	
 vvh'T2Kr!   c                 N     	 d  fd}dj                   |             S )Nc                 "    | j                         S r   )rQ   )r   s    r   	predicatezindent.<locals>.predicate  s    ::<r!   c               3   \   K   j                  d      D ]  }  |       r| z   n|   y wr*   )
splitlines)r   r   prefixr'   s    r   prefixed_lineszindent.<locals>.prefixed_lines  s1     OOD) 	?D$-dO6D=>	?s   ),rM   )rT   )r'   r   r   r   s   ``` r   r   r     s.     	 ? 77>#$$r!   __main__z Hello there.
  This is indented.)r_   r   )rj   __all__rg   r   r   r   r   rn   	MULTILINErx   rz   r   r   ra   printr=   r!   r   <module>r      s    

H
  _* _*H
2$ !bjjR\\: #$;R\\J 0f%$ z 
&4
56 r!   