o
    |¨Êh/]  ã                &   @   sÄ  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d€ed�ed‚edƒed„ed…ed†edhed‡edji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d�ed�ed‘ed’ed“ed”ed•id˜œZd™dš„ ed› D ƒedœ< d�edœ e< d5edœ e< d6edœ e< ed  ¡ edž< dŸedž e
< ed   ¡ ed¡< d¢ed¡ e
< d£d¤„ ZG d¥d¦„ d¦eƒZG d§d¨„ d¨ej ƒZ!d©S )ªé    )Ú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)ÚeinrE   )ÚittaÚeitta)ÚeinerH   )r/   Úet)Úenr2   )Úear3   )Úessar5   )Úestar7   )Úeenr9   )Úellar;   )Úeltar=   )Úeller?   )ÚenarA   )ÚeksirC   )r1   r1   )ÚettarF   )ÚinerU   )ÚerI   )rJ   )ÚejenrE   )rK   r4   )rL   r6   )rM   r8   )rN   r:   )rO   r<   )rP   r>   )rQ   r@   )rR   rB   )rS   rD   )rT   rG   )ÚtaÚdat)Údan)ÚtojenÚtain)ÚtaaÚtoja)ÚdassaÚdoissa)ÚdastaÚdoista)ÚtaanÚtoihin)ÚdallaÚdoilla)ÚdaltaÚdoilta)ÚdalleÚdoille)ÚtanaÚtoina)ÚdaksiÚdoiksi)Údoinro   )ÚdattaÚdoitta)Útoinerr   )r,   Úat)Úan)r2   Úain)Úaar3   )Úassar5   )Úastar7   )Úaanr9   )Úallar;   )Úaltar=   )Úaller?   )ÚanarA   )ÚaksirC   )ÚattarF   )Ú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´   )Ú rI   )rJ   )r2   Úten)rX   r3   )Ú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   é   é   é    é&   é-   é.   c                 C   s.   i | ]}|t d  | d t d | d f“qS )râ   r   rá   r   )Ú
KOTUS_TYPE)Ú.0Úc© rí   úC/var/www/html/env/lib/python3.10/site-packages/num2words/lang_FI.pyÚ
<dictcomp>L  s     ÿÿrï   râ   él   )rJ   r1   én   )rt   rs   ræ   é„   )rJ   rI   c                 C   s   t | tƒs| g} d}| D ]q}t |tƒs||7 }q|j}t|ƒdkr3|jtkr-|js-|d }|d d… }|\}}t| | |j }t |tƒr`t|ƒt|j	pNtƒ ƒ@ }t|ƒdkr\| 
¡ }n|d }ttƒt|ƒ@ swt ¡ D ]
\}	}
| |	|
¡}ql||| 7 }q|S )Nrµ   é   é   r   r   )Ú
isinstanceÚlistÚtupleÚcaseÚlenÚNOMÚpluralrê   r¸   ÚpreferÚpopÚBACK_TO_FRONTÚitemsÚreplace)ÚpartsÚoptionsÚoutÚpartÚtmp_caseÚstemÚ
kotus_typeÚsuffixÚcommonÚbackÚfrontrí   rí   rî   Úinflect]  s0   



r  c                   @   s   e Zd Zdd„ Zddd„ZdS )ÚOptionsc                 C   s   || _ || _|| _|| _d S ©N)Úordinalrø   rû   rü   ©Úselfr  rø   rû   rü   rí   rí   rî   Ú__init__ƒ  s   
zOptions.__init__Nc                 C   sH   t |d ur|n| j|d ur|n| j|d ur|n| j|d ur |ƒS | jƒS r  )r  r  rø   rû   rü   r  rí   rí   rî   Ú	variation‰  s   
üüzOptions.variation)NNNN)Ú__name__Ú
__module__Ú__qualname__r  r  rí   rí   rí   rî   r  ‚  s    r  c                       s|  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< qdD ]Zdefee< q'dD ]Zdee< q2i 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<d=„Zd>d?„ Z	d@dA„ Z
dBdC„ ZdDdE„ Z‡ fdFdG„ZdHdI„ Zd^dMdN„Zd^dOdP„Zd_dQdR„Zd`dTdU„Z	W	Kda‡ fdXdY„	ZdZd[„ Zd\d]„ Z‡  ZS )bÚ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Ã¤rO  Ú
Australianr<  Ú	BrasilianrP  ÚKanadanr=  ÚSveitsinrI  ÚTanskanr@  ÚSuomenrW  Ú	EnglanninrQ  Ú
HongkonginrA  ÚIntianrJ  ÚIslanninrC  u   EtelÃ¤-KoreanrD  zPohjois-KoreanrE  ÚMeksikonrK  ÚNorjanrR  zUuden-SeelanninrF  u	   VenÃ¤jÃ¤nrL  ÚRuotsinÚ
SingaporenÚTurkinÚYhdysvaltainu   EtelÃ¤-Afrikan)rS  rG  rT  rH  c                    s   t ƒ | _tt| ƒ ¡  d S r  )r   ÚordsÚsuperr  r  ©r  ©Ú	__class__rí   rî   r  È  s   zNum2Word_FI.__init__c                 C   s0   |   | j¡ |  | j| j¡ |  | j| j¡ d S r  )Úset_high_numwordsÚhigh_numwordsÚset_mid_numwordsÚmid_numwordsÚmid_ordsÚset_low_numwordsÚlow_numwordsÚlow_ordsrm  rí   rí   rî   Úset_numwordsÌ  s   zNum2Word_FI.set_numwordsc           
      C   s\  g d¢}g }t |ƒD ]i\}}| d¡r|dkr| dd¡}nA| d¡r2|dkr2d|tdƒd …  }n-| d¡rH||d  }d	|tdƒd …  }n| d
¡r_||d  }d|td
ƒd d …  }|D ]}| |d |d ¡}qa| |¡ q
dt|ƒ }t|t|ddƒƒD ](\}}	|	dkr•d| jd< d| jd< |d df| jd|	 < |d df| jd|	 < qƒd S )N))ÚquÚkv)ÚxÚks)rì   Ú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Úcardsrk  )
r  ÚhighÚreplacementsÚ
translatedr/   ÚnumwordÚreplÚmaxÚwordÚnrí   rí   rî   rp  Ñ  s0   



úzNum2Word_FI.set_high_numwordsc                 C   ó4   |D ]	\}}|| j |< q|D ]	\}}|| j|< qd S r  ©r“  rk  ©r  r“  rk  ÚkeyÚvalrí   rí   rî   rr    ó
   ÿzNum2Word_FI.set_mid_numwordsc                 C   rœ  r  r�  rž  rí   rí   rî   ru    r¡  zNum2Word_FI.set_low_numwordsc                    sø  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| _
d S )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è   )rl  r  ÚsetupÚnegwordÚ	pointwordÚexclude_titleÚPTVrs  rt  rv  rw  rm  rn  rí   rî   rÙ    sˆ   
÷






÷








ë










ëzNum2Word_FI.setupc           
      C   sÞ   |\}}|\}}d}|dkrt ||ƒ}||fS ||kr5t ||ƒ}t ||ƒ}|dkr+d}|||f || fS ||k rm|jrH|dkrBd}t ||ƒ}n|j}	|jtkrU|jsUt}	t ||j|	d�ƒ}t ||ƒ}|||f || fS d S )Nz%s%sr   r¤  z%s %srô   rÔ  )rø   )r  r  rø   rú   rû   rÝ  r  )
r  ÚlpairÚrpairr  ÚltextÚlnumÚrtextÚrnumÚfmtÚrcaserí   rí   rî   Úmerge\  s0   



ózNum2Word_FI.merger   FNc           
   
   C   sÀ   t | }td|||ƒ}z
t|ƒ|ksJ ‚W n tttfy.   |tkr'tdƒ‚|  |¡ Y S w d}|dk r<t	|ƒ}| j
}|| jkrKt| j|| jf ƒ‚|  ||¡}|  ||¡\}}	|  || ¡S )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Únumrí   rí   rî   Úto_cardinal~  s(   ÿû
zNum2Word_FI.to_cardinalc           	      C   sd   t | }td|||ƒ}|  |¡ || jkrt| j|| jf ƒ‚|  ||¡}|  ||¡\}}|  |¡S ©NT)	rç  r  Úverify_ordinalrï  rð  rñ  rò  ró  rô  )	r  rõ  rø   rû   rü   r  r   rö  r÷  rí   rí   rî   Ú
to_ordinal–  s   


zNum2Word_FI.to_ordinalc                 C   s   t | }t‚r  )rç  rì  )r  rõ  rø   rû   rí   rí   rî   Úto_ordinal_num¢  s   zNum2Word_FI.to_ordinal_numTc                 C   s6   |pd}|dk rt |ƒ}|pd}|  |¡ dd¡| S )Nrµ   r   z ennen ajanlaskun alkuaú )rî  rø  r   )r  r   r  Úlongvalrí   rí   rî   Úto_year¦  s
   zNum2Word_FI.to_yearr?  ú jac                    s   t t| ƒj|||||d�S )N)ÚcurrencyÚcentsÚ	seperatorÚ	adjective)rl  r  Úto_currency)r  r   r  r  r  r  rn  rí   rî   r  ­  s   
þzNum2Word_FI.to_currencyc                 C   sÌ   |j r| jn| j}|D ]X}||krqg }|dkrd\}}nt||ƒ\}}|dkr2| |d df¡ n||krC|||  || fg  S | |  ||¡¡ | || |f¡ |r`| |  ||¡¡ |  S d S )Nr   )r   r   r   )r  rk  r“  Údivmodr�  rò  )r  rõ  r  ÚelemsÚelemr  ÚdivÚmodrí   rí   rî   rò  ³  s$   
êzNum2Word_FI.splitnumc                 C   sÒ   |}t |ƒdkreg }|d d… \}}t|tƒr6t|tƒr6| |  |||¡¡ |dd … r5| |dd … ¡ n'|D ]$}t|tƒrWt |ƒdkrM| |d ¡ q8| |  ||¡¡ q8| |¡ q8|}t |ƒdks|d S )Nr   rô   r   )rù   rõ   r÷   r�  ræ  rö   ró  )r  r   r  r  ÚleftÚrightr  rí   rí   rî   ró  Í  s$   €
ðzNum2Word_FI.clean)r   FN)r   Frù  )r?  Tr   F)r  r  r  ÚGENERIC_CENTAVOSÚGENERIC_CENTSÚCURRENCY_FORMSÚ	curr_codeÚCURRENCY_ADJECTIVESr  rx  rp  rr  ru  rÙ  ræ  rø  rû  rü  rÿ  r  rò  ró  Ú__classcell__rí   rí   rn  rî   r  ’  sœ    ó

ÿ
ÿþýüûúùø	÷
öõôóòñðïë0O
"


ÿ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í   rí   rí   rî   Ú<module>   s¼  ñýííííííííííí �–  
þ%