
    \j                     2    d dl mZmZmZ dZ G d de      Zy)   )BaseProviderElementsType	date_timeTc                      e Zd ZU dgZee   ed<   dgZee   ed<   dZee   ed<   dZ	ee   ed<   d	Z
ee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   ej                  j                   D  cg c]  }|j"                   c}} Zee   ed<   dZdZej                  j                   D  cg c]  }|j(                   c}} Zee   ed<   ej                  j                   D  cg c]  }|j,                   c}} Zee   ed<   defdZdefdZdefdZdefdZdefdZdefdZdefdZdefdZdefdZ efd edefd!Z!defd"Z"defd#Z#y$c c}} w c c}} w c c}} w )%ProviderVillecity_suffixesStreetstreet_suffixes)z{{first_name}} {{city_suffix}}city_formats)z{{last_name}} {{street_suffix}}street_name_formats)z#{{building_number}} {{street_name}}street_address_formats)z({{street_address}} {{postcode}} {{city}}address_formats)z##building_number_formats)z#####postcode_formats	countrieszalpha-2zalpha-3alpha_2_country_codesalpha_3_country_codesreturnc                 8    | j                  | j                        S )z"
        :example: 'town'
        )random_elementr	   selfs    J/root/env/lib/python3.12/site-packages/faker/providers/address/__init__.pycity_suffixzProvider.city_suffix   s     ""4#5#566    c                 8    | j                  | j                        S )z$
        :example: 'Avenue'
        )r   r   r   s    r   street_suffixzProvider.street_suffix   s     ""4#7#788r   c                 V    | j                  | j                  | j                              S )z!
        :example: '791'
        )numerifyr   r   r   s    r   building_numberzProvider.building_number#   s$     }}T001M1MNOOr   c                 n    | j                  | j                        }| j                  j                  |      S )z'
        :example: 'Sashabury'
        )r   r   	generatorparser   patterns     r   cityzProvider.city)   s/     **4+<+<=~~##G,,r   c                 n    | j                  | j                        }| j                  j                  |      S )z)
        :example: 'Crist Parks'
        )r   r   r#   r$   r%   s     r   street_namezProvider.street_name0   s/     **4+C+CD~~##G,,r   c                 n    | j                  | j                        }| j                  j                  |      S )z-
        :example: '791 Crist Parks'
        )r   r   r#   r$   r%   s     r   street_addresszProvider.street_address7   s/     **4+F+FG~~##G,,r   c                 r    | j                  | j                  | j                              j                         S )z&
        :example: 86039-9874
        )bothifyr   r   upperr   s    r   postcodezProvider.postcode>   s-     ||D//0E0EFGMMOOr   c                 n    | j                  | j                        }| j                  j                  |      S )zG
        :example: '791 Crist Parks, Sashabury, IL 86039-9874'
        )r   r   r#   r$   r%   s     r   addresszProvider.addressD   s/     **4+?+?@~~##G,,r   c                 8    | j                  | j                        S )
        :sample:
        )r   r   r   s    r   countryzProvider.countryK   s     ""4>>22r   representationc                     || j                   k(  r| j                  | j                        S || j                  k(  r| j                  | j                        S t        d      )zn
        :sample:
        :sample: representation='alpha-2'
        :sample: representation='alpha-3'
        z7`representation` must be one of `alpha-2` or `alpha-3`.)ALPHA_2r   r   ALPHA_3r   
ValueError)r   r5   s     r   country_codezProvider.country_codeQ   sV     T\\)&&t'A'ABBt||+&&t'A'ABBVWWr   c                 p    	 | j                   j                  d      d   S # t        $ r t        d      w xY w)r3   _   z-Country code cannot be determined from locale)__lang__split
IndexErrorAttributeErrorr   s    r   current_country_codezProvider.current_country_code^   s?    	R==&&s+A.. 	R !PQQ	Rs     5c                 .   | j                         }t        j                  j                  D cg c]  }|j                  |k(  s|j
                    }}t        |      dk(  r|d   S t        |      dkD  rt        d| d|       t        d|       c c}w )r3   r=       z#Ambiguous country for country code z: z(No appropriate country for country code )rB   r   r   r   alpha_2_codenamelenr9   )r   rB   r4   current_countrys       r   rH   zProvider.current_countryg   s      $88:(1(:(:(D(D
$H\H\`tHtGLL
 
 1$"1%%!A%BCWBXXZ[jZklmmGH\G]^__
s   BBN)$__name__
__module____qualname__r	   r   str__annotations__r   r   r   r   r   r   r   r   r   r   rF   r7   r8   rE   r   alpha_3_coder   r   r   r!   r'   r)   r+   r/   r1   r4   r:   rB   rH   ).0r4   s   00r   r   r      s   (/yM<$0*2O\#&3&IL,s#I-Qc*Q0XL-X)VO\#&V18\#.8*4l3'4@I@R@R@\@\#]WGLL#]I|C ]GGT]TfTfTpTp/q0D0D/q<,qT]TfTfTpTp/q0D0D/q<,q7S 79s 9P P-c --S -- -P# P- -3 3 29 X3 XS XRc R` `q $^
 0r/qs   1E-E%Er   N) r   r   r   	localizedr    r   r   <module>rS      s     4 4	n`| n`r   