o
    -wÖi4  ã                   @   s.   d dl Z d dlmZmZ G dd„ de jƒZdS )é    N)ÚAnyÚOptionalc                       sr   e Zd ZdZddee ddf‡ fdd„Zdededdf‡ fd	d
„Z	deddf‡ fdd„Z
deddfdd„Z‡  ZS )Ú
CappedDicté2   NÚmax_sizeÚreturnc                    s   |p| j | _tƒ  ¡  d S ©N)Údefault_max_sizer   ÚsuperÚ__init__)Úselfr   ©Ú	__class__© úV/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/lib/capped_dict.pyr      s   zCappedDict.__init__ÚkeyÚvalc                    s.   || vr| j d }|  |¡ tƒ  ||¡ d S )Né   )r   Ú_prune_dictr
   Ú__setitem__)r   r   r   r   r   r   r   r      s   

zCappedDict.__setitem__Úkwargsc                    s"   t ƒ jdi |¤Ž |  | j¡ d S )Nr   )r
   Úupdater   r   )r   r   r   r   r   r      s   zCappedDict.updatec                 C   s@   t | ƒ|krt | ƒ| }t|  ¡ ƒd |… D ]}| |= qd S d S r   )ÚlenÚlistÚkeys)r   r   ÚdiffÚkr   r   r   r      s   ýzCappedDict._prune_dictr   )Ú__name__Ú
__module__Ú__qualname__r	   r   Úintr   Ústrr   r   r   r   Ú__classcell__r   r   r   r   r      s    r   )ÚcollectionsÚtypingr   r   ÚOrderedDictr   r   r   r   r   Ú<module>   s    