
    Vg"                     n    d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	m
Z
 ddlmZ ddlmZ  G d	 d
e      Zy)    N)date)Decimal)DictListOptionalTupleUnion   )
SexLiteral   )BaseProviderc                       e Zd ZdZddee   deeeee	ef   f   fdZ
	 d	deee      dee   deeeeeeef   ee   e	f   f   fdZy)
Providerzc
    This provider is a collection of functions to generate personal profiles and identities.

    Nsexreturnc                    || j                  ddg      n|}|dk(  r| j                  j                         }n|dk(  r| j                  j                         }| j                  j	                         || j                  j                         | j                  j                         | j                  j                         dS )zF
        Generates a basic profile with personal informations
        FM)usernamenamer   addressmail	birthdate)random_element	generatorname_female	name_male	user_namer   
free_emaildate_of_birth)selfr   sex_r   s       a/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/faker/providers/profile/__init__.pysimple_profilezProvider.simple_profile   s     36+t""C:.33;>>--/DS[>>++-D002~~--/NN--/557
 	
    fieldsc                    |g }| j                   j                         | j                   j                         | j                   j                         | j                   j	                         | j                   j                         | j                   j                         fdj                  | j                  t        t        j                  g dddg                        t        d| j                  dd            D cg c]  }| j                   j                          c}d}t        |fi | j                   j!                  |      }t#        |      d	kD  r(|j%                         D ci c]  \  }}||v s|| }}}|S c c}w c c}}w )
z~
        Generates a complete profile.
        If "fields" is not empty, only the fields in the list will be returned
         )ABABO+-   r      )jobcompanyssn	residencecurrent_locationblood_groupwebsiter   )r   r1   r2   r3   r   latitude	longitudejoinr   list	itertoolsproductrange
random_inturldictr$   lenitems)r!   r&   r   _dkvs          r#   profilezProvider.profile#   s:    >F >>%%'~~--/>>%%'//1!%!8!8!:DNN<T<T<V W774#6#6tI<M<MNcfikneo<p7q#rs6;AtqRS?T6UV**,V
 9dnn33C89v;?"#'');$!QqF{A;A; W <s   :!E=&F3F)N)NN)__name__
__module____qualname____doc__r   r   r   strr	   r   r$   r   r   r   rH    r%   r#   r   r      s    

(:"6 
$sERUW[]gRgLhGhBi 
& OStCy)7?
7K	c5eGW$45tCy$FGG	Hr%   r   )r<   datetimer   decimalr   typingr   r   r   r   r	   r   r(   r   r   rN   r%   r#   <module>rR      s&       5 5   1| 1r%   