
                         ~    S SK Jr   S SKJr   " S S\5      r " S S\R                  5      r
g! \ a    S SKr N-f = f)    )proxyNc                       \ rS rSrSrSrg)Link   )prevnextkey__weakref__ N)__name__
__module____qualname____firstlineno__	__slots____static_attributes__r       )lib/third_party/uritemplate/orderedset.pyr   r      s    4Ir   r   c                   b    \ rS rSrSrSS jrS rS rS rS r	S	 r
S
 rSS jrS rS rS rSrg)
OrderedSet   z/Set the remembers the order elements were addedNc                 `    [        5       =U l        nU=Ul        Ul        0 U l        Ub  X-  n g g N)r   _OrderedSet__rootr   r   _OrderedSet__map)selfiterableroots      r   __init__OrderedSet.__init__   s8    !V#d $$	DI
D  r   c                 ,    [        U R                  5      $ r   )lenr   r   s    r   __len__OrderedSet.__len__!   s    4::r   c                     XR                   ;   $ r   )r   )r   r	   s     r   __contains__OrderedSet.__contains__$   s    jj  r   c                     XR                   ;  a^  [        5       =U R                   U'   nU R                  nUR                  nXCUsUl        Ul        Ul        [        U5      =Ul        Ul        g g r   )r   r   r   r   r   r	   r   )r   r	   linkr   lasts        r   addOrderedSet.add'   s]    jj %)V+DJJsOd;;D99D-1*DIty$($)$K/DI	 !r   c                     XR                   ;   aR  U R                   R                  U5      nUR                  UR                  l        UR                  UR                  l        g g r   )r   popr   r   )r   r	   r)   s      r   discardOrderedSet.discard0   sC     **::>>#&D!YYDIIN!YYDIIN r   c              #      #    U R                   nUR                  nX!La!  UR                  v   UR                  nX!La  M   g g 7fr   )r   r   r	   r   r   currs      r   __iter__OrderedSet.__iter__8   7     {{yy((N99D 
   ;AAc              #      #    U R                   nUR                  nX!La!  UR                  v   UR                  nX!La  M   g g 7fr   )r   r   r	   r2   s      r   __reversed__OrderedSet.__reversed__@   r6   r7   c                     U (       d  [        S5      eU(       a  [        [        U 5      5      O[        [        U 5      5      nU R	                  U5        U$ )Nzset is empty)KeyErrorr   reversediterr/   )r   r*   r	   s      r   r.   OrderedSet.popH   s<    >**&*d8D>"T$Z0@S
r   c                     U (       d  U R                   R                  < S3$ U R                   R                  < S[        U 5      < S3$ )Nz()())	__class__r   listr"   s    r   __repr__OrderedSet.__repr__O   s1    !^^4466>>22DJ??r   c                 "    U R                  5       $ r   )rE   r"   s    r   __str__OrderedSet.__str__T   s    }}r   c                     [        U[        5      (       a5  [        U 5      [        U5      :H  =(       a    [        U 5      [        U5      :H  $ U R	                  U5      (       + $ r   )
isinstancer   r!   rD   
isdisjoint)r   others     r   __eq__OrderedSet.__eq__W   sF    eZ((t9E
*HtDzT%[/HH??5)))r   )__map__rootr   )T)r   r   r   r   __doc__r   r#   r&   r+   r/   r4   r9   r.   rE   rH   rN   r   r   r   r   r   r      s=    5!0'@
*r   r   )weakrefr   collections.abcabccollections_abcImportErrorcollectionsobjectr   
MutableSetr   r   r   r   <module>r[      sF    *-
56 5K*++ K*  *)*s   / 
<<