
    XaJj!                        d Z dZddlZddlmZmZmZ ddlm	Z	 ddl
mZ  e	d      Z e	d	      Zej                  j                  j!                  e       ej                  j"                  j!                  e       d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd  Z(d! Z)d" Z*d# Z+d$ Z,d% Z-d& Z. G d' d(      Z/ edd)d* fd+d, fd-efd.efd/efd0efd1efd2efd3efd4e!fd5e"fd6e fd7e#fd8e$fd9e%fd:e&fd;efd<efd=efd>efd?efd@efdAefdBeff        ed	dCe.fdDe,fdEe-fdFe'fdGe(fdHe)fdIe*fdJdK fdLe+ff	       dOdMZ0dOdNZ1e0 ejd                  di       d<   e1 ejd                  d	i       d<   y)Pz.
Convenience interface for NSSet/NSMutableSet
     N)addConvenienceForClasscontainer_unwrapcontainer_wrap)lookUpClass   )NEW_MAPNSSetNSMutableSetc                 L    t        |d      st        |      }| D ]  }||v s y y)N__contains__FT)hasattrlistselfotheritems      a/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_convenience_nsset.pynsset_isdisjointr      s.    5.)U5=      c                     t               }|j                  |        |D ]R  }t        |t        j                  j
                        r|j                  |       9|j                  t        |             T |S N)r   	unionSet_
isinstancecollectionsabcSetset)r   r   resultvals       r   nsset_unionr!      s\    ^F
Tc;??../S!SX&	 
 Mr   c                     t        |      dk(  r| j                         S |D cg c]  }t        |d      r|n
t        |       }}t	               }| D ]   }|D ]  }||vs  |j                  |       " |S c c}w )Nr   r   )lenmutableCopyr   r   r   add)r   othersor   r   s        r   nsset_intersectionr(   )   s    
6{a!!DJKFq71n-a47:FFK^FA1}  JJt  M Ls    A6c                     | j                         }|D ]R  }t        |t        j                  j                        r|j                  |       9|j                  t        |             T |S r   )r$   r   r   r   r   	minusSet_r   )r   r&   r   values       r   nsset_differencer,   9   sU    Fe[__001U#SZ(	  Mr   c                     t               }t        |d      st        |      }t        |       D ]  }||vs|j	                  |        |D ]  }|| vs|j	                  |        |S )Nr   )r   r   r   iterr%   )r   r   r   r   s       r   nsset_symmetric_differencer/   E   se    ^F5.)UT
uJJt  tJJt  Mr   c                 :    t        |       | j                  |      S r   )hashcontainsObject_r   r+   s     r   nsset__contains__r4   R   s    K&&r   c                 x    t        |t        j                  j                        st	        d      t        | |      S )Nz$NSSet|value where value is not a setr   r   r   r   	TypeErrorr!   r   r   s     r   nsset__or__r9   W   s/    e[__001>??tU##r   c                 x    t        |t        j                  j                        st	        d      t        ||       S )Nz$value|NSSet where value is not a setr6   r8   s     r   nsset__ror__r;   ]   s/    e[__001>??ud##r   c                 x    t        |t        j                  j                        st	        d      t        | |      S )Nz$NSSet&value where value is not a setr   r   r   r   r7   r(   r8   s     r   nsset__and__r>   c   s/    e[__001>??dE**r   c                 x    t        |t        j                  j                        st	        d      t        ||       S )Nz$value&NSSet where value is not a setr=   r8   s     r   nsset__rand__r@   i   s/    e[__001>??eT**r   c                 x    t        |t        j                  j                        st	        d      t        | |      S Nz$NSSet-value where value is not a set)r   r   r   r   r7   r,   r8   s     r   nsset__sub__rC   o   s/    e[__001>??D%((r   c                     t        |t        j                  j                        st	        d      t        t        |      |       S rB   )r   r   r   r   r7   r,   r   r8   s     r   nsset__rsub__rE   u   s4    e[__001>??L/66r   c                 x    t        |t        j                  j                        st	        d      t        ||       S rB   )r   r   r   r   r7   r/   r8   s     r   nsset__xor__rG   {   s/    e[__001>??%eT22r   c                     t        |t        j                  j                        r| j	                  |      S | j	                  t        |            S r   )r   r   r   r   isSubsetOfSet_r   r8   s     r   nsset_issubsetrJ      s>    %,,-""5)) ""3u:..r   c                 v    t        |t        j                  j                        s
t	               t        | |      S r   )r   r   r   r   r7   rJ   r8   s     r   nsset__le__rL      s+    e[__001k$&&r   c                 n    t        |t        j                  j                        sy| j	                  |      S )NFr   r   r   r   isEqualToSet_r8   s     r   nsset__eq__rP      s*    e[__001e$$r   c                 p    t        |t        j                  j                        sy| j	                  |       S )NTrN   r8   s     r   nsset__ne__rR      s-    e[__001!!%(((r   c                 v    t        |t        j                  j                        s
t	               | |k  xr | |k7  S r   r   r   r   r   r7   r8   s     r   nsset__lt__rU      s1    e[__001kEM..r   c                 |    t        |t        j                  j                        st	        |      }|D ]  }|| vs y y)NFT)r   r   r   r   r   r   s      r   nsset_issupersetrW      s9    e[__001E
t  r   c                 v    t        |t        j                  j                        s
t	               t        | |      S r   )r   r   r   r   r7   rW   r8   s     r   nsset__ge__rY      s+    e[__001kD%((r   c                 v    t        |t        j                  j                        s
t	               | |k\  xr | |k7  S r   rT   r8   s     r   nsset__gt__r[      s1    e[__001kEM..r   c                     |D ]R  }t        |t        j                  j                        r| j	                  |       9| j	                  t        |             T y r   )r   r   r   r   r   r   r   r&   r   s      r   nsset_updater^      <    e[__001NN5!NN3u:&	 r   c                     |D ]R  }t        |t        j                  j                        r| j	                  |       9| j	                  t        |             T y r   )r   r   r   r   intersectSet_r   r]   s      r   nsset_intersection_updaterb      s@    e[__001u%s5z*	 r   c                     |D ]R  }t        |t        j                  j                        r| j	                  |       9| j	                  t        |             T y r   )r   r   r   r   r*   r   r]   s      r   nsset_difference_updaterd      r_   r   c                 H   t               }t               }t        |t        j                  j                        r|}nt        |      }| D ]  }||v s|j                  |        |D ]  }|| vs|j                  |        | j                  |       | j                  |       y r   )r   r   r   r   r   r%   r*   r   )r   r   toaddtoremovetotestr+   s         r   !nsset_symmetric_difference_updateri      s    EEuH%,,-UF?LL  IIe  	NN8NN5r   c                     t        |       dk(  r
t               | j                         }| j                  |       t	        |t              S )Nr   )r#   KeyError	anyObjectremoveObject_r   )r   vs     r   	nsset_popro      s<    
4yA~jAqAx((r   c                 p    t        |       t        |      }|| vrt        |      | j                  |       y r   )r1   r   rk   rm   r3   s     r   nsset_removerq      s3    K5!EDuour   c                 N    t        |       | j                  t        |             y r   )r1   rm   r   r3   s     r   nsset_discardrs      s    K~e,-r   c                 N    t        |       | j                  t        |             y r   )r1   
addObject_r   r3   s     r   	nsset_addrv      s    KOON5)*r   c                   $    e Zd Zd Zd Zd Zd Zy)nsset__iter__c                 N    t        |      | _        |j                         | _        y r   )r#   _sizeobjectEnumerator_enumr3   s     r   __init__znsset__iter__.__init__  s    Z
++-
r   c                     | j                   S r   )rz   r   s    r   __length_hint__znsset__iter__.__length_hint__  s    zzr   c                     | S r   r   r   s    r   __iter__znsset__iter__.__iter__
  s    r   c                 |    | xj                   dz  c_         t        | j                  j                         t              S )Nr   )rz   r   r|   
nextObjectStopIterationr   s    r   __next__znsset__iter__.__next__  s)    

a


 5 5 7GGr   N)__name__
__module____qualname__r}   r   r   r   r   r   r   rx   rx     s    .Hr   rx   __len__c                 "    | j                         S r   )countr   s    r   <lambda>r     s
    r   r   c                     t        |       S r   )rx   r   s    r   r   r     s	    -"5r   r   
isdisjointunionintersection
differencesymmetric_differenceissubset__eq____ne____le____lt__
issuperset__ge____gt____or____ror____and____rand____xor____rxor____sub____rsub__r%   removediscardupdateintersection_updatedifference_updatesymmetric_difference_updateclearc                 "    | j                         S r   )removeAllObjectsr   s    r   r   r   :  s    t446r   popc                    |st         j                         S t        |t         t        t        f      r#t         j                         j	                  |      S t         j                         j	                  t        |            S r   )r
   r   r   	frozensetsetByAddingObjectsFromSet_)clssequences     r   	nsset_newr   @  sV    yy{(UC34yy{55h?? yy{55c(mDDr   c                    |st         j                         }|S t        |t        t        t        f      r't         j                         }|j                  |       |S t         j                         }|j                  t        |             |S r   )r   r   r   r
   r   r   )r   r   r+   s      r   nsmutableset_newr   K  ss      " L 
Huc95	6  "! L   "H&Lr   r   )3__doc____all__collections.abcr   objc._conveniencer   r   r   
objc._objcr   _newr	   r
   r   r   r   register
MutableSetr   r!   r(   r,   r/   r4   r9   r;   r>   r@   rC   rE   rG   rJ   rL   rP   rR   rU   rW   rY   r[   r^   rb   rd   ri   ro   rq   rs   rv   rx   r   r   
setdefaultr   r   r   <module>r      sz     V V " G>*     U #    # #L 1 	
'
$$++)73/'%)/)/'+'().
+
H H  	-.	56	*+	'(	+	+,	'(	!;<	^$	;	;	;	;	'(	;	;	;	L!	L!	]#	L!	\"	L!	]#1< 			< 	M"	< 	 9:	56	&(IJ	67		
 E '0   7B  #-=   >2 &r *r   