o
    ͩZh                     @  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--sizeZ	1024x1024zSize of the output image)r   r   helpz--response-formaturl)funcZ
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)   L/var/www/html/lang_env/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   r2   r)   r)   r)   r*   r#   =      
 r#   c                   @  r,   )
r'   r   imager   r.   r/   r0   r1   r2   Nr3   r)   r)   r)   r*   r'   E   r8   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   r9   r   r.   r/   r0   r-   r1   maskr2   N)r4   r5   r6   r7   r   r:   r2   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)r2   r-   nr/   r0   )r   imagesgenerater2   r-   r.   r   r   r/   r0   r	   )r;   r9   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Zdescr9   )r2   r9   r<   r/   r0   )openr9   r   readr   r=   r&   r2   r.   r   r   r/   r0   r	   )r;   file_readerbuffer_readerr9   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 )Nr?   zImage upload progressr@   zMask progressr9   r:   )r2   r-   r9   r<   r:   r/   r0   )rA   r9   r   rB   
isinstancer:   r   r   r   r=   r$   r2   r-   r.   r   r   r/   r0   r	   )r;   rC   rD   r:   r9   r)   r)   r*   r$   u   s$   

zCLIImage.editN)r;   r#   r   r   )r;   r'   r   r   )r;   r%   r   r   )r4   r5   r6   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   Z_modelsr   	_progressr   r   r+   r#   r'   r%   r!   r)   r)   r)   r*   <module>   s    
.
