
    i\                        S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJrJrJrJr  SS
KJrJrJr  SSKJrJr  \R4                  " \5      r SSKJr  SSKJ r   Sr! " S S\	5      r# " S S5      r$ " S S\$5      r% " S S\$5      r& " S S\$5      r' " S S\$5      r( " S S\$5      r)g! \" a    Sr! NWf = f) aD  Contains commands to authenticate to the Hugging Face Hub and interact with your repositories.

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

    # switch between tokens
    huggingface-cli auth switch

    # list all tokens
    huggingface-cli auth list

    # logout from a specific token, if no token-name is provided, all tokens will be deleted from your machine.
    huggingface-cli logout --token-name=your_token_name

    # find out which huggingface.co account you are logged in as
    huggingface-cli whoami
    )_SubParsersAction)ListOptional)	HTTPError)BaseHuggingfaceCLICommand)ENDPOINT)HfApi   )	auth_listauth_switchloginlogout)get_stored_tokens	get_tokenlogging   )ANSIshow_deprecation_warning)inquirer)ChoiceTFc                   ,    \ rS rSr\S\4S j5       rSrg)UserCommands:   parserc                 D   U R                  SSS9nUR                  S[        SS9  UR                  SSS	S
9  UR                  S S9  U R                  SSS9nUR                  S S9  U R                  SSS9nUR                  S[        SS9  UR                  S S9  U R                  SSS9nUR	                  SS9nUR                  SSS9nUR                  S[        SS9  UR                  SSS	S
9  UR                  S S9  UR                  SSS9nUR                  S S9  g )Nr   z8Log in using a token from huggingface.co/settings/tokens)helpz--tokenz;Token generated from https://huggingface.co/settings/tokens)typer   z--add-to-git-credential
store_truez.Optional: Save token to git credential helper.)actionr   c                     [        U 5      $ N)LoginCommandargss    m/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/huggingface_hub/commands/user.py<lambda>2UserCommands.register_subcommand.<locals>.<lambda>H   s	    L4F    )funcwhoamiz;Find out which huggingface.co account you are logged in as.c                     [        U 5      $ r!   )WhoamiCommandr#   s    r%   r&   r'   J   	    ]45Hr(   r   zLog outz--token-namez3Optional: Name of the access token to log out from.c                     [        U 5      $ r!   )LogoutCommandr#   s    r%   r&   r'   R   r-   r(   authz%Other authentication related commandszAuthentication subcommandsswitchzSwitch between access tokensz0Optional: Name of the access token to switch to.c                     [        U 5      $ r!   )AuthSwitchCommandr#   s    r%   r&   r'   a   s
    :KD:Qr(   listzList all stored access tokensc                     [        U 5      $ r!   )AuthListCommandr#   s    r%   r&   r'   c   s	    8Mr(   )
add_parseradd_argumentstrset_defaultsadd_subparsers)r   login_parserwhoami_parserlogout_parserauth_parserauth_subparsersauth_switch_parserauth_list_parsers           r%   register_subcommand UserCommands.register_subcommand;   s   ((7q(r!!N 	" 	

 	!!%A 	" 	

 	!!'F!G))(9v)w""(H"I))()C""F 	# 	

 	""(H"I''5\']%44:V4W,77Ge7f''C 	( 	

 	''%A 	( 	

 	''-Q'R*55fCb5c%%+M%Nr(    N)__name__
__module____qualname____firstlineno__staticmethodr   rC   __static_attributes__rE   r(   r%   r   r   :   s    'O$5 'O 'Or(   r   c                       \ rS rSrS rSrg)BaseUserCommandf   c                 .    Xl         [        5       U l        g r!   )r$   r	   _api)selfr$   s     r%   __init__BaseUserCommand.__init__g   s    	G	r(   )rP   r$   N)rF   rG   rH   rI   rR   rK   rE   r(   r%   rM   rM   f   s    r(   rM   c                       \ rS rSrS rSrg)r"   l   c                     [        SS5        [        R                  " 5         [        U R                  R
                  U R                  R                  S9  g )Nzhuggingface-cli loginzhf auth login)tokenadd_to_git_credential)r   r   set_verbosity_infor   r$   rW   rX   rQ   s    r%   runLoginCommand.runm   s9     !8/J""$))//"&))"A"A	
r(   rE   NrF   rG   rH   rI   r[   rK   rE   r(   r%   r"   r"   l   s    
r(   r"   c                       \ rS rSrS rSrg)r/   w   c                     [        SS5        [        R                  " 5         [        U R                  R
                  S9  g )Nzhuggingface-cli logoutzhf auth logout)
token_name)r   r   rY   r   r$   ra   rZ   s    r%   r[   LogoutCommand.runx   s,     !9;KL""$$))../r(   rE   Nr]   rE   r(   r%   r/   r/   w   s    0r(   r/   c                   L    \ rS rSrS rS\\   4S jrS\\   S\\   4S jr	Sr
g)	r3      c                    [        SS5        [        R                  " 5         U R                  R                  nUc  U R                  5       nUc  [        S5        [        5         [        XR                  R                  S9  g )Nzhuggingface-cli auth switchzhf auth switchz!No token name provided. Aborting.)rX   )
r   r   rY   r$   ra   _select_token_nameprintexitr   rX   )rQ   ra   s     r%   r[   AuthSwitchCommand.run   sc     !>@PQ""$YY))
002J56FJii6U6UVr(   returnc                    [        [        5       R                  5       5      nU(       d  [        R	                  S5        g [
        (       a  U R                  U5      $ [        S5        [        US5       H  u  p#[        U SU 35        M       [        S5      nUR                  5       S:X  a  g [        U5      S-
  nSUs=::  a  [        U5      :  a  O  OX   $ [        S5         MZ  ! [         a    [        S	5         Nf = f)
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.)r4   r   keysloggererror_inquirer_py_available_select_token_name_tuirg   	enumerateinputlowerintlen
ValueError)rQ   token_namesira   choiceindexs         r%   rf   $AuthSwitchCommand._select_token_name   s    ,.3356LLFG!!..{;;()&{A6MAQCr*&' 7
N^_<<>S(Fa0K 00&--@A   NLMNs   C& -*C& C& &C>=C>rx   c                     U Vs/ s H  n[        X"S9PM     nn [        R                  " SUS S9R                  5       $ s  snf ! [         a    [
        R                  S5         g f = f)N)namezSelect a token to switch to:)messagechoicesdefaultzToken selection cancelled.)r   r   selectexecuteKeyboardInterruptrn   info)rQ   rx   ra   r   s       r%   rq   (AuthSwitchCommand._select_token_name_tui   sj    ITU:6*6U	??6 gi	 V ! 	KK45	s   ?#A A&%A&rE   N)rF   rG   rH   rI   r[   r   r9   rf   r   rq   rK   rE   r(   r%   r3   r3      s5    WNHSM N4
$s) 
 
r(   r3   c                       \ rS rSrS rSrg)r6      c                 Z    [        SS5        [        R                  " 5         [        5         g )Nzhuggingface-cli auth listzhf auth list)r   r   rY   r   rZ   s    r%   r[   AuthListCommand.run   s     !<nM""$r(   rE   Nr]   rE   r(   r%   r6   r6      s    r(   r6   c                       \ rS rSrS rSrg)r,      c                 R   [        SS5        [        5       nUc  [        S5        [        5          U R                  R                  U5      n[        US   5        US    Vs/ s H  o3S   PM	     nnU(       a/  [        [        R                  " S5      SR                  U5      5        [        S:w  a  [        S	[         35        g g s  snf ! [         aS  n[        U5        [        [        R                  " UR                  R                  5      5        [        S
5         S nAg S nAff = f)Nzhuggingface-cli whoamizhf auth whoamizNot logged inr~   orgszorgs: ,zhttps://huggingface.coz(Authenticated through private endpoint: r   )r   r   rg   rh   rP   r*   r   boldjoinr   r   redresponsetext)rQ   rW   r   orgr   es         r%   r[   WhoamiCommand.run   s     !9;KL=/"F	99##E*D$v,+/<8<CK<D8dii)388D>:33@
KL 4	 9  	!H$((1::??+,GG	s+   0C	  C.AC	 C	 	
D&A	D!!D&rE   Nr]   rE   r(   r%   r,   r,      s    r(   r,   N)*__doc__argparser   typingr   r   requests.exceptionsr   huggingface_hub.commandsr   huggingface_hub.constantsr   huggingface_hub.hf_apir	   _loginr   r   r   r   utilsr   r   r   
_cli_utilsr   r   
get_loggerrF   rn   
InquirerPyr   InquirerPy.base.controlr   rp   ImportErrorr   rM   r"   r/   r3   r6   r,   rE   r(   r%   <module>r      s   & ' ! ) > . ( : : 9 9 6 
		H	%##.!
)O, )OX 
? 
0O 02 2jo O M  #"#s   B5 5C ?C 