
    9 f                     T    d Z ddlZddlZddlZddlmZ  G d dej                  ZdS )zAdditional declarations for "faker" attributes.

Usage:

    class MyFactory(factory.Factory):
        class Meta:
            model = MyProfile

        first_name = factory.Faker('name')
    N   )declarationsc                        e Zd ZdZ fdZd Zi Zej        j	        Z
eej        d                         Zedd            Zedd            Z xZS )	Fakeral  Wrapper for 'faker' values.

    Args:
        provider (str): the name of the Faker field
        locale (str): the locale to use for the faker

        All other kwargs will be passed to the underlying provider
        (e.g ``factory.Faker('ean', length=10)``
        calls ``faker.Faker.ean(length=10)``)

    Usage:
        >>> foo = factory.Faker('name')
    c                 x    |                     dd           }|| _         t                      j        dd|i| d S )Nlocale )popprovidersuper__init__)selfr   kwargsr   	__class__s       C/var/www/equiseq/venv/lib/python3.11/site-packages/factory/faker.pyr   zFaker.__init__&   sW    Hd++  	 			 	 	 	 	    c                 |    |                     d          }|                     |          } |j        | j        fi |S )Nr   )r
   
_get_fakerformatr   )r   instancestepextrar   subfakers         r   evaluatezFaker.evaluate-   s@    8$$??6**xt}66666r   c              #   V   K   | j         }|| _         	 d V  || _         d S # || _         w xY wN)_DEFAULT_LOCALE)clsr   
old_locales      r   override_default_localezFaker.override_default_locale5   sH       (
$	-EEE",C*C,,,,s    	(Nc                 ~    || j         }|| j        vrt          j        |          }|| j        |<   | j        |         S )N)r   )r   _FAKER_REGISTRYfakerr   )r   r   r   s      r   r   zFaker._get_faker?   sJ    >(F,,,{&111H*2C'"6**r   c                 V    |                      |                              |           dS )z1Add a new Faker provider for the specified localeN)r   add_provider)r   r   r   s      r   r%   zFaker.add_providerJ   s*     	v++H55555r   r   )__name__
__module____qualname____doc__r   r   r"   r#   configDEFAULT_LOCALEr   classmethod
contextlibcontextmanagerr    r   r%   __classcell__)r   s   @r   r   r      s             7 7 7
 Ol1O- -  [- + + + [+ 6 6 6 [6 6 6 6 6r   r   )r)   r-   r#   faker.config r   BaseDeclarationr   r	   r   r   <module>r3      s{   	 	               56 56 56 56 56L( 56 56 56 56 56r   