
    jC                     |    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mZ  G d d	ee          ZdS )
    N)AbbreviationReplacer)BetweenPunctuation)CommonStandard)replace_punctuation)	Processor)TextRulec                       e Zd ZdZ G d dej                  Z G d de          Z G d dej                  Z G d d	e	          Z	 G d
 de
          Z
dS )Deutschdec                   `    e Zd Z edd          Z edd          Zej        j        eegz   ZdS )Deutsch.Numbersz%(?<=\s\d)\.(?=\s)|(?<=\s\d\d)\.(?=\s)   ∯z#(?<=-\d)\.(?=\s)|(?<=-\d\d)\.(?=\s)N)	__name__
__module____qualname__r
   NumberPeriodSpaceRuleNegativeNumberPeriodSpaceRuler   NumbersAll     \/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/pysbd/lang/deutsch.pyr   r      sM         $%Mu U U )--SUZ([([%n $9;X#YYr   r   c                   ,     e Zd Zd fd	Zd Zd Z xZS )Deutsch.ProcessorFc                 N    t                                          |||           d S Nsuper__init__)selftextlang	char_span	__class__s       r   r!   zDeutsch.Processor.__init__   s%    GGT433333r   c                      t          | j                  j        | j        j        j         | _        |                                  | j        S r   )r	   r#   applyr$   r   r   replace_period_in_deutsch_dates)r"   s    r   replace_numbersz!Deutsch.Processor.replace_numbers   s=    -TY-ty/@/DEDI002229r   c                     g d}|D ]6}t          j        d                    |          d| j                  | _        7d S )N)JanuarFebruaru   MärzAprilMaiJuniJuliAugust	SeptemberOktoberNovemberDezemberz(?<=\d)\.(?=\s*{month}))monthr   )resubformatr#   )r"   MONTHSr7   s      r   r)   z1Deutsch.Processor.replace_period_in_deutsch_dates"   sa    F F FF e eF#=#D#D5#D#Q#QSXZ^Zcdd		e er   )F)r   r   r   r!   r*   r)   __classcell__r&   s   @r   r   r      sb        	4 	4 	4 	4 	4 	4	 	 	
	e 	e 	e 	e 	e 	e 	er   r   c                   "    e Zd Zg dZg Zg dZdS )Deutsch.Abbreviation)   Ä   äadjadmadvartasstzb.azb.sbartbldgbrigbrosbsebuchstbzglbzwu   c.-à-dcacaptchrcmdrcocolcomdrconcorpcplzd.hzd.jdergldgldkrzdr ensetczev evtlffzg.g.azg.ugenggfgovhonhospzi.fzi.h.viiiiiinspivixjunzk.ozkath lfdltltdzm.emajmedmessrsmiomllemmmmemrmrdmrsmsmsgrmwstnonosnru   o.äopordpfcphppprofpvtreprepsresrevrtzs.p.asasensenssfcsgtsogsogensppsrststdzstr  suptsurgzu.a  zu.ezu.s.wzu.uu   u.äusfuswvvglviviiviiivsxxixiixiiixivxixxvxvixviixviiixxzz.bzz.tzz.zzz.ztztzztz
univ.-profzo.univ.-profzao.univ.profzass.profzhon.profz	univ.-dozzuniv.asszstud.ass
projektassassdiz	dipl.-ingmag)rE   rO   r{   r|   r}   r   N)r   r   r   ABBREVIATIONSPREPOSITIVE_ABBREVIATIONSNUMBER_ABBREVIATIONSr   r   r   Abbreviationr?   )   s6         x  x  x$&!EEEr   r   c                   T     e Zd Zd                    d          Z fdZd Zd Z xZS )Deutsch.AbbreviationReplaceruy   Am Auch Auf Bei Da Das Der Die Ein Eine Es Für Heute Ich Im In Ist Jetzt Mein Mit Nach So Und Warum Was Wenn Wer Wie Wir c                 L    t                                          ||           d S r   r   )r"   r#   r$   r&   s      r   r!   z%Deutsch.AbbreviationReplacer.__init__3   s#    GGT4(((((r   c                    t          dd          }t          dd          } t          | j                  j        | j        j        g| j        j        j        ||R  | _        |                     | j                  | _        | 	                                  t          | j                  j        | j        j
        j         | _        |                                 | _        | j        S )Nz(?<=\s[a-z])\.(?=\s)r   z(?<=^[a-z])\.(?=\s))r
   r	   r#   r(   r$   PossessiveAbbreviationRuleSingleLetterAbbreviationRulesr   "search_for_abbreviations_in_string"replace_multi_period_abbreviations	AmPmRules)replace_abbreviation_as_sentence_boundary)r"   SingleLowerCaseLetterRule&SingleLowerCaseLetterAtStartOfLineRules      r   replacez$Deutsch.AbbreviationReplacer.replace6   s    (,-De(L(L% 6::PRW5X5X2-TY-I8<Y<@< .< ;	< < <DI ??	JJDI33555-TY-ty/B/FGDIFFHHDI9r   c                 Z    t          j        d                    |          d|          }|S )Nz(?<={am})\.(?=\s))amr   )r8   r9   r:   )r"   txtr   indexcharacter_arrays        r   scan_for_replacementsz2Deutsch.AbbreviationReplacer.scan_for_replacementsH   s,    &-444;;UCHHCJr   )	r   r   r   splitSENTENCE_STARTERSr!   r   r   r<   r=   s   @r   r   r   .   sl        FGLuSzz 		) 	) 	) 	) 	)	 	 	$	 	 	 	 	 	 	r   r   c                   $     e Zd Z fdZd Z xZS )Deutsch.BetweenPunctuationc                 J    t                                          |           d S r   r   )r"   r#   r&   s     r   r!   z#Deutsch.BetweenPunctuation.__init__N   s!    GGT"""""r   c                     d}d}d|v rt          j        |t          |          S d|v rt          j        |t          |          S |S )Nu.   ,,(?=(?P<tmp>[^“\\]+|\\{2}|\\.)*)(?P=tmp)“u/   „(?=(?P<tmp>[^“\\]+|\\{2}|\\.)*)(?P=tmp)“u   „z,,)r8   r9   r   )r"   r   ,BETWEEN_UNCONVENTIONAL_DOUBLE_QUOTE_DE_REGEXBETWEEN_DOUBLE_QUOTES_DE_REGEXs       r   %sub_punctuation_between_double_quotesz@Deutsch.BetweenPunctuation.sub_punctuation_between_double_quotesQ   s]    ;l8 .`*||v<>QSVWWWvJ138 8 8 
r   )r   r   r   r!   r   r<   r=   s   @r   r   r   L   sG        	# 	# 	# 	# 	#	 	 	 	 	 	 	r   r   N)r   r   r   iso_coder   r   r   r   r   r   r   r   r   r   r   r      s
       HZ Z Z Z Z&. Z Z Ze e e e eI e e e"F F F F Fx, F F F
    3   <    /     r   r   )r8   pysbd.abbreviation_replacerr   pysbd.between_punctuationr   pysbd.lang.commonr   r   pysbd.punctuation_replacerr   pysbd.processorr   pysbd.utilsr	   r
   r   r   r   r   <module>r      s    				 < < < < < < 8 8 8 8 8 8 . . . . . . . . : : : : : : % % % % % % " " " " " " " "V V V V Vfh V V V V Vr   