o
    +ÂifÜ`  ã                   @  s8  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gZ(G dd„ deƒZ)G dd„ de ƒZ*G dd„ dƒZ+G dd„ dƒZ,G dd„ dƒZ-G dd„ dƒZ.d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)ÚImagesResponseÚImagesÚAsyncImagesc                   @  óŽ   e Zd Zed1dd„ƒZed2dd„ƒZeeeeeddded	œ	d3dd „Zeeeeeeddded!œ
d4d&d'„Zeeeeeeeddded(œd5d/d0„Z	dS )6r   ÚreturnÚImagesWithRawResponsec                 C  ó   t | ƒS ©N)r"   ©Úself© r'   úP/var/www/html/corbot_env/lib/python3.10/site-packages/openai/resources/images.pyÚwith_raw_response   ó   zImages.with_raw_responseÚImagesWithStreamingResponsec                 C  r#   r$   )r+   r%   r'   r'   r(   Úwith_streaming_response#   r*   zImages.with_streaming_responseN©	ÚmodelÚnÚresponse_formatÚsizeÚuserÚextra_headersÚextra_queryÚ
extra_bodyÚtimeoutÚimager   r.   ú0Union[str, Literal['dall-e-2'], None] | NotGivenr/   úOptional[int] | NotGivenr0   ú/Optional[Literal['url', 'b64_json']] | NotGivenr1   ú?Optional[Literal['256x256', '512x512', '1024x1024']] | NotGivenr2   ústr | NotGivenr3   úHeaders | Noner4   úQuery | Noner5   úBody | Noner6   ú'float | httpx.Timeout | None | NotGivenr   c       
      
   C  sp   t ||||||dœƒ}tttttf |ƒdggd�}|r$ddi|p"i ¥}| jdt|tj	ƒ|t
|||	|
d�td�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
        ©r7   r.   r/   r0   r1   r2   r7   ©ÚpathsúContent-Typeúmultipart/form-dataú/images/variations©r3   r4   r5   r6   ©ÚbodyÚfilesÚoptionsÚcast_to)r   r   r   r   ÚstrÚobjectÚ_postr   r   ÚImageCreateVariationParamsr   r   ©r&   r7   r.   r/   r0   r1   r2   r3   r4   r5   r6   rJ   rK   r'   r'   r(   Úcreate_variation'   s*   0úÿ

ÿùzImages.create_variation©
Úmaskr.   r/   r0   r1   r2   r3   r4   r5   r6   ÚpromptrN   rU   úFileTypes | NotGivenc             
   C  sx   t ||||||||dœƒ}tttttf |ƒdgdggd�}|r(ddi|	p&i ¥}	| jdt|tj	ƒ|t
|	|
||d�td	�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
        ©r7   rV   rU   r.   r/   r0   r1   r2   r7   rU   rC   rE   rF   ú/images/editsrH   rI   )r   r   r   r   rN   rO   rP   r   r
   ÚImageEditParamsr   r   ©r&   r7   rV   rU   r.   r/   r0   r1   r2   r3   r4   r5   r6   rJ   rK   r'   r'   r(   Úeditq   s.   8øÿ"
ÿùzImages.edit©r.   r/   Úqualityr0   r1   Ústyler2   r3   r4   r5   r6   ú<Union[str, Literal['dall-e-2', 'dall-e-3'], None] | NotGivenr_   ú$Literal['standard', 'hd'] | NotGivenúYOptional[Literal['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']] | NotGivenr`   ú0Optional[Literal['vivid', 'natural']] | NotGivenc                C  s8   | j dt||||||||dœtjƒt|	|
||d�td�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©rV   r.   r/   r_   r0   r1   r`   r2   rH   ©rJ   rL   rM   )rP   r   r   ÚImageGenerateParamsr   r   ©r&   rV   r.   r/   r_   r0   r1   r`   r2   r3   r4   r5   r6   r'   r'   r(   ÚgenerateÅ   s&   ;ø
õÿîzImages.generate)r!   r"   )r!   r+   ©r7   r   r.   r8   r/   r9   r0   r:   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r!   r   ©r7   r   rV   rN   rU   rW   r.   r8   r/   r9   r0   r:   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r!   r   ©rV   rN   r.   ra   r/   r9   r_   rb   r0   r:   r1   rc   r`   rd   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r!   r   ©
Ú__name__Ú
__module__Ú__qualname__r   r)   r,   r   rS   r]   rk   r'   r'   r'   r(   r      óL    òOðXðc                   @  r    )6r   r!   ÚAsyncImagesWithRawResponsec                 C  r#   r$   )rt   r%   r'   r'   r(   r)     r*   zAsyncImages.with_raw_responseÚ AsyncImagesWithStreamingResponsec                 C  r#   r$   )ru   r%   r'   r'   r(   r,     r*   z#AsyncImages.with_streaming_responseNr-   r7   r   r.   r8   r/   r9   r0   r:   r1   r;   r2   r<   r3   r=   r4   r>   r5   r?   r6   r@   r   c       
      
   Ã  s~   �t ||||||dœƒ}tttttf |ƒdggd�}|r%ddi|p#i ¥}| jdt|tj	ƒI dH |t
|||	|
d�td	�I dH S )
rA   rB   r7   rC   rE   rF   rG   NrH   rI   )r   r   r   r   rN   rO   rP   r   r   rQ   r   r   rR   r'   r'   r(   rS     s,   €0úÿ
ÿùzAsyncImages.create_variationrT   rV   rN   rU   rW   c             
   Ã  s†   �t ||||||||dœƒ}tttttf |ƒdgdggd�}|r)ddi|	p'i ¥}	| jdt|tj	ƒI dH |t
|	|
||d	�td
�I dH S )rX   rY   r7   rU   rC   rE   rF   rZ   NrH   rI   )r   r   r   r   rN   rO   rP   r   r
   r[   r   r   r\   r'   r'   r(   r]   i  s0   €8øÿ"ÿùzAsyncImages.editr^   ra   r_   rb   rc   r`   rd   c                Ã  sF   �| j dt||||||||dœtjƒI dH t|	|
||d�td�I dH S )re   rf   rg   NrH   rh   )rP   r   r   ri   r   r   rj   r'   r'   r(   rk   ½  s(   €;ø
õÿîzAsyncImages.generate)r!   rt   )r!   ru   rl   rm   rn   ro   r'   r'   r'   r(   r     rs   c                   @  ó   e Zd Zddd„ZdS )	r"   Úimagesr   r!   ÚNonec                 C  ó4   || _ t |j¡| _t |j¡| _t |j¡| _d S r$   )Ú_imagesr	   Úto_raw_response_wrapperrS   r]   rk   ©r&   rw   r'   r'   r(   Ú__init__  ó   ÿÿ
ÿzImagesWithRawResponse.__init__N©rw   r   r!   rx   ©rp   rq   rr   r}   r'   r'   r'   r(   r"     ó    r"   c                   @  rv   )	rt   rw   r   r!   rx   c                 C  ry   r$   )rz   r	   Úasync_to_raw_response_wrapperrS   r]   rk   r|   r'   r'   r(   r}     r~   z#AsyncImagesWithRawResponse.__init__N©rw   r   r!   rx   r€   r'   r'   r'   r(   rt     r�   rt   c                   @  rv   )	r+   rw   r   r!   rx   c                 C  ó.   || _ t|jƒ| _t|jƒ| _t|jƒ| _d S r$   )rz   r   rS   r]   rk   r|   r'   r'   r(   r}   -  ó   ÿÿ
ÿz$ImagesWithStreamingResponse.__init__Nr   r€   r'   r'   r'   r(   r+   ,  r�   r+   c                   @  rv   )	ru   rw   r   r!   rx   c                 C  r„   r$   )rz   r   rS   r]   rk   r|   r'   r'   r(   r}   <  r…   z)AsyncImagesWithStreamingResponse.__init__Nrƒ   r€   r'   r'   r'   r(   ru   ;  r�   ru   )/Ú
__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.images_responser   Ú__all__r   r   r"   rt   r+   ru   r'   r'   r'   r(   Ú<module>   s,     y y