o
    ȳgx                     @   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	   R/var/www/html/chatdoc2/venv/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   :