
    jW                    l   d dl mZ d dlmZ d dlmZ d dlZddlmZ ddl	m
Z
mZ ddlmZmZmZmZmZmZmZ dd	lmZmZmZ dd
lmZ ddlmZmZ ddlmZmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddgZ* G d de      Z+ G d de      Z, G d d      Z- G d d      Z. G d d      Z/ G d d      Z0y)    )annotations)Optional)LiteralN   )_legacy_response)batch_list_paramsbatch_create_params)BodyOmitQueryHeadersNotGivenomit	not_given)path_templatemaybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)Batch)AsyncPaginatormake_request_options)MetadataBatchesAsyncBatchesc                      e Zd ZdZedd       Zedd       Zeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	ddded	 	 	 	 	 	 	 	 	 	 	 ddZ
eeddded		 	 	 	 	 	 	 	 	 	 	 	 	 dd
Zddded	 	 	 	 	 	 	 	 	 	 	 ddZy)r   ;Create large batches of API requests to run asynchronously.c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )BatchesWithRawResponseselfs    w/var/www/internaltesting/Shamanth/prverification/HIS_auto/venv/lib/python3.12/site-packages/openai/resources/batches.pywith_raw_responsezBatches.with_raw_response   s     &d++    c                    t        |       S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )BatchesWithStreamingResponser&   s    r(   with_streaming_responsezBatches.with_streaming_response&   s     ,D11r*   Nmetadataoutput_expires_afterextra_headersextra_query
extra_bodytimeoutc       	            | j                  dt        |||||dt        j                        t	        ||||	ddi      t
              S )  
        Creates and executes a batch from an uploaded file of requests

        Args:
          completion_window: The time frame within which the batch should be processed. Currently only `24h`
              is supported.

          endpoint: The endpoint to be used for all requests in the batch. Currently
              `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, `/v1/completions`,
              `/v1/moderations`, `/v1/images/generations`, `/v1/images/edits`, and
              `/v1/videos` are supported. Note that `/v1/embeddings` batches are also
              restricted to a maximum of 50,000 embedding inputs across all requests in the
              batch.

          input_file_id: The ID of an uploaded file that contains requests for the new batch.

              See [upload file](https://platform.openai.com/docs/api-reference/files/create)
              for how to upload a file.

              Your input file must be formatted as a
              [JSONL file](https://platform.openai.com/docs/api-reference/batch/request-input),
              and must be uploaded with the purpose `batch`. The file can contain up to 50,000
              requests, and can be up to 200 MB in size.

          metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
              for storing additional information about the object in a structured format, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          output_expires_after: The expiration policy for the output and/or error file that are generated for a
              batch.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        /batchescompletion_windowendpointinput_file_idr0   r1   bearer_authTr2   r3   r4   r5   securitybodyoptionscast_to)_postr   r	   BatchCreateParamsr   r   
r'   r:   r;   r<   r0   r1   r2   r3   r4   r5   s
             r(   createzBatches.create/   sh    D zz ): (%2 (,@ $55	 )+'%'. '  
 	
r*   r2   r3   r4   r5   c                   |st        d|      | j                  t        d|      t        ||||ddi      t              S )F  
        Retrieves a batch.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        7Expected a non-empty value for `batch_id` but received /batches/{batch_id}batch_idr=   Tr>   rB   rC   
ValueError_getr   r   r   r'   rN   r2   r3   r4   r5   s         r(   retrievezBatches.retrieve   s^    . VW_Vbcddyy/(C(+'%'.   

 
	
r*   afterlimitr2   r3   r4   r5   c                   | j                  dt        t           t        ||||t	        ||dt
        j                        ddi      t              S a,  List your organization's batches.

        Args:
          after: A cursor for use in pagination.

        `after` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              ending with obj_foo, your subsequent call can include after=obj_foo in order to
              fetch the next page of the list.

          limit: A limit on the number of objects to be returned. Limit can range between 1 and
              100, and the default is 20.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r8   )rV   rW   r=   T)r2   r3   r4   r5   queryr?   )pagerB   model)_get_api_listr   r   r   r   r   BatchListParamsr'   rV   rW   r2   r3   r4   r5   s          r(   listzBatches.list   si    B !!&(+'%%!&!& &55 (. # " 
 	
r*   c                   |st        d|      | j                  t        d|      t        ||||ddi      t              S )
  Cancels an in-progress batch.

        The batch will be in status `cancelling` for up to
        10 minutes, before changing to `cancelled`, where it will have partial results
        (if any) available in the output file.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        rK   /batches/{batch_id}/cancelrM   r=   Tr>   rO   rQ   rD   r   r   r   rS   s         r(   cancelzBatches.cancel   s^    4 VW_Vbcddzz6J(+'%'.   

 
	
r*   )returnr%   )rf   r-   r:   zLiteral['24h']r;   zLiteral['/v1/responses', '/v1/chat/completions', '/v1/embeddings', '/v1/completions', '/v1/moderations', '/v1/images/generations', '/v1/images/edits', '/v1/videos']r<   strr0   zOptional[Metadata] | Omitr1   z-batch_create_params.OutputExpiresAfter | Omitr2   Headers | Noner3   Query | Noner4   Body | Noner5   'float | httpx.Timeout | None | NotGivenrf   r   rN   rh   r2   ri   r3   rj   r4   rk   r5   rl   rf   r   )rV   
str | OmitrW   
int | Omitr2   ri   r3   rj   r4   rk   r5   rl   rf   zSyncCursorPage[Batch]__name__
__module____qualname____doc__r   r)   r.   r   r   rG   rT   r`   re    r*   r(   r   r      s   E, , 2 2. /3NR )-$("&;D-V
 *V
	
	V
 V
 ,V
  L!V
& &'V
( ")V
*  +V
, 9-V
. 
/V
| )-$("&;D#
#
 &#
 "#
  #
 9#
 
#
P !  )-$("&;D3
 3
 	3
 &3
 "3
  3
 93
 
3
v )-$("&;D&
&
 &&
 "&
  &
 9&
 
&
r*   c                      e Zd ZdZedd       Zedd       Zeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	ddded	 	 	 	 	 	 	 	 	 	 	 ddZ
eeddded		 	 	 	 	 	 	 	 	 	 	 	 	 dd
Zddded	 	 	 	 	 	 	 	 	 	 	 ddZy)r    r"   c                    t        |       S r$   )AsyncBatchesWithRawResponser&   s    r(   r)   zAsyncBatches.with_raw_response  s     +400r*   c                    t        |       S r,   )!AsyncBatchesWithStreamingResponser&   s    r(   r.   z$AsyncBatches.with_streaming_response  s     166r*   Nr/   c       	           K   | j                  dt        |||||dt        j                         d{   t	        ||||	ddi      t
               d{   S 7 '7 w)r7   r8   r9   Nr=   Tr>   r@   )rD   r   r	   rE   r   r   rF   s
             r(   rG   zAsyncBatches.create   s     D ZZ,): (%2 (,@ $55	 	 )+'%'. '   
 
 	
	
s!   0AA
"AAAArH   c                  K   |st        d|      | j                  t        d|      t        ||||ddi      t               d{   S 7 w)	rJ   rK   rL   rM   r=   Tr>   rO   NrP   rS   s         r(   rT   zAsyncBatches.retrievex  sl     . VW_VbcddYY/(C(+'%'.   

 

 
	
 

   AA	A
ArU   c                   | j                  dt        t           t        ||||t	        ||dt
        j                        ddi      t              S rY   )r]   r   r   r   r   r   r^   r_   s          r(   r`   zAsyncBatches.list  si    B !! '(+'%%!&!& &55 (. # " 
 	
r*   c                  K   |st        d|      | j                  t        d|      t        ||||ddi      t               d{   S 7 w)	rb   rK   rc   rM   r=   Tr>   rO   Nrd   rS   s         r(   re   zAsyncBatches.cancel  sl     4 VW_VbcddZZ6J(+'%'.    

 

 
	
 

r}   )rf   rx   )rf   rz   rg   rm   )rV   rn   rW   ro   r2   ri   r3   rj   r4   rk   r5   rl   rf   z-AsyncPaginator[Batch, AsyncCursorPage[Batch]]rp   ru   r*   r(   r    r    
  s   E1 1 7 7. /3NR )-$("&;D-V
 *V
	
	V
 V
 ,V
  L!V
& &'V
( ")V
*  +V
, 9-V
. 
/V
| )-$("&;D#
#
 &#
 "#
  #
 9#
 
#
P !  )-$("&;D3
 3
 	3
 &3
 "3
  3
 93
 
73
v )-$("&;D&
&
 &&
 "&
  &
 9&
 
&
r*   c                      e Zd ZddZy)r%   c                2   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        y N)_batchesr   to_raw_response_wrapperrG   rT   r`   re   r'   batchess     r(   __init__zBatchesWithRawResponse.__init__  su    &>>NN
 )@@
 %<<LL
	 '>>NN
r*   Nr   r   rf   Nonerq   rr   rs   r   ru   r*   r(   r%   r%         
r*   r%   c                      e Zd ZddZy)rx   c                2   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        y r   )r   r   async_to_raw_response_wrapperrG   rT   r`   re   r   s     r(   r   z$AsyncBatchesWithRawResponse.__init__  su    &DDNN
 )FF
 %BBLL
	 'DDNN
r*   Nr   r    rf   r   r   ru   r*   r(   rx   rx     r   r*   rx   c                      e Zd ZddZy)r-   c                    || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        y r   )r   r   rG   rT   r`   re   r   s     r(   r   z%BatchesWithStreamingResponse.__init__   s]    2NN
 5
 1LL
	 3NN
r*   Nr   r   ru   r*   r(   r-   r-     r   r*   r-   c                      e Zd ZddZy)rz   c                    || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        y r   )r   r   rG   rT   r`   re   r   s     r(   r   z*AsyncBatchesWithStreamingResponse.__init__2  s]    8NN
 ;
 7LL
	 9NN
r*   Nr   r   ru   r*   r(   rz   rz   1  r   r*   rz   )1
__future__r   typingr   typing_extensionsr   httpx r   typesr   r	   _typesr
   r   r   r   r   r   r   _utilsr   r   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   types.batchr   _base_clientr   r   types.shared_params.metadatar   __all__r   r    r%   rx   r-   rz   ru   r*   r(   <module>r      s    #  %   : J J J J J % 9 X 8  ? 3n
%n
o n
bn
# n
b
 
$
 
$
 
$
 
r*   