
    Ki                        d dl mZmZ 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 d dlmZ e G d d	             Ze G d
 de             Ze G d de             Ze G d de             Ze G d de             Ze G d de             Ze G d de             Ze G d de             Ze G d d             Z G d de      Zy)    )MappingSequence)	dataclassfield)AnySupportsFloat)DEFAULT_COLLECTION_NAME)override)AsyncKeyValue)BaseWrapperc                   F    e Zd ZU dZ ed      Zeed<   	 dddedd	fd
Zy	)BaseStatisticsz2Base statistics container with operation counting.r   defaultcount   	incrementr   returnNc                .    | xj                   |z  c_         y N)r   selfr   s     u/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/key_value/aio/wrappers/statistics/wrapper.pyr   zBaseStatistics.increment   s    

i
    )	__name__
__module____qualname____doc__r   r   int__annotations__r    r   r   r   r      s-    <q!E3!#,-  c  $  r   r   c                   z    e Zd ZU dZ ed      Zeed<   	  ed      Zeed<   	 ddded	d
fdZ	ddded	d
fdZ
y
)BaseHitMissStatisticszFStatistics container with hit/miss tracking for cache-like operations.r   r   hitmissr   r   r   r   Nc                R    | j                  |       | xj                  |z  c_        y Nr   )r   r%   r   s     r   increment_hitz#BaseHitMissStatistics.increment_hit    s    +Ir   c                R    | j                  |       | xj                  |z  c_        y r(   )r   r&   r   s     r   increment_missz$BaseHitMissStatistics.increment_miss$   s    +		Y	r   )r   r   r   r   r   r%   r    r!   r&   r)   r+   r"   r   r   r$   r$      sW    PQCa D# 01 # d  23 3 t r   r$   c                       e Zd ZdZy)GetStatistics3A class for statistics about a KV Store collection.Nr   r   r   r   r"   r   r   r-   r-   )       =r   r-   c                       e Zd ZdZy)PutStatisticsr.   Nr/   r"   r   r   r2   r2   .   r0   r   r2   c                       e Zd ZdZy)DeleteStatisticsr.   Nr/   r"   r   r   r4   r4   3   r0   r   r4   c                       e Zd ZdZy)ExistsStatisticsr.   Nr/   r"   r   r   r6   r6   8   r0   r   r6   c                       e Zd ZdZy)TTLStatisticsr.   Nr/   r"   r   r   r8   r8   =   r0   r   r8   c                       e Zd ZU dZ ee      Zeed<   	  ee      Z	eed<   	  ee
      Ze
ed<   	  ee      Zeed<   	  ee      Zeed<   y)	KVStoreCollectionStatisticsr.   default_factorygetttlputdeleteexistsN)r   r   r   r   r   r-   r=   r!   r8   r>   r2   r?   r4   r@   r6   rA   r"   r   r   r:   r:   B   sc    =}=C=/}=C=/}=C=/$5EFFF2$5EFFF2r   r:   c                   H    e Zd ZU dZ ee      Zeeef   e	d<   dedefdZ
y)KVStoreStatisticsz$Statistics container for a KV Store.r;   collections
collectionr   c                 j    || j                   vrt               | j                   |<   | j                   |   S r   )rD   r:   )r   rE   s     r   get_collectionz KVStoreStatistics.get_collection\   s4    T---+F+HDZ(
++r   N)r   r   r   r   r   dictrD   strr:   r!   rG   r"   r   r   rC   rC   V   s4    .:?PT:UKc667U, ,1L ,r   rC   c                   D   e Zd ZdZdeddfdZedefd       Ze	ddde
d	e
dz  dee
ef   dz  fd
       Z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	dddde
dee
ef   d	e
dz  dedz  ddf
d       Ze	ddde
d	e
dz  defd       Ze	dddee
   d	e
dz  deee
ef   dz     fd       Z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	dddee
   d	e
dz  defd       Z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y)StatisticsWrapperzStatistics wrapper around a KV Store that tracks operation statistics.

    Note: enumeration and destroy operations are not tracked by this wrapper.
    	key_valuer   Nc                 0    || _         t               | _        y r   )rL   rC   _statistics)r   rL   s     r   __init__zStatisticsWrapper.__init__h   s    (1.?.Ar   c                     | j                   S r   )rN   )r   s    r   
statisticszStatisticsWrapper.statisticsl   s    r   rE   keyrE   c                F  K   |xs t         }| j                  j                  ||       d {   }|6| j                  j	                  |      j                  j                          |S | j                  j	                  |      j                  j                          y 7 qw)NrE   rS   rR   )r	   rL   r=   rQ   rG   r)   r+   )r   rS   rE   values       r   r=   zStatisticsWrapper.getp   s     :#:
nn((JC(HHOO**j*AEESSUL&&*&=AAPPR Is   +B!BA2B!c                P  K   |xs t         }| j                  j                  ||       d {   \  }}|8| j                  j	                  |      j                  j                          ||fS | j                  j	                  |      j                  j                          y7 vw)NrU   rR   )NN)r	   rL   r>   rQ   rG   r)   r+   )r   rS   rE   rV   r>   s        r   r>   zStatisticsWrapper.ttl~   s     :#:
>>---MM
sOO**j*AEESSU#:&&*&=AAPPR Ns   +B&B$A7B&)rE   r>   rV   r>   c                   K   |xs t         }| j                  j                  ||||       d {    | j                  j	                  |      j                  j                          y 7 9w)N)rE   rS   rV   r>   rR   )r	   rL   r?   rQ   rG   r   )r   rS   rV   rE   r>   s        r   r?   zStatisticsWrapper.put   s]     :#:
nn  JCuRU VVV&&*&=AAKKM 	Ws   -A+A):A+c                @  K   |xs t         }| j                  j                  ||       d {   r5| j                  j	                  |      j                  j                          y| j                  j	                  |      j                  j                          y7 nw)NrU   rR   TF)r	   rL   r@   rQ   rG   r)   r+   )r   rS   rE   s      r   r@   zStatisticsWrapper.delete   s     :#:
&&*#&FFFOO**j*AHHVVX&&*&=DDSSU Gs   +BBA/Bkeysc                  K   |xs t         }| j                  j                  ||       d {   }t        |D cg c]  }||	 c}      }t        |D cg c]  }||	 c}      }| j                  j                  |      j                  j                  |       | j                  j                  |      j                  j                  |       |S 7 c c}w c c}w wNrZ   rE   rR   r   )	r	   rL   get_manylenrQ   rG   r=   r)   r+   r   rZ   rE   resultsresulthitsmissess          r   r^   zStatisticsWrapper.get_many   s     :#:
59^^5L5LRVcm5L5n/nGvF4FFGH7EfnfEF&&*&=AAOOZ^O_&&*&=AAPP[aPb 0oGEs9   +C$CC$CCC$CC#A6C$
C$valuesc                   K   |xs t         }| j                  j                  ||||       d {    | j                  j	                  |      j
                  j                  t        |             y 7 Dw)N)rZ   re   rE   r>   rR   r   )r	   rL   put_manyrQ   rG   r?   r   r_   )r   rZ   re   rE   r>   s        r   rg   zStatisticsWrapper.put_many   sk       :#:
nn%%4:[^%___&&*&=AAKKVYZ^V_K` 	`s   -A6A4AA6c                h  K   |xs t         }| j                  j                  ||       d {   }|}t        |      |z
  }| j                  j                  |      j                  j                  |       | j                  j                  |      j                  j                  |       |S 7 wr\   )	r	   rL   delete_manyr_   rQ   rG   r@   r)   r+   )r   rZ   rE   deleted_countrc   rd   s         r   ri   zStatisticsWrapper.delete_many   s     :#:
#'>>#=#=4T^#=#__T]*&&*&=DDRR]aRb&&*&=DDSS^dSe `s   +B2B0BB2c                  K   |xs t         }| j                  j                  ||       d {   }t        |D cg c]
  }|d   	| c}      }t        |D cg c]
  }|d   	| c}      }| j                  j                  |      j                  j                  |       | j                  j                  |      j                  j                  |       |S 7 c c}w c c}w w)Nr]   r   rR   r   )	r	   rL   ttl_manyr_   rQ   rG   r>   r)   r+   r`   s          r   rl   zStatisticsWrapper.ttl_many   s     :#:
JN..JaJagk  yCJa  KD  EDJvF1I4IFJK7HfQi6GfHI&&*&=AAOOZ^O_&&*&=AAPP[aPb EDJHs9   +C*CC*
C C 
C*
C%%C%)A6C* 
C*)r   r   r   r   r   rO   propertyrC   rQ   r
   rI   rH   r   r=   tuplefloatr>   r   r   r?   boolr@   r   listr^   rg   r    ri   rl   r"   r   r   rK   rK   b   s   
B- BD B  -     >B S t tCQTH~X\G\   >B 
S 
t 
uTRUWZRZ^^bMbdilpdpMpGq 
 
 X\z~ NS Nc): N3QU: Ncpswcw N  DH N N AE 	 	C$J 	$ 	 	 NR 8C= t W[\`adfiai\jmq\qWr    "&$(asma c*+a
 $Ja T!a 
a a QU hsm C$J Z]   NR 8C= t W[\abfgjlogobpswbwy~  BF  zF  cF  ]G  XH  r   rK   N)collections.abcr   r   dataclassesr   r   typingr   r   key_value.shared.constantsr	   typing_extensionsr
   !key_value.aio.protocols.key_valuer   key_value.aio.wrappers.baser   r   r$   r-   r2   r4   r6   r8   r:   rC   rK   r"   r   r   <module>ry      s   - ( % > & ; 3       N  " >) > > >N > > >, > > >, > > >) > > 3. 3 3& , , ,t tr   