Ë
    çÍ:j•  ã                   ó€  — d Z ddlmZ ddlmZmZ ddlm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 ddlmZ  ej2                  e«      Z	 ddlmZ ddlmZ dZ  G d„ de	«      Z" G d„ d«      Z# G d„ de#«      Z$ G d„ de#«      Z% G d„ de#«      Z& G d„ de#«      Z' G d„ de#«      Z(y# e!$ r dZ Y ŒVw xY w) 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
é    )Ú_SubParsersAction)ÚListÚOptional)Ú	HTTPError)ÚBaseHuggingfaceCLICommand)ÚENDPOINT)ÚHfApié   )Ú	auth_listÚauth_switchÚloginÚlogout)Úget_stored_tokensÚ	get_tokenÚloggingé   )ÚANSI)Úinquirer)ÚChoiceTFc                   ó"   — e Zd Zedefd„«       Zy)ÚAuthCommandsÚparserc                 óÖ  ‡— | j                  dd¬«      Š‰j                  d¬«      }‰j                  ˆfd„¬«       |j                  dd¬«      }|j                  d	t        d
¬«       |j                  ddd¬«       |j                  d„ ¬«       |j                  dd¬«      }|j                  dt        d¬«       |j                  d„ ¬«       |j                  dd¬«      }|j                  d„ ¬«       |j                  dd¬«      }|j                  dt        d¬«       |j                  ddd¬«       |j                  d„ ¬«       |j                  dd¬«      }|j                  d„ ¬«       y ) NÚauthz,Manage authentication (login, logout, etc.).)ÚhelpzAuthentication subcommandsc                 ó$   •— ‰j                  «       S ©N)Ú
print_help)ÚargsÚauth_parsers    €úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/huggingface_hub/cli/auth.pyú<lambda>z2AuthCommands.register_subcommand.<locals>.<lambda>B   s   ø€ °;×3IÑ3IÓ3K€ ó    )Úfuncr   z8Log in using a token from huggingface.co/settings/tokensz--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                 ó   — t        | «      S r   )Ú	AuthLogin©r   s    r!   r"   z2AuthCommands.register_subcommand.<locals>.<lambda>R   s
   € ´I¸d³O€ r#   r   zLog outz--token-namez3Optional: Name of the access token to log out from.c                 ó   — t        | «      S r   )Ú
AuthLogoutr*   s    r!   r"   z2AuthCommands.register_subcommand.<locals>.<lambda>[   ó   € ´ZÀÓ5E€ r#   Úwhoamiz;Find out which huggingface.co account you are logged in as.c                 ó   — t        | «      S r   )Ú
AuthWhoamir*   s    r!   r"   z2AuthCommands.register_subcommand.<locals>.<lambda>a   r-   r#   ÚswitchzSwitch between access tokensz0Optional: Name of the access token to switch to.c                 ó   — t        | «      S r   )Ú
AuthSwitchr*   s    r!   r"   z2AuthCommands.register_subcommand.<locals>.<lambda>o   s   € ¼*ÀTÓ:J€ r#   ÚlistzList all stored access tokensc                 ó   — t        | «      S r   )ÚAuthListr*   s    r!   r"   z2AuthCommands.register_subcommand.<locals>.<lambda>r   s
   € ¼À»€ r#   )Ú
add_parserÚadd_subparsersÚset_defaultsÚadd_argumentÚstr)r   Úauth_subparsersÚlogin_parserÚlogout_parserÚwhoami_parserÚauth_switch_parserÚauth_list_parserr    s          @r!   Úregister_subcommandz AuthCommands.register_subcommand;   s¸  ø€ ð ×'Ñ'¨Ð5cÐ'ÓdˆØ%×4Ñ4Ð:VÐ4ÓWˆð 	× Ñ Ó&KÐ ÔLð '×1Ñ1ØÐTð 2ó 
ˆð 	×!Ñ!ØÜØNð 	"ô 	
ð
 	×!Ñ!Ø%ØØAð 	"ô 	
ð
 	×!Ñ!Ñ'CÐ!ÔDð (×2Ñ2°8À)Ð2ÓLˆØ×"Ñ"ØÜØFð 	#ô 	
ð
 	×"Ñ"Ñ(EÐ"ÔFð (×2Ñ2ØÐXð 3ó 
ˆð 	×"Ñ"Ñ(EÐ"ÔFð -×7Ñ7¸ÐGeÐ7ÓfÐØ×'Ñ'ØÜØCð 	(ô 	
ð
 	×'Ñ'Ø%ØØAð 	(ô 	
ð
 	×'Ñ'Ñ-JÐ'ÔKà*×5Ñ5°fÐCbÐ5ÓcÐØ×%Ñ%Ñ+FÐ%ÕGr#   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   rB   © r#   r!   r   r   :   s   „ Øð6HÐ$5ò 6Hó ñ6Hr#   r   c                   ó   — e Zd Zd„ Zy)ÚBaseAuthCommandc                 ó0   — || _         t        «       | _        y r   )r   r	   Ú_api)Úselfr   s     r!   Ú__init__zBaseAuthCommand.__init__v   s   € ØˆŒ	Ü“Gˆ�	r#   N)rC   rD   rE   rM   rG   r#   r!   rI   rI   u   s   „ ór#   rI   c                   ó   — e Zd Zd„ Zy)r)   c                 ó–   — t        j                  «        t        | j                  j                  | j                  j
                  ¬«       y )N)ÚtokenÚadd_to_git_credential)r   Úset_verbosity_infor   r   rP   rQ   ©rL   s    r!   ÚrunzAuthLogin.run|   s.   € Ü×"Ñ"Ô$ÜØ—)‘)—/‘/Ø"&§)¡)×"AÑ"Aö	
r#   N©rC   rD   rE   rT   rG   r#   r!   r)   r)   {   s   „ ó
r#   r)   c                   ó   — e Zd Zd„ Zy)r,   c                 ól   — t        j                  «        t        | j                  j                  ¬«       y )N)Ú
token_name)r   rR   r   r   rX   rS   s    r!   rT   zAuthLogout.run…   s    € Ü×"Ñ"Ô$Ü˜$Ÿ)™)×.Ñ.Ö/r#   NrU   rG   r#   r!   r,   r,   „   s   „ ó0r#   r,   c                   ó@   — e Zd Zd„ Zdee   fd„Zdee   dee   fd„Zy)r3   c                 óì   — t        j                  «        | j                  j                  }|€| j	                  «       }|€t        d«       t        «        t        || j                  j                  ¬«       y )Nz!No token name provided. Aborting.)rQ   )	r   rR   r   rX   Ú_select_token_nameÚprintÚexitr   rQ   )rL   rX   s     r!   rT   zAuthSwitch.run‹   sY   € Ü×"Ñ"Ô$Ø—Y‘Y×)Ñ)ˆ
ØÐØ×0Ñ0Ó2ˆJàÐÜÐ5Ô6ÜŒFÜ�J°d·i±i×6UÑ6UÖVr#   Úreturnc                 óä  — t        t        «       j                  «       «      }|st        j	                  d«       y t
        r| j                  |«      S 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.)r4   r   ÚkeysÚloggerÚerrorÚ_inquirer_py_availableÚ_select_token_name_tuir\   Ú	enumerateÚinputÚlowerÚintÚlenÚ
ValueError)rL   Útoken_namesÚirX   ÚchoiceÚindexs         r!   r[   zAuthSwitch._select_token_name–   sï   € ÜÔ,Ó.×3Ñ3Ó5Ó6ˆáÜ�L‰LÐFÔGØå!Ø×.Ñ.¨{Ó;Ð;äÐ(Ô)Ü& {°AÓ6ò 	(‰MˆAˆzÜ�Q�C�r˜*˜Ð&Õ'ð	(àð
NÜÐ^Ó_�Ø—<‘<“> SÒ(ØÜ˜F› a™�Ø˜Ô0¤ KÓ 0Õ0Ø& uÑ-Ð-äÐ@ÕAð øô ò NÜÐLÖMðNús   ÂC Â!)C ÃC ÃC/Ã.C/rl   c                 óÖ   — |D �cg c]  }t        ||¬«      ‘Œ }}	 t        j                  d|d ¬«      j                  «       S c c}w # t        $ r t
        j                  d«       Y y w xY w)N)ÚnamezSelect a token to switch to:)ÚmessageÚchoicesÚdefaultzToken selection cancelled.)r   r   ÚselectÚexecuteÚKeyboardInterruptrb   Úinfo)rL   rl   rX   rs   s       r!   re   z!AuthSwitch._select_token_name_tui°   sk   € ØITÖU¸:”6˜*¨:Ö6ÐUˆÐUð	Ü—?‘?Ø6ØØô÷ ‰g‹ið	ùò Vøô !ò 	Ü�K‰KÐ4Ô5Ùð	ús   …Aœ%A ÁA(Á'A(N)	rC   rD   rE   rT   r   r;   r[   r   re   rG   r#   r!   r3   r3   Š   s5   „ ò	WðN H¨S¡Mó Nð4
°$°s±)ð 
ÀÈÁô 
r#   r3   c                   ó   — e Zd Zd„ Zy)r6   c                 ó@   — t        j                  «        t        «        y r   )r   rR   r   rS   s    r!   rT   zAuthList.run¾   s   € Ü×"Ñ"Ô$Ü�r#   NrU   rG   r#   r!   r6   r6   ½   s   „ ór#   r6   c                   ó   — e Zd Zd„ Zy)r0   c                 óJ  — t        «       }|€t        d«       t        «        	 | j                  j	                  |«      }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        $ rR}t        |«       t        t        j                  |j                  j                  «      «       t        d	«       Y d }~y d }~ww xY w)
NzNot logged inzuser: rq   Úorgszorgs: ú,zhttps://huggingface.coz(Authenticated through private endpoint: r   )r   r\   r]   rK   r.   r   ÚboldÚjoinr   r   ÚredÚresponseÚtext)rL   rP   rx   Úorgr}   Úes         r!   rT   zAuthWhoami.runÄ   sâ   € Ü“ˆØˆ=Ü�/Ô"ÜŒFð	Ø—9‘9×#Ñ# EÓ*ˆDÜ”$—)‘)˜HÓ% t¨F¡|Ô4Ø+/°©<Ö8 C�C˜“KÐ8ˆDÐ8ÙÜ”d—i‘i Ó)¨3¯8©8°D«>Ô:äÐ3Ò3ÜÐ@ÄÀ
ÐKÕLð 4ùò	 9øô ò 	Ü�!ŒHÜ”$—(‘(˜1Ÿ:™:Ÿ?™?Ó+Ô,Ü��G‰Gûð	ús,   £AC Á'CÁ3AC ÃC Ã	D"ÃADÄD"NrU   rG   r#   r!   r0   r0   Ã   s   „ ór#   r0   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   Ú
get_loggerrC   rb   Ú
InquirerPyr   ÚInquirerPy.base.controlr   rd   ÚImportErrorr   rI   r)   r,   r3   r6   r0   rG   r#   r!   ú<module>r”      sÁ   ðñõ& 'ß !å )å >Ý .Ý (ç :Ó :ß 9Ñ 9Ý ð 
ˆ×	Ñ	˜HÓ	%€ð#Ý#Ý.à!Ðô
8HÐ,ô 8H÷vñ ô
�ô 
ô0�ô 0ô0�ô 0ôfˆô ô�õ øð[ ò #Ø"Òð#ús   ÁB3 Â3B=Â<B=