
    +hW                       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jH                         Z% ejL                  d      Z' ejP                  ejR                        Z*e*jW                  e'       e%jY                  e*        G d de!      Z-ddZ.ddZ/ddZ0ddZ1e2dk(  r ejf                   e/              yy)    )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                      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__     B/var/www/html/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+   r0   r1   r2   r3   r4   r5   r7   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.)rA   z-kz	--api-keyzWhat API key to use.z-pz--proxy+zWhat proxy to use.)nargsrA   z-oz--organizationzRWhich organization to run as (will use your default organization if not specified)z-tz
--api-type)r:   azurez4The backend API to call, must be `openai` or `azure`)typechoicesrA   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'   rA   z_build_parser.<locals>.helpo   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
   )rA   
subparserssub_api	sub_toolsrI   s       @r'   _build_parserrZ   ?   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'   mainrd      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   varsr7   
parse_args)rI   idx
known_argsr5   parsedremaining_unknownargss          r'   _parse_argsrq      s    sxxhhnnT"XXa_
xx~XXab\
 & 7 7
 CF \*y$v,/D"" 	4***r&   c                    t               } t        |       \  }}}|j                  dk7  rt        j                  j                  d       i }|j                  >|j                  D ]/  }|j                  d      rdnd}||v rt        d| d      |||<   1 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        _        |j*                  |j*                  t        _        	 |j,                  rY|j/                  t1        |j,                  i t3        |      j5                         D ci c]
  \  }}||| c}}d	|i             n|j/                          	 |j7                          y c c}}w # t8        $ r Y y w xY w# 	 |j7                          w # t8        $ 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)proxieshttp2r5   )rZ   rq   r*   r`   ra   rb   r/   
startswithr   httpxClientr   r:   http_clientr.   r,   r-   base_urlr0   r2   r1   r3   r4   rJ   r   rj   itemsclose	Exception)	rI   rn   rp   unknownrt   r/   keyry   values	            r'   r]   r]      s$   _F'/FD'~~

EFGzzZZ 	!E % 0 0 9*yCg~3%/_`aa GCL	! ,,4oK %F"//||}}-- }} --& $ 3 3#!--& $ 3 3??KKOO	
 /36l.@.@.B	 !+U$0  J	 '	  KKM	   			 		sU   *AI .H1="I  H7 1I 7	III(II(	I%"I($I%%I(__main__)rN   argparse.ArgumentParser)rN   r)   )rI   r   rN   z/tuple[argparse.Namespace, Arguments, list[str]]rM   )4
__future__r   r`   loggingrP   typingr   r   r   r   typing_extensionsr   rw   r"   r:    r
   r   r   _apir   _utilsr   _typesr   _errorsr   r   _compatr   r   r   _modelsr   _exceptionsr   	getLoggerlogger	Formatter	formatterStreamHandlerra   handlersetFormatter
addHandlerr   rZ   rd   rq   r]   r   exitr%   r&   r'   <module>r      s    " 
   , , &     $ # !   , : :  "				G9:	
'




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