a
    ]ŠÝgx  ã                   @   s\   d dl mZ G dd„ deƒZedkrXedƒZedƒZeeeB ƒ eee@ ƒ eee ƒ 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   s2   g  | _ }|d ||g7 }i | _|d ur.| |O } d S ©N)ÚendÚmap)ÚselfÚiterabler   © r	   úd/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/marshmallow/orderedset.pyÚ__init__   s
    
zOrderedSet.__init__c                 C   s
   t | jƒS r   )Úlenr   ©r   r	   r	   r
   Ú__len__"   s    zOrderedSet.__len__c                 C   s
   || j v S r   )r   )r   Úkeyr	   r	   r
   Ú__contains__%   s    zOrderedSet.__contains__c                 C   s<   || j vr8| j}|d }|||g |d<  |d< | j |< d S )Né   é   )r   r   )r   r   r   Úcurrr	   r	   r
   Úadd(   s    
zOrderedSet.addc                 C   s0   || j v r,| j  |¡\}}}||d< ||d< d S )Nr   r   )r   Úpop)r   r   ÚprevÚnextr	   r	   r
   Údiscard.   s    
zOrderedSet.discardc                 c   s.   | j }|d }||ur*|d V  |d }qd S )Nr   r   ©r   ©r   r   r   r	   r	   r
   Ú__iter__4   s
    
zOrderedSet.__iter__c                 c   s.   | j }|d }||ur*|d V  |d }qd S )Nr   r   r   r   r	   r	   r
   Ú__reversed__;   s
    
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__)N)T)r"   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r$   r(   r	   r	   r	   r
   r      s   

r   Ú__main__Z
abracadabaZ
simsalabimN)Úcollections.abcr   r   r"   ÚsÚtÚprintr	   r	   r	   r
   Ú<module>   s   :