Ë
    YV.jO!  ã                   ó„  — U d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ  ej                  e«      Z ee
«      Z ej$                  d«      Zeed<    ej$                  d	«      Zeed
<    ej$                  d«      Zeed<    ej$                  d«      Zeed<   dZdZdZd Z edg d¢«      Z G d„ d«      Zy)é    N)Ú
namedtuple)ÚPattern)ÚFaker)ÚAVAILABLE_LOCALESÚDEFAULT_LOCALE)ÚSampleCodeValidatorz1^faker\.providers\.BaseProvider\.(?P<method>\w+)$Ú_base_provider_method_patternz2^faker\.providers\.\w+\.Provider\.(?P<method>\w+)$Ú!_standard_provider_method_patternzS^faker\.providers\.\w+\.(?P<locale>[a-z]{2,3}_[A-Z]{2})\.Provider\.(?P<method>\w+)$Ú_locale_provider_method_patternzZ^:sample(?: size=(?P<size>[1-9][0-9]*))?(?: seed=(?P<seed>[0-9]+))?:(?: ?(?P<kwargs>.*))?$Ú_sample_line_patternzgenerator.{method}({kwargs})zb>>> Faker.seed({seed})
>>> for _ in range({size}):
...     fake.{method}({kwargs})
...
{results}

é   ÚSample)ÚsizeÚseedÚkwargsc                   ól   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zed„ «       Zed„ «       Zy)ÚProviderMethodDocstringam  
    Class that preprocesses provider method docstrings to generate sample usage and output

    Notes on how samples are generated:
    - If the docstring belongs to a standard provider method, sample usage and output will be
      generated using a `Faker` object in the `DEFAULT_LOCALE`.
    - If the docstring belongs to a localized provider method, the correct locale will be used.
    - If the docstring does not belong to any provider method, docstring preprocessing will be skipped.
    - Docstring lines will be parsed for potential sample sections, and the generation details of each
      sample section will internally be represented as a ``Sample`` namedtuple.
    - Each ``Sample`` will have info on the keyword arguments to pass to the provider method, how many
      times the provider method will be called, and the initial seed value to ``Faker.seed()``.
    c                 óV  — t        |«      | _        g | _        g | _        d| _        t        j                  |«      › d|› d�| _        |dk7  ry t        j                  |«      }t        j                  |«      }t        j                  |«      }	|r&|j                  «       }
|
d   | _        t        | _        nP|	r&|	j                  «       }
|
d   | _        t        | _        n(|r%|j                  «       }
|
d   | _        |
d   | _        ny d| _        | j!                  «        | j#                  «        y )NTz:docstring of z
: WARNING:ÚmethodÚlocaleF)ÚiterÚ
_line_iterÚ_parsed_linesÚ_samplesÚ_skippedÚinspectÚgetfileÚ_log_prefixr	   Úmatchr   r
   Ú	groupdictÚ_methodr   Ú_localeÚ_parseÚ_generate_samples)ÚselfÚappÚwhatÚnameÚobjÚoptionsÚlinesÚbase_provider_method_matchÚlocale_provider_method_matchÚstandard_provider_method_matchr    s              úXC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\faker/sphinx/docstring.pyÚ__init__z ProviderMethodDocstring.__init__3   s  € Ü˜u›+ˆŒØˆÔØˆŒØˆŒÜ%Ÿo™o¨cÓ2Ð3°>À$ÀÀzÐRˆÔà�8ÒØä%B×%HÑ%HÈÓ%NÐ"Ü'F×'LÑ'LÈTÓ'RÐ$Ü)J×)PÑ)PÐQUÓ)VÐ&Ù%Ø2×<Ñ<Ó>ˆIØ$ XÑ.ˆDŒLÜ)ˆD�LÙ+Ø6×@Ñ@ÓBˆIØ$ XÑ.ˆDŒLÜ)ˆD�LÙ)Ø4×>Ñ>Ó@ˆIØ$ XÑ.ˆDŒLØ$ XÑ.ˆD�LààˆŒØ�‰ŒØ×ÑÕ ó    c                 óL   — t         j                  | j                  › d|› �«       y )NÚ )ÚloggerÚwarningr   )r%   r5   s     r/   Ú_log_warningz$ProviderMethodDocstring._log_warningS   s    € Ü�‰˜$×*Ñ*Ð+¨1¨W¨IÐ6Õ7r1   c                 ór   — 	 	 t        | j                  «      }| j                  |«       Œ(# t        $ r Y y w xY w©N)Únextr   Ú_parse_sectionÚStopIteration)r%   Úlines     r/   r#   zProviderMethodDocstring._parseV   sA   € Øð*Ü˜DŸO™OÓ,�ð ×#Ñ# DÔ)ð øô !ò Ùðús   ƒ* ª	6µ6c                 óŒ  — |j                  d«      s| j                  j                  |«       y 	 t        | j                  «      }|j                  d«      r#| j                  |«       | j                  |«       y |dk(  r| j                  |«       y ||z   }| j                  |«       y # t
        $ r | j                  |«       Y y w xY w)Nz:sampleÚ )Ú
startswithr   Úappendr9   r   r;   Ú_process_sample_sectionr:   )r%   ÚsectionÚ	next_lines      r/   r:   z&ProviderMethodDocstring._parse_section_   s¹   € à×!Ñ! )Ô,Ø×Ñ×%Ñ% gÔ.Øð	Ü˜TŸ_™_Ó-ˆIð ×Ñ 	Ô*Ø×(Ñ(¨Ô1Ø×Ñ 	Õ*ð ˜"Š_Ø×(Ñ(¨Õ1ð
  	Ñ)ˆGØ×Ñ Õ(øô) ò 	à×(Ñ(¨Ô1Ùð	ús   ¯B& Â&CÃCc                 óÊ  — t         j                  |«      }|sd|› d�}| j                  |«       y |j                  «       }|j	                  d«      }|j	                  d«      }|j	                  d«      }|rt        t        |«      t        «      nt        }|rt        |«      nt        }|r| j                  |«      nd}t        |||«      }| j                  j                  |«       y )NzThe section `z%` is malformed and will be discarded.r   r   r   r>   )r   r   r6   r    ÚgetÚmaxÚintÚDEFAULT_SAMPLE_SIZEÚDEFAULT_SEEDÚ_beautify_kwargsr   r   r@   )	r%   rB   r   Úmsgr    r   r   r   Úsamples	            r/   rA   z/ProviderMethodDocstring._process_sample_section}   sÈ   € Ü$×*Ñ*¨7Ó3ˆñ Ø! ' Ð*OÐPˆCØ×Ñ˜cÔ"Øð —O‘OÓ%ˆ	Ø�}‰}˜VÓ$ˆØ�}‰}˜VÓ$ˆØ—‘˜xÓ(ˆÙ6:Œs”3�t“9Ô1Ô2Ô@SˆÙ Œs�4Œy¤lˆÙ28�×&Ñ& vÔ.¸bˆô ˜˜d FÓ+ˆØ�‰×Ñ˜VÕ$r1   c                 óŠ   — d„ }d„ }t        j                  d||«      }t        j                  d||«      }|j                  «       S )Nc                 óV   — | j                  d«      xs | j                  d«      }|r|S dS )Né   é   r>   ©Úgroup©r   Úquoteds     r/   Ú_repl_whitespacezBProviderMethodDocstring._beautify_kwargs.<locals>._repl_whitespace”   s)   € Ø—[‘[ “^Ò5 u§{¡{°1£~ˆFÙ#�6Ð+¨Ð+r1   c                 óV   — | j                  d«      xs | j                  d«      }|r|S dS )NrO   rP   z, rQ   rS   s     r/   Ú_repl_commaz=ProviderMethodDocstring._beautify_kwargs.<locals>._repl_comma˜   s)   € Ø—[‘[ “^Ò5 u§{¡{°1£~ˆFÙ#�6Ð-¨Ð-r1   z("[^"]*")|(\'[^\']*\')|[ \t]+z("[^"]*")|(\'[^\']*\')|,)ÚreÚsubÚstrip)r%   r   rU   rW   Úresults        r/   rJ   z(ProviderMethodDocstring._beautify_kwargs“   sE   € ò	,ò	.ô
 —‘Ð8Ð:JÈFÓSˆô —‘Ð3°[À&ÓIˆð �|‰|‹~Ðr1   c                 ó   — t        |«      S r8   )Úrepr)r%   Úvalues     r/   Ú_stringify_resultz)ProviderMethodDocstring._stringify_result¥   s   € Ü�E‹{Ðr1   c                 ó:   — ddl m} t        | j                     |dœS )Nr   )ÚOrderedDict)Ú	generatorra   )Úcollectionsra   Ú_faker"   )r%   ra   s     r/   Ú_generate_eval_scopez,ProviderMethodDocstring._generate_eval_scope¨   s    € Ý+ô ˜tŸ|™|Ñ,Ø&ñ
ð 	
r1   c                 ód   — t        t        t        d«      }| j                  j	                  |«       y )Nr>   )r   rH   rI   r   r@   )r%   Údefault_samples     r/   Ú_inject_default_sample_sectionz6ProviderMethodDocstring._inject_default_sample_section°   s#   € ÜÔ 3´\À2ÓFˆØ�‰×Ñ˜^Õ,r1   c                 ó²  — | j                   s| j                  «        d}| j                  «       }| j                   D �]$  }t        j	                  | j
                  |j                  ¬«      }t        |«      }|j                  r/d| j
                  › d|j                  › d�}| j                  |«       Œu	 t        j                  |j                  «       dj                  t        |j                  «      D �cg c]  }| j                  t!        ||«      «      ‘Œ c}«      }|t"        j	                  |j                  | j
                  |j                  |j                  |¬«      z  }�Œ' |r0d	|z   }| j&                  j)                  |j+                  d«      «       y y c c}w # t$        $ r2 d| j
                  › d|j                  › d�}| j                  |«       Y �Œšw xY w)
Nr>   )r   r   zNInvalid code elements detected. Sample generation will be skipped for method `z` with arguments `z`.Ú
)r   r   r   r   Úresultsz%Sample generation failed for method `z:examples:

)r   rh   re   Ú_command_templateÚformatr!   r   r   Úerrorsr6   r   r   ÚjoinÚranger   r_   ÚevalÚ_sample_output_templateÚ	Exceptionr   ÚextendÚsplit)	r%   ÚoutputÚ
eval_scoperL   ÚcommandÚ	validatorrK   Ú_rk   s	            r/   r$   z)ProviderMethodDocstring._generate_samples´   s«  € Ø�}Š}Ø×/Ñ/Ô1àˆØ×.Ñ.Ó0ˆ
Ø—m•mˆFÜ'×.Ñ.°d·l±lÈ6Ï=É=Ð.ÓYˆGÜ+¨GÓ4ˆIØ×Òð+Ø+/¯<©<¨.Ð8JÈ6Ï=É=È/ÐY[ð]ð ð ×!Ñ! #Ô&ØðÜ—
‘
˜6Ÿ;™;Ô'ØŸ)™)Ô`eÐfl×fqÑfqÔ`rÓ$sÑ`rÐ[\ T×%;Ñ%;¼DÀÈ*Ó<UÕ%VÐ`rÑ$sÓt�ð Ô1×8Ñ8ØŸ™ØŸ<™<Ø!Ÿ=™=ØŸ™Ø#ð 9ó ñ ’ð' $ñ6 Ø%¨Ñ.ˆFØ×Ñ×%Ñ% f§l¡l°4Ó&8Õ9ð ùò %tøÜò Ø=¸d¿l¹l¸^ÐK]Ð^d×^kÑ^kÐ]lÐlnÐo�Ø×!Ñ! #Ô&Úðús%   Â1AFÃ2"F
ÄFÆFÆ7GÇGc                 ó   — | j                   S r8   )r   ©r%   s    r/   ÚskippedzProviderMethodDocstring.skippedÙ   s   € à�}‰}Ðr1   c                 ó   — | j                   S r8   )r   r|   s    r/   r+   zProviderMethodDocstring.linesÝ   s   € à×!Ñ!Ð!r1   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r0   r6   r#   r:   rA   rJ   r_   re   rh   r$   Úpropertyr}   r+   © r1   r/   r   r   $   sc   „ ñò!ò@8ò*ò)ò<%ò,ò$ò
ò-ò#:ðJ ñó ðð ñ"ó ñ"r1   r   )r   ÚloggingrX   rc   r   Útypingr   Úfakerr   Úfaker.configr   r   Úfaker.sphinx.validatorr   Ú	getLoggerr   r4   rd   Úcompiler	   Ú__annotations__r
   r   r   rl   rr   rH   rI   r   r   r„   r1   r/   Ú<module>r�      sØ   ðÜ Û Û 	å "Ý å ß :Ý 6à	ˆ×	Ñ	˜8Ó	$€ÙÐÓ €Ø)3¨¯©Ð4hÓ)iÐ ˜wÓ iØ-7¨R¯Z©ZÐ8mÓ-nÐ ! 7Ó nØ+5¨2¯:©:Øfó,Ð  ó ð !+ §
¡
Øqó!Ð �gó ð 3Ð ðð ð Ð Ø€Ù	�HÒ8Ó	9€÷{"ò {"r1   