
    ΅i                        S SK Jr  S SKJrJrJrJrJrJr	  S SK
JrJrJr  \" S\S9r\" S\SS9rS	/r " S
 S	\\   \\   5      rg)    )annotations)HashableIterableIterator
MutableSet
ReversibleSet)AnycastTypeVarT)boundT_coT)r   	covariant
OrderedSetc                    ^  \ rS rSrSrSrS%S&S jjr\S'S j5       rS(S jr	S)S jr
S*S jrS)S	 jrS+S
 jrS+S jrS,S jr\S-S j5       rS.S jrS/S jrS0S jrS1S jrS1S jrS0S jrS1S jrS2S jrS2S jrS3S jrS4S jrS0S jrS5U 4S jjrS3U 4S jjrS6U 4S jjr S6U 4S jjr!S5U 4S jjr"S5U 4S jjr#S5U 4S  jjr$S7S! jr%S8S" jr&S9S# jr'S:S$ jr(Sr)U =r*$ );r      z0
Insertion ordered set, similar to OrderedDict.
_dictc                P    Ub  [         R                  US 5      U l        g 0 U l        g Ndictfromkeysr   )selfiterables     R/home/james-whalen/.local/lib/python3.13/site-packages/torch/utils/_ordered_set.py__init__OrderedSet.__init__   s     6>6JT]]8T2
PR
    c                &    [        5       nXl        U$ r   )r   r   )dict_inpss     r   
_from_dictOrderedSet._from_dict   s    %<r    c                    XR                   ;   $ r   r   r   elems     r   __contains__OrderedSet.__contains__'   s    zz!!r    c                ,    [        U R                  5      $ r   )iterr   r   s    r   __iter__OrderedSet.__iter__*   s    DJJr    c                ,    [        U R                  5      $ r   )lenr   r-   s    r   __len__OrderedSet.__len__-   s    4::r    c                ,    [        U R                  5      $ r   )reversedr   r-   s    r   __reversed__OrderedSet.__reversed__0   s    

##r    c                "    S U R                   U'   g r   r   r'   s     r   addOrderedSet.add3   s    

4r    c                <    U R                   R                  US 5        g r   )r   popr'   s     r   discardOrderedSet.discard6   s    

tT"r    c                8    U R                   R                  5         g r   )r   clearr-   s    r   r@   OrderedSet.clear9   s    

r    c                j    [        U[        5      (       d  [        U[        5      (       a  U " U5      $ U$ )z
Wrap non-Set Iterables in OrderedSets

Some of the magic methods are more strict on input types than
the public apis, so we need to wrap inputs in sets.
)
isinstanceAbstractSetr   )clsothers     r   _wrap_iter_in_setOrderedSet._wrap_iter_in_set?   s,     %--*UH2M2Mu:Lr    c                `    U (       d  [        S5      eU R                  R                  5       S   $ )Nzpop from an empty setr   )KeyErrorr   popitemr-   s    r   r<   OrderedSet.popM   s)    233zz!!#A&&r    c                \    [         R                  U R                  R                  5       5      $ r   )r   r$   r   copyr-   s    r   rN   OrderedSet.copyS   s    $$TZZ__%677r    c                D    U R                  5       nUR                  " U6   U$ r   )rN   difference_update)r   othersress      r   
differenceOrderedSet.differenceV   s     iikv&
r    c                    U H  nX-  n M	     g r    r   rR   rF   s      r   rQ   OrderedSet.difference_update[       EMD r    c                    U H  nX-  n M	     g r   rW   rX   s      r   updateOrderedSet.update_   rZ   r    c                L    U R                  5       nU H  nX0Ld  M	  X#-  nM     U$ r   rN   r   rR   rS   rF   s       r   intersectionOrderedSet.intersectionc   s+    iikE   
r    c                    U H  nX-  n M	     g r   rW   rX   s      r   intersection_updateOrderedSet.intersection_updatej   rZ   r    c                (    X R                  U5      :*  $ r   rG   r   rF   s     r   issubsetOrderedSet.issubsetn       --e444r    c                (    X R                  U5      :  $ r   rg   rh   s     r   
issupersetOrderedSet.issupersetq   rk   r    c                
    X-  $ r   rW   rh   s     r   symmetric_differenceOrderedSet.symmetric_differencet   s
    |r    c                    X-  n g r   rW   rh   s     r   symmetric_difference_update&OrderedSet.symmetric_difference_updatew   s	    r    c                L    U R                  5       nU H  nX0L a  M	  X#-  nM     U$ r   r_   r`   s       r   unionOrderedSet.unionz   s-    iikE}LC  
r    c                   > [        U[        5      (       a1  [        U 5      S-  [        U5      :  a  U R                  5       nX!-  nU$ [	        [        [
           [        TU ]  U5      5      $ )N   )rC   r   r1   rN   r   r   super__sub__)r   rF   out	__class__s      r   r{   OrderedSet.__sub__   sT    eZ((c$i!ms5z-I))+CLCJJqM57?5#9::r    c                   > [        U[        5      (       a'  U R                  R                  UR                  5        U $ [        TU ]  U5      $ r   )rC   r   r   r\   rz   __ior__r   rF   r}   s     r   r   OrderedSet.__ior__   s:    eZ((JJekk*Kwu%%r    c                ~   > [        U[        5      (       a  U R                  UR                  :H  $ [        TU ]  U5      $ r   )rC   r   r   rz   __eq__r   s     r   r   OrderedSet.__eq__   2    eZ((::,,w~e$$r    c                ~   > [        U[        5      (       a  U R                  UR                  :g  $ [        TU ]  U5      $ r   )rC   r   r   rz   __ne__r   s     r   r   OrderedSet.__ne__   r   r    c                L   > [        [        [           [        TU ]  U5      5      $ r   )r   r   r   rz   __or__r   s     r   r   OrderedSet.__or__   s    JqM57>%#899r    c                   > [        U[        5      (       a  [        U 5      [        U5      :  a  X-  $ [        [        [           [
        TU ]  U5      5      $ r   )rC   r   r1   r   r   rz   __and__r   s     r   r   OrderedSet.__and__   sA    eZ((SYU-C<JqM57?5#9::r    c                L   > [        [        [           [        TU ]  U5      5      $ r   )r   r   r   rz   __xor__r   s     r   r   OrderedSet.__xor__   s    JqM57?5#9::r    c                L    U R                   R                   S[        U 5       S3$ )N())r}   __name__listr-   s    r   __repr__OrderedSet.__repr__   s$    ..))*!DJ<q99r    c                H    [        U R                  R                  5       5      $ r   )r   r   keysr-   s    r   __getstate__OrderedSet.__getstate__   s    DJJOO%&&r    c                :    [         R                  US 5      U l        g r   r   )r   states     r   __setstate__OrderedSet.__setstate__   s    ]]5$/
r    c                &    [         [        U 5      44$ r   )r   r   r-   s    r   
__reduce__OrderedSet.__reduce__   s    T$ZM**r    r   )r   zIterable[T] | NonereturnNone)r"   zdict[T, None]r   OrderedSet[T])r(   objectr   bool)r   zIterator[T])r   int)r(   r   r   r   )r   r   )rF   r
   r   r
   )r   r   )r   r   )rR   Iterable[T]r   r   )rR   r   r   r   )rF   r   r   r   )rF   r   r   r   )rF   r   r   r   )rF   zAbstractSet[T_co]r   r   )rF   r   r   r   )r   str)r   list[T])r   r   r   r   )r   z*tuple[type[OrderedSet[T]], tuple[list[T]]])+r   
__module____qualname____firstlineno____doc__	__slots__r   staticmethodr$   r)   r.   r2   r6   r9   r=   r@   classmethodrG   r<   rN   rT   rQ   r\   ra   rd   ri   rm   rp   rs   rv   r{   r   r   r   r   r   r   r   r   r   r   __static_attributes____classcell__)r}   s   @r   r   r      s     IS  " $ #  '8
55;&%
%
:;;:'0+ +r    N)
__future__r   collections.abcr   r   r   r   r   r	   rD   typingr
   r   r   r   r   __all__r   rW   r    r   <module>r      sU    "  & % Cx vX6._+A
1 _+r    