
    c                      .    d dl mZ  G d de          ZdS )    )
MutableSetc                   T    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
ddZd Zd ZdS )
OrderedSetNc                 H    g x| _         }|d ||gz  }i | _        || |z  } d S d S N)endmap)selfiterabler   s      >lib/python3.11/site-packages/rope/base/utils/datastructures.py__init__zOrderedSet.__init__   sF    3c3 	HDDD	 	    c                 *    t          | j                  S r   )lenr	   r
   s    r   __len__zOrderedSet.__len__   s    48}}r   c                     || j         v S r   )r	   )r
   keys     r   __contains__zOrderedSet.__contains__   s    dhr   c                 h    || j         vr(| j        }|d         }|||gx|d<   x|d<   | j         |<   d S d S )N      )r	   r   )r
   r   r   currs       r   addzOrderedSet.add   sV    dh 	@(Cq6D03T3/??DG?c!ftx}}}	@ 	@r   c                 :    t          fd| D                       S )Nc                     g | ]}|v |	S  r   ).0itemset_bs     r   
<listcomp>z+OrderedSet.intersection.<locals>.<listcomp>   s"    BBBDDEMB4BBBr   )r   )r
   r    s    `r   intersectionzOrderedSet.intersection   s&    BBBBDBBBCCCr   c                 l    || j         v r*| j                             |          \  }}}||d<   ||d<   d S d S )Nr   r   )r	   pop)r
   r   prevnexts       r   discardzOrderedSet.discard   sI    $(? 	"hll3//OCtDGDGGG	 	r   c              #   `   K   | j         }|d         }||ur|d         V  |d         }||ud S d S )Nr   r   r   r
   r   r   s      r   __iter__zOrderedSet.__iter__%   Z      h1v#o 	q'MMM7D #o 	 	 	 	 	r   c              #   `   K   | j         }|d         }||ur|d         V  |d         }||ud S d S )Nr   r   r)   r*   s      r   __reversed__zOrderedSet.__reversed__,   r,   r   Tc                     | st          d          |r| j        d         d         n| j        d         d         }|                     |           |S )Nzset is emptyr   r   r   )KeyErrorr   r'   )r
   lastr   s      r   r$   zOrderedSet.pop3   sQ     	+>*** $8dhqk!nn$(1+a.S
r   c                 b    | s| j         j         dS | j         j         dt          |           dS )Nz()())	__class____name__listr   s    r   __repr__zOrderedSet.__repr__:   s@     	2n-1111.);;DJJ;;;;r   c                     t          |t                    r@t          |           t          |          k    ot          |           t          |          k    S t	          |           t	          |          k    S r   )
isinstancer   r   r7   set)r
   others     r   __eq__zOrderedSet.__eq__?   sY    eZ(( 	It99E

*HtDzzT%[[/HH4yyCJJ&&r   r   )T)r6   
__module____qualname__r   r   r   r   r"   r'   r+   r.   r$   r8   r=   r   r   r   r   r      s               @ @ @D D D         < < <
' ' ' ' 'r   r   N)collections.abcr   r   r   r   r   <module>rA      sM    ' & & & & &;' ;' ;' ;' ;' ;' ;' ;' ;' ;'r   