o
    Zhd                     @   sN   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 G dd deeZ
dS )    )AbbreviationReplacer)CommonStandard)	Processor)TextRulec                   @   sF   e Zd ZdZdZG dd deZG dd dejZG dd deZd	S )
KazakhkkzD\b[\u0400-\u0500]+(?:\.\s?[\u0400-\u0500])+[.]|b[a-z](?:\.[a-z])+[.]c                       s&   e Zd Zd fdd	Zdd Z  ZS )zKazakh.ProcessorFc                    s   t  ||| d S Nsuper__init__)selftextlangZ	char_span	__class__ H/var/www/html/lang_env/lib/python3.10/site-packages/pysbd/lang/kazakh.pyr      s   zKazakh.Processor.__init__c                 C   s6   |  | }tdd}tdd}t|||}|S )Nu   (?<=)\?(?=\s*[-—]\s*)u   &ᓷ&u   (?<=)!(?=\s*[-—]\s*)u   &ᓴ&)Zbetween_punctuation_processorreplacer   r   apply)r   txtZ'QuestionMarkFollowedByDashLowercaseRuleZ*ExclamationMarkFollowedByDashLowercaseRuler   r   r   between_punctuation   s   


z$Kazakh.Processor.between_punctuation)F)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r      s    r   c                   @   s   e Zd Zg dZg Zg ZdS )zKazakh.Abbreviation(9  ZafpZanpZatpZbaebgbpZcamZcctvcdZcezZcgiZcnpcZfarcZfbiZeitiZepoZergpZgpshasZhivZhrhhttpicuidfZimdZimer#   r$   ipZisoZkazZkpokpakzr'   ZmriZnasaZnbaZnbcZndsZohlZomltppmZpdaZpkkZpsmZpspZrafZrssrtlsasZsmeZsmstntZudfZuefaZusbutcxZzdf   әқбкr.   u   аақu   авг.u   aббu   аекu   акu   ақu   акцион.u   аксрu   ақшu   англu
   аөсшкu   апр   м.u   а.u   р.   ғ.u   апр.u   аум.   ацатu   әч   т. б.   б. з. б.r3      б. з. д.r4   u   биікт.u   б. т.u	   биол.u   биохимu   бөu   б. э. д.u   бтаu   бұұu   вичu   всоонлu   геогр.u	   геол.u   гленкорu   гэсu   қк   кмu   гu   млнu   млрд   тu   ғ. с.r0   u   қ.r0   u   дек.u   днқu   дсұu   еақк   еқыұu   ембімұнайгазu   еоu   еуразэқu   еуроодақu   еұу   ж.r8   u   жж.u   жооu   жіөu   жсдпu   жшсu   іімu   интаu   исафu
   камазu   кгбu   кеуu   кг   км²r9      км³r:   u
   кимепu   кср   ксроu   кокп   кхдрu   қазатомпромu   қазкср
   қазұуu   қазмұнайгазu   қазпоштаu   қазтагr=   u   қкпu   қмдбu   қрu   қхрu   лат.   м²r>      м³r?   u   магатэu   май.u   максамu   мбu   мвтu   мемлu   мu   мсопu   мткu   мыс.u   насаu   натоu   нквдu	   нояб.u   обл.u   огпуu   окт.u   оңт.u   опекu   оебu   өзенмұнайгазu   өфu   пәкu   пед.u
   ркфсрu   рнқu
   рсфсрu   рфu   свсu   свуu   сдуu   сесu	   сент.u   смu   снпс	   солт.r@   u
   сооноu   ссроu   ссрu   сссрu   сссu   сэсu   дкr2   r6   u   твu   тереңд.u   тех.u   тжқu   тмдu   төм.u   трлнu   тр   т.u   и.r/   u   с.u   ш.rA   u   т. с. с.u   тэцu   уазu   уефаr7   u   ұқкu   ұқшұu	   февр.u   фққu   фсбu   хим.u   хқкоu   шұар   шыұu	   экон.u
   экспоu   цтпu   цасu   янв.dvdu   жктu   ққсr5   r1   u   юнескоu   ббсZmgmu   жскu   зооu   бснu   өұқu   оарu   боакu   эөккu   хтқоu   әөкu   жэкu   хдоu
   спбмуu   афu   сбдu   амтu   гсдпu   гсбпu   эыдұu
   нұсжпrB   u   жтсхu   хдпu   эқкu   фкққu   пиқu   өгкu   мбфu   мажu   котаu   тжu   укu   оббu   сблu   жхлu   кмсu
   бмтркu   жққu
   бхоооu   мқоu   ржмбu
   гулагu   жкоu   еэыu   еаэыr<   u   рфкпu   рлдпu   хвқu   мрu   мтu   ктуu   ртжu   тимu   мемдумr;   u   т.с.сu   с.ш.u   ш.б.u   б.б.u   рубu   минu	   акад.r0   u   ммu   мм.N)r   r   r   ZABBREVIATIONSZPREPOSITIVE_ABBREVIATIONSZNUMBER_ABBREVIATIONSr   r   r   r   Abbreviation    s    rD   c                       s(   e Zd Zg Z fddZdd Z  ZS )zKazakh.AbbreviationReplacerc                    s   t  || d S r
   r   )r   r   r   r   r   r   r   )   s   z$Kazakh.AbbreviationReplacer.__init__c                 C   s6   t dd}t dd}t| j||| _|   | jS )Nu   (?<=^[А-ЯЁ])\.(?=\s)u   ∯u   (?<=\s[А-ЯЁ])\.(?=\s))r   r   r   r   Z"replace_multi_period_abbreviations)r   Z.SingleUpperCaseCyrillicLetterAtStartOfLineRuleZ!SingleUpperCaseCyrillicLetterRuler   r   r   r   ,   s   

z#Kazakh.AbbreviationReplacer.replace)r   r   r   ZSENTENCE_STARTERSr   r   r   r   r   r   r   r   %   s    r   N)	r   r   r   Ziso_codeZMULTI_PERIOD_ABBREVIATION_REGEXr   r   rD   r   r   r   r   r   r      s    r   N)Zpysbd.abbreviation_replacerr   Zpysbd.lang.commonr   r   Zpysbd.processorr   Zpysbd.utilsr   r   r   r   r   r   r   <module>   s
   