
    XaJj                         d Z ddlZddlZd Zd Z ej
                  d      Z G d d ej                  e            Z[y)z9
Define a category on NSObject with some useful methods.
    Nc                 H    t        | t              r| S | j                  d      S )Nascii)
isinstancestrdecode)vs    ^/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/Foundation/_nsobject.py_strr
   
   s     !S88G    c                 0     | |      j                  |      )N)with_traceback)exc_type	exc_value	exc_traces      r	   _raiser      s    
9

,
,Y
77r   NSObjectc                      e Zd Z ej                  d      d        Z ej                  d      d        Z eed      r0 ej                  d      d        Z	 ej                  d      d	        Z
 ej                  d
      d        Z ej                  d      d        Z eed      r ej                  d      d        Z ej                  d      d        Z ej                  d      d        Z ej                  d      d        Z ej                  d      d        Z eed      r1 ej                  d      d        Z ej                  d      d        Zyy)r      _pyobjc_performOnThread:c                     	 |\  }}t        | t        |            } ||       y #  dd l}|j                  t        j
                         Y y xY w)Nr   )file)getattrr
   	traceback	print_excsysstderr)selfcallinfoselargmr   s         r	   _pyobjc_performOnThread_z!NSObject._pyobjc_performOnThread_   sF    	1HCd3i(AcF	1SZZ0s	   "% &A"   _pyobjc_performOnThreadWithResult:c                     	 |\  }}}t        | t        |            } ||      }|j                  d|f       y #  j                  dt        j                         f       Y y xY w)NTF)r   r
   appendr   exc_info)r   r   r   r   resultr    rs          r	   "_pyobjc_performOnThreadWithResult_z+NSObject._pyobjc_performOnThreadWithResult_#   sZ    	3'Cfd3i(A#AMM4)$	3MM5#,,.12s	   69 'A"2performSelector_onThread_withObject_waitUntilDone_s9   pyobjc_performSelector:onThread:withObject:waitUntilDone:c                 0    | j                  d|||f|       y)z
            A version of performSelector:onThread:withObject:waitUntilDone: that
            will log exceptions in the called method (instead of aborting the
            NSRunLoop on the other thread).
            r   N)r)   )r   	aSelectorthreadr   waits        r	   9pyobjc_performSelector_onThread_withObject_waitUntilDone_zBNSObject.pyobjc_performSelector_onThread_withObject_waitUntilDone_/   s      CC+Vi5Etr   s?   pyobjc_performSelector:onThread:withObject:waitUntilDone:modes:c                 2    | j                  d|||f||       y)z
            A version of performSelector:onThread:withObject:waitUntilDone:modes:
            that will log exceptions in the called method (instead of aborting the
            NSRunLoop on the other thread).
            r   N)8performSelector_onThread_withObject_waitUntilDone_modes_)r   r+   r,   r   r-   modess         r	   ?pyobjc_performSelector_onThread_withObject_waitUntilDone_modes_zHNSObject.pyobjc_performSelector_onThread_withObject_waitUntilDone_modes_>   s"     II+Vi5EtUr   s-   pyobjc_performSelector:withObject:afterDelay:c                 .    | j                  d||f|       y)z
        A version of performSelector:withObject:afterDelay:
        that will log exceptions in the called method (instead of aborting the
        NSRunLoop).
        r   N)&performSelector_withObject_afterDelay_)r   r+   r   delays       r	   -pyobjc_performSelector_withObject_afterDelay_z6NSObject.pyobjc_performSelector_withObject_afterDelay_M   s     	33')S)95	
r   s5   pyobjc_performSelector:withObject:afterDelay:inModes:c                 0    | j                  d||f||       y)z
        A version of performSelector:withObject:afterDelay:inModes:
        that will log exceptions in the called method (instead of aborting the
        NSRunLoop).
        r   N).performSelector_withObject_afterDelay_inModes_)r   r+   r   r5   r1   s        r	   5pyobjc_performSelector_withObject_afterDelay_inModes_z>NSObject.pyobjc_performSelector_withObject_afterDelay_inModes_X   s      	;;')S)95%	
r   'performSelectorInBackground_withObject_s.   pyobjc_performSelectorInBackground:withObject:c                 ,    | j                  d||f       y)z
            A version of performSelectorInBackground:withObject:
            that will log exceptions in the called method (instead of aborting the
            NSRunLoop).
            r   N)r:   )r   r+   r   s      r	   .pyobjc_performSelectorInBackground_withObject_z7NSObject.pyobjc_performSelectorInBackground_withObject_g   s     88+i-=r   s<   pyobjc_performSelectorOnMainThread:withObject:waitUntilDone:c                 .    | j                  d||f|       y)z
        A version of performSelectorOnMainThread:withObject:waitUntilDone:
        that will log exceptions in the called method (instead of aborting the
        NSRunLoop in the main thread).
        r   N)5performSelectorOnMainThread_withObject_waitUntilDone_)r   r+   r   r-   s       r	   <pyobjc_performSelectorOnMainThread_withObject_waitUntilDone_zENSObject.pyobjc_performSelectorOnMainThread_withObject_waitUntilDone_r   s     	BB')S)94	
r   sB   pyobjc_performSelectorOnMainThread:withObject:waitUntilDone:modes:c                 0    | j                  d||f||       y)z
        A version of performSelectorOnMainThread:withObject:waitUntilDone:modes:
        that will log exceptions in the called method (instead of aborting the
        NSRunLoop in the main thread).
        r   N);performSelectorOnMainThread_withObject_waitUntilDone_modes_)r   r+   r   r-   r1   s        r	   Bpyobjc_performSelectorOnMainThread_withObject_waitUntilDone_modes_zKNSObject.pyobjc_performSelectorOnMainThread_withObject_waitUntilDone_modes_   s      	HH')S)94	
r   s4   pyobjc_performSelectorOnMainThread:withObject:modes:c                 t    g }| j                  d|||fd|       |d   \  }}|r|S |\  }}}t        |||       y)a#  
        Similar to performSelectorOnMainThread:withObject:waitUntilDone:modes:,
        but:

        - always waits until done
        - returns the return value of the called method
        - if the called method raises an exception, this will raise the same
           exception
        r"   Tr   N)rA   r   )	r   r+   r   r1   r&   isOKr   r   r   s	            r	   4pyobjc_performSelectorOnMainThread_withObject_modes_z=NSObject.pyobjc_performSelectorOnMainThread_withObject_modes_   sW     HH1IsF3KTSX	
 ayfM-3*Hi8Y	2r   s.   pyobjc_performSelectorOnMainThread:withObject:c                 r    g }| j                  d|||fd       |d   \  }}|r|S |\  }}}t        |||       y Nr"   Tr   )r>   r   )r   r+   r   r&   rD   r   r   r   s           r	   .pyobjc_performSelectorOnMainThread_withObject_z7NSObject.pyobjc_performSelectorOnMainThread_withObject_   sR    BB1IsF3KT	
 ayfM-3*Hi8Y	2r   s1   pyobjc_performSelector:onThread:withObject:modes:c                 v    g }| j                  d||||fd|       |d   \  }}|r|S |\  }}}	t        |||	       y rG   )r0   r   )
r   r+   r,   r   r1   r&   rD   r   r   r   s
             r	   1pyobjc_performSelector_onThread_withObject_modes_z:NSObject.pyobjc_performSelector_onThread_withObject_modes_   s\     FII5C( "!9LD&17.)YxI6r   s+   pyobjc_performSelector:onThread:withObject:c                 t    g }| j                  d||||fd       |d   \  }}|r|S |\  }}}t        |||       y rG   )r)   r   )	r   r+   r,   r   r&   rD   r   r   r   s	            r	   +pyobjc_performSelector_onThread_withObject_z4NSObject.pyobjc_performSelector_onThread_withObject_   sW    FCC5C(	 "!9LD&17.)YxI6r   N)__name__
__module____qualname__objcnamedSelectorr!   r(   hasattrr   r.   r2   r6   r9   r<   r?   rB   rE   rH   rJ   rL    r   r	   r   r      s   T341 51 T=>3 ?3 xMN			H


	


	 
		N


	


	 THI
 J
 TPQ

 R

 xBC			M	N	 
O	 TWX

 Y

 TM



 TOP3 Q30 TIJ3 K3 xMN 
		P	Q	7 
R	7& 
		J	K	7 
L	73 Or   )__doc__r   rP   r
   r   lookUpClassr   CategoryrS   r   r	   <module>rW      sO     8 4J'G7}t}}X& G7T r   