
    g{                       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jD                         Z# ejH                  d      Z% ejL                  ejN                        Z(e(jS                  e%       e#jU                  e(        G d de      Z+ddZ,ddZ-ddZ.ddZ/e0dk(  r ejb                   e-              yy)    )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                      e Zd ZU er ed      Zded<   n G 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<   y	)	Argumentsignore)extrazClassVar[ConfigDict]model_configc                  D    e Zd ZU ej                  j
                  Zded<   y)Arguments.Configr   r   N)__name__
__module____qualname__pydanticExtrar   r   __annotations__     D/var/www/openai/venv/lib/python3.12/site-packages/openai/cli/_cli.pyConfigr   %   s    !..E3.r%   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!   
BaseConfigr'   r*   r/   r0   r1   r2   r3   r4   r6   r$   r%   r&   r   r      s    -7.
* 	

	/X(( 	/ N!G]!#'H '!%K% %)NM($(NM( -1J)0 !L) $$r%   r   c                    t        j                  d d      j                  dddddd	       j                  d
dd       j                  ddd       j                  dddd       j                  ddd       j                  ddt        dd       j                  dd       j                  d d!       j                  d"d#       j                  d$d%d&d't        z   (       d/fd)} j                  | *       j                         }|j                  d+d,      }t        |       |j                  d-d.      }t        j                  ||       S )0N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)r9   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 )r=   r*   c                 &     j                          y )N)
print_help)parsers   r&   r@   z_build_parser.<locals>.helpn   s    r%   )funcapizDirect API callstoolsz!Client side tools for conveniencereturnNone)
argparseArgumentParseradd_argumentstrr   set_defaultsadd_subparsers
add_parserr   r
   )r@   
subparserssub_api	sub_toolsrH   s       @r&   _build_parserrY   >   s   $$HEF
   l1LM
k0FG
is9MN
a  
 #C    F   K    I   k)	   T"&&(J##E0B#CGg%%g4W%XI
Y
3Mr%   c                     	 t                y# t        t        t        j                  f$ r} t        |        Y d } ~ yd } ~ wt        $ r" t        j                  j                  d       Y yw xY w)Nr	   
r   )
_mainr   r   r!   ValidationErrorr   KeyboardInterruptsysstderrwrite)errs    r&   mainrc   ~   sX      h 8 89 c 

s   
 A);+A)(A)c                   dt         j                  v rFt         j                  j                  d      }t         j                  d| }t         j                  |d  }nt         j                  dd  }g }| j                  |      \  }}|j	                  |       t        t        t        |            }|j                  s| j                          |||fS )Nz--r	   )
r_   argvindexparse_known_argsextendr   r   varsr6   
parse_args)rH   idx
known_argsr4   parsedremaining_unknownargss          r&   _parse_argsrp      s    sxxhhnnT"XXa_
xx~XXab\
 & 7 7
 CF \*y$v,/D"" 	4***r%   c                 J   t               } t        |       \  }}}|j                  dk7  rt        j                  j                  d       i }|j                  x|j                  D ]i  }|j                  d      rdnd}||v rt        d| d      t        j                  t        j                  t        j                  |                  ||<   k t        j                  |xs d t               	      }|t        _        |j"                  r|j"                  t        _        |j$                  r|j$                  t        _        |j&                  r|j&                  t        _        |j*                  |j*                  t        _        |j,                  |j,                  t        _        |j.                  |j.                  t        _        |j0                  |j0                  t        _        	 |j2                  rY|j5                  t7        |j2                  i t9        |      j;                         D ci c]
  \  }}||| c}}d
|i             n|j5                          	 |j=                          y c c}}w # t>        $ r Y y w xY w# 	 |j=                          w # t>        $ r Y w w xY wxY 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.   )mountshttp2r4   ) rY   rp   r)   r_   r`   ra   r.   
startswithr   httpxHTTPTransportProxyURLClientr   r9   http_clientr-   r+   r,   base_urlr/   r1   r0   r2   r3   rI   r   ri   itemsclose	Exception)	rH   rm   ro   unknownproxiesr.   keyr{   values	            r&   r\   r\      sB   _F'/FD'~~

EF.0GzzZZE % 0 0 9*yCg~3%/_`aa ..U[[5AQ5RSGCL   ,,$oK %F"//||}}-- }} --& $ 3 3#!--& $ 3 3??KKOO	
 /36l.@.@.B	 /C
U$0  J.B		 '	  KKM	   			 		sU   $AJ  (I+7"J  I1 +J  1	I=<I= J"JJ"	JJ"JJ"__main__)rM   argparse.ArgumentParser)rM   r(   )rH   r   rM   z/tuple[argparse.Namespace, Arguments, list[str]]rL   )2
__future__r   r_   loggingrO   typingr   r   r   r   typing_extensionsr   rv   r!   r9    r
   r   r   _apir   _utilsr   _errorsr   r   _compatr   r   r   _modelsr   _exceptionsr   	getLoggerlogger	Formatter	formatterStreamHandlerr`   handlersetFormatter
addHandlerr   rY   rc   rp   r\   r   exitr$   r%   r&   <module>r      s    " 
   , , &     $ # ! , : :  "				G9:	
'




+   Y    ' %	 %@=@	+0CL zCHHTV r%   