
    
@g"d                       d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z	ddl
mZ ddl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mZ dd
lmZ ddlmZm Z  ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddgZ* G d de          Z+ G d de           Z, G d d          Z- G d d          Z. G d d          Z/ G d d          Z0dS )    )annotations)UnionMappingOptionalcast)LiteralN   )_legacy_response)image_edit_paramsimage_generate_paramsimage_create_variation_params)	NOT_GIVENBodyQueryHeadersNotGiven	FileTypes)extract_filesmaybe_transformdeepcopy_minimalasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)make_request_options)
ImageModel)ImagesResponseImagesAsyncImagesc                      e Zd Zed+d            Zed,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	dS )0r    returnImagesWithRawResponsec                     t          |           S a  
        This property can be used as a prefix for any HTTP method call to return the
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )r$   selfs    K/var/www/piapp/venv/lib/python3.11/site-packages/openai/resources/images.pywith_raw_responsezImages.with_raw_response   s     %T***    ImagesWithStreamingResponsec                     t          |           S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )r,   r'   s    r)   with_streaming_responsezImages.with_streaming_response(   s     +4000r+   N	modelnresponse_formatsizeuserextra_headersextra_query
extra_bodytimeoutimager   r1   'Union[str, ImageModel, None] | NotGivenr2   Optional[int] | NotGivenr3   /Optional[Literal['url', 'b64_json']] | NotGivenr4   ?Optional[Literal['256x256', '512x512', '1024x1024']] | NotGivenr5   str | NotGivenr6   Headers | Noner7   Query | Noner8   Body | Noner9   'float | httpx.Timeout | None | NotGivenr   c       
        >   t          ||||||d          }t          t          t          t          t
          f         |          dgg          }ddi|pi }|                     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`. URLs are only valid for 60 minutes after the image has been
              generated.

          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:   r1   r2   r3   r4   r5   r:   pathsContent-Typemultipart/form-data/images/variationsr6   r7   r8   r9   bodyfilesoptionscast_to)r   r   r   r   strobject_postr   r   ImageCreateVariationParamsr   r   r(   r:   r1   r2   r3   r4   r5   r6   r7   r8   r9   rN   rO   s                r)   create_variationzImages.create_variation1   s    `  #2 	
 	
 d73;#7>>ykRRR ()>X=CVTVXzz  'D'_``(+Q[el   #  
 
 	
r+   
maskr1   r2   r3   r4   r5   r6   r7   r8   r9   promptrR   rY   FileTypes | NotGivenc               F   t          ||||||||d          }t          t          t          t          t
          f         |          dgdgg          }ddi|	pi }	|                     dt          |t          j	                  |t          |	|
||          t          	          S )
  
        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`. URLs are only valid for 60 minutes after the image has been
              generated.

          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:   rZ   rY   r1   r2   r3   r4   r5   r:   rY   rG   rI   rJ   /images/editsrL   rM   )r   r   r   r   rR   rS   rT   r   r   ImageEditParamsr   r   r(   r:   rZ   rY   r1   r2   r3   r4   r5   r6   r7   r8   r9   rN   rO   s                  r)   editzImages.editz   s    p   #2	 	
 
 d73;#7>>ySYRZF[\\\ ()>X=CVTVXzz '8'HII(+Q[el   #  
 
 	
r+   r1   r2   qualityr3   r4   styler5   r6   r7   r8   r9   rd   $Literal['standard', 'hd'] | NotGivenYOptional[Literal['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']] | NotGivenre   0Optional[Literal['vivid', 'natural']] | NotGivenc                   |                      dt          ||||||||dt          j                  t	          |	|
||          t
                    S )  
        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`. URLs are only valid for 60 minutes after the image has been
              generated.

          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rZ   r1   r2   rd   r3   r4   re   r5   rL   rN   rP   rQ   )rT   r   r   ImageGenerateParamsr   r   r(   rZ   r1   r2   rd   r3   r4   re   r5   r6   r7   r8   r9   s                r)   generatezImages.generate   s~    v zz! $"&'6 " 	 	 &9  )+Q[el   #%  
 
 	
r+   )r#   r$   )r#   r,   r:   r   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r7   rA   r8   rB   r9   rC   r#   r   r:   r   rZ   rR   rY   r[   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r7   rA   r8   rB   r9   rC   r#   r   rZ   rR   r1   r;   r2   r<   rd   rf   r3   r=   r4   rg   re   rh   r5   r?   r6   r@   r7   rA   r8   rB   r9   rC   r#   r   
__name__
__module____qualname__r   r*   r/   r   rW   rb   rp    r+   r)   r    r       s*       + + + _+ 1 1 1 _1 :C&/KTPY( )-$("&;DG
 G
 G
 G
 G
 G
\ &/9B&/KTPY( )-$("&;D!Q
 Q
 Q
 Q
 Q
 Q
n :C&/8AKTjsBK( )-$("&;D!N
 N
 N
 N
 N
 N
 N
 N
r+   c                      e Zd Zed+d            Zed,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	dS )0r!   r#   AsyncImagesWithRawResponsec                     t          |           S r&   )rz   r'   s    r)   r*   zAsyncImages.with_raw_response  s     *$///r+    AsyncImagesWithStreamingResponsec                     t          |           S r.   )r|   r'   s    r)   r/   z#AsyncImages.with_streaming_response)  s     0555r+   Nr0   r:   r   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r7   rA   r8   rB   r9   rC   r   c       
        Z  K   t          ||||||d          }t          t          t          t          t
          f         |          dgg          }ddi|pi }|                     dt          |t          j	                   d{V |t          |||	|
          t          	           d{V S )
rE   rF   r:   rG   rI   rJ   rK   NrL   rM   )r   r   r   r   rR   rS   rT   r   r   rU   r   r   rV   s                r)   rW   zAsyncImages.create_variation2  s      `  #2 	
 	
 d73;#7>>ykRRR ()>X=CVTVXZZ ,T3P3kllllllll(+Q[el   #   
 
 
 
 
 
 
 
 	
r+   rX   rZ   rR   rY   r[   c               b  K   t          ||||||||d          }t          t          t          t          t
          f         |          dgdgg          }ddi|	pi }	|                     dt          |t          j	                   d{V |t          |	|
||	          t          
           d{V S )r]   r^   r:   rY   rG   rI   rJ   r_   NrL   rM   )r   r   r   r   rR   rS   rT   r   r   r`   r   r   ra   s                  r)   rb   zAsyncImages.edit{  s     p   #2	 	
 
 d73;#7>>ySYRZF[\\\ ()>X=CVTVXZZ,T3D3TUUUUUUUU(+Q[el   #   
 
 
 
 
 
 
 
 	
r+   rc   rd   rf   rg   re   rh   c                  K   |                      dt          ||||||||dt          j                   d{V t	          |	|
||          t
                     d{V S )rj   rk   rl   NrL   rm   )rT   r   r   rn   r   r   ro   s                r)   rp   zAsyncImages.generate  s      v ZZ!,$"&'6 " 	 	 &9        )+Q[el   #%   
 
 
 
 
 
 
 
 	
r+   )r#   rz   )r#   r|   rq   rr   rs   rt   rx   r+   r)   r!   r!     s*       0 0 0 _0 6 6 6 _6 :C&/KTPY( )-$("&;DG
 G
 G
 G
 G
 G
\ &/9B&/KTPY( )-$("&;D!Q
 Q
 Q
 Q
 Q
 Q
n :C&/8AKTjsBK( )-$("&;D!N
 N
 N
 N
 N
 N
 N
 N
r+   c                      e Zd ZddZdS )r$   imagesr    r#   Nonec                    || _         t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        d S N)_imagesr
   to_raw_response_wrapperrW   rb   rp   r(   r   s     r)   __init__zImagesWithRawResponse.__init__   s^     0 H#!
 !
 %<K
 
	 )@O
 
r+   Nr   r    r#   r   ru   rv   rw   r   rx   r+   r)   r$   r$     (        
 
 
 
 
 
r+   r$   c                      e Zd ZddZdS )rz   r   r!   r#   r   c                    || _         t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        d S r   )r   r
   async_to_raw_response_wrapperrW   rb   rp   r   s     r)   r   z#AsyncImagesWithRawResponse.__init__/  s^     0 N#!
 !
 %BK
 
	 )FO
 
r+   Nr   r!   r#   r   r   rx   r+   r)   rz   rz   .  r   r+   rz   c                      e Zd ZddZdS )r,   r   r    r#   r   c                    || _         t          |j                  | _        t          |j                  | _        t          |j                  | _        d S r   )r   r   rW   rb   rp   r   s     r)   r   z$ImagesWithStreamingResponse.__init__>  sU     <#!
 !
 1K
 
	 5O
 
r+   Nr   r   rx   r+   r)   r,   r,   =  r   r+   r,   c                      e Zd ZddZdS )r|   r   r!   r#   r   c                    || _         t          |j                  | _        t          |j                  | _        t          |j                  | _        d S r   )r   r   rW   rb   rp   r   s     r)   r   z)AsyncImagesWithStreamingResponse.__init__M  sU     B#!
 !
 7K
 
	 ;O
 
r+   Nr   r   rx   r+   r)   r|   r|   L  r   r+   r|   )1
__future__r   typingr   r   r   r   typing_extensionsr   httpx r
   typesr   r   r   _typesr   r   r   r   r   r   _utilsr   r   r   r   _compatr   	_resourcer   r   	_responser   r   _base_clientr   types.image_modelr   types.images_responser   __all__r    r!   r$   rz   r,   r|   rx   r+   r)   <module>r      s   # " " " " " 1 1 1 1 1 1 1 1 1 1 1 1 % % % % % %        [ [ [ [ [ [ [ [ [ [ I I I I I I I I I I I I I I I I            & % % % % % 9 9 9 9 9 9 9 9 X X X X X X X X / / / / / / * * * * * * 2 2 2 2 2 2]
#~
 ~
 ~
 ~
 ~
_ ~
 ~
 ~
B~
 ~
 ~
 ~
 ~
" ~
 ~
 ~
B
 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
r+   