o
    ÑtBh´  ã                   @   s0   d dl Z ddlmZ dd„ ZG dd„ deƒZdS )é    Né   )ÚCachec                 C   s
   t  | ¡S ©N)ÚrandomÚchoice)Úseq© r   úd/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/cachetools/rr.pyÚ_choice   s   
r
   c                   @   s4   e Zd ZdZejdfdd„Zedd„ ƒZdd„ ZdS )	ÚRRCachez-Random Replacement (RR) cache implementation.Nc                 C   s,   t  | ||¡ |tju rt| _d S || _d S r   )r   Ú__init__r   r   r
   Ú_RRCache__choice)ÚselfÚmaxsizer   Ú	getsizeofr   r   r	   r      s   


zRRCache.__init__c                 C   s   | j S )z(The `choice` function used by the cache.)r   )r   r   r   r	   r      s   zRRCache.choicec                 C   sD   z	|   t| ƒ¡}W n ty   tdt| ƒj ƒd‚w ||  |¡fS )z/Remove and return a random `(key, value)` pair.z%s is emptyN)r   ÚlistÚ
IndexErrorÚKeyErrorÚtypeÚ__name__Úpop)r   Úkeyr   r   r	   Úpopitem   s   ÿzRRCache.popitem)	r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   Úpropertyr   r   r   r   r	   r      s    
r   )r   Úcacher   r
   r   r   r   r   r	   Ú<module>   s    