
    `iQ)                        U d Z ddlZddlZddlmZ ddlmZm	Z	m
Z
mZ ddlZ	 ddlZn# e$ r	 ddlmZ Y nw xY wdededefd	Zd
ede
e         fdZ ed d          Zeed<    ed d          Zeed<    ed           Ze
e         ed<   dedefdZ G d dej        j                  Z G d de          Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z  G d d ej        j!                  Z" G d! d"ej        j                  Z# eej$        %                    ed#                    Z&eed$<    e#ej$        %                    ed%                    Z'e#ed&<    eej$        %                    ed'                    Z(eed(<    eej$        %                    ed)                    Z)eed*<    eej$        %                    ed+                    Z*eed,<    e ej$        %                    ed-                    Z+e ed.<    eej$        %                    ed/                    Z,eed0<   dS )1	pycountry    N)metadata)DictListOptionalType)	resourcespackage_or_requirementresource_namereturnc                 J    t          t          j        |           |z            S )N)strimportlib_resourcesfiles)r
   r   s     f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pycountry/__init__.pyresource_filenamer      s(    !"899MI      distribution_namec                 X    	 t          j        |           S # t           j        $ r Y dS w xY w)Nzn/a)_importlib_metadataversionPackageNotFoundError)r   s    r   get_versionr      s>    "*+<===3   uus    ))localesLOCALES_DIR	databasesDATABASE_DIR__version__	input_strc                     | }|                                  s4t          j        d|           }d                    d |D                       }|S )NNFKD c                 :    g | ]}t          j        |          |S  )unicodedata	combining).0cs     r   
<listcomp>z"remove_accents.<locals>.<listcomp>.   s(    BBB1)>q)A)ABQBBBr   )isasciir%   	normalizejoin)r   
output_str	nfkd_forms      r   remove_accentsr/   (   sY    J 
)&)<<	WWBB	BBB
 

 r   c                   V    e Zd ZdZej        j        ZdZde	de
ed                   fdZdS )ExistingCountriesz4Provides access to an ISO 3166 database (Countries).z3166-1queryr   c                     t          |                                                                          }i dddt          dd ffd}	  |                     |          d           n# t
          $ r Y nw xY wt          j                            t          |          }|D ]} ||j
        d            D ]}|j                            d	          |j                            d
          |j                            d          fD ]_}|[t          |                                          }||v r6 ||t          ddd|                    |          z  z
  g                      n`t          j                            t          |          }|D ]w}|j                            d	          }t          |                                          }||v r6 ||j
        t          dd|                    |          z
  g                     xst          |           fdt!                                          d           D             }|S )Ncountryzpycountry.db.Countrypointsr   c                 h                         | j        d           | j        xx         |z  cc<   d S Nr   )
setdefaultalpha_2)r4   r5   resultss     r   
add_resultz2ExistingCountries.search_fuzzy.<locals>.add_result@   s?    w222GO$$$.$$$$$r   2   )selfr2   1   nameofficial_namecomment            c                 H    g | ]}                     |d                    S )r   r9   getr'   xr=   s     r   r)   z2ExistingCountries.search_fuzzy.<locals>.<listcomp>r   s=     
 
 

 	 HHQqTH""
 
 
r   c                 $    | d          | d         fS NrE   r   r$   rK   s    r   <lambda>z0ExistingCountries.search_fuzzy.<locals>.<lambda>w       QqTE1Q4= r   key)r/   striplowerintlookupLookupErrorr   Subdivisionsmatchsubdivisionsr4   _fieldsrI   maxfindpartial_matchsorteditems)	r=   r2   r;   match_subdivions	candidatevpartial_match_subdivisionssorted_resultsr:   s	   `       @r   search_fuzzyzExistingCountries.search_fuzzy9   s   u{{}}224455 #%	/ 6 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
	Jt{{5))2.... 	 	 	D	 %177U 8 
 
 * 	. 	.IJy("----  	 	I !%%f--!%%o66!%%i00  
 =&qwwyy11Azz
 #
%sArQ5F/G+H'I'I    &/%;%I%IU &J &
 &
" 4 	K 	KI!%%f--Aqwwyy))Azz
9,c1a!&&--6G2H.I.IJJJ 	%e$$$
 
 
 

 GMMOO1H1HIII
 
 
 s   
A* *
A76A7N)__name__
__module____qualname____doc__r   dbCountry
data_classroot_keyr   r   r   rf   r$   r   r   r1   r1   3   s^        >>%JH@# @$t4G/H*I @ @ @ @ @ @r   r1   c                   .    e Zd ZdZej        j        ZdZdS )HistoricCountrieszcProvides access to an ISO 3166-3 database
    (Countries that have been removed from the standard).z3166-3N)	rg   rh   ri   rj   r   rk   rl   rm   rn   r$   r   r   rp   rp   |   s)        = = %JHHHr   rp   c                       e Zd ZdZdZdZdS )Scriptsz3Provides access to an ISO 15924 database (Scripts).Script15924Nrg   rh   ri   rj   rm   rn   r$   r   r   rr   rr      s        ==JHHHr   rr   c                       e Zd ZdZdZdZdS )
Currenciesz5Provides access to an ISO 4217 database (Currencies).Currency4217Nru   r$   r   r   rw   rw      s        ??JHHHr   rw   c                   "    e Zd ZdZg dZdZdZdS )	Languagesz:Provides access to an ISO 639-1/2T/3 database (Languages).)statusscopetypeinverted_namecommon_nameLanguagez639-3N)rg   rh   ri   rj   no_indexrm   rn   r$   r   r   r{   r{      s)        DDJJJHJHHHr   r{   c                       e Zd ZdZdZdZdS )LanguageFamilieszLProvides access to an ISO 639-5 database
    (Language Families and Groups).LanguageFamilyz639-5Nru   r$   r   r   r   r      s$        ' ' "JHHHr   r   c                   J     e Zd Z fdZed             Zed             Z xZS )SubdivisionHierarchyc                 F   d|v r|d         |d<   nd |d<    t                      j        di | | j                            d          d         | _        | j        C| j                            d          }|d         | j        k    r| j         d| j         | _        d S d S d S )Nparentparent_code-r   r$   )super__init__codesplitcountry_coder   )r=   kwparts	__class__s      r   r   zSubdivisionHierarchy.__init__   s    r>> "8B} $B}2 IOOC003'$**3//EQx4,,,&*&7#L#L$:J#L#L   	 (' -,r   c                 B    t                               | j                  S )NrG   )	countriesrI   r   r=   s    r   r4   zSubdivisionHierarchy.country   s    }}T%6}777r   c                 T    | j         sd S t                              | j                   S )Nr   )r   rZ   rI   r   s    r   r   zSubdivisionHierarchy.parent   s,     	4T%5666r   )rg   rh   ri   r   propertyr4   r   __classcell__r   s   @r   r   r      ss        M M M M M 8 8 X8 7 7 X7 7 7 7 7r   r   c                   l     e Zd ZeZg dZdZ fdZ fdZd Z	d Z
dedeed                   fd	Z xZS )
rX   )r?   r   r   r~   z3166-2c                 
    t                      j        |i | i | j        d<   | D ][}| j        d                             |j                                        t                                }|                    |           \d S )Nr   )r   _loadindicesr8   r   rT   setadd)r=   argsr   subdivisiondivsr   s        r   r   zSubdivisions._load   s    t"r""" (*^$ 	" 	"K</::(..00#%% D HH[!!!!		" 	"r   c                     |                     dd           } t                      j        di |}||u r'd|v r#t                              |d                   g S |S )Ndefaultr   rG   r$   )r8   r   rI   r   )r=   r   r   rZ   r   s       r   rI   zSubdivisions.get   sl    --	400"uww{((R((7""~';'; }}R%7}88D	r   c                 l   t          |                                                                          }g }t          D ]v}|j                                        D ]Z}|Vt          |                                          }|                    d          D ]}||k    r|                    |            n [w|S )N;)r/   rS   rT   rZ   r[   valuesr   append)r=   r2   matching_candidatesrb   rc   ws         r   rY   zSubdivisions.match   s    u{{}}224455 % 		" 		"I&--// " "=&qwwyy11A WWS\\ " "::/66yAAA!E &" #"r   c                 ,   t          |                                                                          }g }t          D ]V}|j                            d          }t          |                                          }||v r|                    |           W|S )Nr?   )r/   rS   rT   rZ   r[   rI   r   )r=   r2   r   rb   rc   s        r   r^   zSubdivisions.partial_match   s    u{{}}224455 % 	6 	6I!%%f--Aqwwyy))Azz#**9555""r   r2   r   c                 x    t          |                                                                          }i dddt          dd ffd}                     |          }|D ]} ||d                                |          }|D ]r}|j                            d          }t          |                                          }||v r1 ||t          dd	|	                    |          z
  g                     sst          |           fd
t                                          d           D             }|S )Nr   zpycountry.db.Subdivisionr5   r   c                 h                         | j        d           | j        xx         |z  cc<   d S r7   )r8   r   )r   r5   r:   s     r   r;   z-Subdivisions.search_fuzzy.<locals>.add_result   sC     {/333K$%%%/%%%%%r   r<   r?   rE   rB   c                 H    g | ]}                     |d                    S )r   r   rH   rJ   s     r   r)   z-Subdivisions.search_fuzzy.<locals>.<listcomp>  s=     
 
 

 	 HH!A$H
 
 
r   c                 $    | d          | d         fS rM   r$   rN   s    r   rO   z+Subdivisions.search_fuzzy.<locals>.<lambda>  rP   r   rQ   )r/   rS   rT   rU   rY   r^   r[   rI   r\   r]   rW   r_   r`   )	r=   r2   r;   match_subdivisionsrb   rd   rc   re   r:   s	   `       @r   rf   zSubdivisions.search_fuzzy   s   u{{}}224455 #%	03	0=@	0	0 	0 	0 	0 	0 	0 "ZZ..+ 	& 	&IJy"%%%% &*%7%7%>%>"3 	C 	CI!%%f--Aqwwyy))Azz
9c1a!&&--.?*@&A&ABBB 	%e$$$
 
 
 

 GMMOO1H1HIII
 
 
 r   )rg   rh   ri   r   rm   r   rn   r   rI   rY   r^   r   r   r   rf   r   r   s   @r   rX   rX      s        
 &J888HH	" 	" 	" 	" 	"	 	 	 	 	# # # 	# 	# 	#$# $$tN/C*D $ $ $ $ $ $ $ $r   rX   ziso3166-1.jsonr   ziso3166-2.jsonrZ   ziso3166-3.jsonhistoric_countriesziso4217.json
currenciesziso639-3.json	languagesziso639-5.jsonlanguage_familiesziso15924.jsonscripts)-rj   os.pathosr%   	importlibr   r   typingr   r   r   r   pycountry.dbr   r   ModuleNotFoundErrorr	   r   r   r   r   __annotations__r   r   r/   rk   Databaser1   rp   rr   rw   r{   r   Datar   rX   pathr,   r   rZ   r   r   r   r   r   r$   r   r   <module>r      sh         5 5 5 5 5 5 - - - - - - - - - - - -    ; ; ; ;::::::::;c # #    3 8C=     %$[)<<S < < <%%k;??c ? ? ?([55Xc] 5 5 5c c    F F F F F	- F F FR    )       il#       &       	%       y|,   7 7 7 7 79<, 7 7 72^ ^ ^ ^ ^9<( ^ ^ ^D  10GLL/00   	    *\GLL/00 l    ):(9GLL/00) ) %    $BGLL~$N$NOO
J O O O ylO!L!LMM	9 M M M&6&6GLL//' ' #    727<<oFFGG G G G G Gs   ( 66