
    5pj!                        S r SSKJr  SSKrSSKJr  SSKJrJrJ	r	J
r
JrJr  SSKJr   " S S	\5      r " S
 S\5      rg)z``ms login`` and ``ms whoami`` commands.

The two flows share their HubApi construction but live in distinct
:class:`CLICommand` classes so each can be registered, tested and evolved
independently.
    )annotationsN)SUPPRESS   )
CLICommand
SubParserserrorinfomake_apisuccess)add_subcmd_token_endpointc                  6    \ rS rSrSr\SS j5       rSS jrSrg)	LoginCommand   z4Persist a token and verify it via ``GET /users/me``.c                    U R                  SSSS9nUR                  SSS SS9  UR                  S	S
S [        S9  UR                  [        S9  g )Nloginz?Authenticate with ModelScope Hub and persist the token locally.z@Prompts for an API token (or accepts --token), then verifies it.)helpdescriptionz--tokenlogin_tokenz:API token. If omitted, you will be prompted interactively.)destdefaultr   z
--endpointsubcmd_endpoint_command)
add_parseradd_argumentr   set_defaultsr   
subparsersparsers     T/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/modelscope_hub/cli/login.pyregisterLoginCommand.register   sm    &&RZ ' 

 	M	 	 	
 	L/@$U]^\2    c                   [        U R                  SS 5      nU(       a,  [        U R                  SS 5      (       d  XR                  l        U R                  R                  =(       d    [        U R                  SS 5      nU(       d   [        R                  " S5      nU(       a  UR                  5       (       d  [        S5        [        S5      e[        U R                  5      nUR                  UR                  5       5      nUR                  =(       d1    UR                  =(       d    [        UR                  5      =(       d    S	n[!        S
U S35        g ! [
        [        4 a    [        S5        [        S5      S ef = f)Nr   endpointtokenzToken (input hidden): zLogin aborted.   zA non-empty token is required.   z	<unknown>zLogged in as .)getattrargsr%   r   getpassEOFErrorKeyboardInterruptr   
SystemExitstripr
   r   usernameemailstridr   )self	subcmd_epr&   apiuseridentitys         r    executeLoginCommand.execute%   s   DII'8$?	WTYY
DAA!*II		%%JGT)J0(@A EKKMM23Q-tyy!yy'==MDJJM#dgg,M+-z+, /0 0&' o4/0s   E (E? Nr   r   returnNoner>   r?   	__name__
__module____qualname____firstlineno____doc__staticmethodr!   r:   __static_attributes__r<   r#   r    r   r      s    >3 3 -r#   r   c                  6    \ rS rSrSr\SS j5       rSS jrSrg)	WhoamiCommand<   z&Show the currently authenticated user.c                `    U R                  SSS9n[        U5        UR                  [        S9  g )Nwhoamiz-Show the user identified by the active token.)r   r   )r   r   r   rJ   r   s     r    r!   WhoamiCommand.register?   s8    &&@ ' 
 	"&)]3r#   c                t   [        U R                  5      nUR                  5       n[        SUR                  =(       d    S 35        [        SUR
                  =(       d    S 35        [        SUR                  b  UR                  OS 35        UR                  (       a  [        SUR                   35        g g )Nzusername   : -zemail      : zid         : zdescription: )r
   r+   rM   r	   r1   r2   r4   r   )r5   r7   r8   s      r    r:   WhoamiCommand.executeH   s    tyy!zz|}T]]1c234}TZZ.3/01}(;TWWEFG=!1!1 234 r#   r<   Nr=   r@   rA   r<   r#   r    rJ   rJ   <   s    04 45r#   rJ   )rF   
__future__r   r,   argparser   baser   r   r   r	   r
   r   compatr   r   rJ   r<   r#   r    <module>rV      s7    #   H H -(-: (-V5J 5r#   