o
    ph                     @   s8   d dl mZmZ d dlZddlmZ G dd deZdS )    )print_functionunicode_literalsN   )Num2Word_EUc                       sd   e Zd ZddddddZdZdZd	d
 Zdd Zdd Zdd Z			d fdd	Z
dddZ  ZS )Num2Word_DE))Euror   Centr	   ))Pfundr
   )PennyPence))Dollarr   r   ))Yuanr   )JiaoFen))Markr   )Pfennigr   )EURGBPUSDCNYDEMilliardeillionc                 C   s   d| _ d| _d| _d| _d| _d| _g | _g d}g d}g d	}d
g| ||| | _g d| _	g d| _
dddddddddddd| _d S )Nzminus KommazIDie Gleitkommazahl %s kann nicht in eine Ordnungszahl konvertiert werden.u<   Nur Zahlen (type(%s)) können in Wörter konvertiert werden.zHDie negative Zahl %s kann nicht in eine Ordnungszahl konvertiert werden.z%Die Zahl %s muss kleiner als %s sein.)	NonOktSeptSextQuintQuadrTrBM)
 unduotrequattuorquinsexseptoktonovem)	dezviginttrigint
quadragintquinquagintsexagint
septuagintoktogintnonagintzent)	)  tausend)d   hundert)Z   neunzig)P   achtzig)F   siebzig)<   sechzig)2   u   fünfzig)(   vierzig)   u   dreißig)zwanzigneunzehnachtzehnsiebzehnsechzehnu	   fünfzehnvierzehndreizehnu   zwölfelfzehnneunachtsiebensechsu   fünfvierdreizweieinsnullersdritachsiebigsertsendsionsnsrds)rX   rV   rR   rS   igertendionnenrderden)negword	pointworderrmsg_floatorderrmsg_nonnumerrmsg_negorderrmsg_toobigexclude_titlegen_high_numwordshigh_numwordsmid_numwordslow_numwordsords)selflowsunitstens r{   ]/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/num2words/lang_DE.pysetup%   s:   

zNum2Word_DE.setupc           	      C   s   || \}}}}|dkr"|dks|dkrd| |fS |dk r |S d}||krE|dkr@|dkr<| dr8|d7 }n|d	7 }|d
7 }|| }n+|d  k rT|  k rTdk rdn n|dkr\d}||d }}n|dkrl|d
7 }|| }|| }||fS )Nr   r:   r8   eini@B eineenen 
   und)endswith)	rw   currnextctextcnumntextnnumvalwordr{   r{   r|   mergeW   s0   


"zNum2Word_DE.mergec                 C   s   |  | | | }| jD ]}||r)|d t|t|  | j|  } nq|d }|dks6|dkr=|ddd}tddd	 |}td
dd	 |}|S )Nteeintausendsteeinhundertster~   r$   r   z!eine ([a-z]+(illion|illiard)ste)$c                 S   
   |  dS Nr   groupmr{   r{   r|   <lambda>      
 z(Num2Word_DE.to_ordinal.<locals>.<lambda>z ([a-z]+(illion|illiard)ste)$c                 S   r   r   r   r   r{   r{   r|   r      r   )	verify_ordinalto_cardinallowerrv   r   lenreplaceresub)rw   valueoutwordkeyresr{   r{   r|   
to_ordinalv   s"   


"zNum2Word_DE.to_ordinalc                 C   s   |  | t|d S )N.)r   str)rw   r   r{   r{   r|   to_ordinal_num   s   
zNum2Word_DE.to_ordinal_numr   T undFc                    s&   t t| j|||||d}|ddS )N)currencycents	separator	adjectivezeins zein )superr   to_currencyr   )rw   r   r   r   r   r   result	__class__r{   r|   r      s
   
zNum2Word_DE.to_currencyc                 C   s.   |d d s|  |S | j|d|dddS )Nr:   r   r;   )hightxtlongvalr   r$   )r   to_splitnumr   )rw   r   r   r{   r{   r|   to_year   s
   
zNum2Word_DE.to_year)r   Tr   F)T)__name__
__module____qualname__CURRENCY_FORMSGIGA_SUFFIXMEGA_SUFFIXr}   r   r   r   r   r   __classcell__r{   r{   r   r|   r      s"    2r   )
__future__r   r   r   lang_EUr   r   r{   r{   r{   r|   <module>   s   