o
    d۷i                  	   @   s  d dl Z d dlZd dlmZ d dlmZmZ d dlZd dlm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d	d
lmZmZ eeZG dd deZddedefddZdefddZ dde	dedB defddZ!e j"	ddededB ded fddZ#dS )    N)	Generator)AnyLiteral)	HTTPErrorHTTPStatusErrorReadTimeout)Segment)RichToolkitRichToolkitTheme)Progress)MinimalStyleTaggedStyle   )Identitydelete_auth_configc                       sj   e Zd Zddef fddZ			ddeeef ded	ed
e	d dB de
ee ef f
 fddZ  ZS )FastAPIStyle   	tag_widthc                    s   t  j|d d S )Nr   )super__init__)selfr   	__class__ Q/home/ubuntu/vllm_env/lib/python3.10/site-packages/fastapi_cloud_cli/utils/cli.pyr      s   zFastAPIStyle.__init__FNmetadatais_animateddoneanimation_status)startedstoppederrorreturnc                    st   |st  j||||dS g d}|| jt|  }|r#|d|d }|dkr)d}| jd }td|}t|g|fS )	N)r   )u   🥚u   🐣u   🐤u   🐥u   🐓u   🐔
done_emojir"   u   🟡r   r   )r   _get_tag_segmentsanimation_counterlengetr   maxr   )r   r   r   r   r   emojistagleft_paddingr   r   r   r&      s   	

zFastAPIStyle._get_tag_segments)r   )FFN)__name__
__module____qualname__intr   dictstrr   boolr   tuplelistr   r&   __classcell__r   r   r   r   r      s     

r   Fminimalr#   c                 C   s>   | rt  ntdd}t|ddddddd	d
dd	d}t|dS )Nr   r   zwhite on #009485zwhite on #007166grey62whitez#007166grey85z
on #007166redzindian_red italic)	z	tag.titler,   placeholdertextselectedresultprogressr"   	cancelled)styletheme)rD   )r   r   r
   r	   )r8   rC   rD   r   r   r   get_rich_toolkit9   s   
rE   c                  C   s2   d} t  }|jdkrt  | d7 } | S | d7 } | S )Nz"The specified token is not valid. userz,Use `fastapi login` to generate a new token.zMake sure to use a valid token.)r   	auth_moder   )messageidentityr   r   r   handle_unauthorizedN   s   
rJ   r"   default_messagec                 C   sb   d }t | tr&| jj}|dkrt| j  n|dkr t }n|dkr&d}|s/|p.d|  }|S )Ni  i  i  z,You don't have permissions for this resourcezZSomething went wrong while contacting the FastAPI Cloud server. Please try again later. 

)
isinstancer   responsestatus_codeloggerdebugjsonrJ   )r"   rK   rH   rN   r   r   r   handle_http_error]   s   
rR   rA   )NNNc              
   c   s    zd V  W d S  t y# } zt| | d tdd d }~w tyC } zt| t||}| | tdd d }~ww )NzJThe request to the FastAPI Cloud server timed out. Please try again later.r   )r   rO   rP   	set_errortyperExitr   rR   )rA   rK   erH   r   r   r   handle_http_errorsv   s"   



rW   )F)N)$
contextlibloggingcollections.abcr   typingr   r   rT   httpxr   r   r   rich.segmentr   rich_toolkitr	   r
   rich_toolkit.progressr   rich_toolkit.stylesr   r   authr   r   	getLoggerr.   rO   r   r4   rE   r3   rJ   rR   contextmanagerrW   r   r   r   r   <module>   s2    
'