o
    #`^h)	                     @  s   d dl 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 ddlmZ er2d dlmZ dddZG dd deZG dd deZG dd dZdS )    )annotations)TYPE_CHECKINGAnycast)ArgumentParser   )
get_clientprint_model)	BaseModel)BufferReader)_SubParsersAction	subparser!_SubParsersAction[ArgumentParser]returnNonec                 C  s   |  d}|jddddd |jddd	dd
 |jtjtd |  d}|jddddd |jtjtd |  d}|jddddd |jtjtd |  d}|jtjd d S )Nzfiles.createz-fz--fileTzFile to upload)requiredhelpz-pz	--purposezcWhy are you uploading this file? (see https://platform.openai.com/docs/api-reference/ for purposes))r   r   )func
args_modelzfiles.retrievez-iz--idzThe files IDzfiles.deletez
files.list)r   )	
add_parseradd_argumentset_defaultsCLIFilecreateCLIFileCreateArgsgetdeletelist)r   sub r   S/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/openai/cli/_api/files.pyregister   s,   



r!   c                   @  s   e Zd ZU ded< dS )CLIFileIDArgsstridN__name__
__module____qualname____annotations__r   r   r   r    r"   +   s   
 r"   c                   @  s   e Zd ZU ded< ded< dS )r   r#   filepurposeNr%   r   r   r   r    r   /   s   
 r   c                   @  sD   e Zd ZedddZeddd	Zedd
dZedddZdS )r   argsr   r   r   c                 C  sh   t | jd}t| dd}W d    n1 sw   Y  t jj| j|ftt| j	d}t
| d S )NrbzUpload progress)desc)r*   r+   )openr*   r   readr   filesr   r   r   r+   r	   )r,   file_readerbuffer_readerr*   r   r   r    r   5   s   
zCLIFile.creater"   c                 C     t  jj| jd}t| d S N)file_id)r   r1   retriever$   r	   r,   r*   r   r   r    r   B      zCLIFile.getc                 C  r4   r5   )r   r1   r   r$   r	   r8   r   r   r    r   G   r9   zCLIFile.deletec                  C  s"   t  j } | D ]}t| qd S )N)r   r1   r   r	   )r1   r*   r   r   r    r   L   s   
zCLIFile.listN)r,   r   r   r   )r,   r"   r   r   )r   r   )r&   r'   r(   staticmethodr   r   r   r   r   r   r   r    r   4   s    r   N)r   r   r   r   )
__future__r   typingr   r   r   argparser   _utilsr   r	   _modelsr
   	_progressr   r   r!   r"   r   r   r   r   r   r    <module>   s    
