
    1~h                         d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZ  G d d	e      Z G d
 d      Zy)    N)Enumauto)AnyDictListOptionalTupleTypeUnion   )	Generator)BaseProvider)Fakerc                       e Zd ZdZeZeZy)	FakerEnumz!Required for faker.providers.enumN)__name__
__module____qualname____doc__r   AB     Y/var/www/peopleoo.sandbox-dev.co.uk/venv/lib/python3.12/site-packages/faker/documentor.pyr   r      s    +AAr   r   c                       e Zd Zdeeef   ddfdZ	 	 ddee   dee	e      de
de	eeeeef   f      fdZ	 	 	 dd	ed
edededeeef   f
dZededefd       Zy)
Documentor	generatorreturnNc                 .    || _         d| _        g | _        y)z
        :param generator: a localized Generator with providers filled,
                          for which to write the documentation
        :type generator: faker.Generator()
        r   N)r   max_name_lenalready_generated)selfr   s     r   __init__zDocumentor.__init__   s     #!",.r   localeexcludeskwargsc           	         d| _         |g n|d d  | _        g }| j                  j                         }|d d d   D ]D  }|r|j                  r|j                  |k7  r!|j                  | | j                  |fi |f       F |S )Nr   )r    r!   r   get_providers__lang__appendget_provider_formatters)r"   r$   r%   r&   
formatters	providersproviders          r   get_formatterszDocumentor.get_formatters   s     '/'7Xa[
(,(D(D(F	!$B$ 	H(++0A0AV0K7477KFKL	 r   r/   prefix	with_argswith_defaultsc                    i }t        j                  |t         j                        D ]  \  }}|j                  d      s|| j                  v r'g }g }	i }
|dk(  rd|
d<   n|dv r|
j                  ddd       |dk(  rt        g}	|rt        j                  |      }|j                  D cg c]	  }|d	vs| }}t        |      D ]a  \  }}|j                  r8|r6	 |j                  |   }t        |t              rt        |      }n| }| d
| }|j                  |       |dk(  sa n |dk7  rT|j                   r|j                  d|j                   z          |j"                  r|j                  d|j"                  z          | | ddj%                  |       d}	  | j&                  j(                  |g|	i |
}|||<   t3        | j4                  gd |j7                         D         | _        | j                  j                  |        |S c c}w # t        $ r Y w xY w# t*        t,        f$ r)}t/        j0                  t        |             Y d }~0d }~ww xY w)N_binaryi   length)ziptari   )uncompressed_sizemin_file_sizeenum)r"   cls=first*z**(z, )c              3   2   K   | ]  }t        |        y wN)len).0parts     r   	<genexpr>z5Documentor.get_provider_formatters.<locals>.<genexpr>x   s     8atT8as   )inspect
getmembersismethod
startswithr!   updater   getfullargspecargs	enumeratedefaults
isinstancestrrepr
IndexErrorr+   varargsvarkwjoinr   formatAttributeError
ValueErrorwarningswarnmaxr    split)r"   r/   r1   r2   r3   r-   namemethod	arguments
faker_argsfaker_kwargsargspecxlstiargdefault	signatureexamplees                       r   r,   z"Documentor.get_provider_formatters0   sn    
#..x9I9IJ @	0LD&s#tt/E/E'EI79JLx)-X&'##-1), v~'[
!008"),,KQ!?2JqKK'n FAs''M!&-&6&6q&9G)'37*.w- .5I%(E7)"4C
 $$S) G+#& '!((w)>?}}!(()=> "(4&$))I*>)?qAI/$..//RzR\R %,Jy! #D$5$5 b8ayO`8a bD""))$/A@	0D Q L  * ! !& #J/ c!f%s6   (	H2H5H H$	H! H!$I3IIprovider_classc                     | j                   S rD   )__provider__)rn   s    r   get_provider_namezDocumentor.get_provider_name}   s    ***r   )NN)zfake.TT)r   r   r   r   r   r   r#   r   rS   r   r   r	   r   r   r0   boolr,   staticmethodrq   r   r   r   r   r      s    /%	5(8"9 /d / !%(, 49% 	
 
eL$sCx.01	2* "KK K 	K
 K 
c3hKZ +, +3 + +r   r   )rI   r\   r<   r   r   typingr   r   r   r   r	   r
   r   r   r   r.   r   proxyr   r   r   r   r   r   <module>rv      s8       @ @ @   #  l+ l+r   