a
    !fW                     @  sr  d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlZd dlZd dl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mZ ddlmZmZmZ ddl m!Z! ddl"m#Z# e$ Z%e&dZ'e(ej)Z*e*+e' e%,e* G dd de!Z-ddddZ.ddddZ/dddddZ0dddd Z1e2d!krne3e/  dS )"    )annotationsN)AnyListTypeOptional)ClassVar   )_tools   )_ApiType__version__)register_commands)can_use_http2)ProxiesDict)CLIErrordisplay_error)PYDANTIC_V2
ConfigDictmodel_parse)	BaseModel)APIErrorz[%(asctime)s] %(message)sc                   @  s   e Zd ZU er"eddZded< nG dd dejZ	ded< d	Z
d
ed< d
ed< d
ed< d
ed< ded< d	Zded< d	Zd
ed< d	Zd
ed< d	Zd
ed< d	Zded< g Zded< dZded< d	S )	Argumentsignore)extrazClassVar[ConfigDict]model_configc                   @  s   e Zd ZU ejjZded< dS )zArguments.Configr   r   N)__name__
__module____qualname__pydanticZExtrar   r   __annotations__ r    r    P/var/www/html/python-backend/venv/lib/python3.9/site-packages/openai/cli/_cli.pyConfig&   s   
r"   int	verbosityNzOptional[str]versionapi_keyapi_baseorganizationzOptional[List[str]]proxyzOptional[_ApiType]api_typeapi_versionazure_endpointazure_ad_tokenzOptional[Type[BaseModel]]
args_modelz	List[str]unknown_argsFboolallow_unknown_args)r   r   r   r   r   r   r   r   Z
BaseConfigr"   r%   r*   r+   r,   r-   r.   r/   r1   r    r    r    r!   r      s$   
r   zargparse.ArgumentParserreturnc                    s  t jd dd  jddddddd	  jd
ddd  jdddd  jddddd  jdddd  jddtddd  jddd  jd d!d  jd"d#d  jd$d%d&d't d( d)d* fd+d,}  j| d-   }|jd.d/d}t| |jd0d1d}t	||  S )2Nopenai)descriptionprogz-vz	--verbosecountr$   r   zSet verbosity.)actiondestdefaulthelpz-bz
--api-basezWhat API base url to use.)r;   z-kz	--api-keyzWhat API key to use.z-pz--proxy+zWhat proxy to use.)nargsr;   z-oz--organizationzRWhich organization to run as (will use your default organization if not specified)z-tz
--api-type)r4   Zazurez4The backend API to call, must be `openai` or `azure`)typechoicesr;   z--api-versionzvThe Azure API version, e.g. 'https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning'z--azure-endpointz<The Azure endpoint, e.g. 'https://endpoint.openai.azure.com'z--azure-ad-tokenzyA token from Azure Active Directory, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-idz-Vz	--versionr%   z	%(prog)s )r8   r%   Noner2   c                     s       d S N)
print_helpr    parserr    r!   r;   o   s    z_build_parser.<locals>.help)funcapizDirect API callsZtoolsz!Client side tools for convenience)
argparseArgumentParseradd_argumentstrr   set_defaultsadd_subparsers
add_parserr   r	   )r;   Z
subparsersZsub_apiZ	sub_toolsr    rC   r!   _build_parser?   sd    rN   r#   c               
   C  sd   z
t   W nT tttjfy@ }  zt|  W Y d } ~ dS d } ~ 0  ty^   tj	d Y dS 0 dS )Nr   
r   )
_mainr   r   r   ZValidationErrorr   KeyboardInterruptsysstderrwrite)errr    r    r!   main   s    
rV   z/tuple[argparse.Namespace, Arguments, list[str]])rD   r3   c                 C  s   dt jv r4t jd}t jd| }t j|d  }nt jdd  }g }| |\}}|| ttt|}|jsz| 	  |||fS )Nz--r   )
rR   argvindexparse_known_argsextendr   r   varsr1   
parse_args)rD   idxZ
known_argsr/   parsedZremaining_unknownargsr    r    r!   _parse_args   s    

r`   r@   c                  C  s  t  } t| \}}}|jdkr*tjd i }|jd urv|jD ]6}|drPdnd}||v rltd| d|||< q>t	j
|pd t d}|t_|jr|jt_|jr|jt_|jr|jt_|jd ur|jt_|jd ur|jt_|jd ur|jt_|jd ur|jt_zh|jr@|t|ji d	d
 t| D d|i n|  W z|  W n tyj   Y n0 n$z|  W n ty   Y n0 0 d S )Nr   z)Warning: --verbosity isn't supported yet
httpszhttps://zhttp://z	Multiple z0 proxies given - only the last one would be used)proxiesZhttp2c                 S  s   i | ]\}}|d ur||qS rA   r    ).0keyvaluer    r    r!   
<dictcomp>   s   z_main.<locals>.<dictcomp>r/   )rN   r`   r$   rR   rS   rT   r)   
startswithr   httpxZClientr   r4   http_clientr(   r&   r'   base_urlr*   r,   r+   r-   r.   rE   r   r[   itemsclose	Exception)rD   r^   r_   unknownrb   r)   rd   ri   r    r    r!   rP      sj    








rP   __main__)4
__future__r   rR   loggingrG   typingr   r   r   r   Ztyping_extensionsr   rh   r   r4    r	   r   r   Z_apir   _utilsr   _typesr   _errorsr   r   Z_compatr   r   r   Z_modelsr   _exceptionsr   	getLoggerlogger	Formatter	formatterStreamHandlerrS   handlersetFormatter
addHandlerr   rN   rV   r`   rP   r   exitr    r    r    r!   <module>   s:   


 @F
