ó
    ±"³jé  ã                   ó¶   • S SK JrJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJrJr  SSKJr  SS	KJr  SS
KJrJr  \" S\\-  \-  5      r  " S S\5      rg)é    )ÚABCÚabstractmethod)ÚSequence)ÚTypeAliasType)Úvalidate_uploaded_file_provider)Ú	UserError)ÚBinaryImageÚImageUrlÚUploadedFileé   )Ú"validate_image_generation_settings)ÚImageGenerationResult)ÚImageGenerationSettingsÚmerge_image_generation_settingsÚImageGenerationInputc                   óh  • \ rS rSr% SrSr\S-  \S'   SS.S\S-  SS4S jjr\	S\S-  4S	 j5       r
\	S\S-  4S
 j5       r\	\S\4S j5       5       r\	\S\4S j5       5       r\SSS.S\S\\   S-  S\S-  S\4S jj5       rS\SS4S jrSSS.S\S\\   S-  S\S-  S\\\\   \4   4S jjrSrg)ÚImageGenerationModelé   z0Abstract base class for image generation models.NÚ	_settings)Úsettingsr   Úreturnc                ó   • Xl         g)zˆInitialize the model with optional settings.

Args:
    settings: Model-specific settings that will be used as defaults for this model.
N©r   )Úselfr   s     ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/images/base.pyÚ__init__ÚImageGenerationModel.__init__   s	   € ð "�ó    c                 ó   • U R                   $ )z(Get the default settings for this model.r   ©r   s    r   r   ÚImageGenerationModel.settings#   s   € ð �~‰~Ðr   c                 ó   • g)z0The base URL for the provider API, if available.N© r    s    r   Úbase_urlÚImageGenerationModel.base_url(   s   € ð r   c                 ó   • [        5       e)z'The name of the image generation model.©ÚNotImplementedErrorr    s    r   Ú
model_nameÚImageGenerationModel.model_name-   ó   € ô "Ó#Ð#r   c                 ó   • [        5       e)z6The image generation model provider/system identifier.r'   r    s    r   ÚsystemÚImageGenerationModel.system3   r+   r   )Úimagesr   Úpromptr/   c             ƒ   ó   #   • [         e7f)an  Generate images for the given prompt.

The result always holds at least one image. An implementation with no image to return raises
[`ContentFilterError`][pydantic_ai.exceptions.ContentFilterError] when the provider blocked the output, and
[`UnexpectedModelBehavior`][pydantic_ai.exceptions.UnexpectedModelBehavior] otherwise, rather than returning an
empty result.
r'   )r   r0   r/   r   s       r   ÚgenerateÚImageGenerationModel.generate9   s   é € ô "Ð!ùs   ‚	Úitemc                 óR   • [        XR                  [        U 5      R                  S9  g)zWRaise `UserError` if an `UploadedFile` references a different provider than this model.)r-   Úmodel_type_nameN)r   r-   ÚtypeÚ__name__)r   r4   s     r   Ú _validate_uploaded_file_providerÚ5ImageGenerationModel._validate_uploaded_file_providerJ   s   € ä'¨·[±[ÔRVÐW[ÓR\×ReÑReÓfr   c                ó²  • UR                  5       (       d  [        S5      e[        U=(       d    S5      nU Hp  n[        U[        [
        [        45      (       d  [        S5      e[        U[        5      (       d  ME  UR                  R                  S5      (       a  Mg  [        S5      e   [        U R                  U5      =(       d    0 n[        U5        XU4$ )zHPrepare the prompt, reference images, and settings for image generation.z,Image generation requires a non-empty promptr#   zVImage generation inputs must be `ImageUrl`, `BinaryImage`, or `UploadedFile` instanceszimage/zDImage generation `UploadedFile` inputs must have an image media type)Ústripr   ÚlistÚ
isinstancer
   r	   r   Ú
media_typeÚ
startswithr   r   r   )r   r0   r/   r   Úprepared_imagesÚimages         r   Úprepare_generateÚ%ImageGenerationModel.prepare_generateN   s³   € ð �|‰|�~‰~ÜÐJÓKÐKä˜vŸ|¨Ó,ˆÛ$ˆEÜ˜e¤h´¼\Ð%J×KÑKÜØlóð ô ˜%¤×.Ó.°u×7GÑ7G×7RÑ7RÐS[×7\Ó7\ÜÐ fÓgÐgñ %ô 3°4·=±=À(ÓK×QÈrˆÜ*¨8Ô4Ø¨Ð0Ð0r   r   )r8   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__annotations__r   Úpropertyr   Ústrr$   r   r)   r-   r   r   r   r2   r   r9   Útupler=   rC   Ú__static_attributes__r#   r   r   r   r      s�  ‡ Ù:à04€IÐ&¨Ñ-Ó4ð
 48ò
"ð *¨DÑ0ð
"ð 
õ	
"ð ðÐ1°DÑ8ó ó ðð ð˜# ™*ó ó ðð Øð$˜Có $ó ó ð$ð Øð$˜ó $ó ó ð$ð ð
 9=Ø37ò"àð"ð Ð-Ñ.°Ñ5ð	"ð
 *¨DÑ0ð"ð 
ô"ó ð"ð g°\ð gÀdô gð 9=Ø37ò1àð1ð Ð-Ñ.°Ñ5ð	1ð
 *¨DÑ0ð1ð 
ˆs�DÐ-Ñ.Ð0GÐGÑ	H÷1ð 1r   r   N)Úabcr   r   Úcollections.abcr   Útyping_extensionsr   Úpydantic_ai._utilsr   Úpydantic_ai.exceptionsr   Úpydantic_ai.messagesr	   r
   r   Ú_validationr   Úresultr   r   r   r   r   r   r#   r   r   Ú<module>rV      sM   ðß #Ý $å +å >Ý ,ß DÑ Då ;Ý )ß Ná$Ð%;¸XÈÑ=SÐVbÑ=bÓcÐ Ø JôT1˜3õ T1r   