o
    Ti                     @   sJ   d dl mZ d dlZd dlmZ d dlmZ edZG dd de	Z
dS )    )unicode_literalsN)Style)right_mark_indexz\dc                       s@   e Zd ZdZejejejejfZ	ejejfZ
 fddZ  ZS )NeutralToneWith5Mixinu  声调使用数字表示的相关拼音风格下的结果使用 5 标识轻声。

    使用方法::

        from pypinyin import lazy_pinyin, Style
        from pypinyin.contrib.neutral_tone import NeutralToneWith5Mixin
        from pypinyin.converter import DefaultConverter
        from pypinyin.core import Pinyin

        # 原来的结果中不会标识轻声
        print(lazy_pinyin('好了', style=Style.TONE2))
        # 输出: ['ha3o', 'le']


        class MyConverter(NeutralToneWith5Mixin, DefaultConverter):
            pass

        my_pinyin = Pinyin(MyConverter())
        pinyin = my_pinyin.pinyin
        lazy_pinyin = my_pinyin.lazy_pinyin

        #  新的结果中使用 ``5`` 标识轻声
        print(lazy_pinyin('好了', style=Style.TONE2))
        # 输出: ['ha3o', 'le5']

        print(pinyin('好了', style=Style.TONE2))
        # 输出：[['ha3o'], ['le5']]


    c                    s   t t| j|||||fi |}|| jvr|S |d ur|}|s!|S t|r(|S || jv r2d|S t|}|d |d  }	||d d  }
d|	|
S )Nz{}5   z{}5{})	superr   post_convert_styleNUMBER_TONE
_re_numbersearchNUMBER_AT_ENDformatr   )selfhanorig_pinyinconverted_pinyinstylestrictkwargspre_data
mark_indexbeforeafter	__class__ Q/home/ubuntu/.local/lib/python3.10/site-packages/pypinyin/contrib/neutral_tone.pyr   1   s&   





z(NeutralToneWith5Mixin.post_convert_style)__name__
__module____qualname____doc__r   TONE2TONE3FINALS_TONE2FINALS_TONE3r	   r   r   __classcell__r   r   r   r   r      s    r   )
__future__r   repypinyinr   pypinyin.contrib._tone_ruler   compiler
   objectr   r   r   r   r   <module>   s   
