
    9%i7!                     F    d dl mZmZ d dlZddlmZ dZdZ G d de      Zy)	    )divisionunicode_literalsN   )Num2Word_EU)u   dólaru   dólares)u   cêntimou	   cêntimosc                   z     e Zd ZeefeefdefdeefdZdZdZ fdZd Z	 fdZ
d	 Zd
 ZddZ	 	 d fd	Z xZS )Num2Word_PT)euroeuros))libralibras)u   pénipence)AUDCADEURGBPUSDNu   iliãoc                 F   t         t        |           g d}| j                  g g |      | _        d| _        d| _        g d| _        g d| _        g d| _	        ddd	d
ddddddd
ddddddddddd
ddddddd d!d"d#d
g| _
        d$d%d&d'd(d)| _        d*d+d,d-d.d/d0d1d2d3	| _        y )4N)quatrtrbmzmenos    vírgula)er   menos)	)  mil)d   cem)Z   noventa)P   oitenta)F   setenta)<   sessenta)2   	cinquenta)(   quarenta)   trinta)vintedezanovedezoito	dezassete	dezasseisquinzecatorzetrezedozeonzedeznoveoitoseteseiscincoquatrou   trêsdoisumzero primeirosegundoterceiroquartoquintosextou   sétimooitavonono)
r   r                        	   u   décimou	   vigésimou
   trigésimou   quadragésimou   quinquagésimou   sexagésimou   septuagésimou   octogésimou   nonagésimou
   centésimou   ducentésimou   tricentésimou   quadrigentésimou   quingentésimou   seiscentésimou   septigentésimou   octigentésimou   nongentésimou	   milésimou   milionésimou   milésimo milionésimou   bilionésimou   milésimo bilionésimo)rK   rN   rQ         centoduzentos	trezentosquatrocentos
quinhentos
seiscentos
setecentos
oitocentos
novecentos)	r   rJ   rK   rL   rM   rN   rO   rP   rQ   )superr   setupgen_high_numwordshigh_numwordsnegword	pointwordexclude_titlemid_numwordslow_numwordsordsthousand_separatorshundreds)selflows	__class__s     k/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/num2words/lang_PT.pyr^   zNum2Word_PT.setup)   s   k4&((!33BDA#7


  "# "   !"%##$#"3%
	N '($
  

    c                 :   ||z   \  }}}}|dk(  r
|dk  r|S d}n|dk(  r
|dz  dk(  sd}||k  r|dk  r|d|||z   fS |d|||z   fS |d	z  s|dkD  r	|d d
 dz   }n|dz  s|dkD  r|d d
 dz   }|dk(  rd}|dk(  r| j                   |   }d}nd|z   }||z   ||z  fS )Nr   i@B r?   r   r   r   rT   z e i ʚ;u   liõesu   lhõesu   milião   milhãorA    )rh   )ri   currnextctextcnumntextnnums          rl   mergezNum2Word_PT.mergeu   s    #'$; tUD19g~ES[!1E$;cz%*E2D4K@@!&.t<<##2J)E.dQh#2J)EIE3;MM$'EE %KEtd{++rm   c                     t         t        |   |      }dD ]X  }t        j                  dj                  |      |      s)|j                  dj                  |      dj                  |            }Z |S )N)r   rp      milhõesu   mil milhões   bilião   biliõesu   mil biliõesz.*{} e \w*entos? (?=.*e)z{} e{})r]   r   to_cardinalrematchformatreplace)ri   valueresultextrk   s       rl   r~   zNum2Word_PT.to_cardinal   sm    {D5e<7 	C xx3::3?HMM#&C(8		 rm   c                    | j                  |       g }t        |      }d}t        |d d d         D ]e  \  }}|r|dz  dk(  r| j                  |   }|dk7  r|r|j	                  |       d}|j	                  | j
                  |dz     t        |                g dj                  |d d d         }|j                         }t        j                  dd|      }|j                  d      r
|d	k7  r|d
d  }|S )NrA   rK   r   0rq   z\s+rB   1rQ   )verify_ordinalstr	enumeraterg   appendrf   intjoinstripr   sub
startswith)ri   r   r   thousand_separatoridxchars         rl   
to_ordinalzNum2Word_PT.to_ordinal   s     	E"E
"52;/ 
	9ICsQw!|%)%=%=c%B"s{1 01%'"MM$))C!G,SY78
	9 &2,'V,Z(Uc\ABZFrm   c                 .    | j                  |       d|z  S )Nu   %sº)r   )ri   r   s     rl   to_ordinal_numzNum2Word_PT.to_ordinal_num   s     	E"rm   c                 h    |dk  r| j                  t        |            dz   S | j                  |      S )Nr   z antes de Cristo)r~   abs)ri   vallongvals      rl   to_yearzNum2Word_PT.to_year   s7     7##CH-0BBB$$rm   c                    | j                   }| j                   d d | _         t        t        |   |||||      }|| _         | j                  |   \  }}	dD ]]  }
t        j                  dj                  |
|d         |      s-|j                  dj                  |
      dj                  |
      d      }_ |j                  dd	      }|S )
Nr   )currencycents	separator	adjective)rp   rz   r{   r|   u   triliãou	   triliõesz.*{} (?={})r   r}   z{} deu    e zero cêntimosrA   )	ra   r]   r   to_currencyCURRENCY_FORMSr   r   r   r   )ri   r   r   r   r   r   backup_negwordr   cr1_r   rk   s              rl   r   zNum2Word_PT.to_currency   s     ||CR({D5(%9 6 ! & $$X.Q5 	C xx,,S#a&96BKK$gnnS&91		  3R8rm   )T)r   Tz eF)__name__
__module____qualname__DOLLARCENTSr   GIGA_SUFFIXMEGA_SUFFIXr^   rx   r~   r   r   r   r   __classcell__)rk   s   @rl   r   r      sl     !5)8N KKJ
X,>4> % FJ# rm   r   )	
__future__r   r   r   lang_EUr   r   r   r    rm   rl   <module>r      s(   $ 2 	  	!U+ Urm   