
    ZiD              
       $   d Z ddlmZmZ 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 ddlmZmZmZmZ d	d
lmZmZ  ej        e          Z ed          Ze                    dg d          	 	 d(dedee ej        d          f         ddfd            Ze                    dddg          	 d)deee          ej        d          f         ddfd            Zdee         fdZ e                    dddg          	 	 d(deee          ej        d           f         dee ej        d          f         ddfd!            Z!e                    d"d#g          d*d$            Z"e                    d%d&g          d*d'            Z#dS )+a  Contains commands to authenticate to the Hugging Face Hub and interact with your repositories.

Usage:
    # login and save token locally.
    hf auth login --token=hf_*** --add-to-git-credential

    # switch between tokens
    hf auth switch

    # list all tokens
    hf auth list

    # logout from all tokens
    hf auth logout

    # check which account you are logged in as
    hf auth whoami
    )	AnnotatedOptionalN)ENDPOINT)whoami   )	auth_listauth_switchloginlogout)ANSIget_stored_tokens	get_tokenlogging   )TokenOpttyper_factoryz,Manage authentication (login, logout, etc.).)helpr
   )zhf auth loginzhf auth login --token $HF_TOKENz7hf auth login --token $HF_TOKEN --add-to-git-credential)examplesFtokenadd_to_git_credentialzTSave to git credential helper. Useful only if you plan to run git commands directly.returnc                 (    t          | |           dS )z8Login using a token from huggingface.co/settings/tokens.r   r   N)r
   r   s     S/root/projects/butler/venv/lib/python3.11/site-packages/huggingface_hub/cli/auth.py
auth_loginr   3   s    $ 
-BCCCCCC    r   zhf auth logoutz$hf auth logout --token-name my-token
token_namezName of token to logoutc                 &    t          |            dS )zLogout from a specific token.r   N)r   r   s    r   auth_logoutr    H   s     j!!!!!!r   c                  .   t          t                                                                } | st                              d           d S t          d           t          | d          D ]\  }}t          | d|            	 	 t          d          }|                                dk    rd S t          |          dz
  }d|cxk    rt          |           k     rn n| |         S t          d	           n# t          $ r t          d
           Y nw xY w)Nz+No stored tokens found. Please login first.zAvailable stored tokens:r   z. Tz=Enter the number of the token to switch to (or 'q' to quit): qr   z$Invalid selection. Please try again.z4Invalid input. Please enter a number or 'q' to quit.)listr   keysloggererrorprint	enumerateinputlowerintlen
ValueError)token_namesir   choiceindexs        r   _select_token_namer2   V   sO   (**//1122K BCCCt	
$%%%";22 $ $:""j""####J
	JZ[[F||~~$$tKK!OEE,,,,C,,,,,,,"5))<==== 	J 	J 	JHIIIII	JJs   'C7 06C7 'C7 7DDswitchzhf auth switchz$hf auth switch --token-name my-tokenzName of the token to switch toc                     | t                      } | "t          d           t          j                    t	          | |           dS )zSwitch between access tokens.Nz!No token name provided. Aborting.)r   )r2   r'   typerExitr	   )r   r   s     r   auth_switch_cmdr7   n   sP    & '))
1222jll
2GHHHHHHr   r#   zhf auth listc                  "    t                       dS )zList all stored access tokens.N)r    r   r   auth_list_cmdr:      s     KKKKKr   r   zhf auth whoamic                     t                      } | "t          d           t          j                    t	          |           }t          t          j        d          |d                    d |d         D             }|r5t          t          j        d          d                    |                     t          d	k    rt          d
t                      dS dS )z;Find out which huggingface.co account you are logged in as.NzNot logged inzuser: namec                     g | ]
}|d          S )r<   r9   ).0orgs     r   
<listcomp>zauth_whoami.<locals>.<listcomp>   s    000CCK000r   orgszorgs: ,zhttps://huggingface.coz(Authenticated through private endpoint: )	r   r'   r5   r6   r   r   boldjoinr   )r   inforA   s      r   auth_whoamirF      s     KKE}ojll%==D	$)H

tF|,,,004<000D 3di!!388D>>222+++CCCDDDDD ,+r   )NF)N)r   N)$__doc__typingr   r   r5   huggingface_hub.constantsr   huggingface_hub.hf_apir   _loginr   r	   r
   r   utilsr   r   r   r   
_cli_utilsr   r   
get_logger__name__r%   auth_clicommandboolOptionr   strr    r2   r7   r:   rF   r9   r   r   <module>rU      sn   & ' & & & & & & &  . . . . . . ) ) ) ) ) ) : : : : : : : : : : : : ? ? ? ? ? ? ? ? ? ? ? ? / / / / / / / / 
	H	%	% =LMMM 
       	
D 
D
D$g	
 	
 	
	
D 

D 
D 
D 
D 
 FG    		" "3444	6"
 
" " "	 "JHSM J J J J0 
 FG    	 	I I1	
 	
 	
	I %g	
 	
 	
	I 
I I I	 I. 
&N#344   54
 
(&6%788E E E 98E E Er   