
    ¯wg                        d dl mZ d dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZ  ed      Z edd      ZdgZ G d	 dee
e         Zy
)    )annotations)
MutableSetSet)AnycastDictGenericIterableIteratorListOptionalTupleTypeTypeVarTT_coT)	covariant
OrderedSetc                  N    e Zd ZdZdZd#d$dZed%d       Zd&dZd'dZ	d(dZ
d)dZd)d	Zd*d
Zed+d       Zd,dZd-dZd.dZd/dZd/dZd.dZd/dZd0dZd0dZd1dZd2dZd.dZd3 fdZd1 fdZd4 fdZd4 fdZd3 fdZ d3 fdZ!d3 fdZ"d5dZ#d6d Z$d7d!Z%d8d"Z& xZ'S )9r   z8
    Insertion ordered set, similar to OrderedDict.
    _dictc                N    |t         j                  |d       | _        y i | _        y Ndictfromkeysr   )selfiterables     ]/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/utils/_ordered_set.py__init__zOrderedSet.__init__!   s     6>6JT]]8T2
PR
    c                (    t               }| |_        |S r   )r   r   )dict_inpss     r   
_from_dictzOrderedSet._from_dict$   s    %<r!   c                    || j                   v S r   r   r   elems     r   __contains__zOrderedSet.__contains__-   s    tzz!!r!   c                ,    t        | j                        S r   )iterr   r   s    r   __iter__zOrderedSet.__iter__0   s    DJJr!   c                ,    t        | j                        S r   )lenr   r,   s    r   __len__zOrderedSet.__len__3   s    4::r!   c                "    d | j                   |<   y r   r   r'   s     r   addzOrderedSet.add6   s    

4r!   c                <    | j                   j                  |d        y r   )r   popr'   s     r   discardzOrderedSet.discard9   s    

tT"r!   c                8    | j                   j                          y r   )r   clearr,   s    r   r7   zOrderedSet.clear<   s    

r!   c                V    t        |t              st        |t              r | |      S |S )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_setzOrderedSet._wrap_iter_in_setB   s&     %-*UH2Mu:Lr!   c                V    | st        d      | j                  j                         d   S )Nzpop from an empty setr   )KeyErrorr   popitemr,   s    r   r4   zOrderedSet.popP   s)    233zz!!#A&&r!   c                \    t         j                  | j                  j                               S r   )r   r%   r   copyr,   s    r   rB   zOrderedSet.copyU   s    $$TZZ__%677r!   c                D    | j                         } |j                  |  |S r   )rB   difference_update)r   othersress      r   
differencezOrderedSet.differenceX   s"    iikv&
r!   c                    |D ]  }| |z  } 	 y r    r   rE   r<   s      r   rD   zOrderedSet.difference_update]        	EEMD	r!   c                    |D ]  }| |z  } 	 y r   rI   rJ   s      r   updatezOrderedSet.updatea   rK   r!   c                H    | j                         }|D ]  }|| us||z  } |S r   rB   r   rE   rF   r<   s       r   intersectionzOrderedSet.intersectione   s4    iik 	ED u	 
r!   c                    |D ]  }| |z  } 	 y r   rI   rJ   s      r   intersection_updatezOrderedSet.intersection_updatel   rK   r!   c                *    | | j                  |      k  S r   r=   r   r<   s     r   issubsetzOrderedSet.issubsetp       t--e444r!   c                *    | | j                  |      k\  S r   rU   rV   s     r   
issupersetzOrderedSet.issupersets   rX   r!   c                    | |z  S r   rI   rV   s     r   symmetric_differencezOrderedSet.symmetric_differencev   s    e|r!   c                    | |z  } y r   rI   rV   s     r   symmetric_difference_updatez&OrderedSet.symmetric_difference_updatey   s    r!   c                H    | j                         }|D ]  }|| u r||z  } |S r   rO   rP   s       r   unionzOrderedSet.union|   s6    iik 	E}5LC	 
r!   c                    t        |t              r1t        |       dz  t        |      kD  r| j                         }||z  }|S t	        t        t
           t        |   |            S )N   )r9   r   r/   rB   r   r   super__sub__)r   r<   out	__class__s      r   rd   zOrderedSet.__sub__   sS    eZ(c$i!ms5z-I))+C5LCJJqM57?5#9::r!   c                    t        |t              r'| j                  j                  |j                         | S t        |   |      S r   )r9   r   r   rM   rc   __ior__r   r<   rf   s     r   rh   zOrderedSet.__ior__   s7    eZ(JJekk*Kwu%%r!   c                t    t        |t              r| j                  |j                  k(  S t        |   |      S r   )r9   r   r   rc   __eq__ri   s     r   rk   zOrderedSet.__eq__   /    eZ(::,,w~e$$r!   c                t    t        |t              r| j                  |j                  k7  S t        |   |      S r   )r9   r   r   rc   __ne__ri   s     r   rn   zOrderedSet.__ne__   rl   r!   c                L    t        t        t           t        |   |            S r   )r   r   r   rc   __or__ri   s     r   rp   zOrderedSet.__or__   s    JqM57>%#899r!   c                    t        |t              rt        |       t        |      k  r|| z  S t        t        t           t
        |   |            S r   )r9   r   r/   r   r   rc   __and__ri   s     r   rr   zOrderedSet.__and__   s@    eZ(SYU-C4<JqM57?5#9::r!   c                L    t        t        t           t        |   |            S r   )r   r   r   rc   __xor__ri   s     r   rt   zOrderedSet.__xor__   s    JqM57?5#9::r!   c                L    | j                   j                   dt        |        dS )N())rf   __name__listr,   s    r   __repr__zOrderedSet.__repr__   s$    ..))*!DJ<q99r!   c                H    t        | j                  j                               S r   )ry   r   keysr,   s    r   __getstate__zOrderedSet.__getstate__   s    DJJOO%&&r!   c                :    t         j                  |d       | _        y r   r   )r   states     r   __setstate__zOrderedSet.__setstate__   s    ]]5$/
r!   c                &    t         t        |       ffS r   )r   ry   r,   s    r   
__reduce__z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   )r<   r   r   r   )r   r   )r   r   )rE   Iterable[T]r   r   )rE   r   r   r   )r<   r   r   r   )r<   r   r   r   )r<   r   r   r   )r<   zAbstractSet[T_co]r   r   )r<   zAbstractSet[T]r   r   )r   str)r   List[T])r   r   r   r   )r   z*Tuple[Type[OrderedSet[T]], Tuple[List[T]]])(rx   
__module____qualname____doc__	__slots__r    staticmethodr%   r)   r-   r0   r2   r5   r7   classmethodr=   r4   rB   rG   rD   rM   rQ   rS   rW   rZ   r\   r^   r`   rd   rh   rk   rn   rp   rr   rt   rz   r}   r   r   __classcell__)rf   s   @r   r   r      s     IS  "  #  '
8
55;&%
%
:;;:'0+r!   N)
__future__r   collections.abcr   r   r:   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   __all__r   rI   r!   r   <module>r      sQ    " :    CLv&.Z+WQZ Z+r!   