Ë
    µŒjG  ã                  óx   — d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	  ej                  d¬«      Z G d„ de«      Zy)	é    )ÚannotationsN)ÚABCÚabstractmethod)ÚListÚOptionalÚSequenceiÀ  )Úintc                  ó`  — e Zd ZdZ	 	 	 	 dd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edddœ	 	 	 	 	 	 	 dd	„«       Z
edddœ	 	 	 	 	 	 	 dd
„«       Zedd„«       Zedd„«       Zedddddœ	 	 	 	 	 	 	 	 	 dd„«       Zedddddœ	 	 	 	 	 	 	 	 	 dd„«       Zedd„«       Zedd„«       Zy)ÚRecordManagerz)Abstract base class for a record manager.c                ó   — || _         y)zyInitialize the record manager.

        Args:
            namespace (str): The namespace for the record manager.
        N)Ú	namespace)Úselfr   s     új/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/indexes/base.pyÚ__init__zRecordManager.__init__   s   € ð #ˆ�ó    c                 ó   — y©z2Create the database schema for the record manager.N© ©r   s    r   Úcreate_schemazRecordManager.create_schema   ó   � r   c              ƒ  ó   K  — y­wr   r   r   s    r   Úacreate_schemazRecordManager.acreate_schema   ó   è ø� ùó   ‚c                 ó   — y©a*  Get the current server time as a high resolution timestamp!

        It's important to get this from the server to ensure a monotonic clock,
        otherwise there may be data loss when cleaning up old documents!

        Returns:
            The current server time as a float timestamp.
        Nr   r   s    r   Úget_timezRecordManager.get_time    r   r   c              ƒ  ó   K  — y­wr   r   r   s    r   Ú	aget_timezRecordManager.aget_time+   r   r   N)Ú	group_idsÚtime_at_leastc                ó   — y©a˜  Upsert records into the database.

        Args:
            keys: A list of record keys to upsert.
            group_ids: A list of group IDs corresponding to the keys.
            time_at_least: if provided, updates should only happen if the
              updated_at field is at least this time.

        Raises:
            ValueError: If the length of keys doesn't match the length of group_ids.
        Nr   ©r   Úkeysr!   r"   s       r   ÚupdatezRecordManager.update6   r   r   c             ƒ  ó   K  — y­wr$   r   r%   s       r   ÚaupdatezRecordManager.aupdateJ   r   r   c                 ó   — y©zÑCheck if the provided keys exist in the database.

        Args:
            keys: A list of keys to check.

        Returns:
            A list of boolean values indicating the existence of each key.
        Nr   ©r   r&   s     r   ÚexistszRecordManager.exists^   r   r   c              ƒ  ó   K  — y­wr+   r   r,   s     r   ÚaexistszRecordManager.aexistsi   r   r   )ÚbeforeÚafterr!   Úlimitc                ó   — y©a¯  List records in the database based on the provided filters.

        Args:
            before: Filter to list records updated before this time.
            after: Filter to list records updated after this time.
            group_ids: Filter to list records with specific group IDs.
            limit: optional limit on the number of records to return.

        Returns:
            A list of keys for the matching records.
        Nr   ©r   r0   r1   r!   r2   s        r   Ú	list_keyszRecordManager.list_keyst   r   r   c             ƒ  ó   K  — y­wr4   r   r5   s        r   Ú
alist_keyszRecordManager.alist_keys‰   r   r   c                 ó   — y©zoDelete specified records from the database.

        Args:
            keys: A list of keys to delete.
        Nr   r,   s     r   Údelete_keyszRecordManager.delete_keysž   r   r   c              ƒ  ó   K  — y­wr:   r   r,   s     r   Úadelete_keyszRecordManager.adelete_keys¦   r   r   )r   ÚstrÚreturnÚNone)r?   r@   )r?   Úfloat)r&   úSequence[str]r!   z!Optional[Sequence[Optional[str]]]r"   úOptional[float]r?   r@   )r&   rB   r?   z
List[bool])
r0   rC   r1   rC   r!   zOptional[Sequence[str]]r2   zOptional[int]r?   z	List[str])r&   rB   r?   r@   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r    r'   r)   r-   r/   r6   r8   r;   r=   r   r   r   r   r   
   sì  „ Ù3ð	#àð	#ð 
ó	#ð òAó ðAð òAó ðAð òó ðð òó ðð ð
 8<Ø)-ñàðð 5ð	ð
 'ðð 
òó ðð& ð
 8<Ø)-ñàðð 5ð	ð
 'ðð 
òó ðð& òó ðð òó ðð ð #'Ø!%Ø-1Ø#ñð  ðð ð	ð
 +ðð ðð 
òó ðð( ð #'Ø!%Ø-1Ø#ñð  ðð ð	ð
 +ðð ðð 
òó ðð( òó ðð òó ñr   r   )Ú
__future__r   ÚuuidÚabcr   r   Útypingr   r   r   ÚUUIDÚNAMESPACE_UUIDr   r   r   r   Ú<module>rN      s2   ðÝ "ã ß #ß +Ñ +à�—‘˜tÔ$€ôb�Cõ br   