
    Kir                     ^    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  G d de      Zy)	    )MappingSequence)AnySupportsFloat)bear_enforce)override)AsyncKeyValuec                   z   e Zd ZU dZeed<   eedddededz  de	ee
f   dz  fd              Zeeddd	ee   dedz  dee	ee
f   dz     fd
              Zeedddededz  dee	ee
f   dz  edz  f   fd              Zeeddd	ee   dedz  deee	ee
f   dz  edz  f      fd              Zeeddddedeee
f   dedz  dedz  ddf
d              Zeedddd	ee   deeee
f      dedz  dedz  ddf
d              Zeedddededz  defd              Zeeddd	ee   dedz  defd              Zy)BaseWrappera  A base wrapper for KVStore implementations that passes through to the underlying store.

    This class implements the passthrough pattern where all operations are delegated to the wrapped
    key-value store without modification. It serves as a foundation for creating custom wrappers that
    need to intercept, modify, or enhance specific operations while passing through others unchanged.

    To create a custom wrapper, subclass this class and override only the methods you need to customize.
    All other operations will automatically pass through to the underlying store.

    Example:
        class LoggingWrapper(BaseWrapper):
            async def get(self, key: str, *, collection: str | None = None):
                logger.info(f"Getting key: {key}")
                return await super().get(key, collection=collection)

    Attributes:
        key_value: The underlying AsyncKeyValue store that operations are delegated to.
    	key_valueN)
collectionkeyr   returnc                X   K   | j                   j                  ||       d {   S 7 wN)r   r   )r   getselfr   r   s      g/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/key_value/aio/wrappers/base.pyr   zBaseWrapper.get    (      ^^'':3'GGGG   !*(*keysc                X   K   | j                   j                  ||       d {   S 7 wN)r   r   )r   get_manyr   r   r   s      r   r   zBaseWrapper.get_many%   (      ^^,,
,NNNNr   c                X   K   | j                   j                  ||       d {   S 7 wr   )r   ttlr   s      r   r   zBaseWrapper.ttl*   r   r   c                X   K   | j                   j                  ||       d {   S 7 wr   )r   ttl_manyr   s      r   r!   zBaseWrapper.ttl_many/   r   r   )r   r   valuer   c                \   K   | j                   j                  ||||       d {   S 7 w)N)r   r   r"   r   )r   put)r   r   r"   r   r   s        r   r$   zBaseWrapper.put4   s-      ^^'':3eY\']]]]   #,*,valuesc                \   K   | j                   j                  ||||       d {   S 7 w)N)r   r&   r   r   )r   put_many)r   r   r&   r   r   s        r   r(   zBaseWrapper.put_many9   s.      ^^,,$vR\be,ffffr%   c                X   K   | j                   j                  ||       d {   S 7 wr   )r   deleter   s      r   r*   zBaseWrapper.deleteE   s(      ^^**jc*JJJJr   c                X   K   | j                   j                  ||       d {   S 7 w)N)r   r   )r   delete_manyr   s      r   r,   zBaseWrapper.delete_manyJ   s(      ^^//Tj/QQQQr   )__name__
__module____qualname____doc__r	   __annotations__r   r   strdictr   r   r   listr   tuplefloatr   r!   r   r   r$   r(   boolr*   intr,        r   r   r   
   s   & >B HS Ht HtCQTH~X\G\ H  H NR O8C= Ot OW[\`adfiai\jmq\qWr O  O >B HS Ht HuTRUWZRZ^^bMbdilpdpMpGq H  H NR O8C= Ot OW[\abfgjlogobpswbwy~  BF  zF  cF  ]G  XH O  O X\z~ ^S ^c): ^3QU: ^cpswcw ^  DH ^  ^  "&$(gsmg c*+g
 $Jg T!g 
g  g AE K KC$J K$ K  K QU Rhsm RC$J RZ] R  Rr:   r   N)collections.abcr   r   typingr   r   )key_value.shared.type_checking.bear_sprayr   typing_extensionsr   !key_value.aio.protocols.key_valuer	   r   r9   r:   r   <module>r@      s$    - % B & ;CR- CRr:   