o
    $Âifj  ã                   @   s`   d dl mZ G dd„ deƒZedkr.edƒZedƒZeeeB ƒ eee@ ƒ eee ƒ dS dS )é    )Ú
MutableSetc                   @   s`   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	ddd„Z
dd„ Zdd„ ZdS )Ú
OrderedSetNc                 C   s6   g  | _ }|d ||g7 }i | _|d ur| |O } d S d S ©N)ÚendÚmap)ÚselfÚiterabler   © r	   úO/var/www/html/corbot_env/lib/python3.10/site-packages/marshmallow/orderedset.pyÚ__init__   s   
ÿzOrderedSet.__init__c                 C   s
   t | jƒS r   )Úlenr   ©r   r	   r	   r
   Ú__len__"   ó   
zOrderedSet.__len__c                 C   s
   || j v S r   )r   )r   Úkeyr	   r	   r
   Ú__contains__%   r   zOrderedSet.__contains__c                 C   s@   || j vr| j}|d }|||g |d<  |d< | j |< d S d S )Né   é   )r   r   )r   r   r   Úcurrr	   r	   r
   Úadd(   s
   
$ýzOrderedSet.addc                 C   s4   || j v r| j  |¡\}}}||d< ||d< d S d S )Nr   r   )r   Úpop)r   r   ÚprevÚnextr	   r	   r
   Údiscard.   s
   
ýzOrderedSet.discardc                 c   ó:    | j }|d }||ur|d V  |d }||usd S d S )Nr   r   ©r   ©r   r   r   r	   r	   r
   Ú__iter__4   ó   €
þzOrderedSet.__iter__c                 c   r   )Nr   r   r   r   r	   r	   r
   Ú__reversed__;   r   zOrderedSet.__reversed__Tc                 C   s:   | st dƒ‚|r| jd d n| jd d }|  |¡ |S )Nzset is emptyr   r   r   )ÚKeyErrorr   r   )r   Úlastr   r	   r	   r
   r   B   s
    
zOrderedSet.popc                 C   s*   | s	| j j› dS | j j› dt| ƒ›dS )Nz()ú(ú))Ú	__class__Ú__name__Úlistr   r	   r	   r
   Ú__repr__I   s   zOrderedSet.__repr__c                 C   s:   t |tƒrt| ƒt|ƒkot| ƒt|ƒkS t| ƒt|ƒkS r   )Ú
isinstancer   r   r&   Úset)r   Úotherr	   r	   r
   Ú__eq__N   s   
 zOrderedSet.__eq__r   )T)r%   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r'   r+   r	   r	   r	   r
   r      s    

r   Ú__main__Ú
abracadabaÚ
simsalabimN)Úcollections.abcr   r   r%   ÚsÚtÚprintr	   r	   r	   r
   Ú<module>   s   :û