U
    ·ÜŸj)	  ã                   @  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rdd dlmZ d	d
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)Ú_SubParsersActionz!_SubParsersAction[ArgumentParser]ÚNone)Ú	subparserÚreturnc                 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   )ÚfuncZ
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   ú9/tmp/pip-unpacked-wheel-2qj3ofc_/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                   @  sZ   e Zd Zedddœdd„ƒZedddœdd„ƒZedddœd	d
„ƒZeddœdd„ƒZdS )r   r   r   )Úargsr   c              	   C  sT   t | jdƒ�}t| ¡ dd�}W 5 Q R X 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*   Zfile_readerZbuffer_readerr(   r   r   r   r   5   s    
üzCLIFile.creater    c                 C  s   t ƒ jj| jd�}t|ƒ d S ©N)Zfile_id)r   r/   Úretriever"   r	   ©r*   r(   r   r   r   r   B   s    zCLIFile.getc                 C  s   t ƒ jj| jd�}t|ƒ d S r0   )r   r/   r   r"   r	   r2   r   r   r   r   G   s    zCLIFile.delete)r   c                  C  s"   t ƒ j ¡ } | D ]}t|ƒ qd S )N)r   r/   r   r	   )r/   r(   r   r   r   r   L   s    zCLIFile.listN)r$   r%   r&   Ústaticmethodr   r   r   r   r   r   r   r   r   4   s   r   N)Ú
__future__r   Útypingr   r   r   Úargparser   Ú_utilsr   r	   Z_modelsr
   Z	_progressr   r   r   r    r   r   r   r   r   r   Ú<module>   s   