ó
†Å•Zc           @   s)   d  d l  Z  d e  j f d „  ƒ  YZ d S(   iÿÿÿÿNt
   OrderedSetc           B   sq   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e d „ Z d	 „  Z d
 „  Z RS(   c         C   sF   g  |  _  } | d  | | g 7} i  |  _ | d  k	 rB |  | O}  n  d  S(   N(   t   endt   Nonet   map(   t   selft   iterableR   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __init__	   s
    	c         C   s   t  |  j ƒ S(   N(   t   lenR   (   R   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __len__   s    c         C   s   | |  j  k S(   N(   R   (   R   t   key(    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __contains__   s    c         C   sO   | |  j  k rK |  j } | d } | | | g | d <| d <|  j  | <n  d  S(   Ni   i   (   R   R   (   R   R	   R   t   curr(    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   add   s    	
c         C   s)   t  g  |  D] } | | k r
 | ^ q
 ƒ S(   N(   R    (   R   t   set_bt   item(    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   intersection   s    c         C   sE   | |  j  k rA |  j  j | ƒ \ } } } | | d <| | d <n  d  S(   Ni   i   (   R   t   pop(   R   R	   t   prevt   next(    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   discard    s    
c         c   s=   |  j  } | d } x# | | k	 r8 | d V| d } q Wd  S(   Ni   i    (   R   (   R   R   R   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __iter__&   s
    	
	c         c   s=   |  j  } | d } x# | | k	 r8 | d V| d } q Wd  S(   Ni   i    (   R   (   R   R   R   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __reversed__-   s
    	
	c         C   sN   |  s t  d ƒ ‚ n  | r, |  j d d n |  j d d } |  j | ƒ | S(   Ns   set is emptyi   i    i   (   t   KeyErrorR   R   (   R   t   lastR	   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyR   4   s
    (c         C   s1   |  s d |  j  j f Sd |  j  j t |  ƒ f S(   Ns   %s()s   %s(%r)(   t	   __class__t   __name__t   list(   R   (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __repr__;   s    c         C   sS   t  | t ƒ r= t |  ƒ t | ƒ k o< t |  ƒ t | ƒ k St |  ƒ t | ƒ k S(   N(   t
   isinstanceR    R   R   t   set(   R   t   other(    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   __eq__@   s    .N(   R   t
   __module__R   R   R   R
   R   R   R   R   R   t   TrueR   R   R   (    (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyR       s   								(   t   collectionst
   MutableSetR    (    (    (    s=   lib/python2.7/site-packages/rope/base/utils/datastructures.pyt   <module>   s   