
    Eqg>                         d Z ddlZddlmZmZmZ ddlmZmZmZm	Z	  ed          Z
 G d dee          Z G d	 d
ee          Zd Z G d dee          ZdS )z PhoneMetadata object definitions    N   )UnicodeMixinImmutableMixinmutating_method)uunicodrprforce_unicode001c                   T    e Zd ZdZe	 	 	 	 	 	 d	d            Zd Zd Zd Zd Z	d Z
dS )
NumberFormatzERepresentation of way that a phone number can be formatted for outputNc                    t          |          | _        t          |          | _        g | _        |d |D             | _        t          |          | _        |t          |          | _        nd | _        t          |          | _        d S )Nc                 ,    g | ]}t          |          S  )r
   ).0ps     L/var/www/html/env/lib/python3.11/site-packages/phonenumbers/phonemetadata.py
<listcomp>z)NumberFormat.__init__.<locals>.<listcomp>D   s     *\*\*\=+;+;*\*\*\    )r
   patternformatleading_digits_patternnational_prefix_formatting_rulebool(national_prefix_optional_when_formatting%domestic_carrier_code_formatting_rule)selfr   r   r   r   r   r   s          r   __init__zNumberFormat.__init__   s     %W-- $F++$ ')#!-*\*\E[*\*\*\D'& 0==\/]/], 4?<@Ai<j<jD99<@D9 6CCh5i5i222r   c                    |j         |j         | _         |j        |j        | _        | j                            |j                   |j        |j        | _        |j        |j        | _        |j        |j        | _        dS dS )zAMerge information from another NumberFormat object into this one.N)r   r   r   extendr   r   r   r   others     r   
merge_fromzNumberFormat.merge_froml   s    =$ =DL<#,DK#**5+GHHH0<383XD09E<A<jD96B9>9dD666 CBr   c                 p    t          |t                    sdS t          |           t          |          k    S NF)
isinstancer   reprr!   s     r   __eq__zNumberFormat.__eq__z   s0    %.. 	5T

d5kk)*r   c                 .    |                      |           S Nr(   r!   s     r   __ne__zNumberFormat.__ne__       ;;u%%%%r   c                      t          |           S r*   strr   s    r   __repr__zNumberFormat.__repr__       4yyr   c                 D   t          d          t          | j                  t          | j                  fz  }| j        rD|t          d          t          d                              d | j        D                       z  z  }| j        '|t          d          t          | j                  z  z  }| j        '|t          d          t          | j                  z  z  }| j	        '|t          d          t          | j	                  z  z  }|t          d          z  }|S )	Nz"NumberFormat(pattern=%s, format=%sz, leading_digits_pattern=[%s], c                 ,    g | ]}t          |          S r   )r	   )r   lds     r   r   z,NumberFormat.__unicode__.<locals>.<listcomp>   s    )X)X)Xb#b'')X)X)Xr   z$, national_prefix_formatting_rule=%sz-, national_prefix_optional_when_formatting=%sz*, domestic_carrier_code_formatting_rule=%s))
r   r	   r   r   r   joinr   r   r0   r   r   results     r   __unicode__zNumberFormat.__unicode__   s2    <==T\ARARTWX\XcTdTd@ee& 	[v=>>d||(()X)XD<W)X)X)XYYZ [F/;fCDDs4KoGpGpppF8DfLMMPSTX  UB  QC  QC  C  CF5AfIJJSQUQ{M|M|||F&++r   )NNNNNN__name__
__module____qualname____doc__r   r   r#   r(   r,   r2   r<   r   r   r   r   r      s        OO(,15:>7;Mj Mj Mj _Mj^e e e+ + +
& & &      r   r   c                   P    e Zd ZdZe	 	 	 	 d	d            Zd Zd Zd Zd Z	d Z
dS )
PhoneNumberDescz=Class representing the description of a set of phone numbers.Nc                     t          |          | _        t          |          | _        |d}|| _        |d}|| _        d S )Nr   )r
   national_number_patternexample_numberpossible_lengthpossible_length_local_only)r   rE   rF   rG   rH   s        r   r   zPhoneNumberDesc.__init__   sX     (55L'M'M$ ,N;; " O. &-)+&*D'''r   c                 V    |j         |j         | _         |j        |j        | _        dS dS )zDMerge information from another PhoneNumberDesc object into this one.N)rE   rF   r!   s     r   r#   zPhoneNumberDesc.merge_from   s8    (4+0+HD(+"'"6D ,+r   c                 p    t          |t                    sdS t          |           t          |          k    S r%   )r&   rC   r'   r!   s     r   r(   zPhoneNumberDesc.__eq__   s0    %11 	5T

d5kk)*r   c                 .    |                      |           S r*   r+   r!   s     r   r,   zPhoneNumberDesc.__ne__   r-   r   c                      t          |           S r*   r/   r1   s    r   r2   zPhoneNumberDesc.__repr__   r3   r   c                 ^   t          d          }t          d          }| j        8|t          d          |t          | j                  fz  z  }t          d          }| j        8|t          d          |t          | j                  fz  z  }t          d          }| j        r8|t          d          |t          | j                  fz  z  }t          d          }| j        r8|t          d          |t          | j                  fz  z  }t          d          }|t          d          z  }|S )	NzPhoneNumberDesc( z%snational_number_pattern=%sr5   z%sexample_number=%sz%spossible_length=%sz%spossible_length_local_only=%sr8   )r   rE   r	   rF   rG   tuplerH   )r   r;   seps      r   r<   zPhoneNumberDesc.__unicode__   s$   *++Rjj'3f;<<SIeEfEf?gggF,,C*f233sC@S<T<T6UUUF,,C 	f344U4CW=X=X7YYYF,,C* 	f>??3dNmHnHnBoooF,,C&++r   )NNNNr=   r   r   r   rC   rC      s        GG)- $!%,0	'E 'E 'E _'ER7 7 7+ + +
& & &      r   rC   c                 :    | |dS | |dS | j         |j         k    S )NTF)rE   )leftrights     r   _same_patternrT      s/    |t|u}u(E,IIJr   c                   n   e Zd ZdZ ej                    Zi Zi Zi Z	i Z
i Zi Zedd            Zedd            Zedd            Zed             Zed             Zed             Zed	             Zed
             Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd            Zd Zd Zd Zd ZdS )PhoneMetadataa8  Class representing metadata for international telephone numbers for a region.

    This class is hand created based on phonemetadata.proto. Please refer to that file
    for detailed descriptions of the meaning of each field.

    WARNING: This API isn't stable. It is considered libphonenumber-internal
    and can change at any time. We only declare it as public for easy
    inclusion in our build tools not in this package.  Clients should not
    refer to this file, we do not commit to support backwards-compatibility or
    to warn about breaking changes.

    Nc                     | j                             |d           }|G| j                                          ||           d | j         |<   | j                                         | j                            ||          S r*   )_region_availableget_metadata_lockacquirerelease_region_metadataklsregion_codedefaultloaders       r   metadata_for_regionz!PhoneMetadata.metadata_for_region  s    &**;==&&(((F;15C!+.&&(((#''W===r   c                     | j                             |d           }|G| j                                          ||           d | j         |<   | j                                         | j                            ||          S r*   )_short_region_availablerY   rZ   r[   r\   _short_region_metadatar^   s       r   short_metadata_for_regionz'PhoneMetadata.short_metadata_for_region  s    ,00dCC&&(((F;7;C'4&&((()--k7CCCr   c                     | j                             |d           }|G| j                                          ||           d | j         |<   | j                                         | j                            ||          S r*   )_country_code_availablerY   rZ   r[   r\   _country_code_metadata)r_   country_codera   rb   s       r   metadata_for_nongeo_regionz(PhoneMetadata.metadata_for_nongeo_region)  s    ,00tDD&&(((F<   8<C'5&&((()--lGDDDr   c                 p    |t           k    r|                     |d           S |                     |d           S r*   )REGION_CODE_FOR_NON_GEO_ENTITYrl   rc   )r_   country_calling_coder`   s      r   #metadata_for_region_or_calling_codez1PhoneMetadata.metadata_for_region_or_calling_code4  s;    888112FMMM**;===r   c                     || j         |<   d S r*   )rX   r_   r`   rb   s      r   register_region_loaderz$PhoneMetadata.register_region_loader;  s    -3k***r   c                     || j         |<   d S r*   )re   rr   s      r   register_short_region_loaderz*PhoneMetadata.register_short_region_loader?  s    39#K000r   c                     || j         |<   d S r*   )ri   )r_   rk   rb   s      r   register_nongeo_region_loaderz+PhoneMetadata.register_nongeo_region_loaderC  s    4:#L111r   c                    t          | j                                                  D ]\  }}| ||           d| j        |<   t          | j                                                  D ]\  }}| ||           d| j        |<   dS )z$Force immediate load of all metadataN)listrX   itemsri   )r_   r`   region_loaderrk   	cc_loaders        r   load_allzPhoneMetadata.load_allG  s     +/s/D/J/J/L/L*M*M 	: 	:&K(k***59%k2'+C,G,M,M,O,O'P'P 	A 	A#L)$	,'''<@+L9	A 	Ar   FTc"           	          || _         || _        || _        || _        || _        || _        || _        |	| _        |
| _        || _	        || _
        || _        || _        || _        || _        || _        || _        t#          |          | _        || _        t#          |          | _        t#          |          | _        t#          |          | _        t#          |          | _        t#          |          | _        t#          |          | _        t5          | j        | j                  | _        g | _        ||| _        g | _        ||| _        t=          |          | _        t#          |          | _         t=          |          | _!        || _"        | | _#        |!rg| j        tH          k    rp| j        tJ          j&        v rGtJ          j&        | j                 }"| |"k    r(tO          d| j        d| j        d| j        d          d S | tJ          j&        | j        <   d S | j#        rp| j        tJ          j(        v rGtJ          j(        | j                 }"| |"k    r(tO          d| j        d| j        d| j        d          d S | tJ          j(        | j        <   d S | j        tJ          j)        v rGtJ          j)        | j                 }"| |"k    r(tO          d| j        d| j        d| j        d          d S | tJ          j)        | j        <   d S d S )Nz$Duplicate non-geo PhoneMetadata for z (from :r8   z"Duplicate short PhoneMetadata for zDuplicate PhoneMetadata for )*general_desc
fixed_linemobile	toll_freepremium_rateshared_costpersonal_numbervoippageruan	emergency	voicemail
short_codestandard_ratecarrier_specificsms_servicesno_international_diallingr
   idrk   international_prefixpreferred_international_prefixnational_prefixpreferred_extn_prefixnational_prefix_for_parsingnational_prefix_transform_rulerT   "same_mobile_and_fixed_line_patternnumber_formatintl_number_formatr   main_country_for_codeleading_digitsleading_zero_possiblemobile_number_portable_region
short_datarn   rV   rj   	Exceptionrf   r]   )#r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   registerr"   s#                                      r   r   zPhoneMetadata.__init__T  s   T )$"(&.	
""$* 0( *C&  ##
 ) %22F$G$G! /<<Z.[.[+  -_== &33H%I%I" ,99T+U+U( /<<Z.[.[+ 3@T_2]2]/  $!.D6 #%)&8D# &**?%@%@" ,N;; &**?%@%@" .K* % 	Cw888$(LLL)@ARSEu}}'iaeararartxt{t{t{  ~B  ~O  ~O  ~O  )P  Q  Q  Q %} OSM89JKKK C7mBBB)@IEu}}'i_c_f_f_fhlhohohoqu  rC  rC  rC  )D  E  E  E %} EIM8AAA7m<<<):47CEu}}'iY]Y`Y`Y`bfbibibikok|k|k|(}~~~ %} ?CM247;;;-	C 	Cr   c                 p    t          |t                    sdS t          |           t          |          k    S r%   )r&   rV   r'   r!   s     r   r(   zPhoneMetadata.__eq__5  s0    %// 	5T

d5kk)*r   c                 .    |                      |           S r*   r+   r!   s     r   r,   zPhoneMetadata.__ne__:  r-   r   c                      t          |           S r*   r/   r1   s    r   r2   zPhoneMetadata.__repr__=  r3   r   c                 	   t          d          | j        | j        t          | j                  fz  }|t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j	        |t          d          | j	        z  z  }| j
        |t          d          | j
        z  z  }| j        |t          d          | j        z  z  }| j        |t          d	          | j        z  z  }| j        |t          d
          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        |t          d          | j        z  z  }| j        '|t          d          t          | j                  z  z  }| j        '|t          d          t          | j                  z  z  }| j        '|t          d          t          | j                  z  z  }| j        '|t          d          t          | j                  z  z  }| j        '|t          d          t          | j                  z  z  }| j        rM|t          d          t          d                              t;          t<          | j                            z  z  }| j        rM|t          d          t          d                              t;          t<          | j                            z  z  }| j         r|t          d          z  }| j!        |t          d          | j!        z  z  }| j"        r|t          d          z  }| j#        r|t          d          z  }| j$        r|t          d          z  }|t          d           z  }|S )!Nz?PhoneMetadata(id='%s', country_code=%r, international_prefix=%sz,
    general_desc=%sz,
    fixed_line=%sz,
    mobile=%sz,
    toll_free=%sz,
    premium_rate=%sz,
    shared_cost=%sz,
    personal_number=%sz,
    voip=%sz,
    pager=%sz,
    uan=%sz,
    emergency=%sz,
    voicemail=%sz,
    short_code=%sz,
    standard_rate=%sz,
    carrier_specific=%sz,
    sms_services=%sz",
    no_international_dialling=%sz',
    preferred_international_prefix=%sz,
    national_prefix=%sz,
    preferred_extn_prefix=%sz$,
    national_prefix_for_parsing=%sz',
    national_prefix_transform_rule=%sz,
    number_format=[%s]z
,
        z,
    intl_number_format=[%s]z ,
    main_country_for_code=Truez,
    leading_digits='%s'z ,
    leading_zero_possible=Truez(,
    mobile_number_portable_region=Truez,
    short_data=Truer8   )%r   r   rk   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   r9   mapr   r   r   r   r   r   r   r:   s     r   r<   zPhoneMetadata.__unicode__@  s   Z[[7D-s43L/M/MNO&122T5FFF?&f344tFFF;"f/004;>>F>%f233dnDDF(f5669JJJF'f4558HHHF+f899D<PPPF9 f-..::F:!f.//$*<<F8f_--88F>%f233dnDDF>%f233dnDDF?&f344tFFF)f677$:LLLF ,f9::T=RRRF(f5669JJJF)5fBCCdFdddF.:fGHH3tOrKsKsssF+f899C@T<U<UUUF%1f>??#dF`BaBaaaF+7fDEEDLlHmHmmmF.:fGHH3tOrKsKsssF 	sf899F=<Q<Q<V<VWZ[\^b^pWqWq<r<rrrF" 	}f=>>AVAVA[A[\_`acgcz\{\{A|A|||F% 	Bf@AAAF*f9::T=PPPF% 	Bf@AAAF- 	JfHIIIF? 	7f5666F&++r   r*   ) NNNNNNNNNNNNNNNNNNNNNNNNNNFNFFFT)r>   r?   r@   rA   	threadingLockrZ   rX   re   ri   r]   rf   rj   classmethodrc   rg   rl   rp   rs   ru   rw   r}   r   r   r(   r,   r2   r<   r   r   r   rV   rV      s         $Y^%%N
   
  > > > [> D D D [D E E E [E > > [> 4 4 [4 : : [: ; ; [; 
A 
A [
A  # "!!% #"&"+/"&*04!%'+-104#$(', $',/4!C^C ^C ^C _^C@+ + +
& & &  @ @ @ @ @r   rV   )rA   r   utilr   r   r   r   r   r	   r
   rn   r   rC   rT   rV   r   r   r   <module>r      s%   & &$     ? ? ? ? ? ? ? ? ? ? / / / / / / / / / / / /!"5 y y y y y< y y yxO O O O OlN O O OdK K KP P P P PL. P P P P Pr   