o
    ˆì_cí  ã                   @   s8   d Z ddlmZ ddlmZmZmZ G dd„ deƒZdS )zMultimap module.é    )ÚOrderedDict)ÚAnyÚListÚOptionalc                   @   s   e Zd ZdZddd„Zdee deddfdd	„Zdee de	e fd
d„Z
dee defdd„Zdee dedefdd„Zdefdd„Zdee dedefdd„Zdee ddfdd„Zdee defdd„Zdee fdd„Zde	e fdd„Zddd„ZdS )ÚMultimapzMultimap class.ÚreturnNc                 C   s   t ƒ | _dS )zMake new multimap.N)r   Ú_map©Úself© r   ú=/usr/local/lib/python3.10/dist-packages/pyppeteer/multimap.pyÚ__init__   s   zMultimap.__init__ÚkeyÚvaluec                 C   s:   | j  |¡}|stƒ }|| j |< ||vr| |¡ dS dS )z
Set value.N)r   ÚgetÚlistÚappend©r
   r   r   Ú_setr   r   r   Úset   s   
ÿzMultimap.setc                 C   s   | j  |tƒ ¡S )zGet values.©r   r   r   ©r
   r   r   r   r   r      s   zMultimap.getc                 C   s
   || j v S )zCheck key is in this map.)r   r   r   r   r   Úhas   ó   
zMultimap.hasc                 C   s   | j  |tƒ ¡}||v S )zCheck value is in this map.r   r   r   r   r   ÚhasValue#   s   zMultimap.hasValuec                 C   s
   t | jƒS )zLength of this map.)Úlenr   r	   r   r   r   Úsize(   r   zMultimap.sizec                 C   s<   |   |¡}||v }|r| |¡ t|ƒdkr| j |¡ |S )zDelete value from key.r   )r   Úremover   r   Úpop)r
   r   r   ÚvaluesÚresultr   r   r   Údelete,   s   

zMultimap.deletec                 C   s   | j  |d¡ dS )zDelete all value of the key.N)r   r   r   r   r   r   Ú	deleteAll6   ó   zMultimap.deleteAllc                 C   s   | j  |¡}|s
dS |d S )zGet first value of the key.Nr   )r   r   )r
   r   r   r   r   r   Ú
firstValue:   s   zMultimap.firstValuec                 C   s   t t| j ¡ ƒƒS )zGet first key.)ÚnextÚiterr   Úkeysr	   r   r   r   ÚfirstKeyA   r#   zMultimap.firstKeyc                 C   s$   t ƒ }| j ¡ D ]}| |¡ q|S )zGet all values as list.)r   r   r   Úextend)r
   r    r   r   r   r   ÚvaluesArrayE   s   zMultimap.valuesArrayc                 C   s   | j  ¡  dS )zClear all entries of this map.N)r   Úclearr	   r   r   r   r+   L   s   zMultimap.clear)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústrr   r   r   r   Úboolr   r   Úintr   r!   r"   r$   r(   r*   r+   r   r   r   r   r   
   s    
	
r   N)	r/   Úcollectionsr   Útypingr   r   r   Úobjectr   r   r   r   r   Ú<module>   s   