
    EqgB                     P    d Z ddlmZmZ ddlmZmZ ddddZd Zd Z	d Z
dd
Zd	S )z*Utilities for handling prefix dictionaries   )U_EMPTY_STRINGU_PLUS)format_numberPhoneNumberFormatzh_Hant)zh_TWzh_HKzh_MOc                 &    | dk    o| dk    o| dk    S )Nzhjako )langs    E/var/www/html/env/lib/python3.11/site-packages/phonenumbers/prefix.py_may_fall_back_to_englishr   	   s     
 4<9DDL9TT\9    c                 B    ||
| d|d|S | d|S || d|S | S )N_r   )r   scriptregions      r   _full_localer      sR    !%vvvvv66"ddFF++		$$''r   c                 L   t          |||          }|t          v r"t          |         | v r| t          |                  S || v r| |         S ||d|}|| v r| |         S ||d|}|| v r| |         S || v r| |         S t          |          r|                     dd          S dS )zFReturn the entry in the dictionary for the given language information.Nr   en)r   _LOCALE_NORMALIZATION_MAPr   get)langdictr   r   r   full_localelang_scriptlang_regions          r   
_find_langr!      s     tVV44K000!+.(::1+>??h$$!%vv.(""K((!%vv.(""K((x~ && ||D$'''tr   Nc                 .   t          |t          j                  }|                    t                    st          d          t          |dd          D ]:}|dd|z            }|| v r't          | |         |||          }	|	|	c S t          c S ;t          S )aG  Return a text description of a PhoneNumber for the given language.

    Arguments:
    data -- Prefix dictionary to lookup up number in.
    longest_prefix -- Length of the longest key in data.
    numobj -- The PhoneNumber object for which we want to get a text description.
    lang -- A 2-letter lowercase ISO 639-1 language code for the language in
                  which the description should be returned (e.g. "en")
    script -- A 4-letter titlecase (first letter uppercase, rest lowercase)
                  ISO script code as defined in ISO 15924, separated by an
                  underscore (e.g. "Hant")
    region --  A 2-letter uppercase ISO 3166-1 country code (e.g. "GB")

    Returns a text description in the given language code, for the given phone
    number's area, or an empty string if no description is available.z"Expect E164 number to start with +    r   )	r   r   E164
startswithr   	Exceptionranger!   r   )
datalongest_prefixnumobjr   r   r   e164_num
prefix_lenprefixnames
             r   _prefix_description_for_numberr0   ;   s      V%6%;<<Hv&& > <===NAr22 	& 	&
!Q^,-T>> d6lD&&AAD%%%%  r   )NN)__doc__utilr   r   phonenumberutilr   r   r   r   r   r!   r0   r   r   r   <module>r4      s    0 0 ( ( ( ( ( ( ( ( = = = = = = = =&/)iXX : : :	 	 	  <     r   