
    +hY                    (   d dl mZ d dlmZmZmZmZmZ d dlm	Z	 d dl
Z
ddlmZmZmZmZ ddlmZmZmZmZmZmZ ddlmZmZmZ dd	lmZmZ dd
lmZm Z  ddl!m"Z" erddl#m$Z$m%Z% ddgZ& G d de      Z' G d de      Z( G d d      Z) G d d      Z*y)    )annotations)TYPE_CHECKINGUnionMappingOptionalcast)LiteralN   )ImagesResponseimage_edit_paramsimage_generate_paramsimage_create_variation_params)	NOT_GIVENBodyQueryHeadersNotGiven	FileTypes)extract_filesmaybe_transformdeepcopy_minimal)SyncAPIResourceAsyncAPIResource)to_raw_response_wrapperasync_to_raw_response_wrapper)make_request_options)OpenAIAsyncOpenAIImagesAsyncImagesc                      e Zd ZU ded<   d fdZeeeeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeeeeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeeeeeeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
Z xZ	S )r   ImagesWithRawResponsewith_raw_responsec                D    t         |   |       t        |       | _        y N)super__init__r"   r#   selfclient	__class__s     J/var/www/html/venv/lib/python3.12/site-packages/openai/resources/images.pyr'   zImages.__init__   s     !6t!<    N	modelnresponse_formatsizeuserextra_headersextra_query
extra_bodytimeoutc       
           t        ||||||d      }t        t        t        t        t
        f   |      dgg      }|r
ddi|xs i }| j                  dt        |t        j                        |t        |||	|
      t              S )	  
        Creates a variation of a given image.

        Args:
          image: The image to use as the basis for the variation(s). Must be a valid PNG file,
              less than 4MB, and square.

          model: The model to use for image generation. Only `dall-e-2` is supported at this
              time.

          n: The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only
              `n=1` is supported.

          response_format: The format in which the generated images are returned. Must be one of `url` or
              `b64_json`.

          size: The size of the generated images. Must be one of `256x256`, `512x512`, or
              `1024x1024`.

          user: A unique identifier representing your end-user, which can help OpenAI to monitor
              and detect abuse.
              [Learn more](https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids).

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        imager/   r0   r1   r2   r3   r;   pathsContent-Typemultipart/form-data/images/variationsr4   r5   r6   r7   bodyfilesoptionscast_tor   r   r   r   strobject_postr   r   ImageCreateVariationParamsr   r   r)   r;   r/   r0   r1   r2   r3   r4   r5   r6   r7   rC   rD   s                r,   create_variationzImages.create_variation#   s    ^  #2	
 d73;#7>ykR ,-B\}GZXZ\Mzz  'D'_'_`(+Q[el #  
 	
r-   
maskr/   r0   r1   r2   r3   r4   r5   r6   r7   c                  t        ||||||||d      }t        t        t        t        t
        f   |      dgdgg      }|r
ddi|	xs i }	| j                  dt        |t        j                        |t        |	|
||      t        	      S )
F  
        Creates an edited or extended image given an original image and a prompt.

        Args:
          image: The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask
              is not provided, image must have transparency, which will be used as the mask.

          prompt: A text description of the desired image(s). The maximum length is 1000
              characters.

          mask: An additional image whose fully transparent areas (e.g. where alpha is zero)
              indicate where `image` should be edited. Must be a valid PNG file, less than
              4MB, and have the same dimensions as `image`.

          model: The model to use for image generation. Only `dall-e-2` is supported at this
              time.

          n: The number of images to generate. Must be between 1 and 10.

          response_format: The format in which the generated images are returned. Must be one of `url` or
              `b64_json`.

          size: The size of the generated images. Must be one of `256x256`, `512x512`, or
              `1024x1024`.

          user: A unique identifier representing your end-user, which can help OpenAI to monitor
              and detect abuse.
              [Learn more](https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids).

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r;   promptrO   r/   r0   r1   r2   r3   r;   rO   r<   r>   r?   /images/editsrA   rB   r   r   r   r   rH   rI   rJ   r   r   ImageEditParamsr   r   r)   r;   rS   rO   r/   r0   r1   r2   r3   r4   r5   r6   r7   rC   rD   s                  r,   editzImages.editm   s    n   #2	
 d73;#7>ySYRZF[\ ,-B\}GZXZ\Mzz '8'H'HI(+Q[el #  
 	
r-   r/   r0   qualityr1   r2   styler3   r4   r5   r6   r7   c                   | j                  dt        ||||||||dt        j                        t	        |	|
||      t
              S )9  
        Creates an image given a prompt.

        Args:
          prompt: A text description of the desired image(s). The maximum length is 1000
              characters for `dall-e-2` and 4000 characters for `dall-e-3`.

          model: The model to use for image generation.

          n: The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only
              `n=1` is supported.

          quality: The quality of the image that will be generated. `hd` creates images with finer
              details and greater consistency across the image. This param is only supported
              for `dall-e-3`.

          response_format: The format in which the generated images are returned. Must be one of `url` or
              `b64_json`.

          size: The size of the generated images. Must be one of `256x256`, `512x512`, or
              `1024x1024` for `dall-e-2`. Must be one of `1024x1024`, `1792x1024`, or
              `1024x1792` for `dall-e-3` models.

          style: The style of the generated images. Must be one of `vivid` or `natural`. Vivid
              causes the model to lean towards generating hyper-real and dramatic images.
              Natural causes the model to produce more natural, less hyper-real looking
              images. This param is only supported for `dall-e-3`.

          user: A unique identifier representing your end-user, which can help OpenAI to monitor
              and detect abuse.
              [Learn more](https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids).

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        /images/generationsrS   r/   r0   rZ   r1   r2   r[   r3   rA   rC   rE   rF   rJ   r   r   ImageGenerateParamsr   r   r)   rS   r/   r0   rZ   r1   r2   r[   r3   r4   r5   r6   r7   s                r,   generatezImages.generate   sh    t zz! $"&'6 " 	 &99 )+Q[el #%  
 	
r-   )r*   r   returnNoner;   r   r/   0Union[str, Literal['dall-e-2'], None] | NotGivenr0   Optional[int] | NotGivenr1   /Optional[Literal['url', 'b64_json']] | NotGivenr2   ?Optional[Literal['256x256', '512x512', '1024x1024']] | NotGivenr3   str | NotGivenr4   Headers | Noner5   Query | Noner6   Body | Noner7   'float | httpx.Timeout | None | NotGivenre   r   r;   r   rS   rH   rO   zFileTypes | NotGivenr/   rh   r0   ri   r1   rj   r2   rk   r3   rl   r4   rm   r5   rn   r6   ro   r7   rp   re   r   rS   rH   r/   z<Union[str, Literal['dall-e-2', 'dall-e-3'], None] | NotGivenr0   ri   rZ   z$Literal['standard', 'hd'] | NotGivenr1   rj   r2   zYOptional[Literal['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']] | NotGivenr[   z0Optional[Literal['vivid', 'natural']] | NotGivenr3   rl   r4   rm   r5   rn   r6   ro   r7   rp   re   r   
__name__
__module____qualname____annotations__r'   r   rM   rX   rd   __classcell__r+   s   @r,   r   r      s-   ,,= CL&/KTPY( )-$("&;DH
 H
 @	H

 $H
 IH
 NH
 H
 &H
 "H
  H
 9H
 
H
^ &/BK&/KTPY( )-$("&;D!R
 R
 	R

 #R
 @R
 $R
 IR
 NR
 R
 &R
 "R
  R
  9!R
" 
#R
p OX&/8AKTjsBK( )-$("&;D!M
 M
 L	M

 $M
 6M
 IM
 hM
 @M
 M
 &M
 "M
  M
  9!M
" 
#M
r-   c                      e Zd ZU ded<   d fdZeeeeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeeeeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeeeeeeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
Z xZ	S )r    AsyncImagesWithRawResponser#   c                D    t         |   |       t        |       | _        y r%   )r&   r'   r{   r#   r(   s     r,   r'   zAsyncImages.__init__  s     !;D!Ar-   Nr.   c       
        ,  K   t        ||||||d      }t        t        t        t        t
        f   |      dgg      }|r
ddi|xs i }| j                  dt        |t        j                        |t        |||	|
      t               d	{   S 7 w)
r9   r:   r;   r<   r>   r?   r@   rA   rB   NrG   rL   s                r,   rM   zAsyncImages.create_variation  s     ^  #2	
 d73;#7>ykR ,-B\}GZXZ\MZZ  'D'_'_`(+Q[el #   
 
 	
 
s   BBBBrN   c               4  K   t        ||||||||d      }t        t        t        t        t
        f   |      dgdgg      }|r
ddi|	xs i }	| j                  dt        |t        j                        |t        |	|
||      t        	       d
{   S 7 w)rQ   rR   r;   rO   r<   r>   r?   rT   rA   rB   NrU   rW   s                  r,   rX   zAsyncImages.editb  s     n   #2	
 d73;#7>ySYRZF[\ ,-B\}GZXZ\MZZ '8'H'HI(+Q[el #   
 
 	
 
s   BBBBrY   c                  K   | j                  dt        ||||||||dt        j                        t	        |	|
||      t
               d{   S 7 w)r]   r^   r_   rA   r`   Nra   rc   s                r,   rd   zAsyncImages.generate  sv     t ZZ! $"&'6 " 	 &99 )+Q[el #%   
 
 	
 
s   AAAA)r*   r   re   rf   rg   rq   rr   rs   ry   s   @r,   r    r      s.   11B CL&/KTPY( )-$("&;DH
 H
 @	H

 $H
 IH
 NH
 H
 &H
 "H
  H
 9H
 
H
^ &/BK&/KTPY( )-$("&;D!R
 R
 	R

 #R
 @R
 $R
 IR
 NR
 R
 &R
 "R
  R
  9!R
" 
#R
p OX&/8AKTjsBK( )-$("&;D!M
 M
 L	M

 $M
 6M
 IM
 hM
 @M
 M
 &M
 "M
  M
  9!M
" 
#M
r-   c                      e Zd ZddZy)r"   c                    t        |j                        | _        t        |j                        | _        t        |j                        | _        y r%   )r   rM   rX   rd   r)   imagess     r,   r'   zImagesWithRawResponse.__init__  sB     7##!
 ,KK
	 0OO
r-   N)r   r   re   rf   rt   ru   rv   r'    r-   r,   r"   r"         	
r-   r"   c                      e Zd ZddZy)r{   c                    t        |j                        | _        t        |j                        | _        t        |j                        | _        y r%   )r   rM   rX   rd   r   s     r,   r'   z#AsyncImagesWithRawResponse.__init__  sB     =##!
 2KK
	 6OO
r-   N)r   r    re   rf   r   r   r-   r,   r{   r{     r   r-   r{   )+
__future__r   typingr   r   r   r   r   typing_extensionsr	   httpxtypesr   r   r   r   _typesr   r   r   r   r   r   _utilsr   r   r   	_resourcer   r   	_responser   r   _base_clientr   _clientr   r   __all__r   r    r"   r{   r   r-   r,   <module>r      s{    # @ @ %   J I E E 9 N /-]
#r
_ r
jr
" r
j

 



 

r-   