
    k7i                     z    S SK Jr  S SKJr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  S SKJr   " S S	\5      rg
)    )Sequence)AnySupportsFloat)DEFAULT_PREFIX_SEPARATOR
prefix_keyunprefix_key)override)AsyncKeyValue)DEFAULT_COLLECTION_NAME)BaseWrapperc                     ^  \ rS rSrSr SS\S\S\S-  S\S-  SS4
U 4S	 jjjrSS
\S\S-  S\4S jjrS
\S\4S jr	\
SS.S
\S\S-  S\\\4   S-  4S jj5       r\
SS.S\\   S\S-  S\\\\4   S-     4S jj5       r\
SS.S
\S\S-  S\\\\4   S-  \S-  4   4S jj5       r\
SS.S\\   S\S-  S\\\\\4   S-  \S-  4      4S jj5       r\
SSS.S
\S\\\4   S\S-  S\S-  SS4
S jj5       r\
SSS.S\\   S\\\\4      S\S-  S\\S-     S-  SS4
S jj5       r\
SS.S
\S\S-  S\4S jj5       r\
SS.S\\   S\S-  S\4S jj5       rSrU =r$ )SingleCollectionWrapper   z[A wrapper that stores all collections within a single backing collection via key prefixing.N	key_valuesingle_collectiondefault_collection	separatorreturnc                    > Xl         X l        U=(       d    [        U l        U=(       d    [        U l        [        TU ]  5         g)a.  Initialize the prefix collections wrapper.

Args:
    key_value: The store to wrap.
    single_collection: The single collection to use to store all collections.
    default_collection: The default collection to use if no collection is provided.
    separator: The separator to use for the key prefix.
N)r   r   r   r   r   r   super__init__)selfr   r   r   r   	__class__s        j/home/james-whalen/.local/lib/python3.13/site-packages/key_value/aio/wrappers/single_collection/wrapper.pyr    SingleCollectionWrapper.__init__   s6     )2&7'9'T=T'C+C    key
collectionc                 T    U=(       d    U R                   n[        X1U R                  S9$ N)prefixr   r   )r   r   r   )r   r   r   collection_to_uses       r   _prefix_key#SingleCollectionWrapper._prefix_key    s%    &A$*A*A!2t~~VVr   c                 >    [        U R                  XR                  S9$ r    )r   r   r   )r   r   s     r   _unprefix_key%SingleCollectionWrapper._unprefix_key$   s    4#9#9snn]]r   )r   c                   #    U R                  XS9nU R                  R                  X0R                  S9I S h  vN $  N7fNr   r   )r#   r   getr   r   r   r   new_keys       r   r+   SingleCollectionWrapper.get'   <     ''C'G^^''G@V@V'WWWW   6?=?keysc                   #    U Vs/ s H  o0R                  X2S9PM     nnU R                  R                  X@R                  S9I S h  vN $ s  snf  N	7fNr*   )r1   r   )r#   r   get_manyr   r   r1   r   r   new_keyss        r   r4    SingleCollectionWrapper.get_many,   R     [_`[_TW//C/O[_`^^,,(G]G],^^^ a^   AA(AA
Ac                   #    U R                  XS9nU R                  R                  X0R                  S9I S h  vN $  N7fr)   )r#   r   ttlr   r,   s       r   r;   SingleCollectionWrapper.ttl1   r/   r0   c                   #    U Vs/ s H  o0R                  X2S9PM     nnU R                  R                  X@R                  S9I S h  vN $ s  snf  N	7fr3   )r#   r   ttl_manyr   r5   s        r   r>    SingleCollectionWrapper.ttl_many6   r8   r9   )r   r;   valuer;   c                   #    U R                  XS9nU R                  R                  XRU R                  US9I S h  vN $  N7f)Nr*   )r   r@   r   r;   )r#   r   putr   )r   r   r@   r   r;   r-   s         r   rB   SingleCollectionWrapper.put;   sA     ''C'G^^''GTMcMcil'mmmms   8A?Avaluesc                   #    U Vs/ s H  oPR                  XSS9PM     nnU R                  R                  XbU R                  US9I S h  vN $ s  snf  N	7f)Nr*   )r1   rD   r   r;   )r#   r   put_manyr   )r   r1   rD   r   r;   r   r6   s          r   rF    SingleCollectionWrapper.put_many@   s\      \``[_TW//C/O[_`^^,,(VZVlVlru,vvv avs   AA*A	A

Ac                   #    U R                  XS9nU R                  R                  X0R                  S9I S h  vN $  N7fr)   )r#   r   deleter   r,   s       r   rI   SingleCollectionWrapper.deleteL   s<     ''C'G^^**wCYCY*ZZZZr0   c                   #    U Vs/ s H  o0R                  X2S9PM     nnU R                  R                  X@R                  S9I S h  vN $ s  snf  N	7fr3   )r#   r   delete_manyr   r5   s        r   rL   #SingleCollectionWrapper.delete_manyQ   sR     [_`[_TW//C/O[_`^^//XJ`J`/aaa aar9   )r   r   r   r   )NN)N)__name__
__module____qualname____firstlineno____doc__r
   strr   r#   r&   r	   dictr   r+   listr4   tuplefloatr;   r>   r   rB   r   rF   boolrI   intrL   __static_attributes____classcell__)r   s   @r   r   r      s*   e @D&;>TWZ^T^rux|r|	 "Ws Wd
 Wc W^ ^ ^ >B XS Xt XtCQTH~X\G\ X X JN _49 _S4Z _SWX\]`be]eXfimXmSn _ _ >B XS Xt XuTRUWZRZ^^bMbdilpdpMpGq X X JN _49 _S4Z _SWX]^bcfhkck^los^suz  ~B  vB  _B  YC  TD _ _ UYw{ nS nc3h nd
 n`mpt`t n  AE n n  "&59	w3i	w c3h(	w
 $J	w md*+d2	w 
	w 	w AE [ [C$J [$ [ [ MQ bd3i bd
 bVY b br   r   N)collections.abcr   typingr   r   key_value.shared.utils.compoundr   r   r   typing_extensionsr	   !key_value.aio.protocols.key_valuer
   key_value.aio.stores.baser   key_value.aio.wrappers.baser   r    r   r   <module>rd      s-    $ % ^ ^ & ; = 3Hbk Hbr   