
    хiV                    d   S SK Jr  S SKrS SKJrJrJr  S SKJrJ	r	  S SK
r
SSKJrJr  SSKJr  SSKJrJrJrJrJrJrJr  SS	KJrJrJr  SS
KJr  SSKJrJ r   SSKJ!r!J"r"  SSK#J$r$J%r%J&r&  / SQr' " S S\%5      r( " S S\&5      r) " S S5      r* " S S5      r+ " S S5      r, " S S5      r-\(r.\)r/g)    )annotationsN)AnyUnionMapping)Selfoverride   )	resources_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mappingget_async_library)__version__)StreamAsyncStream)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)	r   r   r   r   r
   OpenAIAsyncOpenAIClientAsyncClientc                    ^  \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S \S!'   S \S"'   S#S#S#S#\\S#S#S#S$S%.
                     S.U 4S& jjjr\\	S/S' j5       5       r
\\	S0S( j5       5       r\\	S1U 4S) jj5       5       rS#S#S#S#\S#\S#S#S#S#0 S*.                         S2S+ jjr\r\	        S3S, j5       rS-rU =r$ )4r    1   zresources.Completionscompletionszresources.Chatchatzresources.Embeddings
embeddingszresources.Filesfileszresources.Imagesimageszresources.Audioaudiozresources.Moderationsmoderationszresources.Modelsmodelszresources.FineTuningfine_tuningzresources.Betabetazresources.Batchesbatcheszresources.UploadsuploadsOpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | NoneorganizationprojectNF
r7   r9   r:   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc       
        n  > Uc  [         R                  R                  S5      nUc  [        S5      eXl        Uc  [         R                  R                  S5      nX l        Uc  [         R                  R                  S5      nX0l        Uc  [         R                  R                  S5      nUc  Sn[        TU ]!  [        UUUU	UUU
S9  [        U l        [        R                  " U 5      U l        [        R                  " U 5      U l        [        R"                  " U 5      U l        [        R&                  " U 5      U l        [        R*                  " U 5      U l        [        R.                  " U 5      U l        [        R2                  " U 5      U l        [        R6                  " U 5      U l        [        R:                  " U 5      U l        [        R>                  " U 5      U l         [        RB                  " U 5      U l"        [        RF                  " U 5      U l$        [K        U 5      U l&        [O        U 5      U l(        g)	a  Construct a new synchronous openai client instance.

This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_key` from `OPENAI_API_KEY`
- `organization` from `OPENAI_ORG_ID`
- `project` from `OPENAI_PROJECT_ID`
NOPENAI_API_KEYThe api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variableOPENAI_ORG_IDOPENAI_PROJECT_IDOPENAI_BASE_URLhttps://api.openai.com/v1versionr<   r>   r=   rA   custom_headerscustom_queryrB   ))osenvirongetr   r7   r9   r:   super__init__r   r   _default_stream_clsr
   Completionsr&   Chatr'   
Embeddingsr(   Filesr)   Imagesr*   Audior+   Moderationsr,   Modelsr-   
FineTuningr.   Betar/   Batchesr0   Uploadsr1   r2   r3   r4   r5   selfr7   r9   r:   r<   r=   r>   r?   r@   rA   rB   	__class__s              H/home/james-whalen/.local/lib/python3.13/site-packages/openai/_client.pyrR   OpenAI.__init__F   s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $* $006NN4(	#..t4__T*
&&t,__T*
$006&&t,$//5NN4(	 ((. ((.!6t!<'A$'G$    c                    [        SS9$ Nbrackets)array_formatr   ra   s    rc   qs	OpenAI.qs        
33re   c                (    U R                   nSSU 30$ NAuthorizationzBearer r7   ra   r7   s     rc   auth_headersOpenAI.auth_headers        ,,77)!455re   c                   > 0 [         TU ]  ESU R                  b  U R                  O	[        5       U R                  b  U R                  O	[        5       S.EU R
                  E$ )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rQ   r?   r9   r   r:   _custom_headersra   rb   s    rc   r?   OpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
re   r7   r9   r:   r<   r=   rA   r>   r?   set_default_headersr@   set_default_query_extra_kwargsc               &   Ub  U	b  [        S5      eU
b  Ub  [        S5      eU R                  nUb  0 UEUEnOU	b  U	nU R                  nU
b  0 UEU
EnOUb  UnU=(       d    U R                  nU R                  " SU=(       d    U R
                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  [        U[        5      (       a  U R                  OUU[        U5      (       a  UOU R                  UUS.	UD6$ zn
Create a new client instance re-using the same options given to the current client with optional overriding.
zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)	r7   r9   r:   r<   r=   rA   r>   r?   r@    
ValueErrorry   _custom_query_clientrb   r7   r9   r:   r<   
isinstancer   r=   r   r>   ra   r7   r9   r:   r<   r=   rA   r>   r?   r}   r@   r~   r   headersparamss                  rc   copyOpenAI.copy      & &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\~~ 
+t||%:):):+t||.$.w$A$ADLLw#'/'<'<$BRBR# 
 
 	
re   c                  [        U5      (       a  UR                  SU5      OUnUR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R
                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S	:X  a  [        R                  " XUS9$ UR                  S
:  a  [        R                  " XUS9$ [        XUS9$ Nerrori  )responsebodyi  i  i  i  i  i  i  r   rP   status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   ra   err_msgr   r   datas        rc   _make_status_errorOpenAI._make_status_error   :    +5T*:*:txx&3&..wPTUU3&227TXYY3&44WVZ[[3&,,WdSS3&,,WdSS3&77Y]^^3&--gtTT3&227TXYYgtDDre   rS   r7   r+   r0   r/   r'   r&   r(   r)   r.   r*   r-   r,   r9   r:   r1   r3   r5   )r7   r8   r9   r8   r:   r8   r<   str | httpx.URL | Noner=   %Union[float, Timeout, None, NotGiven]r>   intr?   Mapping[str, str] | Noner@   Mapping[str, object] | NonerA   httpx.Client | NonerB   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r7   r8   r9   r8   r:   r8   r<   r   r=   !float | Timeout | None | NotGivenrA   r   r>   int | NotGivenr?   r   r}   r   r@   r   r~   r   r   Mapping[str, Any]r   r   r   r6   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____firstlineno____annotations__r   r   rR   propertyr   rk   rs   r?   r   with_optionsr   __static_attributes____classcell__rb   s   @rc   r    r    1   sh   &&
$$&&%%
,,77 L
 ##'"+/9B.4859 ,0 -2/OH OH !	OH
 OH )OH 7OH OH 2OH 3OH )OH. &*/OH0 
1OH OHb 4  4 6  6 
  
 ##'"+/5>+/&/488<599=+-1
 1
 !	1

 1
 )1
 31
 )1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Ere   r    c                    ^  \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S \S!'   S \S"'   S#S#S#S#\\S#S#S#S$S%.
                     S.U 4S& jjjr\\	S/S' j5       5       r
\\	S0S( j5       5       r\\	S1U 4S) jj5       5       rS#S#S#S#\S#\S#S#S#S#0 S*.                         S2S+ jjr\r\	        S3S, j5       rS-rU =r$ )4r!   i  zresources.AsyncCompletionsr&   zresources.AsyncChatr'   zresources.AsyncEmbeddingsr(   zresources.AsyncFilesr)   zresources.AsyncImagesr*   zresources.AsyncAudior+   zresources.AsyncModerationsr,   zresources.AsyncModelsr-   zresources.AsyncFineTuningr.   zresources.AsyncBetar/   zresources.AsyncBatchesr0   zresources.AsyncUploadsr1   AsyncOpenAIWithRawResponser3   AsyncOpenAIWithStreamedResponser5   r6   r7   r8   r9   r:   NFr;   c       
        n  > Uc  [         R                  R                  S5      nUc  [        S5      eXl        Uc  [         R                  R                  S5      nX l        Uc  [         R                  R                  S5      nX0l        Uc  [         R                  R                  S5      nUc  Sn[        TU ]!  [        UUUU	UUU
S9  [        U l        [        R                  " U 5      U l        [        R                  " U 5      U l        [        R"                  " U 5      U l        [        R&                  " U 5      U l        [        R*                  " U 5      U l        [        R.                  " U 5      U l        [        R2                  " U 5      U l        [        R6                  " U 5      U l        [        R:                  " U 5      U l        [        R>                  " U 5      U l         [        RB                  " U 5      U l"        [        RF                  " U 5      U l$        [K        U 5      U l&        [O        U 5      U l(        g)	a  Construct a new async openai client instance.

This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_key` from `OPENAI_API_KEY`
- `organization` from `OPENAI_ORG_ID`
- `project` from `OPENAI_PROJECT_ID`
NrD   rE   rF   rG   rH   rI   rJ   ))rN   rO   rP   r   r7   r9   r:   rQ   rR   r   r   rS   r
   AsyncCompletionsr&   	AsyncChatr'   AsyncEmbeddingsr(   
AsyncFilesr)   AsyncImagesr*   
AsyncAudior+   AsyncModerationsr,   AsyncModelsr-   AsyncFineTuningr.   	AsyncBetar/   AsyncBatchesr0   AsyncUploadsr1   r   r3   r   r5   r`   s              rc   rR   AsyncOpenAI.__init__  s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $/ $55d;''-	#33D9))$/
++D1))$/
$55d;++D1$44T:''-	 --d3 --d3!;D!A'Ft'L$re   c                    [        SS9$ rg   r   rj   s    rc   rk   AsyncOpenAI.qsm  rm   re   c                (    U R                   nSSU 30$ ro   rq   rr   s     rc   rs   AsyncOpenAI.auth_headersr  ru   re   c                   > 0 [         TU ]  ES[        5        3U R                  b  U R                  O	[	        5       U R
                  b  U R
                  O	[	        5       S.EU R                  E$ )Nzasync:rx   )rQ   r?   r   r9   r   r:   ry   rz   s    rc   r?   AsyncOpenAI.default_headersx  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
re   r|   c               &   Ub  U	b  [        S5      eU
b  Ub  [        S5      eU R                  nUb  0 UEUEnOU	b  U	nU R                  nU
b  0 UEU
EnOUb  UnU=(       d    U R                  nU R                  " SU=(       d    U R
                  U=(       d    U R                  U=(       d    U R                  U=(       d    U R                  [        U[        5      (       a  U R                  OUU[        U5      (       a  UOU R                  UUS.	UD6$ r   r   r   s                  rc   r   AsyncOpenAI.copy  r   re   c                  [        U5      (       a  UR                  SU5      OUnUR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R
                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S:X  a  [        R                  " XUS9$ UR                  S	:X  a  [        R                  " XUS9$ UR                  S
:  a  [        R                  " XUS9$ [        XUS9$ r   r   r   s        rc   r   AsyncOpenAI._make_status_error  r   re   r   )r7   r8   r9   r8   r:   r8   r<   r   r=   r   r>   r   r?   r   r@   r   rA   httpx.AsyncClient | NonerB   r   r   r   r   r   r   )r7   r8   r9   r8   r:   r8   r<   r   r=   r   rA   r   r>   r   r?   r   r}   r   r@   r   r~   r   r   r   r   r   r   r   r   s   @rc   r!   r!     sh   ++
))!!++!!**
####11<< L
 ##'"+/9B.4859 15 -2/OM OM !	OM
 OM )OM 7OM OM 2OM 3OM .OM. &*/OM0 
1OM OMb 4  4 6  6 
  
 ##'"+/5>04&/488<599=+-1
 1
 !	1

 1
 )1
 31
 .1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Ere   r!   c                      \ rS rSrSS jrSrg)r2   i  c                |   [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R
                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l
        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                   5      U l        [         R"                  " UR$                  5      U l        [         R&                  " UR(                  5      U l        [         R*                  " UR,                  5      U l        [         R.                  " UR0                  5      U l        g N)r
   CompletionsWithRawResponser&   ChatWithRawResponser'   EmbeddingsWithRawResponser(   FilesWithRawResponser)   ImagesWithRawResponser*   AudioWithRawResponser+   ModerationsWithRawResponser,   ModelsWithRawResponser-   FineTuningWithRawResponser.   BetaWithRawResponser/   BatchesWithRawResponser0   UploadsWithRawResponser1   ra   clients     rc   rR   OpenAIWithRawResponse.__init__  s   $??@R@RS11&++>	#==f>O>OP33FLLA
55fmmD33FLLA
$??@R@RS55fmmD$>>v?Q?QR11&++>	 77G 77Gre   r+   r0   r/   r'   r&   r(   r)   r.   r*   r-   r,   r1   Nr   r    r   r   r   r   r   r   rR   r   r   re   rc   r2   r2     s    Hre   r2   c                      \ rS rSrSS jrSrg)r   i  c                |   [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R
                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l
        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                   5      U l        [         R"                  " UR$                  5      U l        [         R&                  " UR(                  5      U l        [         R*                  " UR,                  5      U l        [         R.                  " UR0                  5      U l        g r   )r
   AsyncCompletionsWithRawResponser&   AsyncChatWithRawResponser'   AsyncEmbeddingsWithRawResponser(   AsyncFilesWithRawResponser)   AsyncImagesWithRawResponser*   AsyncAudioWithRawResponser+   AsyncModerationsWithRawResponser,   AsyncModelsWithRawResponser-   AsyncFineTuningWithRawResponser.   AsyncBetaWithRawResponser/   AsyncBatchesWithRawResponser0   AsyncUploadsWithRawResponser1   r   s     rc   rR   #AsyncOpenAIWithRawResponse.__init__  s   $DDVEWEWX66v{{C	#BB6CTCTU88F
::6==I88F
$DDVEWEWX::6==I$CCFDVDVW66v{{C	 <<V^^L <<V^^Lre   r   Nr   r!   r   r   r   r   re   rc   r   r     s    Mre   r   c                      \ rS rSrSS jrSrg)r4   i  c                |   [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R
                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l
        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                   5      U l        [         R"                  " UR$                  5      U l        [         R&                  " UR(                  5      U l        [         R*                  " UR,                  5      U l        [         R.                  " UR0                  5      U l        g r   )r
    CompletionsWithStreamingResponser&   ChatWithStreamingResponser'   EmbeddingsWithStreamingResponser(   FilesWithStreamingResponser)   ImagesWithStreamingResponser*   AudioWithStreamingResponser+    ModerationsWithStreamingResponser,   ModelsWithStreamingResponser-   FineTuningWithStreamingResponser.   BetaWithStreamingResponser/   BatchesWithStreamingResponser0   UploadsWithStreamingResponser1   r   s     rc   rR   #OpenAIWithStreamedResponse.__init__  s   $EEfFXFXY77D	#CCFDUDUV99&,,G
;;FMMJ99&,,G
$EEfFXFXY;;FMMJ$DDVEWEWX77D	 ==fnnM ==fnnMre   r   Nr   r   r   re   rc   r4   r4     s    Nre   r4   c                      \ rS rSrSS jrSrg)r   i  c                |   [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R
                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l
        [         R                  " UR                  5      U l        [         R                  " UR                  5      U l        [         R                  " UR                   5      U l        [         R"                  " UR$                  5      U l        [         R&                  " UR(                  5      U l        [         R*                  " UR,                  5      U l        [         R.                  " UR0                  5      U l        g r   )r
   %AsyncCompletionsWithStreamingResponser&   AsyncChatWithStreamingResponser'   $AsyncEmbeddingsWithStreamingResponser(   AsyncFilesWithStreamingResponser)    AsyncImagesWithStreamingResponser*   AsyncAudioWithStreamingResponser+   %AsyncModerationsWithStreamingResponser,    AsyncModelsWithStreamingResponser-   $AsyncFineTuningWithStreamingResponser.   AsyncBetaWithStreamingResponser/   !AsyncBatchesWithStreamingResponser0   !AsyncUploadsWithStreamingResponser1   r   s     rc   rR   (AsyncOpenAIWithStreamedResponse.__init__  s   $JJ6K]K]^<<V[[I	#HHIZIZ[>>v||L
@@O>>v||L
$JJ6K]K]^@@O$II&J\J\]<<V[[I	 BB6>>R BB6>>Rre   r   Nr   r   r   re   rc   r   r     s    Sre   r   )0
__future__r   rN   typingr   r   r   typing_extensionsr   r   httpx r
   r   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   r   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   __all__r    r!   r2   r   r4   r   r"   r#   r   re   rc   <module>r+     s    # 	 & & ,  $    
 " D 4 
SE] SElSE. SElH H M M N N S S  
re   