
    %i/]              &       v   d dl mZmZmZ d dlmZ ddlmZ dZdZ	dZ
dZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZe
eeeeeeeeeeeeeedZddddZe
dededededed ed!ed"ed#ed$ed%ed&ed'ed(ie
d)ed*ed+ed,ed-ed.ed/ed0ed1ed2ed3ed4ed5ed6ie
d7ed8ed9ed:ed;ed<ed=ed>ed?ed@edAed&edBed(ie
dCedDedEedFedGedHedIedJedKedLedMedNedOedPie
dQedRedSedTedUedVedWedXedYedZed[ed4ed\ed6ie
d]ed^ed_ed`edaedbedceddedeedfedgedhediedjie
dkedledmednedoedpedqedredsedteduedvedwedxie
dyedzed{ed,ed-ed.ed/ed0ed1ed2ed3ed4ed5ed6ie
d|ed}ed~edededededededededhededjie
dedededededededededededededie
dedededededededededededededidZed   D  ci c]  } | ed   |    d    ed   |    d   f c} ed<   ded   e<   d5ed   e<   d6ed   e<   ed   j9                         ed<   ded   e
<   ed   j9                         ed<   ded   e
<   d Z G d de      Z G d dej@                        Z!yc c} w )    )divisionprint_functionunicode_literals)OrderedDict   )lang_EU)senttiu   senttiä)centavocentavoa
                                             )
nominativegenitive
accusative	partitiveinessiveelativeillativeadessiveablativeallativeessivetranslativeinstructiveabessive
comitative   ä   öy)aou)iit)inien)iaeja)issaeissa)istaeista)iineihin)illaeilla)iltaeilta)illeeille)inaeina)iksieiksi)einrF   )ittaeitta)einerI   )r0   et)enr3   )ear4   )essar6   )estar8   )eenr:   )ellar<   )eltar>   )eller@   )enarB   )eksirD   )r2   r2   )ettarG   )inerV   )erJ   )rK   )ejenrF   )rL   r5   )rM   r7   )rN   r9   )rO   r;   )rP   r=   )rQ   r?   )rR   rA   )rS   rC   )rT   rE   )rU   rH   )tadat)dan)tojentain)taatoja)dassadoissa)dastadoista)taantoihin)dalladoilla)daltadoilta)dalledoille)tanatoina)daksidoiksi)doinrp   )dattadoitta)toiners   )r-   at)an)r3   ain)aar4   )assar6   )astar8   )aanr:   )allar<   )altar>   )aller@   )anarB   )aksirD   )attarG   )sidet)den)sientten)ttasia)dessasissa)destasista)teensiin)dellasilla)deltasilta)dellesille)tenasina)deksisiksi)sinr   )dettasitta)siner   )ksihdet)hdenksien)htaksia)hdessaksissa)hdestaksista)hteenksiin)hdellaksilla)hdeltaksilta)hdelleksille)htenaksina)hdeksiksiksi)ksinr   )hdettaksitta)ksiner   ) rJ   )rK   )r3   ten)rY   r4   )nenset)sen)stenr   )star   )sessar   )sestar   )seenr   )sellar   )seltar   )seller   )senar   )seksir   )settar   )snnet)nnennsien)r   nsia)nnessansissa)nnestansista)nteennsiin)nnellansilla)nneltansilta)nnellensille)ntenansina)nneksinsiksi)nsinr   )nnettansitta)nsiner   )tr   )r   )r   nten)         m   r             &   -   .   r   r   l   )rK   r2   n   )ru   rt   r      )rK   rJ   c                    t        | t              s| g} d}| D ],  }t        |t              s||z  }|j                  }t	        |      dk(  r)|j                  t
        k(  r|j                  s|d   }|d d }|\  }}t        |   |   |j                     }t        |t              rQt        |      t        |j                  xs
 t                     z  }t	        |      dk(  r|j                         }n|d   }t        t              t        |      z  s.t        j                         D ]  \  }	}
|j                  |	|
      } |||z   z  }/ |S )Nr         r   r   )
isinstancelisttuplecaselenNOMplural
KOTUS_TYPEr   preferpopBACK_TO_FRONTitemsreplace)partsoptionsoutparttmp_casestem
kotus_typesuffixcommonbackfronts              o/var/www/html/navyabakers_fullstack/navyabakers_prod/venv_new/lib/python3.12/site-packages/num2words/lang_FI.pyinflectr
  ]  s5   eT"
C $&4KC<<t9>||s"7>>78DjJ'1'..Afe$[3w~~'>#??F6{a=!CI-,224 5ee45 	tf}7: J    c                       e Zd Zd ZddZy)Optionsc                 <    || _         || _        || _        || _        y N)ordinalr   r   r   selfr  r   r   r   s        r	  __init__zOptions.__init__  s    	r  Nc                     t        ||n| j                  ||n| j                  ||n| j                  ||      S | j                        S r  )r  r  r   r   r   r  s        r	  	variationzOptions.variation  sT    *G$D$))(Fdkk(F	
 	
 /3kk	
 	
r  )NNNN)__name__
__module____qualname__r  r   r  r	  r  r    s    
r  r  c                   v    e Zd Zdefdddefddddd	d
efdddefdZdD ]  Zdee<   	 dD ]	  Zdefee<    dD ]  Zdee<   	 i 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/d0d1d2d3d4d5d6d7d8d9d:d;Z fd<Zd= Z	d> Z
d? Zd@ Z fdAZdB ZdJdCZdJdDZdKdEZdLdFZ	 	 dM fdG	ZdH ZdI Z xZS )NNum2Word_FI)realrealia))frangifrangia)rappenrappenia))juanjuania)fenu   feniä)euroeuroa))markkamarkkaa)penniu   penniä))rupiarupiaa)paisapaisaa))jeniu   jeniä)r   u   seniä)wonwonia)jeonjeonia)r/  )chonchonia)pesopesoa))ruplaruplaa)kopeekka	kopeekkaa))liiraliiraa)u   kuruşu   kuruşia)randirandia)BRLCHFCNYEURFIMINRJPYKRWKPWMXNRUBTRYZAR)DKKISKNOKSEK))kruunukruunua)u   äyriu   äyriä)AUDCADHKDNZDSGDUSD)dollaridollaria)GBP))puntapuntaa)pennyu   pennyärS  
Australianr@  	BrasilianrT  KanadanrA  SveitsinrM  TanskanrD  Suomenr[  	EnglanninrU  
HongkonginrE  IntianrN  IslanninrG  u   Etelä-KoreanrH  zPohjois-KoreanrI  MeksikonrO  NorjanrV  zUuden-SeelanninrJ  u	   VenäjänrP  Ruotsin
SingaporenTurkinYhdysvaltainu   Etelä-Afrikan)rW  rK  rX  rL  c                 H    t               | _        t        t        |           y r  )r   ordssuperr  r  r  	__class__s    r	  r  zNum2Word_FI.__init__  s    M	k4)+r  c                     | j                  | j                         | j                  | j                  | j                         | j                  | j                  | j                         y r  )set_high_numwordshigh_numwordsset_mid_numwordsmid_numwordsmid_ordsset_low_numwordslow_numwordslow_ords)r  s    r	  set_numwordszNum2Word_FI.set_numwords  sJ    t112d//?d//?r  c                    g d}g }t        |      D ]  \  }}|j                  d      r|dk7  r|j                  dd      }n|j                  d      r|dk7  rd|t        d      d  z   }nX|j                  d      r||dz      }d	|t        d      d  z   }n-|j                  d
      r||dz      }d|t        d
      dz   d  z   }|D ]  }|j                  |d   |d         } |j	                  |        dt        |      z  }t        |t        |dd            D ]V  \  }}	|	dk(  rd| j                  d<   d| j                  d<   |dz   df| j                  d|	z  <   |dz   df| j                  d|	z  <   X y )N))qukv)xks)ck)kentsentsexsextseseptseptenoctoiduodenoveunder   r      i)miljardr   i ʚ;)miljardir   iljoonr   iljoonar   )		enumerate
startswithr   r   appendziprangecardsrp  )
r  highreplacements
translatedr0   numwordreplmaxwordns
             r	  ru  zNum2Word_FI.set_high_numwords  s   
 
#D/ 	'JAw !!%(W->!//%6##F+60A"WS[\%:: ##F+q3w-!GCKL$99##F+q3w- 73v;?+;#<< % <!//$q'47;<g&1	'4 #j/!:uS!R'89 	8GD!Av&4

7#%5		'"#'(?B"7DJJrQw"&"2B!7DIIbAg	8r  c                 h    |D ]  \  }}|| j                   |<    |D ]  \  }}|| j                  |<    y r  r  rp  r  r  rp  keyvals        r	  rw  zNum2Word_FI.set_mid_numwords  B     	"HC!DJJsO	" 	!HC DIIcN	!r  c                 h    |D ]  \  }}|| j                   |<    |D ]  \  }}|| j                  |<    y r  r  r  s        r	  rz  zNum2Word_FI.set_low_numwords  r  r  c                    t         t        |           d| _        d| _        ddg| _        dddddd	t        fgfd
ddd	t        fgfdddd	t        fgfdddd	t        fgfdddd	t        fgfdddd	t        fgfdddd	t        fgfg	| _        dddddgfd
ddgfdddgfdddgfdddgfdddgfdddgfg	| _        d d!dd	t        fgfd"dd#gfd$dd#gfd%dd#gfd&dd#gfd'dd#gfd(dd#gfd)dd#gfd*d!d#gfd+d,d#gfd-d.d/d0d1d2d3d4d5d6d7g| _	        d d8dgfd"dd#gfd$dd#gfd%dd#gfd&dd#gfd'dd#gfd(dd#gfd)dd#gfd*d8d#gfd+d9d#gfd:d;d<d=d>d?d@dAdBdCdDg| _
        y )ENzmiinus pilkkumiinus)  )tuhar   )d   )sar   Z   yhdeksr   kymmenr   P   kahdeksr   F   seitsemr   <   kuur   2   viir   (   neljr      kolmr   )r  )tuhanner   )r  )sadar   u   yhdeksär   kymmener   kahdeksar   u	   seitsemär   kuuder   viider   u   neljär   kolmar   r   kar   r   toistar   r   r   r   r   r   r   r   r,   r   )r   )r  r   )	   r  )r   r  )r   r  )r  r  )r   r  )   r  )r   r  )r   r  )r   r  )r   )nollr   kahder   )yhder   )r   r  )r  r  )r   r  )r   r  )r  r  )r   r  )r  r  )r   r  )r   )toir   )r   )u	   ensimmäir   )r   )nollar   )rq  r  setupnegword	pointwordexclude_titlePTVrx  ry  r{  r|  rr  s    r	  r  zNum2Word_FI.setup  s   k4&( !&1 !/Hc3#789"XsC$89:"XsC$89:+#s345+#s345,3 456-(C!567

 $"O45"O45#_56-12-12./23-12

 *xc234/8,-"H-."H-.+x()+x(),)*-*+*h'()X&'! !!+
2 -12"H-."H-.#X./-*+-*+.(+,-*+-*+,)*!!!""+
r  c                    |\  }}|\  }}d}|dk(  rt        ||      }||fS ||kD  r+t        ||      }t        ||      }|dk\  rd}|||fz  ||z   fS ||k  r|j                  r|dk(  rd}t        ||      }nM|j                  }	|j                  t        k(  r|j                  st
        }	t        ||j                  |	            }t        ||      }|||fz  ||z  fS y )Nz%s%sr   r  z%s %sr   r  )r   )r
  r  r   r   r   r  r  )
r  lpairrpairr   ltextlnumrtextrnumfmtrcases
             r	  mergezNum2Word_FI.merge\  s   tt 19E7+E4= D[E7+EE7+Et|5%.($+66D[19)Ew/  <<3&w~~Ew'8'8e'8'DEE7+E5%.($+66 r  c                    t         |   }t        d|||      }	 t        |      |k(  sJ 	 d}|dk  rt        |      }| j                  }|| j                  k\  r$t        | j                  || j                  fz        | j                  ||      }| j                  ||      \  }}	| j!                  ||z         S # t        t        t
        f$ r( |t        k7  rt        d      | j                  |      cY S w xY w)NFzTCases other than nominative are not implemented for cardinal floating point numbers.r   r   )NAME_TO_CASEr  int
ValueError	TypeErrorAssertionErrorr   NotImplementedErrorto_cardinal_floatabsr  MAXVALOverflowErrorerrmsg_toobigsplitnumcleantitle)
r  valuer   r   r   r   r   r  wordsnums
             r	  to_cardinalzNum2Word_FI.to_cardinal~  s    D!%vv6	1u:&&& 19JE,,CDKK 2 2eT[[5I IJJmmE7+ZZW-
szz#+&&# I~6 	1s{)78 8 ))%00	1s   B6 69C21C2c                 (   t         |   }t        d|||      }| j                  |       || j                  k\  r$t	        | j
                  || j                  fz        | j                  ||      }| j                  ||      \  }}| j                  |      S NT)	r  r  verify_ordinalr  r  r  r  r  r  )	r  r   r   r   r   r   r  r  r  s	            r	  
to_ordinalzNum2Word_FI.to_ordinal  s    D!$ff5E"DKK 2 2eT[[5I IJJmmE7+ZZW-
szz%  r  c                      t         |   }t        r  )r  r  )r  r   r   r   s       r	  to_ordinal_numzNum2Word_FI.to_ordinal_num  s    D!!!r  c                     |xs d}|dk  rt        |      }|xs d}| j                  |      j                  dd      |z   S )Nr   r   z ennen ajanlaskun alkua )r  r  r   )r  r  r  longvals       r	  to_yearzNum2Word_FI.to_year  sI    27c(C88F$,,S"5>>r  c                 4    t         t        |   |||||      S )N)currencycents	separator	adjective)rq  r  to_currency)r  r  r  r  r  r  rs  s         r	  r  zNum2Word_FI.to_currency  s(    [$3(%9 4 ! 	!r  c                    |j                   r| j                  n| j                  }|D ]  }||kD  r	g }|dk(  rd\  }}nt        ||      \  }}|dk(  r|j	                  |d   df       n6||k(  r|||   z  ||z  fgc S |j	                  | j                  ||             |j	                  ||   |f       |r!|j	                  | j                  ||             |c S  y )Nr   )r   r   r   )r  rp  r  divmodr  r  )r  r   r   elemselemr   divmods           r	  r  zNum2Word_FI.splitnum  s    $__		$** 	De|CzS!%.Sax

E!Ha=)%< 5;.D9::

4==g67JJdT*+

4==g67J-	r  c                    |}t        |      dk7  rg }|d d \  }}t        |t              rLt        |t              r<|j                  | j	                  |||             |dd  r|j                  |dd         nm|D ]h  }t        |t
              rEt        |      dk(  r|j                  |d          6|j                  | j                  ||             X|j                  |       j |}t        |      dk7  r|d   S )Nr   r   r   )r   r   r   r  r  r   r  )r  r  r   r   leftrightr  s          r	  r  zNum2Word_FI.clean  s    #h!mCbq'KD%$&:eU+C

4::dE7;<qr7JJs12w' )D!$-t9>JJtAw/JJtzz$'@A

4() C! #h!m" 1vr  )r   FN)r   Fr  )rC  Tz jaF)r  r  r  GENERIC_CENTAVOSGENERIC_CENTSCURRENCY_FORMS	curr_codeCURRENCY_ADJECTIVESr  r}  ru  rw  rz  r  r  r  r  r	  r  r  r  r  __classcell__)rs  s   @r	  r  r    s   "$45>6!=1<9655!#34?<#]3N" 0 R	$Qy!R > 4	#]%4y!4
  P	$Oy!P|{ 	y 	z	
 	y 	x 	{ 	| 	x 	z 	 	 	z 	x 	   	{!" 	y#$ +0,@
.8`!!M
^ 7D'0
!"? FK#!4r  r  N)"
__future__r   r   r   collectionsr   r   r   r  r  r   GENACCr  INEELAILLADEABLALLESSTRANSLINSTRUCABECOMr  r   r   copyr
  objectr  Num2Word_EUr  )r  s   0r	  <module>r5     si  $ B A # &*  		
 ( 
		 	[]]_!'2 	[]\^^ ^'2 	[$]_!'2 	]'_     #! '
2 	[#\^^ ^'	2 	]&^"'	2 	__!!!!!$!!'	2 	Z#\^^ ^'	2 	^&^"'	2 	]_!!!!!$!!'	2 	](_!!!!!$!!'	S~
F ]	 
1aZ]1-a011
3 (
3 '
3 %
3  R.%%'
3#
3  R.%%'
3#
3 "J
f 
 N'%% NMs   H6