
    hv                       d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZmZ ddlmZmZmZmZmZmZ dd	lmZ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"m#Z#m$Z$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/m0Z0 ddl1mZ ddgZ2 G d de      Z3 G d de      Z4 G d d      Z5 G d d      Z6 G d d      Z7 G d d      Z8y)    )annotationsN)Mappingcast)Literal   )_legacy_response)FilePurposefile_list_paramsfile_create_params)	NOT_GIVENBodyQueryHeadersNotGiven	FileTypes)extract_filesmaybe_transformdeepcopy_minimalasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)StreamedBinaryAPIResponseAsyncStreamedBinaryAPIResponseto_streamed_response_wrapper"async_to_streamed_response_wrapper#to_custom_streamed_response_wrapper)async_to_custom_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)AsyncPaginatormake_request_options)
FileObject)FileDeleted)r	   Files
AsyncFilesc            	         e Zd Zedd       Zedd       Zeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	ddded	 	 	 	 	 	 	 	 	 	 	 dd
Z
ddded	 	 	 	 	 	 	 	 	 	 	 ddZ ej                  d      ddded	 	 	 	 	 	 	 	 	 	 	 dd       Zddd	 	 	 	 	 	 	 ddZy)r%   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
        )FilesWithRawResponseselfs    T/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/openai/resources/files.pywith_raw_responsezFiles.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
        )FilesWithStreamingResponser+   s    r-   with_streaming_responsezFiles.with_streaming_response.   s     *$//r/   Nexpires_afterextra_headersextra_query
extra_bodytimeoutc                  t        |||d      }t        t        t        t        t
        f   |      dgg      }	ddi|xs i }| j                  dt        |t        j                        |	t        ||||      t              S )	  Upload a file that can be used across various endpoints.

        Individual files can be
        up to 512 MB, and the size of all files uploaded by one organization can be up
        to 1 TB.

        The Assistants API supports files up to 2 million tokens and of specific file
        types. See the
        [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) for
        details.

        The Fine-tuning API only supports `.jsonl` files. The input also has certain
        required formats for fine-tuning
        [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) or
        [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)
        models.

        The Batch API only supports `.jsonl` files up to 200 MB in size. The input also
        has a specific required
        [format](https://platform.openai.com/docs/api-reference/batch/request-input).

        Please [contact us](https://help.openai.com/) if you need to increase these
        storage limits.

        Args:
          file: The File object (not file name) to be uploaded.

          purpose: The intended purpose of the uploaded file. One of: - `assistants`: Used in the
              Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for
              fine-tuning - `vision`: Images used for vision fine-tuning - `user_data`:
              Flexible file type for any purpose - `evals`: Used for eval data sets

          expires_after: The expiration policy for a file. By default, files with `purpose=batch` expire
              after 30 days and all other files are persisted until they are manually deleted.

          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
        filepurposer5   r=   pathsContent-Typemultipart/form-data/filesr6   r7   r8   r9   bodyfilesoptionscast_to)r   r   r   r   strobject_postr   r   FileCreateParamsr"   r#   
r,   r=   r>   r5   r6   r7   r8   r9   rF   rG   s
             r-   createzFiles.create7   s    p  "!.
 d73;#7>xjQ ()>X=CVTVXzz '9'J'JK(+Q[el   
 	
r/   rD   c          	     r    |st        d|      | j                  d| t        ||||      t              S )^  
        Returns information about a specific 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
        6Expected a non-empty value for `file_id` but received /files/rD   rH   rI   
ValueError_getr"   r#   r,   file_idr6   r7   r8   r9   s         r-   retrievezFiles.retrieve   sT    . UV]U`abbyygY(+Q[el   
 	
r/   afterlimitorderr>   r6   r7   r8   r9   c                   | j                  dt        t           t        ||||t	        ||||dt
        j                              t              S a  Returns a list of files.

        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
              10,000, and the default is 10,000.

          order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending
              order and `desc` for descending order.

          purpose: Only return files with the given purpose.

          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
        rC   )r\   r]   r^   r>   )r6   r7   r8   r9   query)pagerH   model)_get_api_listr   r#   r"   r   r
   FileListParams	r,   r\   r]   r^   r>   r6   r7   r8   r9   s	            r-   listz
Files.list   se    P !!
+(+'%%!&!&!&#*	 %33 % " 
 	
r/   c          	     r    |st        d|      | j                  d| t        ||||      t              S )B  
        Delete a 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
        rR   rS   rD   rT   rV   _deleter"   r$   rX   s         r-   deletezFiles.delete   sT    . UV]U`abb||gY(+Q[el    
 	
r/   c          	         |st        d|      ddi|xs i }| j                  d| dt        ||||      t        j                        S )_  
        Returns the contents of the specified 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
        rR   Acceptapplication/binaryrS   /contentrD   rT   rV   rW   r"   r   HttpxBinaryResponseContentrX   s         r-   contentzFiles.content  sq    . UV]U`abb!#7QM<ORQyygYh'(+Q[el %??  
 	
r/   .The `.content()` method should be used insteadc          	     t    |st        d|      | j                  d| dt        ||||      t              S )rn   rR   rS   rq   rD   rT   rV   rW   r"   rJ   rX   s         r-   retrieve_contentzFiles.retrieve_content&  sV    0 UV]U`abbyygYh'(+Q[el   
 	
r/         @  poll_intervalmax_wait_secondsc               .   h d}t        j                          }| j                  |      }|j                  |vr]| j                  |       | j                  |      }t        j                          |z
  |kD  rt	        d| d| d      |j                  |vr]|S )EWaits for the given file to be processed, default timeout is 30 mins.>   errordeleted	processedGiving up on waiting for file  to finish processing after 	 seconds.timerZ   status_sleepRuntimeErrorr,   idr|   r}   TERMINAL_STATESstartr=   s          r-   wait_for_processingzFiles.wait_for_processingH  s     <		}}R kk0KK&==$Dyy{U"%55"4RD8TUeTffop  kk0 r/   )returnr*   )r   r2   r=   r   r>   r	   r5   z*file_create_params.ExpiresAfter | NotGivenr6   Headers | Noner7   Query | Noner8   Body | Noner9   'float | httpx.Timeout | None | NotGivenr   r#   rY   rJ   r6   r   r7   r   r8   r   r9   r   r   r#   )r\   str | NotGivenr]   int | NotGivenr^   !Literal['asc', 'desc'] | NotGivenr>   r   r6   r   r7   r   r8   r   r9   r   r   zSyncCursorPage[FileObject]rY   rJ   r6   r   r7   r   r8   r   r9   r   r   r$   rY   rJ   r6   r   r7   r   r8   r   r9   r   r   z+_legacy_response.HttpxBinaryResponseContentrY   rJ   r6   r   r7   r   r8   r   r9   r   r   rJ   r   rJ   r|   floatr}   r   r   r#   __name__
__module____qualname__r   r.   r3   r   rO   rZ   rg   rl   rt   typing_extensions
deprecatedrx   r    r/   r-   r%   r%   #   s   * * 0 0 EN )-$("&;DL
 L
 	L

 BL
 &L
 "L
  L
 9L
 
L
h )-$("&;D

 &
 "
  
 9
 

H !* )3<"+ )-$("&;D;
 ;
 	;

 1;
  ;
 &;
 ";
  ;
 9;
 
$;
F )-$("&;D

 &
 "
  
 9
 

N )-$("&;D 
 
 & 
 " 
   
 9 
 
5 
D "!!"RS )-$("&;D

 &
 "
  
 9
 

 T
J  #") 	
   
r/   c            	         e Zd Zedd       Zedd       Zeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	ddded	 	 	 	 	 	 	 	 	 	 	 dd
Z
ddded	 	 	 	 	 	 	 	 	 	 	 ddZ ej                  d      ddded	 	 	 	 	 	 	 	 	 	 	 dd       Zddd	 	 	 	 	 	 	 ddZy)r&   c                    t        |       S r)   )AsyncFilesWithRawResponser+   s    r-   r.   zAsyncFiles.with_raw_responsea  s     )..r/   c                    t        |       S r1   )AsyncFilesWithStreamingResponser+   s    r-   r3   z"AsyncFiles.with_streaming_responsek  s     /t44r/   Nr4   c               6  K   t        |||d      }t        t        t        t        t
        f   |      dgg      }	ddi|xs i }| j                  dt        |t        j                         d{   |	t        ||||      t        	       d{   S 7 %7 w)
r;   r<   r=   r?   rA   rB   rC   NrD   rE   )r   r   r   r   rJ   rK   rL   r   r   rM   r"   r#   rN   s
             r-   rO   zAsyncFiles.createt  s     p  "!.
 d73;#7>xjQ ()>X=CVTVXZZ,T3E3V3VWW(+Q[el    
 
 	
W
s$   A-B/B
0 BBBBrD   c          	        K   |st        d|      | j                  d| t        ||||      t               d{   S 7 w)rQ   rR   rS   rD   rT   NrU   rX   s         r-   rZ   zAsyncFiles.retrieve  sb     . UV]U`abbYYgY(+Q[el   
 
 	
 
   <AAAr[   c                   | j                  dt        t           t        ||||t	        ||||dt
        j                              t              S r`   )rd   r    r#   r"   r   r
   re   rf   s	            r-   rg   zAsyncFiles.list  se    P !! ,(+'%%!&!&!&#*	 %33 % " 
 	
r/   c          	        K   |st        d|      | j                  d| t        ||||      t               d{   S 7 w)ri   rR   rS   rD   rT   Nrj   rX   s         r-   rl   zAsyncFiles.delete   sb     . UV]U`abb\\gY(+Q[el   " 
 
 	
 
r   c          	        K   |st        d|      ddi|xs i }| j                  d| dt        ||||      t        j                         d{   S 7 w)	rn   rR   ro   rp   rS   rq   rD   rT   Nrr   rX   s         r-   rt   zAsyncFiles.contentA  s     . UV]U`abb!#7QM<ORQYYgYh'(+Q[el %??  
 
 	
 
s   AAAAru   c          	        K   |st        d|      | j                  d| dt        ||||      t               d{   S 7 w)rn   rR   rS   rq   rD   rT   Nrw   rX   s         r-   rx   zAsyncFiles.retrieve_contentc  sd     0 UV]U`abbYYgYh'(+Q[el   
 
 	
 
s   =AA Ary   rz   r{   c               r  K   h d}t        j                          }| j                  |       d{   }|j                  |vrm| j                  |       d{    | j                  |       d{   }t        j                          |z
  |kD  rt	        d| d| d      |j                  |vrm|S 7 7 \7 Ew)r   >   r   r   r   Nr   r   r   r   r   s          r-   r   zAsyncFiles.wait_for_processing  s      <		]]2&&kk0++m,,,r**Dyy{U"%55"4RD8TUeTffop  kk0  ',*s9   -B7B1&B7B3B7/B50>B7/B73B75B7)r   r   )r   r   r   r   )r\   r   r]   r   r^   r   r>   r   r6   r   r7   r   r8   r   r9   r   r   z7AsyncPaginator[FileObject, AsyncCursorPage[FileObject]]r   r   r   r   r   r   r/   r-   r&   r&   `  s   / / 5 5 EN )-$("&;DL
 L
 	L

 BL
 &L
 "L
  L
 9L
 
L
h )-$("&;D

 &
 "
  
 9
 

H !* )3<"+ )-$("&;D;
 ;
 	;

 1;
  ;
 &;
 ";
  ;
 9;
 
A;
F )-$("&;D

 &
 "
  
 9
 

N )-$("&;D 
 
 & 
 " 
   
 9 
 
5 
D "!!"RS )-$("&;D

 &
 "
  
 9
 

 T
J  #") 	
   
r/   c                      e Zd ZddZy)r*   c                   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y N)	_filesr   to_raw_response_wrapperrO   rZ   rg   rl   rt   rx   r,   rG   s     r-   __init__zFilesWithRawResponse.__init__  s    &>>LL
 )@@NN
 %<<JJ
	 '>>LL
 (??MM
 44&& 	r/   NrG   r%   r   Noner   r   r   r   r   r/   r-   r*   r*         
r/   r*   c                      e Zd ZddZy)r   c                   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y r   )	r   r   async_to_raw_response_wrapperrO   rZ   rg   rl   rt   rx   r   s     r-   r   z"AsyncFilesWithRawResponse.__init__  s    &DDLL
 )FFNN
 %BBJJ
	 'DDLL
 (EEMM
 ::&& 	r/   NrG   r&   r   r   r   r   r/   r-   r   r     r   r/   r   c                      e Zd ZddZy)r2   c                T   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                  t              | _        t        |j                        | _	        y r   )
r   r   rO   rZ   rg   rl   r   rt   r   rx   r   s     r-   r   z#FilesWithStreamingResponse.__init__  s    2LL
 5NN
 1JJ
	 3LL
 ;MM%

 )&& 	r/   Nr   r   r   r/   r-   r2   r2         
r/   r2   c                      e Zd ZddZy)r   c                T   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                  t              | _        t        |j                        | _	        y r   )
r   r   rO   rZ   rg   rl   r   rt   r   rx   r   s     r-   r   z(AsyncFilesWithStreamingResponse.__init__  s    8LL
 ;NN
 7JJ
	 9LL
 AMM*

 /&& 	r/   Nr   r   r   r/   r-   r   r     r   r/   r   )9
__future__r   r   r   typingr   r   r   httpx r   typesr	   r
   r   _typesr   r   r   r   r   r   _utilsr   r   r   r   _compatr   	_resourcer   r   	_responser   r   r   r   r   r   
paginationr   r    _base_clientr!   r"   types.file_objectr#   types.file_deletedr$   types.file_purpose__all__r%   r&   r*   r   r2   r   r   r/   r-   <module>r      s    #     %   E E I I \ \ % 9  9 ? * , ,L
!zO zz	z! zz	
 
4
 
4
 
6
 
r/   