
    +hBX                    H   d dl mZ d dlZd dlZd dlmZmZmZ d dlmZ d dl	Z	ddl
mZ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 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$m%Z%m&Z& erddl'm(Z(m)Z) ddgZ* G d de      Z+ G d de      Z, G d d      Z- G d d      Z.y)    )annotationsN)TYPE_CHECKINGMappingcast)Literal   )
FileObjectFileDeletedfile_list_paramsfile_create_params)	NOT_GIVENBodyQueryHeadersNotGiven	FileTypes)extract_filesmaybe_transformdeepcopy_minimal)SyncAPIResourceAsyncAPIResource)to_raw_response_wrapperasync_to_raw_response_wrapper)SyncPage	AsyncPage)AsyncPaginatorHttpxBinaryResponseContentmake_request_options)OpenAIAsyncOpenAIFiles
AsyncFilesc                  v    e Zd ZU ded<   d fdZddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ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 xZS )r!   FilesWithRawResponsewith_raw_responsec                D    t         |   |       t        |       | _        y N)super__init__r$   r%   selfclient	__class__s     I/var/www/html/venv/lib/python3.12/site-packages/openai/resources/files.pyr)   zFiles.__init__!   s     !5d!;    Nextra_headersextra_query
extra_bodytimeoutc                  t        ||d      }t        t        t        t        t
        f   |      dgg      }|r
ddi|xs i }| j                  dt        |t        j                        |t        ||||      t              S )	{  Upload a file that can be used across various endpoints/features.

        The size of
        all the files uploaded by one organization can be up to 100 GB.

        The size of individual files for can be a maximum of 512MB. See the
        [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) to
        learn more about the types of files supported. The Fine-tuning API only supports
        `.jsonl` files.

        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.

              Use "fine-tune" for
              [Fine-tuning](https://platform.openai.com/docs/api-reference/fine-tuning) and
              "assistants" for
              [Assistants](https://platform.openai.com/docs/api-reference/assistants) and
              [Messages](https://platform.openai.com/docs/api-reference/messages). This allows
              us to validate the format of the uploaded file is correct for fine-tuning.

          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purposer8   pathsContent-Typemultipart/form-data/filesr0   bodyfilesoptionscast_tor   r   r   r   strobject_postr   r   FileCreateParamsr   r	   	r+   r8   r9   r1   r2   r3   r4   r@   rA   s	            r.   createzFiles.create%   s    Z  "
 d73;#7>xjQ ,-B\}GZXZ\Mzz '9'J'JK(+Q[el   
 	
r/   c          	     R    | 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
        /files/r0   rB   rC   _getr   r	   r+   file_idr1   r2   r3   r4   s         r.   retrievezFiles.retrievei   s<    . yygY(+Q[el   
 	
r/   r9   r1   r2   r3   r4   c                   | j                  dt        t           t        ||||t	        d|it
        j                              t              S a  
        Returns a list of files that belong to the user's organization.

        Args:
          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
        r>   r9   )r1   r2   r3   r4   query)pagerB   model)_get_api_listr   r	   r   r   r   FileListParamsr+   r9   r1   r2   r3   r4   s         r.   listz
Files.list   sV    2 !!*%(+'%%y'&:<L<[<[\  " 
 	
r/   c          	     R    | 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
        rM   r0   rN   _deleter   r
   rQ   s         r.   deletezFiles.delete   s<    . ||gY(+Q[el    
 	
r/   c          	     T    | j                  d| dt        ||||      t              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
        rM   /contentr0   rN   rP   r   r   rQ   s         r.   contentzFiles.content   s>    . yygYh'(+Q[el /  
 	
r/   .The `.content()` method should be used insteadc          	     h    ddi|xs i }| j                  d| dt        ||||      t              S )rd   Acceptapplication/jsonrM   re   r0   rN   rP   r   rE   rQ   s         r.   retrieve_contentzFiles.retrieve_content   sS    0 "#5O-:M2O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.timerS   status_sleepRuntimeErrorr+   idrq   rr   TERMINAL_STATESstartr8   s          r.   wait_for_processingzFiles.wait_for_processing  s     <		}}R kk0KK&==$Dyy{U"%55"4RD8TUeTffop  kk0 r/   )r,   r   returnNoner8   r   r9   z"Literal['fine-tune', 'assistants']r1   Headers | Noner2   Query | Noner3   Body | Noner4   'float | httpx.Timeout | None | NotGivenr   r	   rR   rE   r1   r   r2   r   r3   r   r4   r   r   r	   )r9   str | NotGivenr1   r   r2   r   r3   r   r4   r   r   zSyncPage[FileObject]rR   rE   r1   r   r2   r   r3   r   r4   r   r   r
   rR   rE   r1   r   r2   r   r3   r   r4   r   r   r   rR   rE   r1   r   r2   r   r3   r   r4   r   r   rE   r   rE   rq   floatrr   r   r   r	   __name__
__module____qualname____annotations__r)   r   rJ   rS   r]   rb   rg   typing_extensions
deprecatedrm   r   __classcell__r-   s   @r.   r!   r!      sN   ++< )-$("&;DB
 B
 4	B
 &B
 "B
  B
 9B
 
B
T )-$("&;D

 &
 "
  
 9
 

D #, )-$("&;D$
  $
 &$
 "$
  $
 9$
 
$
X )-$("&;D

 &
 "
  
 9
 

J )-$("&;D

 &
 "
  
 9
 
$
> "!!"RS )-$("&;D

 &
 "
  
 9
 

 T
H  #") 	
   
r/   c                  v    e Zd ZU ded<   d fdZddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ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 xZS )r"   AsyncFilesWithRawResponser%   c                D    t         |   |       t        |       | _        y r'   )r(   r)   r   r%   r*   s     r.   r)   zAsyncFiles.__init__(  s     !:4!@r/   Nr0   c               $  K   t        ||d      }t        t        t        t        t
        f   |      dgg      }|r
ddi|xs i }| j                  dt        |t        j                        |t        ||||      t               d	{   S 7 w)
r6   r7   r8   r:   r<   r=   r>   r0   r?   NrD   rI   s	            r.   rJ   zAsyncFiles.create,  s     Z  "
 d73;#7>xjQ ,-B\}GZXZ\MZZ '9'J'JK(+Q[el    
 
 	
 
s   BB	B
Bc          	     n   K   | j                  d| t        ||||      t               d{   S 7 w)rL   rM   r0   rN   NrO   rQ   s         r.   rS   zAsyncFiles.retrievep  sJ     . YYgY(+Q[el   
 
 	
 
   ,535rT   c                   | j                  dt        t           t        ||||t	        d|it
        j                              t              S rV   )rZ   r   r	   r   r   r   r[   r\   s         r.   r]   zAsyncFiles.list  sV    2 !!:&(+'%%y'&:<L<[<[\  " 
 	
r/   c          	     n   K   | j                  d| t        ||||      t               d{   S 7 w)r_   rM   r0   rN   Nr`   rQ   s         r.   rb   zAsyncFiles.delete  sJ     . \\gY(+Q[el   " 
 
 	
 
r   c          	     p   K   | j                  d| dt        ||||      t               d{   S 7 w)rd   rM   re   r0   rN   Nrf   rQ   s         r.   rg   zAsyncFiles.content  sL     . YYgYh'(+Q[el /  
 
 	
 
s   -646rh   c          	        K   ddi|xs i }| j                  d| dt        ||||      t               d{   S 7 w)rd   rj   rk   rM   re   r0   rN   Nrl   rQ   s         r.   rm   zAsyncFiles.retrieve_content  sa     0 "#5O-:M2OYYgYh'(+Q[el   
 
 	
 
s   7A >A rn   ro   rp   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)rt   >   ru   rv   rw   Nrx   ry   rz   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   )r9   r   r1   r   r2   r   r3   r   r4   r   r   z1AsyncPaginator[FileObject, AsyncPage[FileObject]]r   r   r   r   r   r   s   @r.   r"   r"   %  sO   00A )-$("&;DB
 B
 4	B
 &B
 "B
  B
 9B
 
B
T )-$("&;D

 &
 "
  
 9
 

D #, )-$("&;D$
  $
 &$
 "$
  $
 9$
 
;$
X )-$("&;D

 &
 "
  
 9
 

J )-$("&;D

 &
 "
  
 9
 
$
> "!!"RS )-$("&;D

 &
 "
  
 9
 

 T
H  #") 	
   
r/   c                      e Zd ZddZy)r$   c                <   t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r'   )r   rJ   rS   r]   rb   rg   rm   r+   rA   s     r.   r)   zFilesWithRawResponse.__init__-  s    -LL
 0NN
 ,JJ
	 .LL
 /MM
 !8""!
r/   N)rA   r!   r   r   r   r   r   r)    r/   r.   r$   r$   ,      
r/   r$   c                      e Zd ZddZy)r   c                <   t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r'   )r   rJ   rS   r]   rb   rg   rm   r   s     r.   r)   z"AsyncFilesWithRawResponse.__init__C  s    3LL
 6NN
 2JJ
	 4LL
 5MM
 !>""!
r/   N)rA   r"   r   r   r   r   r/   r.   r   r   B  r   r/   r   )/
__future__r   r|   r   typingr   r   r   r   httpxtypesr	   r
   r   r   _typesr   r   r   r   r   r   _utilsr   r   r   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   r   _clientr   r    __all__r!   r"   r$   r   r   r/   r.   <module>r      s    #   / / %  Q Q I I E E 9 N ,  -L
!DO DND! DN
 
,
 
r/   