o
    Ti	                     @   sh   d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZ dd Zdd Zdd	 Zd
d Zdd ZdS )    )unicode_literals)convert_finals)	_INITIALS_INITIALS_NOT_STRICT_FINALSRE_PHONETIC_SYMBOLPHONETIC_SYMBOL_DICT'PHONETIC_SYMBOL_DICT_KEY_LENGTH_NOT_ONE	RE_NUMBERc                 C   s.   |rt }nt}|D ]}| |r|  S q	dS )u   获取单个拼音中的声母.

    :param pinyin: 单个拼音
    :type pinyin: unicode
    :param strict: 是否严格遵照《汉语拼音方案》来处理声母和韵母
    :return: 声母
    :rtype: unicode
     )r   r   
startswith)pinyinstrict	_initialsi r   I/home/ubuntu/.local/lib/python3.10/site-packages/pypinyin/style/_utils.pyget_initials   s   	
r   c                 C   st   |rt | } t| |dpd}| t|d }|r2|tvr2t| dd}| t|d }|tv r0|S dS |s8|s8| S |S )u   获取单个拼音中的韵母.

    :param pinyin: 单个拼音，无声调拼音
    :type pinyin: unicode
    :param strict: 是否严格遵照《汉语拼音方案》来处理声母和韵母
    :return: 韵母
    :rtype: unicode
    )r   r   NF)r   r   lenr   )r   r   initialsfinalsr   r   r   
get_finals!   s   	r   c                 C   s6   dd }t || }t D ]
\}}|||}q|S )u   把声调替换为数字c                 S   s   |  d}t| S )Nr   )groupr   )matchsymbolr   r   r   _replaceD   s   
z*replace_symbol_to_number.<locals>._replace)r   subr	   itemsreplace)r   r   valuer   tor   r   r   replace_symbol_to_numberB   s
   r!   c                 C   s   t | }td|S )u0   把带声调字符替换为没有声调的字符r   )r!   r
   r   )r   r   r   r   r   replace_symbol_to_no_symbolQ   s   r"   c                 C   s   dD ]	}|| v r dS qdS )u   判断是否有韵母)u   m̄u   ḿu   m̀u   ńu   ňu   ǹFTr   )r   r   r   r   r   
has_finalsW   s
   r#   N)
__future__r   pypinyin.standardr   pypinyin.style._constantsr   r   r   r   r   r	   r
   r   r   r!   r"   r#   r   r   r   r   <module>   s   $!