
    AF[i              
          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
 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j0                  e      Z ed      Zej9                  dd      	 	 d%dedee ej<                  d      f   ddfd       Zej9                  dd      	 d&deee     ej<                  d      f   ddfd       Z!dee    fdZ"ej9                  dd      	 	 d%deee     ej<                  d      f   dee ej<                  d      f   ddfd       Z#ej9                  dd       d'd!       Z$ej9                  d"d#      d'd$       Z%y)(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)HfHubHTTPError)whoami   )	auth_listauth_switchloginlogout)ANSIget_stored_tokens	get_tokenlogging   )TokenOpttyper_factoryz,Manage authentication (login, logout, etc.).)helpr   z7Login using a token from huggingface.co/settings/tokenstokenadd_to_git_credentialzTSave to git credential helper. Useful only if you plan to run git commands directly.returnc                     t        | |       y )Nr   r   )r   r   s     a/var/www/html/chatbot/moweb-chatbot/venv/lib/python3.12/site-packages/huggingface_hub/cli/auth.py
auth_loginr   4   s     
-BC    r   zLogout from a specific token
token_namezName of token to logoutc                     t        |        y )Nr   )r   r   s    r   auth_logoutr    A   s     j!r   c                     t        t               j                               } | st        j	                  d       y t        d       t        | d      D ]  \  }}t        | d|         	 	 t        d      }|j                         dk(  ry t        |      dz
  }d|cxk  rt        |       k  rn n| |   S t        d       	 W# t        $ r t        d	       Y w xY w)
Nz+No stored tokens found. Please login first.zAvailable stored tokens:r   z. z=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   M   s    (*//12KBC	
$%";2 $:2j\"#$

	JZ[F||~$K!OEE,C,,"5))<=   	JHI	Js   +C 
)C 4C CCswitchzSwitch between access tokenszName of the token to switch toc                 x    | 
t               } | t        d       t        j                         t	        | |       y )Nz!No token name provided. Aborting.)r   )r2   r'   typerExitr
   )r   r   s     r   auth_switch_cmdr7   e   s8     ')
12jjl
2GHr   r#   zList all stored access tokensc                      t                y N)r	    r   r   auth_list_cmdr;   |   s    Kr   r   z;Find out which huggingface.co account you are logged in as.c                  J   t               } | t        d       t        j                         	 t	        |       }t        t        j                  d      |d          |d   D cg c]  }|d   	 }}|r.t        t        j                  d      dj                  |             t        dk7  rt        dt                y y c c}w # t        $ rX}t        |       t        t        j                  |j                  j                               t        j                  d	
      d }~ww xY w)NzNot logged inzuser: nameorgszorgs: ,zhttps://huggingface.coz(Authenticated through private endpoint: r   )code)r   r'   r5   r6   r   r   boldjoinr   r   redresponsetext)r   infoorgr>   es        r   auth_whoamirI      s    KE}ojjl!e}dii!4<0'+F|4F44$))H%sxx~6//<XJGH 0	 5  !adhhqzz'(jja  !s+   4C !B<-AC <C 	D"
ADD")NFr9   )r   N)&__doc__typingr   r   r5   huggingface_hub.constantsr   huggingface_hub.errorsr   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;   rI   r:   r   r   <module>rY      s  & '  . 1 ) : : ? ? / 
		H	% LM 
' YZ 		D	D$g	
		D 
	D [	D 
(!?@ 	"*	
	" 
" A"JHSM J0 
(!?@ 	 	I1	
	I %g	
	I 
I AI, 
&>? @ 
(!^_! `!r   