a
    _g{                     @  sf  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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Z.ddddZ/e0d krbe1e-  dS )!    )annotationsN)AnyListTypeOptional)ClassVar   )_tools   )_ApiType__version__)register_commands)can_use_http2)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   ]/var/www/html/cobodadashboardai.evdpl.com/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.   r0   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)r3   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 )r7   r$   Noner1   c                     s       d S N)
print_helpr   parserr   r    r:   n   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   rB   r    _build_parser>   sd    rM   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    
rU   z/tuple[argparse.Namespace, Arguments, list[str]])rC   r2   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   )
rQ   argvindexparse_known_argsextendr   r   varsr0   
parse_args)rC   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r|jD ]J}|drPdnd}||v rltd| dt	j
t	t	|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rV|t|ji d
d t| D d|i n|  W z|  W n ty   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)r(   )ZmountsZhttp2c                 S  s   i | ]\}}|d ur||qS r@   r   ).0keyvaluer   r   r    
<dictcomp>   s   z_main.<locals>.<dictcomp>r.   ) rM   r_   r#   rQ   rR   rS   r(   
startswithr   httpxZHTTPTransportZProxyURLZClientr   r3   http_clientr'   r%   r&   base_urlr)   r+   r*   r,   r-   rD   r   rZ   itemsclose	Exception)rC   r]   r^   unknownproxiesr(   rb   rh   r   r   r    rO      sj    






rO   __main__)2
__future__r   rQ   loggingrF   typingr   r   r   r   Ztyping_extensionsr   rf   r   r3    r	   r   r   Z_apir   _utilsr   _errorsr   r   Z_compatr   r   r   Z_modelsr   _exceptionsr   	getLoggerlogger	Formatter	formatterStreamHandlerrR   handlersetFormatter
addHandlerr   rM   rU   r_   rO   r   exitr   r   r   r    <module>   s8   


 @F
