o
    ͩZh{                     @  sV  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Z,d"ddZ-d#ddZ.d$ddZ/e0d kre1e-  dS 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   F/var/www/html/lang_env/lib/python3.10/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   returnargparse.ArgumentParserc                    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( d2 fd+d,}  j| d-   }|jd.d/d}t| |jd0d1d}t	||  S )3N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$   r1   Nonec                     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r1   r?   )
argparseArgumentParseradd_argumentstrr   set_defaultsadd_subparsers
add_parserr   r	   )r:   Z
subparsersZsub_apiZ	sub_toolsr   rB   r    _build_parser>   sd   rN   r"   c               
   C  sb   zt   W dS  tttjfy! }  zt|  W Y d } ~ dS d } ~ w ty0   tj	d Y dS w )Nr   
r   )
_mainr   r   r   ZValidationErrorr   KeyboardInterruptsysstderrwrite)errr   r   r    main~   s   rV   rC   /tuple[argparse.Namespace, Arguments, list[str]]c                 C  s   dt jv rt jd}t jd| }t j|d  }n	t jdd  }g }| |\}}|| ttt|}|js=| 	  |||fS )Nz--r   )
rR   argvindexparse_known_argsextendr   r   varsr0   
parse_args)rC   idxZ
known_argsr.   parsedZremaining_unknownargsr   r   r    _parse_args   s   


ra   r?   c                  C  s  t  } t| \}}}|jdkrtjd i }|jd urE|jD ]%}|dr(dnd}||v r6td| dt	j
t	t	|d||< qt	j|pJd t d	}|t_|jrY|jt_|jr`|jt_|jrg|jt_|jd urp|jt_|jd ury|jt_|jd ur|jt_|jd ur|jt_z3|jr|t|ji d
d t| D d|i n|  W z|  W d S  ty   Y d S w z|  W w  ty   Y w w )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.   ) rN   ra   r#   rR   rS   rT   r(   
startswithr   httpxZHTTPTransportZProxyURLZClientr   r3   http_clientr'   r%   r&   base_urlr)   r+   r*   r,   r-   rD   r   r\   itemsclose	Exception)rC   r_   r`   unknownproxiesr(   rd   rj   r   r   r    rP      sp   







rP   __main__)r1   r2   )r1   r"   )rC   r2   r1   rW   rF   )2
__future__r   rR   loggingrG   typingr   r   r   r   Ztyping_extensionsr   rh   r   r3    r	   r   r   Z_apir   _utilsr   _errorsr   r   _compatr   r   r   Z_modelsr   _exceptionsr   	getLoggerlogger	Formatter	formatterStreamHandlerrS   handlersetFormatter
addHandlerr   rN   rV   ra   rP   r   exitr   r   r   r    <module>   s<    



 
@

F