
    $HJj}                     f    d dl Z ddlmZ defdZd Zddeded	efd
Zddeded	efdZ	dedefdZ
y)    N   )punctuationscc                 "    | j                         S N)isalnum)r   s    j/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/vi_cleaner/sentence_utils.py
isTextOnlyr
      s    99;    c                     t        t        j                  ||       t        j                  ||             D cg c]  \  }}|s	|j	                         |z    c}}S c c}}w r   )zipresplitfindallstrip)textregexeds       r	   split_text_sentencesr   	   sK    &)"((5$*?ESWAX&Y_&Yda]^AGGIM&Y___s   
AA	sentences	maxLengthreturnc                 J   t        |       dk  r| S t        | d   j                  d            |kD  r| d   gt        | dd  |      z   S t        | d   | d   z   j                  d            |k  r t        | d   dz   | d   z   g| dd  z   |      S | d   gt        | dd  |      z   S )Nr   r    )r      )lenr   combine_sentences)r   r   s     r	   r   r      s    y>Qy|!!#&')3aL>$5imy$YYY	!y|+22378IE$ilS&89Q<&G%HSTSU%VbkllaL>$5imy$YYYr   c                     g }| D ]M  }t        |j                  d            |kD  r|j                  t        |d             <|j                  |g       O |S )Nr   z	[?!.,:;-])r   r   appendr   )r   r   sub_sentencessentences       r	   split_long_sentencesr#      sU    Mx~~c"#i/  !5h!NO  (,	 
 r   passagec                 L   t        t        | d      |      }|D cg c]  }t        ||       }}g }|D ]c  }|D ]\  }t        |D cg c]  }| c}      }t	        j
                  |      r2t        t        t        |            sL|j                  |       ^ e |S c c}w c c}w )Nz[.!?])
r#   r   r   setr   
issupersetanymapr
   r    )	r$   r   r!   icombined_sub_sentences	flat_listsublistitem
item_charss	            r	   
get_piecesr0       s    ()=gx)PR[\M,.,! 0	9,  .I)D.Aa./J**:63s:z?Z;[  &  *
 .
 /s   B	B!)   )r   	symbol_vir   strr
   r   listintr   r#   r0    r   r	   <module>r7      sh    	 ## `	Z 	Z# 	Zt 	ZD S $ 
 
 
r   