a
    !fg                     @  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rxd 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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)_SubParsersActionz!_SubParsersAction[ArgumentParser]None)	subparserreturnc                 C  sT  |  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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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-pz--promptT)type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(   V/var/www/html/python-backend/venv/lib/python3.9/site-packages/openai/cli/_api/image.pyregister   sL    


r*   c                   @  s.   e Zd ZU ded< ded< ded< ded< dS )r"   r   promptr   
num_imagessizeresponse_formatN__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ed< ded< dS )r&   r   imager   r,   r-   r.   Nr/   r(   r(   r(   r)   r&   A   s   
r&   c                   @  sB   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	< d
S )r$   r   r4   r   r,   r-   r.   r+   zNotGivenOr[str]maskN)r0   r1   r2   r3   r   r5   r(   r(   r(   r)   r$   H   s   
r$   c                   @  sH   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dS )r    r"   r   )argsr   c                 C  s6   t  jj| j| jtt| jtt| jd}t	| d S )N)r+   nr-   r.   )
r   imagesgenerater+   r,   r   r   r-   r.   r	   )r6   r4   r(   r(   r)   r!   R   s    

zCLIImage.creater&   c                 C  st   t | jd }t| dd}W d    n1 s20    Y  t jjd|f| jtt	| j
tt	| jd}t| d S )NrbzUpload progressdescr4   )r4   r7   r-   r.   )openr4   r   readr   r8   r%   r,   r   r   r-   r.   r	   )r6   file_readerbuffer_readerr4   r(   r(   r)   r%   ^   s    .

zCLIImage.create_variationr$   c              	   C  s   t | jd }t| dd}W d    n1 s20    Y  t| jtrNt}n<t | jd }t| dd}W d    n1 s0    Y  t j	j
| jd|f| jt|tsd|fn|tt| jtt| jd}t| d S )Nr:   zImage upload progressr;   zMask progressr4   r5   )r+   r4   r7   r5   r-   r.   )r=   r4   r   r>   
isinstancer5   r   r   r   r8   r#   r+   r,   r   r   r-   r.   r	   )r6   r?   r@   r5   r4   r(   r(   r)   r#   m   s    ..


zCLIImage.editN)r0   r1   r2   staticmethodr!   r%   r#   r(   r(   r(   r)   r    Q   s   r    N)
__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   +	