
    ϑi                    n    S SK Jr  S SKJrJrJr  \(       a  S SKJrJr  \" S5      r	 " S S\\	   5      r
g)    )annotations)TYPE_CHECKINGGenericTypeVar)IterableIteratorTc                      \ rS rSr% SrS\S'   SSS j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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rS"S jrSrg)#
OrderedSet   z.
A set that preserves the order of insertion.
zdict[T, None]_dataNc                N    Ub  [         R                  U5      U l        g0 U l        g)z
Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> s
    OrderedSet(1, 2, 3)
    >>> s = OrderedSet()
    >>> s
    OrderedSet()
N)dictfromkeysr   )selfitemss     P/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/jit/utils.py__init__OrderedSet.__init__    s     .3->T]]5)
B
    c                ,    [        U R                  5      $ )zn
Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> for item in s:
    ...     print(item)
    1
    2
    3
)iterr   r   s    r   __iter__OrderedSet.__iter__,        DJJr   c                B    [        [        U 5      [        U5      -   5      $ )z
Union two sets.

Args:
    other: Another set to be unioned.

Returns:
    The union of two sets.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 | s2
    OrderedSet(1, 2, 3, 4)
)r   listr   others     r   __or__OrderedSet.__or__8   s      $t*tE{233r   c                b    U R                   R                  [        R                  U5      5        U $ )z
Union two sets in place.

Args:
    other: Another set to be unioned.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 |= s2
    >>> s1
    OrderedSet(1, 2, 3, 4)
)r   updater   r   r   s     r   __ior__OrderedSet.__ior__J   s$     	

$--./r   c                R    [        U  Vs/ s H  o"U;   d  M
  UPM     sn5      $ s  snf )z
Intersect two sets.

Args:
    other: Another set to be intersected.

Returns:
    The intersection of two sets.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 & s2
    OrderedSet(2, 3)
r   r   r    items      r   __and__OrderedSet.__and__[   s%      DBDDEM4DBCCB   	$$c                P    U  Vs0 s H  o"U;   d  M
  US_M     snU l         U $ s  snf )z
Intersect two sets in place.

Args:
    other: Another set to be intersected.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 &= s2
    >>> s1
    OrderedSet(2, 3)
Nr   r)   s      r   __iand__OrderedSet.__iand__m   s/     .2CTTU]jdDjTC
 D   	##c                R    [        U  Vs/ s H  o"U;  d  M
  UPM     sn5      $ s  snf )z
Subtract two sets.

Args:
    other: Another set to be subtracted.

Returns:
    The subtraction of two sets.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 - s2
    OrderedSet(1)
r(   r)   s      r   __sub__OrderedSet.__sub__~   s&      DFDD4E4DFGGFr-   c                P    U  Vs0 s H  o"U;  d  M
  US_M     snU l         U $ s  snf )z
Subtract two sets in place.

Args:
    other: Another set to be subtracted.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 -= s2
    >>> s1
    OrderedSet(1)
Nr/   r)   s      r   __isub__OrderedSet.__isub__   s0     .2GTT5FjdDjTG
 Hr2   c                    [        U  Vs/ s H  o"U;  d  M
  UPM     sn5      [        U Vs/ s H  o"U ;  d  M
  UPM     sn5      -  $ s  snf s  snf )z
Symmetric difference of two sets.

Args:
    other: Another set to be xor'ed.

Returns:
    The symmetric difference of two sets.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 ^ s2
    OrderedSet(1, 4)
r(   r)   s      r   __xor__OrderedSet.__xor__   sQ      "8dd%&7Td8
Cd2BCDE 	E8Cs   	AA	A
A
c                    0 U  Vs0 s H  o"U;  d  M
  US_M     snEU Vs0 s H  o"U ;  d  M
  US_M     snEU l         U $ s  snf s  snf )z
Symmetric difference of two sets in place.

Args:
    other: Another set to be xor'ed.

Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([2, 3, 4])
    >>> s1 ^= s2
    >>> s1
    OrderedSet(1, 4)
Nr/   r)   s      r   __ixor__OrderedSet.__ixor__   s_    
&*@dd%.?ztTzd@
&+@ed4/?ztTze@

  A@s   	A A 	AAc                :    U R                   R                  U5        g)z
Add an item to the set.

Args:
    item: The item to be added.

Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> s.add(4)
    >>> s
    OrderedSet(1, 2, 3, 4)
N)r   
setdefaultr   r*   s     r   addOrderedSet.add   s     	

d#r   c                    U R                   U	 g)z
Remove an item from the set.

Args:
    item: The item to be removed.

Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> s.remove(2)
    >>> s
    OrderedSet(1, 3)
Nr/   rA   s     r   removeOrderedSet.remove   s     JJtr   c                    XR                   ;   $ )z^
Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> 1 in s
    True
    >>> 4 in s
    False
r/   rA   s     r   __contains__OrderedSet.__contains__   s     zz!!r   c                ,    [        U R                  5      $ )zB
Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> len(s)
    3
)lenr   r   s    r   __len__OrderedSet.__len__   s     4::r   c                ,    [        U R                  5      $ )zy
Examples:
    >>> s = OrderedSet([1, 2, 3])
    >>> bool(s)
    True
    >>> s = OrderedSet()
    >>> bool(s)
    False
)boolr   r   s    r   __bool__OrderedSet.__bool__   r   r   c                f    [        U[        5      (       d  [        $ [        U 5      [        U5      :H  $ )z
Examples:
    >>> s1 = OrderedSet([1, 2, 3])
    >>> s2 = OrderedSet([1, 2, 3])
    >>> s1 == s2
    True
    >>> s3 = OrderedSet([3, 2, 1])
    >>> s1 == s3
    False
)
isinstancer   NotImplementedr   r   s     r   __eq__OrderedSet.__eq__  s*     %,,!!DzT%[((r   c                `    SR                  [        [        U R                  5      5      nSU S3$ )Nz, zOrderedSet())joinmapreprr   )r   	data_reprs     r   __repr__OrderedSet.__repr__  s*    IIc$

34	YKq))r   r/   )N)r   zIterable[T] | None)returnzIterator[T])r    OrderedSet[T]r_   r`   )r    r`   )r*   r	   )r*   r	   r_   rO   )r_   int)r_   rO   )r    objectr_   rO   )r_   str)__name__
__module____qualname____firstlineno____doc____annotations__r   r   r!   r%   r+   r0   r4   r7   r:   r=   rB   rE   rH   rL   rP   rU   r]   __static_attributes__ r   r   r   r      sh     
G
 4$"D$"H$"E(($	"
 )*r   r   N)
__future__r   typingr   r   r   collections.abcr   r   r	   r   rk   r   r   <module>ro      s1    # 2 22CL* *r   