o
    "ch                     @  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mZmZ ddlmZ dd	lmZ er<d d
lmZ dddZG dd de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   )	NOT_GIVENNotGiven
NotGivenOr)	BaseModel)BufferReader)_SubParsersAction	subparser!_SubParsersAction[ArgumentParser]returnNonec                 C  s  |  d}|jddtd |jddtdd |jd	d
tdd |jddtddd |jdtdd |jtjtd |  d}|jddtd |jddtdd |jd	d
tdd |jddtddd |jddtddd |jdtdd |jddtddd |jtjt	d |  d}|jddtd |jd	d
tdd |jddtddd |jddtddd |jdtdd |jtj
td d S )Nzimages.generatez-mz--model)typez-pz--promptT)r   requiredz-nz--num-images   )r   defaultz-sz--size	1024x1024zSize of the output image)r   r   helpz--response-formaturl)func
args_modelzimages.editz-Iz--imagez@Image to modify. Should be a local path and a PNG encoded image.)r   r   r   z-Mz--maskFzPath to a mask image. It should be the same size as the image you're editing and a RGBA PNG image. The Alpha channel acts as the mask.zimages.create_variation)
add_parseradd_argumentstrintset_defaultsCLIImagecreateCLIImageCreateArgseditCLIImageEditArgscreate_variationCLIImageCreateVariationArgs)r   sub r+   S/home/air/goalskill/back/venv/lib/python3.10/site-packages/openai/cli/_api/image.pyregister   sR   


r-   c                   @  :   e Zd ZU ded< ded< ded< ded< eZded< d	S )
r%   r    promptr!   
num_imagessizeresponse_formatNotGivenOr[str]modelN__name__
__module____qualname____annotations__r   r4   r+   r+   r+   r,   r%   =      
 r%   c                   @  r.   )
r)   r    imager!   r0   r1   r2   r3   r4   Nr5   r+   r+   r+   r,   r)   E   r:   r)   c                   @  sN   e Zd ZU ded< ded< ded< ded< ded< eZded	< eZded
< dS )r'   r    r;   r!   r0   r1   r2   r/   r3   maskr4   N)r6   r7   r8   r9   r   r<   r4   r+   r+   r+   r,   r'   M   s   
 r'   c                   @  s6   e Z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  s:   t  jj| j| j| jtt| jtt| j	d}t
| d S )N)r4   r/   nr1   r2   )r   imagesgenerater4   r/   r0   r   r   r1   r2   r	   )r=   r;   r+   r+   r,   r$   X   s   

	zCLIImage.creater)   c                 C  sx   t | jd}t| dd}W d    n1 sw   Y  t jj| jd|f| jt	t
| jt	t
| jd}t| d S )NrbzUpload progressdescr;   )r4   r;   r>   r1   r2   )openr;   r   readr   r?   r(   r4   r0   r   r   r1   r2   r	   )r=   file_readerbuffer_readerr;   r+   r+   r,   r(   e   s   

	zCLIImage.create_variationr'   c              
   C  s   t | jd}t| dd}W d    n1 sw   Y  t| jtr't}nt | jd}t| dd}W d    n1 s@w   Y  t j	j
| j| jd|f| jt|ts[d|fn|tt| jtt| jd}t| d S )NrA   zImage upload progressrB   zMask progressr;   r<   )r4   r/   r;   r>   r<   r1   r2   )rD   r;   r   rE   
isinstancer<   r   r   r   r?   r&   r4   r/   r0   r   r   r1   r2   r	   )r=   rF   rG   r<   r;   r+   r+   r,   r&   u   s$   

zCLIImage.editN)r=   r%   r   r   )r=   r)   r   r   )r=   r'   r   r   )r6   r7   r8   staticmethodr$   r(   r&   r+   r+   r+   r,   r#   W   s    r#   N)r   r   r   r   )
__future__r   typingr   r   r   argparser   _utilsr   r	   _typesr   r   r   _modelsr   	_progressr   r   r-   r%   r)   r'   r#   r+   r+   r+   r,   <module>   s    
.
