
    ch+                    D   % S r SSKJr  SSKrSSKrSSKrSSKrSSKJrJ	r	J
r
Jr  SSKJr  SSKJrJrJrJrJr  SSKJr  \" \5      rS\S	'   \R2                  (       a  S
OSrS\S'    " S S\	5      rSS jrSrSS jr " S S5      rSS jr SS jr!SS jr"SS jr#SS jr$g)z(Manage the user's Streamlit credentials.    )annotationsN)Final
NamedTupleNoReturncast)uuid4)cli_utilconfigenv_util	file_utilutil)
get_loggerr   _LOGGERz$%userprofile%/.streamlit/config.tomlz~/.streamlit/config.toml_CONFIG_FILE_PATHc                  *    \ rS rSr% S\S'   S\S'   Srg)_Activation'   
str | Noneemailboolis_valid N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       pC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\streamlit/runtime/credentials.pyr   r   '   s    Nr   r   c            	     2   [         R                  R                  S:H  =(       a;    [        R                  (       + =(       d    [
        R                  R                  S5      n SU (       a  SOS [        R                  " SSS9 S	[        R                  " S
SS9 3$ )Nzutf-8
WT_SESSIONz
      u   👋  zWelcome to Streamlit!Tboldz

      If you'd like to receive helpful onboarding emails, news, offers, promotions,
      and the occasional swag, please enter your email address below. Otherwise,
      leave this field blank.

      zEmail: bluefg)
sysstdoutencodingr   
IS_WINDOWSosenvirongetr	   style_for_cli)
show_emojis    r    email_promptr2   ,   s    
 $$/ ?2::>>,#? 
w"%h&<&<=T[_&`%a b iF348 8r   zT
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
c                   SSK nU b  SU ;  a  gSn UR                  SSS9R                  5       nUR                  SS5      nS
SSSSS.nS[        [        5       5      SU SSU S.nUR                  UU[        R                  " U5      R                  5       SS9nUR                  5         g! [         a    [        R                  S	5         gf = f)z0Send the user's email for metrics, if submitted.r   N@r#   z&https://data.streamlit.io/metrics.json   )timeouturlzFailed to fetch metrics URLz*/*zen-US,en;q=0.9zapplication/jsonzlocalhost:8501zlocalhost:8501/)acceptzaccept-languagezcontent-typeoriginreferersubmittedEmailprovided_emailtrack)anonymous_id	messageIdeventauthor_emailsourcetypeuserId
   )headersdatar6   )requestsr/   json	Exceptionr   	exceptionstrr   postdumpsencoderaise_for_status)r   rH   metrics_urlresponse_jsonrF   rG   responses          r    _send_emailrT   E   s    }5(K 4a % 

$& 	 $''r2 +*"$G \!"D }}ZZ$$&	  H ;  78s   0B* *CCc                      \ rS rSr% SrSrS\S'   \SS j5       rSS jr	SS jr
SSS	 jjrSSS
 jjr\SS j5       rSS jrSSS jjrSrg)Credentialsr   zCredentials class.NzCredentials | None
_singletonc                d    U R                   c
  [        5         [        S[        R                   5      $ )zReturn the singleton instance.rV   )rX   rV   r   )clss    r    get_currentCredentials.get_currentw   s&     >>!MM;#9#9::r   c                ~    [         R                  b  [        S5      eSU l        [	        5       U l        U [         l        g)zInitialize class.Nz;Credentials already initialized. Use .get_current() instead)rV   rX   RuntimeError
activation_get_credential_file_path
_conf_fileselfs    r    __init__Credentials.__init__   s9    !!-M  /38:!%r   c                .    [         R                  " U 5      $ N)r   repr_rb   s    r    __repr__Credentials.__repr__   s    zz$r   c                r   U R                   b  [        R                  S5        gSSKn [	        U R
                  5       nUR                  U5      R                  S5      nSSS5        Wc  [        e[        UR                  S5      5      U l         g! , (       d  f       N7= f! [         a)    U(       a  U R                  U(       + S9   g[        S5      e[         aZ    U(       a&  U R                  5         U R                  U(       + S9   g[        [        R                  " S5      U R
                  -  5      ef = f)	zLoad from toml file.Nz/Credentials already loaded. Not rereading file.r   generalr   )show_instructionsz7Credentials not found. Please run "streamlit activate".zz
                Unable to load credentials from %s.
                Run "streamlit reset" and try again.
                )r_   r   errortomlopenra   loadr/   r^   _verify_emailFileNotFoundErroractivaterJ   resettextwrapdedent)rc   auto_resolvero   frG   s        r    rq   Credentials.load   s   ??&MMKL	doo&!yy|''	2 '|""+DHHW,=>DO	 '&
 ! 	L0@AI   	

L0@A ??$ 	s.   B! !B0B! 
BB! !%D6?D6	-D6c                     U R                  U5        U R
                  b  U R
                  R                  (       d  [        S5        gg! [        [        4 a  n[        [	        U5      5         SnAN^SnAff = f)zDCheck if streamlit is activated.

Used by `streamlit run script.py`
NzActivation email not valid.)rq   rJ   r^   _exitrL   r_   r   )rc   rx   es      r    _check_activatedCredentials._check_activated   s^    
	IIl# ??"$//*B*B/0 +C <( 	#a&MM	s   A A6A11A6c                    [         R                  5       nSUl         [        R                  " UR
                  5        g! [         a    [        R                  S5         gf = f)ztReset credentials by removing file.

This is used by `streamlit activate reset` in case a user wants
to start over.
Nz Error removing credentials file.)	rV   r[   r_   r-   removera   OSErrorr   rK   )rZ   cs     r    ru   Credentials.reset   sO     ##%	BIIall# 	B@A	Bs    > A A c                   SSK Jn  U R                  c  g[        R                  " [        R
                  R                  U R                  5      SS9  SU R                  R                  0nSSK	n[        U R                  S5       nUR                  SU0U5        SSS5         [        U R                  R                  5        g! , (       d  f       N/= f! U a    [        R                  S	5         gf = f)
z!Save to toml file and send email.r   )RequestExceptionNT)exist_okr   wrl   zError saving email:)requests.exceptionsr   r_   r-   makedirspathdirnamera   r   ro   rp   dumprT   r   rK   )rc   r   rG   ro   ry   s        r    saveCredentials.save   s    8??" 	BGGOODOO4tD ../$//3'1IIy$'+ (	5--.	 ('
   	534	5s   C!C 
CC0/C0c           
     n    U R                  5         U R                  (       a3  U R                  R                  (       a  [	        S5        g[	        S5        g[
        R                  " S5      (       d  gSnU(       Gd)  SSKnUR                  [        5       SSSS9n[        U5      U l        U R                  R                  (       a  U R                  5         S	[        R                  " S
SS9 S[        R                  " [        5       S3n[        R                  " U5        U(       a\  S[        R                  " SSSS9 S[        R                  " SSS9 S[        R                  " SSS9 S3n[        R                  " U5        SnO[         R#                  S5        U(       d  GM(  gg! [         a     GNf = f)z3Activate Streamlit.

Used by `streamlit activate`.
zAlready activatedzUActivation not valid. Please run `streamlit activate reset` then `streamlit activate`zserver.showEmailPromptNFr   r#   )textprompt_suffixdefaultshow_defaultz&
  You can find our privacy policy at z#https://streamlit.io/privacy-policyT)	underlinea-  

  Summary:
  - This open source library collects usage statistics.
  - We cannot see and do not store information contained inside Streamlit apps,
    such as text, charts, images, etc.
  - Telemetry data is stored in servers in the United States.
  - If you'd like to opt out, add the following to zS,
    creating that file if necessary:

    [browser]
    gatherUsageStats = false
z
  zGet started by typing:r&   )r(   r%   $r'    zstreamlit hellor$   
zPlease try again.)rq   r^   r_   r   r|   r
   
get_optionclickpromptr2   rr   r   r	   r0   r   print_to_clir   rn   )rc   rm   	activatedr   r   telemetry_textinstructions_texts          r    rt   Credentials.activate   s   
	IIK ??'')*K
 $$%=>>I%"$!&	 %  #0"6??++IIK*&&.&<&<=bnr&s%t u4 5=4J4JK\4]3^ _&N )).9(12vDIJ K#&)*!H,B,BCT[_,`+a b-)
 !--.?@ $IMM"56Q  i%  	 	s   F& &
F43F4)ra   r_   )returnrV   r   Noner   rL   )F)rx   r   r   r   )T)rm   r   r   r   )r   r   r   r   __doc__rX   r   classmethodr[   rd   ri   rq   r~   ru   r   rt   r   r   r   r    rV   rV   r   s^    %)J"); ;
& "H1 B B5.A7 A7r   rV   c                    U R                  5       n [        U 5      S:  a6  U R                  S5      S:w  a!  [        R	                  S5        [        SS5      $ [        U S5      $ )aF  Verify the user's email address.

The email can either be an empty string (if the user chooses not to enter
it), or a string with a single '@' somewhere in it.

Parameters
----------
email : str

Returns
-------
_Activation
    An _Activation object. Its 'is_valid' property will be True only if
    the email was validated.

r   r4      z"That doesn't look like an email :(NFT)striplencountr   rn   r   )r   s    r    rr   rr   )  sS    " KKME 5zA~%++c*a/:;4''ud##r   c                Z    [         R                  U 5        [        R                  " S5        g)zExit program with error.N)r   rn   r)   exit)messages    r    r|   r|   E  s    MM'HHRLr   c                 .    [         R                  " S5      $ )Nzcredentials.toml)r   get_streamlit_file_pathr   r   r    r`   r`   K  s    ,,-?@@r   c                 P    [         R                  R                  [        5       5      $ rg   )r-   r   existsr`   r   r   r    _check_credential_file_existsr   O  s    77>>3566r   c                    SSK Jn   [        5       (       dI  U R                  " S5      (       a2  U R                  " S5      (       d  [
        R                  " [        5        g[        R                  5       R                  5         g)zCheck credentials and potentially activate.

Note
----
If there is no credential file and we are in headless mode, we should not
check, since credential would be automatically set to an empty string.

r   r
   zserver.headlesszbrowser.gatherUsageStatsN)	streamlitr
   r   r   is_manually_setr	   r   _TELEMETRY_HEADLESS_TEXTrV   r[   r~   r   s    r    check_credentialsr   S  sZ     !(**v/@/@AR/S/S%%&@AA!!":;..0r   r   )r   r   r   r   )r   rL   r   r   )r   rL   r   r   )r   r   r   )%r   
__future__r   rI   r-   r)   rv   typingr   r   r   r   uuidr   r   r	   r
   r   r   r   streamlit.loggerr   r   r   r   r,   r   r   r2   r   rT   rV   rr   r|   r`   r   r   r   r   r    <module>r      s    / "  	 
  4 4  A A 'H% %
  ,	# 5 * 
8( 
* Zt7 t7n$8A71r   