o
    ûiB  ã                   @   sV   d Z ddlmZmZ ddlmZmZ ddddœZdd„ Zdd	„ Z	d
d„ Z
d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                 C   s   | dko| dko| dkS )NÚzhÚjaÚko© )Úlangr   r   ús/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/phonenumbers/prefix.pyÚ_may_fall_back_to_english	   s   r   c                 C   sB   |d ur|d urd| ||f S d| |f S |d urd| |f S | S )Nz%s_%s_%sú%s_%sr   )r   ÚscriptÚregionr   r   r   Ú_full_locale   s   r   c                 C   s¬   t |||ƒ}|tv rt| | v r| t|  S || v r| | S |dur0d||f }|| v r0| | S |durBd||f }|| v rB| | S || v rJ| | S t|ƒrT|  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_regionr   r   r   Ú
_find_lang   s&   r   Nc           
      C   sv   t |tjƒ}| t¡stdƒ‚t|ddƒD ]#}|dd| … }|| v r8t| | |||ƒ}	|	dur4|	  S t  S q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   N)	r   r   ÚE164Ú
startswithr   Ú	ExceptionÚranger   r   )
ÚdataÚlongest_prefixÚnumobjr   r   r   Úe164_numÚ
prefix_lenÚprefixÚnamer   r   r   Ú_prefix_description_for_number;   s   
ùr*   )NN)Ú__doc__Úutilr   r   Úphonenumberutilr   r   r   r   r   r   r*   r   r   r   r   Ú<module>   s    