Ë
    çÍ: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mZ  ej4                  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) 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                   ó"   — e Zd Zedefd„«       Zy)ÚUserCommandsÚparserc                 óª  — | j                  dd¬«      }|j                  dt        d¬«       |j                  ddd	¬
«       |j                  d„ ¬«       | j                  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 )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                 ó   — t        | «      S ©N)ÚLoginCommand©Úargss    úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/huggingface_hub/commands/user.pyú<lambda>z2UserCommands.register_subcommand.<locals>.<lambda>H   s   € ´LÀÓ4F€ ó    )ÚfuncÚwhoamiz;Find out which huggingface.co account you are logged in as.c                 ó   — t        | «      S r    )ÚWhoamiCommandr"   s    r$   r%   z2UserCommands.register_subcommand.<locals>.<lambda>J   ó   € ´]À4Ó5H€ r&   r   zLog outz--token-namez3Optional: Name of the access token to log out from.c                 ó   — t        | «      S r    )ÚLogoutCommandr"   s    r$   r%   z2UserCommands.register_subcommand.<locals>.<lambda>R   r+   r&   Úauthz%Other authentication related commandszAuthentication subcommandsÚswitchzSwitch between access tokensz0Optional: Name of the access token to switch to.c                 ó   — t        | «      S r    )ÚAuthSwitchCommandr"   s    r$   r%   z2UserCommands.register_subcommand.<locals>.<lambda>a   s   € Ô:KÈDÓ:Q€ r&   ÚlistzList all stored access tokensc                 ó   — t        | «      S r    )ÚAuthListCommandr"   s    r$   r%   z2UserCommands.register_subcommand.<locals>.<lambda>c   s   € ¼ÈÓ8M€ r&   )Ú
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_subcommandz 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Ñ5°fÐCbÐ5ÓcÐØ×%Ñ%Ñ+MÐ%ÕNr&   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   rA   © r&   r$   r   r   :   s   „ Øð'OÐ$5ò 'Oó ñ'Or&   r   c                   ó   — e Zd Zd„ Zy)ÚBaseUserCommandc                 ó0   — || _         t        «       | _        y r    )r#   r	   Ú_api)Úselfr#   s     r$   Ú__init__zBaseUserCommand.__init__g   s   € ØˆŒ	Ü“Gˆ�	r&   N)rB   rC   rD   rL   rF   r&   r$   rH   rH   f   s   „ ór&   rH   c                   ó   — e Zd Zd„ Zy)r!   c                 ó®   — t        dd«       t        j                  «        t        | j                  j
                  | j                  j                  ¬«       y )Nzhuggingface-cli loginzhf auth login)ÚtokenÚadd_to_git_credential)r   r   Úset_verbosity_infor   r#   rO   rP   ©rK   s    r$   ÚrunzLoginCommand.runm   s9   € Ü Ð!8¸/ÔJä×"Ñ"Ô$ÜØ—)‘)—/‘/Ø"&§)¡)×"AÑ"Aö	
r&   N©rB   rC   rD   rS   rF   r&   r$   r!   r!   l   s   „ ó
r&   r!   c                   ó   — e Zd Zd„ Zy)r-   c                 ó„   — t        dd«       t        j                  «        t        | j                  j
                  ¬«       y )Nzhuggingface-cli logoutzhf auth logout)Ú
token_name)r   r   rQ   r   r#   rW   rR   s    r$   rS   zLogoutCommand.runx   s,   € Ü Ð!9Ð;KÔLä×"Ñ"Ô$Ü˜$Ÿ)™)×.Ñ.Ö/r&   NrT   rF   r&   r$   r-   r-   w   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)r1   c                 ó  — t        dd«       t        j                  «        | j                  j                  }|€| j                  «       }|€t        d«       t        «        t        || j                  j                  ¬«       y )Nzhuggingface-cli auth switchzhf auth switchz!No token name provided. Aborting.)rP   )
r   r   rQ   r#   rW   Ú_select_token_nameÚprintÚexitr   rP   )rK   rW   s     r$   rS   zAuthSwitchCommand.run€   se   € Ü Ð!>Ð@PÔQä×"Ñ"Ô$Ø—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.)r2   r   ÚkeysÚloggerÚerrorÚ_inquirer_py_availableÚ_select_token_name_tuir[   Ú	enumerateÚinputÚlowerÚintÚlenÚ
ValueError)rK   Útoken_namesÚirW   ÚchoiceÚindexs         r$   rZ   z$AuthSwitchCommand._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/rk   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ÚKeyboardInterruptra   Úinfo)rK   rk   rW   rr   s       r$   rd   z(AuthSwitchCommand._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)	rB   rC   rD   rS   r   r7   rZ   r   rd   rF   r&   r$   r1   r1      s5   „ òWðN H¨S¡Mó Nð4
°$°s±)ð 
ÀÈÁô 
r&   r1   c                   ó   — e Zd Zd„ Zy)r4   c                 óX   — t        dd«       t        j                  «        t        «        y )Nzhuggingface-cli auth listzhf auth list)r   r   rQ   r   rR   s    r$   rS   zAuthListCommand.runµ   s   € Ü Ð!<¸nÔMä×"Ñ"Ô$Ü�r&   NrT   rF   r&   r$   r4   r4   ´   s   „ ór&   r4   c                   ó   — e Zd Zd„ Zy)r*   c                 ó:  — t        dd«       t        «       }|€t        d«       t        «        	 | j                  j                  |«      }t        |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huggingface-cli whoamizhf auth whoamizNot logged inrp   Úorgszorgs: ú,zhttps://huggingface.coz(Authenticated through private endpoint: r   )r   r   r[   r\   rJ   r(   r   ÚboldÚjoinr   r   ÚredÚresponseÚtext)rK   rO   rw   Úorgr|   Úes         r$   rS   zWhoamiCommand.run½   sã   € Ü Ð!9Ð;KÔLä“ˆØˆ=Ü�/Ô"ÜŒFð	Ø—9‘9×#Ñ# EÓ*ˆDÜ�$�v‘,ÔØ+/°©<Ö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+   ¯0B? ÁB:Á+AB? Â:B? Â?	DÃADÄDNrT   rF   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_loggerrB   ra   Ú
InquirerPyr   ÚInquirerPy.base.controlr   rc   ÚImportErrorr   rH   r!   r-   r1   r4   r*   rF   r&   r$   ú<module>r“      sÁ   ðñõ& 'ß !å )å >Ý .Ý (ç :Ó :ß 9Ñ 9ß 6ð 
ˆ×	Ñ	˜HÓ	%€ð#Ý#Ý.à!Ðô
)OÐ,ô )O÷Xñ ô
�?ô 
ô0�Oô 0ô2˜ô 2ôj�oô ô�Oõ øðM ò #Ø"Òð#ús   ÁB5 Â5B?Â>B?