Ë
    €×<i+*  ã                  óˆ   — d dl mZ d dlZd dl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lmZ d dlmZ d	Zd
Z G d„ d«      Zy)é    )ÚannotationsN)ÚIterableÚOptional)Úprotos)Úcaching_types)Úcontent_types)Úget_default_cache_client)Úfield_mask_pb2ÚuserÚmodelc            	      óŠ  — e Zd ZdZd„ Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
edd„«       Zedd	„«       Zd
„ ZeZedd„«       Zd„ Zeddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zeddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedd„«       Zeddd„«       Zdd„Zdddœ	 	 	 	 	 d d„Zy)!ÚCachedContentzCached content resource.c                ó†   — t        «       }d|vrd|z   }t        j                  |¬«      }|j                  |«      }|| _        y)z«Fetches a `CachedContent` resource.

        Identical to `CachedContent.get`.

        Args:
            name: The resource name referring to the cached content.
        úcachedContents/©ÚnameN)r	   r   ÚGetCachedContentRequestÚget_cached_contentÚ_proto)Úselfr   ÚclientÚrequestÚresponses        ú`/home/www/utuvibe.miabetepe.com/venv/lib/python3.12/site-packages/google/generativeai/caching.pyÚ__init__zCachedContent.__init__#   sE   € ô *Ó+ˆà DÑ(Ø$ tÑ+ˆDä×0Ñ0°dÔ;ˆØ×,Ñ,¨WÓ5ˆØˆó    c                ó.   — | j                   j                  S ©N)r   r   ©r   s    r   r   zCachedContent.name4   s   € à{‰{×ÑÐr   c                ó.   — | j                   j                  S r   )r   r   r   s    r   r   zCachedContent.model8   s   € à{‰{× Ñ Ð r   c                ó.   — | j                   j                  S r   )r   Údisplay_namer   s    r   r"   zCachedContent.display_name<   s   € à{‰{×'Ñ'Ð'r   c                ó.   — | j                   j                  S r   )r   Úusage_metadatar   s    r   r$   zCachedContent.usage_metadata@   s   € à{‰{×)Ñ)Ð)r   c                ó.   — | j                   j                  S r   )r   Úcreate_timer   s    r   r&   zCachedContent.create_timeD   ó   € à{‰{×&Ñ&Ð&r   c                ó.   — | j                   j                  S r   )r   Úupdate_timer   s    r   r)   zCachedContent.update_timeH   r'   r   c                ó.   — | j                   j                  S r   )r   Úexpire_timer   s    r   r+   zCachedContent.expire_timeL   r'   r   c                ó  — t        j                  d| j                  › d| j                  › d| j                  › dd› d| j
                  j                  › dd› d	| j                  › d
| j                  › d| j                  › d«      S )Nz1            CachedContent(
                name='z',
                model='z!',
                display_name='z"',
                usage_metadata=ú{z*
                    'total_token_count': z,
                ú}z,
                create_time=z,
                update_time=z,
                expire_time=z
            ))
ÚtextwrapÚdedentr   r   r"   r$   Útotal_token_countr&   r)   r+   r   s    r   Ú__str__zCachedContent.__str__P   s©   € Ü‰ðà—y‘ykð "ØŸ
™
|ð $Ø#×0Ñ0Ð1ð 2 Ø #˜uð %*Ø*.×*=Ñ*=×*OÑ*OÐ)Pð QØð Ø!×-Ñ-Ð.ð /Ø!×-Ñ-Ð.ð /Ø!×-Ñ-Ð.ð /ðó
ð 	
r   c                ó|   — | j                  | «      }t        j                  «       |_        |j	                  |«       |S )zKCreates an instance of CachedContent form an object, without calling `get`.)Ú__new__r   r   r   Ú_update)ÚclsÚobjr   s      r   Ú	_from_objzCachedContent._from_objb   s3   € ð {‰{˜3ÓˆÜ×*Ñ*Ó,ˆŒØ‰SÔØˆr   c                óò   — t        |t        «      r|j                  }t        |t        «      st	        |«      j                  |d¬«      }|j                  «       D ]  \  }}t        | j                  ||«       Œ y)zFUpdates this instance inplace, does not call the API's `update` methodF)Úincluding_default_value_fieldsN)Ú
isinstancer   r   ÚdictÚtypeÚto_dictÚitemsÚsetattr)r   ÚupdatesÚkeyÚvalues       r   r5   zCachedContent._updatej   sb   € ägœ}Ô-Ø—n‘nˆGä˜'¤4Ô(Ü˜7“m×+Ñ+¨GÐTYÐ+ÓZˆGà!Ÿ-™-›/ò 	-‰JˆCÜD—K‘K  eÕ,ñ	-r   N)r"   Úsystem_instructionÚcontentsÚtoolsÚtool_configÚttlr+   c          
     ó4  — |r|rt        d«      ‚d| vrd| z   } |rt        |«      dkD  rt        d«      ‚|rt        j                  |«      }t        j                  |«      }|r|j                  «       }|rt        j                  |«      }|r2t        j                  |«      }|d   j                  st        |d   _        t        j                  |«      }t        j                  |«      }t        j                  | |||||||¬«      }	t        j                  |	¬«      S )	z&Prepares a CreateCachedContentRequest.úLExclusive arguments: Please provide either `ttl` or `expire_time`, not both.ú/zmodels/é€   z;`display_name` must be no more than 128 unicode characters.éÿÿÿÿ©r   r"   rD   rE   rF   rG   rH   r+   )Úcached_content)Ú
ValueErrorÚlenr   Ú
to_contentÚto_function_libraryÚto_protoÚto_tool_configÚto_contentsÚroleÚ
_USER_ROLEr   Úto_optional_ttlÚto_optional_expire_timer   r   ÚCreateCachedContentRequest)
r   r"   rD   rE   rF   rG   rH   r+   Ú	tools_librO   s
             r   Ú_prepare_create_requestz%CachedContent._prepare_create_requestu   s  € ñ ‘;ÜØ^óð ð eÑØ Ñ%ˆEáœC Ó-°Ò3ÜÐZÓ[Ð[áÜ!.×!9Ñ!9Ð:LÓ!MÐä!×5Ñ5°eÓ<ˆ	ÙØ!×*Ñ*Ó,ˆIáÜ'×6Ñ6°{ÓCˆKáÜ$×0Ñ0°Ó:ˆHØ˜B‘<×$Ò$Ü$.˜‘Ô!ä×+Ñ+¨CÓ0ˆÜ#×;Ñ;¸KÓHˆä×-Ñ-ØØ%Ø1ØØØ#ØØ#ô	
ˆô ×0Ñ0ÀÔOÐOr   c          
     ó˜   — t        «       }	| j                  ||||||||¬«      }
|	j                  |
«      }t        j	                  |«      }|S )a  Creates `CachedContent` resource.

        Args:
            model: The name of the `model` to use for cached content creation.
                   Any `CachedContent` resource can be only used with the
                   `model` it was created for.
            display_name: The user-generated meaningful display name
                          of the cached content. `display_name` must be no
                          more than 128 unicode characters.
            system_instruction: Developer set system instruction.
            contents: Contents to cache.
            tools: A list of `Tools` the model may use to generate response.
            tool_config: Config to apply to all tools.
            ttl: TTL for cached resource (in seconds). Defaults to 1 hour.
                 `ttl` and `expire_time` are exclusive arguments.
            expire_time: Expiration time for cached resource.
                         `ttl` and `expire_time` are exclusive arguments.

        Returns:
            `CachedContent` resource with specified name.
        rN   )r	   r]   Úcreate_cached_contentr   r8   )r6   r   r"   rD   rE   rF   rG   rH   r+   r   r   r   Úresults                r   ÚcreatezCachedContent.create¬   sa   € ôD *Ó+ˆà×-Ñ-ØØ%Ø1ØØØ#ØØ#ð .ó 	
ˆð ×/Ñ/°Ó8ˆÜ×(Ñ(¨Ó2ˆØˆr   c                ó¤   — t        «       }d|vrd|z   }t        j                  |¬«      }|j                  |«      }t        j                  |«      }|S )zÕFetches required `CachedContent` resource.

        Args:
            name: The resource name referring to the cached content.

        Returns:
            `CachedContent` resource with specified `name`.
        r   r   )r	   r   r   r   r   r8   )r6   r   r   r   r   r`   s         r   ÚgetzCachedContent.getß   sS   € ô *Ó+ˆà DÑ(Ø$ tÑ+ˆDä×0Ñ0°dÔ;ˆØ×,Ñ,¨WÓ5ˆÜ×(Ñ(¨Ó2ˆØˆr   c              #  óª   K  — t        «       }t        j                  |¬«      }|j                  |«      D ]  }t        j                  |«      }|–— Œ y­w)a.  Lists `CachedContent` objects associated with the project.

        Args:
            page_size: The maximum number of permissions to return (per page).
            The service may return fewer `CachedContent` objects.

        Returns:
            A paginated list of `CachedContent` objects.
        )Ú	page_sizeN)r	   r   ÚListCachedContentsRequestÚlist_cached_contentsr   r8   )r6   re   r   r   rO   s        r   ÚlistzCachedContent.listó   sP   è ø€ ô *Ó+ˆä×2Ñ2¸YÔGˆØ$×9Ñ9¸'ÓBò 	!ˆNÜ*×4Ñ4°^ÓDˆNØ Ó ñ	!ùs   ‚AAc                óz   — t        «       }t        j                  | j                  ¬«      }|j	                  |«       y)z!Deletes `CachedContent` resource.r   N)r	   r   ÚDeleteCachedContentRequestr   Údelete_cached_content)r   r   r   s      r   ÚdeletezCachedContent.delete  s/   € ä)Ó+ˆä×3Ñ3¸¿¹ÔCˆØ×$Ñ$ WÔ-Ør   )rH   r+   c               óö  — t        «       }|r|rt        d«      ‚t        j                  |«      }t        j                  |«      }t        j                  | j                  ||¬«      }t        j                  «       }|r|j                  j                  d«       n)|r|j                  j                  d«       nt        d«      ‚t        j                  ||¬«      }|j                  |«      }| j                  |«       y)aX  Updates requested `CachedContent` resource.

        Args:
            ttl: TTL for cached resource (in seconds). Defaults to 1 hour.
                 `ttl` and `expire_time` are exclusive arguments.
            expire_time: Expiration time for cached resource.
                         `ttl` and `expire_time` are exclusive arguments.
        rJ   )r   rH   r+   rH   r+   zQBad update name: Only `ttl`  or `expire_time` can be updated for `CachedContent`.)rO   Úupdate_maskN)r	   rP   r   rY   rZ   r   r   r   r
   Ú	FieldMaskÚpathsÚappendÚUpdateCachedContentRequestÚupdate_cached_contentr5   )r   rH   r+   r   rA   Ú
field_maskr   Ú
updated_ccs           r   ÚupdatezCachedContent.update  sâ   € ô *Ó+ˆá‘;ÜØ^óð ô ×+Ñ+¨CÓ0ˆÜ#×;Ñ;¸KÓHˆä×&Ñ&Ø—‘ØØ#ô
ˆô $×-Ñ-Ó/ˆ
áØ×Ñ×#Ñ# EÕ*ÙØ×Ñ×#Ñ# MÕ2äØcóð ô ×3Ñ3À7ÐXbÔcˆØ×1Ñ1°'Ó:ˆ
Ø‰ZÔ àr   )ÚreturnÚstr)rw   z"protos.CachedContent.UsageMetadata)rw   zdatetime.datetime)r7   z+CachedContent | protos.CachedContent | dictrw   r   )r   rx   r"   ú
str | NonerD   ú#Optional[content_types.ContentType]rE   ú$Optional[content_types.ContentsType]rF   ú+Optional[content_types.FunctionLibraryType]rG   ú&Optional[content_types.ToolConfigType]rH   ú Optional[caching_types.TTLTypes]r+   ú'Optional[caching_types.ExpireTimeTypes]rw   z!protos.CreateCachedContentRequest)r   rx   r"   ry   rD   rz   rE   r{   rF   r|   rG   r}   rH   r~   r+   r   rw   r   )r   rx   rw   r   )é   )re   zOptional[int]rw   zIterable[CachedContent])rw   ÚNone)rH   r~   r+   r   rw   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r"   r$   r&   r)   r+   r2   Ú__repr__Úclassmethodr8   r5   Ústaticmethodr]   ra   rc   rh   rl   rv   © r   r   r   r       s&  „ Ù"òð" ò ó ð ð ò!ó ð!ð ò(ó ð(ð ò*ó ð*ð ò'ó ð'ð ò'ó ð'ð ò'ó ð'ò
ð  €Hàòó ðò	-ð ð $(ØBFØ9=Ø=AØ>BØ04Ø?Cñ4PØð4Pð !ð4Pð @ð	4Pð
 7ð4Pð ;ð4Pð <ð4Pð .ð4Pð =ð4Pð 
+ò4Pó ð4Pðl ð
 $(ØBFØ9=Ø=AØ>BØ04Ø?Cñ0àð0ð !ð	0ð
 @ð0ð 7ð0ð ;ð0ð <ð0ð .ð0ð =ð0ð 
ò0ó ð0ðd òó ðð& ó!ó ð!ó"ð 15Ø?Cñ	-ð .ð-ð =ð	-ð
 
ô-r   r   )Ú
__future__r   Údatetimer/   Útypingr   r   Úgoogle.generativeair   Úgoogle.generativeai.typesr   r   Úgoogle.generativeai.clientr	   Úgoogle.protobufr
   rX   Ú_MODEL_ROLEr   rŠ   r   r   ú<module>r“      s8   ðõ #ã Û ß %å &Ý 3Ý 3Ý ?å *à€
Ø€÷Zò Zr   