
    sh                        S SK Jr  S SKJrJrJrJrJr  S SK	J
r
JrJrJr  \" S5      r\" SSS9rS/r " S	 S\\   \\   5      rg
)    )annotations)IterableIterator
MutableSet
ReversibleSet)AnycastOptionalTypeVarTT_coT)	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     l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/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__/   s    

##r   c                "    S U R                   U'   g r   r   r&   s     r   addOrderedSet.add2   s    

4r   c                <    U R                   R                  US 5        g r   )r   popr&   s     r   discardOrderedSet.discard5   s    

tT"r   c                8    U R                   R                  5         g r   )r   clearr,   s    r   r?   OrderedSet.clear8   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.popL   s)    233zz!!#A&&r   c                \    [         R                  U R                  R                  5       5      $ r   )r   r#   r   copyr,   s    r   rM   OrderedSet.copyQ   s    $$TZZ__%677r   c                D    U R                  5       nUR                  " U6   U$ r   )rM   difference_update)r   othersress      r   
differenceOrderedSet.differenceT   s     iikv&
r   c                    U H  nX-  n M	     g r    r   rQ   rE   s      r   rP   OrderedSet.difference_updateY       EMD r   c                    U H  nX-  n M	     g r   rV   rW   s      r   updateOrderedSet.update]   rY   r   c                L    U R                  5       nU H  nX0Ld  M	  X#-  nM     U$ r   rM   r   rQ   rR   rE   s       r   intersectionOrderedSet.intersectiona   s+    iikE   
r   c                    U H  nX-  n M	     g r   rV   rW   s      r   intersection_updateOrderedSet.intersection_updateh   rY   r   c                (    X R                  U5      :*  $ r   rF   r   rE   s     r   issubsetOrderedSet.issubsetl       --e444r   c                (    X R                  U5      :  $ r   rf   rg   s     r   
issupersetOrderedSet.issuperseto   rj   r   c                
    X-  $ r   rV   rg   s     r   symmetric_differenceOrderedSet.symmetric_differencer   s
    |r   c                    X-  n g r   rV   rg   s     r   symmetric_difference_update&OrderedSet.symmetric_difference_updateu   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.unionx   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   )rB   r   r0   rM   r
   r   super__sub__)r   rE   out	__class__s      r   rz   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   )rB   r   r   r[   ry   __ior__r   rE   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   )rB   r   r   ry   __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   )rB   r   r   ry   __ne__r   s     r   r   OrderedSet.__ne__   r   r   c                L   > [        [        [           [        TU ]  U5      5      $ r   )r
   r   r   ry   __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   )rB   r   r0   r
   r   ry   __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   ry   __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Optional[Iterable[T]])r!   zdict[T, None]returnOrderedSet[T])r'   objectr   bool)r   zIterator[T])r   int)r'   r   r   None)r   r   )rE   r	   r   r	   )r   r   )r   r   )rQ   Iterable[T]r   r   )rQ   r   r   r   )rE   r   r   r   )rE   r   r   r   )rE   r   r   r   )rE   zAbstractSet[T_co]r   r   )rE   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-   r1   r5   r8   r<   r?   classmethodrF   r;   rM   rS   rP   r[   r`   rc   rh   rl   ro   rr   ru   rz   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   rC   typingr	   r
   r   r   r   r   __all__r   rV   r   r   <module>r      sP    "  0 / CLv&.]+A
1 ]+r   