
    \j                     B    d dl mZ erd dl mZ  e       Z G d d      Zy)    )TYPE_CHECKING)Anyc                   6    e Zd ZdeddfdZddZd	d
dZddZy)LRUCachemax_sizereturnNc                 p    |dk  rt        d|       || _        i | _        dx| _        | _        d| _        y )Nr   zinvalid max_size: F)AssertionErrorr   _datahitsmissesfull)selfr   s     ?/root/env/lib/python3.12/site-packages/sentry_sdk/_lru_cache.py__init__zLRUCache.__init__   s?    q= #5hZ!@AA ')
"##	DK	    c                    | j                   j                  |t              }|t        ur|| j                   |<   nb| j                  rG| j                   j                  t	        t        | j                                      || j                   |<   n|| j                   |<   t        | j                         | j                  k\  | _        y N)r   pop	_SENTINELr   nextiterlenr   )r   keyvaluecurrents       r   setzLRUCache.set   s    **..i0)##DJJsOYYJJNN4TZZ 012#DJJsO#DJJsO

Ot}}4	r   c                     	 | j                   j                  |      }| xj                  dz  c_        || j                   |<   |S # t        $ r | xj                  dz  c_        |}Y |S w xY w)N   )r   r   r   KeyErrorr   )r   r   defaultrets       r   getzLRUCache.get   se    	"**..%C
 IINI!DJJsO
  	KK1KC
 
	s   A  A'&A'c                 H    t        | j                  j                               S r   )listr   items)r   s    r   get_allzLRUCache.get_all*   s    DJJ$$&''r   )r   r   r   r   r   Nr   )r   r   r!   r   r   r   )r   zlist[tuple[Any, Any]])__name__
__module____qualname__intr   r   r#   r'    r   r   r   r   
   s$      	5
(r   r   N)typingr   r   objectr   r   r,   r   r   <module>r/      s!      H	!( !(r   