o
    if@                     @   sv   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ G d	d
 d
eeZdS )    N)AbbreviationReplacer)BetweenPunctuation)CommonStandard)	Processor)Text)replace_punctuation)ListItemReplacerc                   @   sb   e Zd ZdZG dd deZG dd deZG dd dejZG dd	 d	eZG d
d de	Z	dS )Slovakskc                   @   s   e Zd Zdd ZdS )zSlovak.ListItemReplacerc                 C   s   |    |   |   | jS N)format_roman_numeral_lists!format_numbered_list_with_periods format_numbered_list_with_parenstextself r   J/var/www/html/corbot_env/lib/python3.10/site-packages/pysbd/lang/slovak.pyadd_line_break   s   z&Slovak.ListItemReplacer.add_line_breakN)__name__
__module____qualname__r   r   r   r   r   r	      s    r	   c                   @   s   e Zd Zg Zdd ZdS )zSlovak.AbbreviationReplacerc                 C   s$   | ddd }| |d |}|S )N.   ∯)replace)r   txtabbrabbr_newr   r   r   replace_period_of_abbr    s   z2Slovak.AbbreviationReplacer.replace_period_of_abbrN)r   r   r   SENTENCE_STARTERSr   r   r   r   r   r      s    r   c                   @   s$   e Zd Zg dZg dZg dZdS )zSlovak.Abbreviation)   čnonrzs. r. oingpza. dzo. kzpol. prz
a. s. a. pzp. n. lredzo.kza.dzm.ozpol.prza.s.a.pzp.n.lppslcorpplgrtzrtgzo.c.pzo. c. pzc.kzc. kzn.azn. aza.mza. mvzzi.bzi. bu   ú.p.v.ou   ú. p. v. obrosrsdrdoctuodszn.w.azn. w. au   nárpedgpaeddrrndrnaprkza.g.pza. g. pprofprza.vza. vpormvdru   nešpzu.szu. sktvydze.tze. talzll.mzll. mzo.f.izo. f. imrapodu   súkrstredzs.e.gzs. e. gsrtvzindvaretcatdzn.ozn. ozs.azs. au   napřza.i.iza. i. iza.k.aza. k. akonkru   čsloddltdzt.zzt. zzo.zzo. zobvobrpoktelu   štskrphdrxxu   š.pu   š. pzph.dzph. dzm.n.mzm. n. mzzrozu   atď.evzv.spzv. spdrscmudru   t.ču   t. čeloscozr.ozr. ostrzp.azp. azdravotprekgenu   viďdrccazp.szp. su   zákslovarmincmaxzd.czk.oa. r. kzd. czk. orc   socbczsakadszpozntru   námkolcsculspzo.ijrzbsvtju   čstznu   prípivhlstpodvitisstorrozhmldu   atďmgrza.sza. sphdzz.zzz. zjudrr$   hodvsu   písmzs.r.ominmliiizt.jzt. jspolmiliinaprresptzv)rv   r%   r]   rU   r   r$   r}   re   rT   r0   r7   )r!   r"   r#   N)r   r   r   ABBREVIATIONSPREPOSITIVE_ABBREVIATIONSNUMBER_ABBREVIATIONSr   r   r   r   Abbreviation*   s    r   c                   @   s$   e Zd ZdZdZdd Zdd ZdS )zSlovak.BetweenPunctuationu   „(?>[^“\\]+|\\{2}|\\.)*“u1   \„(?=(?P<tmp>[^“\\]+|\\{2}|\\.)*)(?P=tmp)\“c                 C   s   t | jt|S r   )resub$BETWEEN_SLOVAK_DOUBLE_QUOTES_REGEX_2r   r   r   r   r   r   ,sub_punctuation_between_slovak_double_quotes4   s   zFSlovak.BetweenPunctuation.sub_punctuation_between_slovak_double_quotesc                 C   s^   |  |}| |}| |}| |}| |}| |}| |}| |}| |}|S r   )	%sub_punctuation_between_single_quotes,sub_punctuation_between_single_quote_slanted%sub_punctuation_between_double_quotes'sub_punctuation_between_square_bracketssub_punctuation_between_parens$sub_punctuation_between_quotes_arrow!sub_punctuation_between_em_dashes&sub_punctuation_between_quotes_slantedr   r   r   r   r   )sub_punctuation_between_quotes_and_parens7   s   








zCSlovak.BetweenPunctuation.sub_punctuation_between_quotes_and_parensN)r   r   r   "BETWEEN_SLOVAK_DOUBLE_QUOTES_REGEXr   r   r   r   r   r   r   r   /   s
    r   c                       sF   e Zd Zd fdd	Zdd Zdd Zdd	 Zd
d Zdd Z  Z	S )zSlovak.ProcessorFc                    s   t  ||| d S r   )super__init__)r   r   lang	char_span	__class__r   r   r   E   s   zSlovak.Processor.__init__c                 C   s   | j s| j S | j dd| _ | j| j }| | _ |   |   |   |   t	| j 
| jjj| jj| jj| _ |  }|S )N
)r   r   r   r	   r   replace_abbreviationsreplace_numbersreplace_continuous_punctuation)replace_periods_before_numeric_referencesr   applyr   WithMultiplePeriodsAndEmailRuleGeoLocationRuleFileFormatRulesplit_into_segments)r   lipostprocessed_sentsr   r   r   processH   s   

zSlovak.Processor.processc                 C   s6   t | jj| jjj | _|   |   |   | jS r   )	r   r   r   r   NumbersAllreplace_period_in_slovak_dates"replace_period_in_ordinal_numerals replace_period_in_roman_numeralsr   r   r   r   r   [   s
   z Slovak.Processor.replace_numbersc                 C   s   t dd| j| _d S )Nz(?<=\d)\.(?=\s*[a-z]+)r   )r   r   r   r   r   r   r   r   b   s   z3Slovak.Processor.replace_period_in_ordinal_numeralsc                 C   s   t dd| jt j| _d S )Nz"((\s+[VXI]+)|(^[VXI]+))(\.)(?=\s+)u   \1∯)r   r   r   
IGNORECASEr   r   r   r   r   f   s   z1Slovak.Processor.replace_period_in_roman_numeralsc                 C   s0   g d}|D ]}t dj|dd| j| _qd S )N)u   Januáru   FebruárMarecu   Aprílu   Máju   Júnu   JúlAugust	Septemberu   OktóberNovemberDecemberu   Januárau	   FebruáraMarcau   Aprílau   Májau   Júnau   JúlaAugusta	Septembrau   OktóbraNovembraDecembraz(?<=\d)\.(?=\s*{month}))monthr   )r   r   formatr   )r   MONTHSr   r   r   r   r   j   s   z/Slovak.Processor.replace_period_in_slovak_dates)F)
r   r   r   r   r   r   r   r   r   __classcell__r   r   r   r   r   C   s    r   N)
r   r   r   iso_coder	   r   r   r   r   r   r   r   r   r   r
      s    r
   )r   pysbd.abbreviation_replacerr   pysbd.between_punctuationr   pysbd.lang.commonr   r   pysbd.processorr   pysbd.utilsr   pysbd.punctuation_replacerr   pysbd.lists_item_replacerr	   r
   r   r   r   r   <module>   s   