
    XaJj
                       d Z ddlZddlZddlZddlZddlZ	ddl
ZddlZddlZddlZddlZddlmZ ddlZdZej2                  j5                  d       Zd Zej:                  d        Zg fdZd	 Z d
 Z!d Z"d Z#d Z$da%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/ ej`                  d      Z1 e2d  ejf                  d      D              Z4i Z5ejl                  e5ejn                  <   ejp                  e5ejr                  <    e:       a; G d dejx                        Z<ejz                  Z=ej|                  Z>ej~                  Z?ej                  Z@d ZAd ZBy)zu
Helper code for implementing unittests.

This module is unsupported and is primairily used in the PyObjC
testsuite.
    N)get_config_varFPYOBJC_NO_AUTORELEASEc                 l    | y | j                  dd      j                  dd      j                  dd      S )Ns   _NSRects   CGRects   _NSPoints   CGPoints   _NSSizes   CGSize)replace)tps    a/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/PyObjCTools/TestSupport.py_typemapr	      s5    	z


:y)	j	)	Y	'    c            	   +   <  K   i }	 | D ]=  }t        t        j                  |      ||<   t        t        j                  || |          ? d  |D ]   }t        t        j                  |||          " y # |D ]   }t        t        j                  |||          " w xY wwN)getattrobjcoptionssetattr)kwdsorigks      r   pyobjc_optionsr   )   s     D	.AdllA.DGDLL!T!W-  	 ADLL!T!W- ADLL!T!W- s   BAA2 &B2'BBc                    | st        d      }t        j                  d|      }|| j                  d       y|j	                  d      }|dk(  rCt        t        t        t               j                  d                  }| j                  |       |S t        j                  j                  |      }|dd }|j                  d	      r|dd
 }t        t        t        |j                  d                  }| j                  |       |S | d   S )zd
    Return the SDK version used to compile Python itself,
    or None if no framework was used
    CFLAGSz-isysroot\s+([^ ]*)(\s|$)N   /.   ur   )_get_config_var_researchappendgrouptuplemapint
os_releasesplit_ospathbasenameendswith)_cachecflagsmr)   resultbnversions          r   sdkForPythonr2   8   s    
  *JJ3V<9MM$wwqz3;3sJL$6$6s$;<=FMM&!MXXt$Qr(C crlGs3c 234f!9r
   c                 4    t        j                  d|       d   S )zJ
    Decode four-character-code integer definition

    (e.g. 'abcd')
    z>ir   )_structunpack)vs    r   fourccr7   V   s     >>$"1%%r
   c                 2    | dz  } | dz  r|  dz   dz  } |  S | S )zx
    Cast value to 32bit integer

    Usage:
        cast_int(1 << 31) == -1

    (where as: 1 << 31 == 2147483648)
        l        r    values    r   cast_intr=   _   s2     JEz
Z'vr
   c                 2    | dz  } | dz  r|  dz   dz  } |  S | S )zV
    Cast value to 64bit integer

    Usage:
        cast_longlong(1 << 63) == -1
        l            r   r:   r;   s    r   cast_longlongr@   p   s5     &&E!!
//vr
   c                     | dz  } | S )zZ
    Cast value to 32bit integer

    Usage:
        cast_int(1 << 31) == 2147483648

    r9   r:   r;   s    r   	cast_uintrB      s     JELr
   c                     | dz  } | S )z%
    Cast value to 64bit integer
    r?   r:   r;   s    r   cast_ulonglongrD      s     &&ELr
   c                      t         t         S t        j                  ddg      j                         j	                         a t         S )z<
    Returns the release of macOS (for example 10.5.1).
    sw_versz-productVersion)_os_release_subprocesscheck_outputdecodestripr:   r
   r   r&   r&      sE    
  	  )->!?@GGIOOQ  r
   c                       fd}|S )z
    Usage::
        class Tests (unittest.TestCase):

            @arch_only("arm64")
            def testArm64(self):
                pass

    The test runs only when the specified architecture matches
    c                 d     t        j                  t        j                  k(   d      |       S )Nz only)	_unittest
skipUnlessr   arch)functionrP   s    r   	decoratorzarch_only.<locals>.decorator   s,    Fy##DII$5$u~FxPPr
   r:   )rP   rR   s   ` r   	arch_onlyrS      s    Q r
   c                     t        t        t        | j                  d                  }t	        j
                  t        j                  dd |k\  d|  d      S )z
    Usage::

        class Tests (unittest.TestCase):

            @min_python_release('3.2')
            def test_python_3_2(self):
                pass
    r   N   zRequires Python 	 or later)r#   r$   r%   r'   rN   rO   _sysversion_infor1   partss     r   min_python_releaser[      sR     #c7==-./E"1&*:7)9(M r
   c                     | j                  d      }t        |      dk(  r|j                  d       t        |      dk7  rt        d|       t	        d |D              S )Nr   rU   0   zInvalid version: c              3   2   K   | ]  }t        |        y wr   )r%   ).0xs     r   	<genexpr>z_sort_key.<locals>.<genexpr>   s     'AQs   )r'   lenr!   
ValueErrorr#   rY   s     r   	_sort_keyre      sV    MM#E
5zQS
5zQ,WK899''''r
   c                     t        |       S )zD
    Return an object that can be used to compare two releases.
    )re   releases    r   os_level_keyri      s     Wr
   c                     t         j                  dz  t         j                  dz  df}t        j                  |t	        |       k\  d|  d      S )z
    Usage::

        class Tests (unittest.TestCase):
            @min_sdk_level('10.6')
            def testSnowLeopardSDK(self):
                pass
    d   r   Requires build with SDK rV   r   PyObjC_BUILD_RELEASErN   rO   ri   rh   r6   s     r   min_sdk_levelrp      R     
	"	"c	)4+D+Ds+JANA	\'""&>wiy$Q r
   c                     t         j                  dz  t         j                  dz  df}t        j                  |t	        |       k  d|  d      S )z
    Usage::

        class Tests (unittest.TestCase):
            @max_sdk_level('10.5')
            def testUntilLeopardSDK(self):
                pass
    rk   r   rl   rV   rm   ro   s     r   max_sdk_levelrs      rq   r
   c                 p    t        j                  t        t                     t        |       k\  d|  d      S )z
    Usage::

        class Tests (unittest.TestCase):

            @min_os_level('10.6')
            def testSnowLeopardCode(self):
                pass
    Requires macOS rV   rN   rO   ri   r&   rg   s    r   min_os_levelrw      s7     Z\"l7&;;
'), r
   c                 n    t        j                  t        t                     t        |       k  d|        S )z
    Usage::

        class Tests (unittest.TestCase):

            @max_os_level('10.5')
            def testUntilLeopard(self):
                pass
    zRequires macOS up to rv   rg   s    r   max_os_levelry     s5     Z\"l7&;;
y) r
   c                     t        j                  t        |       t        t                     cxk  xr t        |      k  nc d|  d|       S )z
    Usage::

        class Tests (unittest.TestCase):

            @os_level_between('10.5', '10.8')
            def testUntilLeopard(self):
                pass
    ru   z up to rv   )min_releasemax_releases     r   os_level_betweenr}     sM     [!
%	%$	% +gk];	 r
   NSAutoreleasePoolc              #   >   K   | ]  }d |j                   v s|  yw)NSCFTypeN)__name__r`   clss     r   rb   rb   0  s     W!8#J#,,<V#!8s   Tc                       e Zd ZdZd Zd ZdBdZd Zd ZdBdZ	dBdZ
dBd	ZdBd
ZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZdBdZ dBdZ!dBd Z"dBd!Z#dBd"Z$dBd#Z%dBd$Z&dBd%Z'dBd&Z(dBd'Z)dBd(Z*dBd)Z+dBd*Z,dBd+Z-dBd,Z.dBd-Z/dBd.Z0dBd/Z1dBd0Z2dBd1Z3dBd2Z4dBd3Z5dBd4Z6dBd5Z7d6 Z8d7 Z9d8 Z:d9 Z;	 dCd:Z<d; Z=d<d=d>d?Z>dD fd@	Z?dA Z@ xZAS )ETestCasez
    A version of TestCase that wraps every test into its own
    autorelease pool.

    This also adds a number of useful assertion methods
    c                     | j                  |t        j                         | j                  |j                  |       | j                  |j                  |       y r   )assertIsInstance_typesGenericAliasassertIs
__origin__assertEqual__args__)selfalias	base_typeargss       r   assertIsGenericAliaszTestCase.assertIsGenericAliasH  s@    eV%8%89e&&	2.r
   c                 F    t        |d      r| j                  | d       y y )N__metadata__z has automatic bindingshasattrfail)r   funcs     r   assertManualBindingzTestCase.assertManualBindingM  s%    4(II567 )r
   c                 <   t        t        j                        s| j                  |xs d       t	        fdt
        D              r| j                  |xs d       j                  D ]  }d|j                  v s y  | j                  |xs d       y )Nz is not a CFTypeRef typec              3   &   K   | ]  }|u  
 y wr   r:   )r`   ra   r   s     r   rb   z*TestCase.assertIsCFType.<locals>.<genexpr>U  s     *	1qBw	   z is not a unique CFTypeRef typer   )
isinstancer   
objc_classr   any	_nscftype	__bases__r   )r   r   messager   s    `  r   assertIsCFTypezTestCase.assertIsCFTypeQ  s    "doo.IIgBB6)A!BC*	**IIgIB6)H!IJ<<CS\\)   			'>v%=>?r
   c                     t        |d      s| j                  |d       |j                  t        k7  r| j                  |d       y y )N__supertype__ is not a typing.NewTypez' is not a typing.NewType based on 'int')r   r   r   r%   )r   r   s     r   assertIsEnumTypezTestCase.assertIsEnumTypeh  sI    r?+ II678s"IIEFG #r
   c                     t        |d      s| j                  |d       |j                  |k7  r!| j                  |d|j                         y y )Nr   r   z" is not a typing.NewType based on )r   r   r   r   )r   r   bases      r   assertIsTypedEnumzTestCase.assertIsTypedEnumq  sR    r?+ II678t#II@@QRS $r
   c                     t        |d      s| j                  |xs |d       t        |d      s| j                  |xs |d       y y )N__pointer__z is not an opaque-pointer__typestr__r   )r   r   r   s      r   assertIsOpaquePointerzTestCase.assertIsOpaquePointerz  sM    r=)IIgCB6)B!CDr=)IIgCB6)B!CD *r
   c                     |j                         }|j                  di       j                  d      s| j                  |xs d|d       y y )Nretvalc_array_delimited_by_null
result of z is not a null-terminated arrayr   getr   r   methodr   infos       r   assertResultIsNullTerminatedz%TestCase.assertResultIsNullTerminated  sK    ""$xx"%))*EFIIgW:fZ7V!WX Gr
   c                     |j                         }|j                  d      r|j                  d      s| j                  |xs |d       y y )Nr   variadiczD is not a variadic function with a null-terminated list of argumentsr   r   s       r   assertIsNullTerminatedzTestCase.assertIsNullTerminated  sL    ""$xx34DHHZ<PII @7=@ =Qr
   c                    t        |t        j                        rd}nd}|j                         }|d   ||z      j	                  d      }|dv ry |t
        v ry |j                  d      r|dd  t
        v ry |j                  d      r|dd  t
        v ry |j                  d	      r|dd  t
        v ry |j                  d
      r|dd  t
        v ry t        t        j                               }t        |      a|t
        v ry |j                  d      r|dd  t
        v ry |j                  d      r|dd  t
        v ry |j                  d	      r|dd  t
        v ry |j                  d
      r|dd  t
        v ry | j                  |xs d|||fz         y )NrU   r   	argumentstype      ^@   N^@   n^@   o^@   @   ^r      o^   n^   N^z$argument %d of %r is not IDLike (%r))
r   r   selectorr   r   _idlike_cache
startswithset_idSignaturesr   )r   r   argnor   offsetr   r   tmps           r   assertArgIsIDLikezTestCase.assertArgIsIDLike  s    fdmm,FF""$+uv~.226:66]]4 RV}%<]]5!bf&=]]5!bf&=]]5!bf&= $$$&'C]]4 RV}%<]]5!bf&=]]5!bf&=]]5!bf&=		S=PR@SS	
r
   c                    |j                         }|d   j                  d      }|dv ry |t        v ry |j                  d      r|dd  t        v ry |j                  d      r|dd  t        v ry |j                  d      r|dd  t        v ry |j                  d	      r|dd  t        v ry t	        t        j                               }t	        |      a|t        v ry |j                  d      r|dd  t        v ry |j                  d      r|dd  t        v ry |j                  d      r|dd  t        v ry |j                  d	      r|dd  t        v ry | j                  |xs	 d
|d|d       y )Nr   r   r   r   r   r   rU   r   r   r   z is not IDLike ())r   r   r   r   r   r   r   r   )r   r   r   r   r   r   s         r   assertResultIsIDLikezTestCase.assertResultIsIDLike  sg    ""$(^'66]]4 RV}%<]]5!bf&=]]5!bf&=]]5!bf&= $$$&'C]]4 RV}%<]]5!bf&=]]5!bf&=]]5!bf&=		'Kz&3CB6KLr
   c                 ,   t        |t        j                        rd}nd}|j                         }	 |d   ||z      j	                  d      s| j                  |xs d||fz         y y # t        t        f$ r | j                  |xs d||fz         Y y w xY w)NrU   r   r   r   z0argument %d of %r is not a null-terminated arrayr   r   r   r   r   r   KeyError
IndexErrorr   r   r   r   r   r   s         r   assertArgIsNullTerminatedz"TestCase.assertArgIsNullTerminated  s    fdmm,FF""$	$UV^4889TU		 &Ifo& V *% 	II XEPVW	   4A' ')BBc                     t        |t        j                        rd}nd}|j                         }	 |d   ||z      j	                  d      r| j                  |xs d||fz         y y # t        t        f$ r Y y w xY w)NrU   r   r   r   z,argument %d of %r is a null-terminated arrayr   r   s         r   assertArgIsNotNullTerminatedz%TestCase.assertArgIsNotNullTerminated  s    fdmm,FF""$	K 0445PQ		 XEPVW R
 *% 		   4A' 'A98A9c                 ,   t        |t        j                        rd}nd}|j                         }	 |d   ||z      j	                  d      s| j                  |xs d||fz         y y # t        t        f$ r | j                  |xs d||fz         Y y w xY w)NrU   r   r   c_array_of_variable_lengthz/argument %d of %r is not a variable sized arrayr   r   s         r   assertArgIsVariableSizez TestCase.assertArgIsVariableSize  s    fdmm,FF""$	$UV^4889UV		 &Hfo& W *% 	II WDvV	r   c                     |j                         }|j                  di       j                  dd      s| j                  |xs d|d       y y )Nr   r   Fr   z is not a variable sized arrayr   r   s       r   assertResultIsVariableSizez#TestCase.assertResultIsVariableSize  sM    ""$xx"%))*FNIIgV:fZ7U!VW Or
   c                 ,   t        |t        j                        rd}nd}|j                         }	 |d   ||z      j	                  d      s| j                  |xs d||fz         y y # t        t        f$ r | j                  |xs d||fz         Y y w xY w)NrU   r   r   c_array_length_in_resultz.argument %d of %r does not have size in resultr   r   s         r   assertArgSizeInResultzTestCase.assertArgSizeInResult  s    fdmm,FF""$	$UV^4889ST		 &Gfo& U *% 	II VCufoU	r   c                     t        |t        j                        rd}nd}|j                         }	 |d   ||z      j	                  d      r| j                  |xs d||fz         y y # t        t        f$ r Y y w xY w)NrU   r   r   r   z*argument %d of %r does have size in resultr   r   s         r   assertArgSizeNotInResultz!TestCase.assertArgSizeNotInResult.  s    fdmm,FF""$	K 0445OP		 VCufoU Q
 *% 		r   c                 ~   t        |t        j                        rd}nd}|j                         }|j	                  d      s| j                  |xs |d       	 |d   ||z      j	                  d      s| j                  |xs d||fz         y y # t        t        f$ r | j                  |xs d||fz         Y y w xY w)NrU   r   r    is not a variadic functionr   printf_formatz,%r argument %d is not a printf format stringr   r   s         r   assertArgIsPrintfzTestCase.assertArgIsPrintf=  s    fdmm,FF""$xx
#IIgIF:-H!IJ
	$UV^488I		 XEQVW J
 *% 	II TAVUOS	s   4B )B<;B<c                 J   t        |t        j                        rd}nd}|j                         }|j	                  d      s| j                  |xs |d       	 |d   ||z      j	                  d      r| j                  |xs d||fz         y y # t        t        f$ r Y y w xY w)NrU   r   r   r   r   r   z(%r argument %d is a printf format stringr   r   s         r   assertArgIsNotPrintfzTestCase.assertArgIsNotPrintfR  s    fdmm,FF""$xx
#IIgIF:-H!IJ	K 044_E		 TAVUOS F
 *% 		s   4B B"!B"c                    t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   s| j	                  |xs	 d| d|d       y y # t
        t        f$ r | j	                  |xs	 d| d|d       Y y w xY w)NrU   r   r   already_cfretained	Argument  of  is not cfretainedr   r   r   r   r   r   r   r   s         r   assertArgIsCFRetainedzTestCase.assertArgIsCFRetainedd  s    fdmm,FF""$	V$UV^45IJ		R5'fZ?QR K *% 	VIIgT9UG4zAS!TU	V   *A +B
Bc                     t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   r| j	                  |xs	 d| d|d       y y # t
        t        f$ r Y y w xY w)NrU   r   r   r   r   r    is cfretainedr   r   s         r   assertArgIsNotCFRetainedz!TestCase.assertArgIsNotCFRetaineds  s    fdmm,FF""$	K 01EF		'TytF:^%TU G*% 		   *A A/.A/c                     |j                         }|j                  di       j                  dd      s| j                  |xs |d       y y )Nr   r   Fr   r   r   s       r   assertResultIsCFRetainedz!TestCase.assertResultIsCFRetained  sK    ""$xx"%))*>FIIg@F:-?!@A Gr
   c                     |j                         }|j                  di       j                  dd      r| j                  |xs |d       y y )Nr   r   Fr   r   r   s       r   assertResultIsNotCFRetainedz$TestCase.assertResultIsNotCFRetained  sJ    ""$88Hb!%%&:EBIIg<F:^!<= Cr
   c                    t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   s| j	                  |xs	 d| d|d       y y # t
        t        f$ r | j	                  |xs	 d| d|d       Y y w xY w)NrU   r   r   already_retainedr   r    is not retainedr   r   s         r   assertArgIsRetainedzTestCase.assertArgIsRetained  s    fdmm,FF""$	T$UV^45GH		'VytF:EU%VW I*% 	TIIgR9UG4zAQ!RS	Tr   c                     t        |t        j                        s| j                  |xs |d       |j	                         }|j                  dd      s| j                  |xs |d       y y )N is not a selectorinitializerFz is not an initializerr   r   r   r   r   r   r   s       r   assertIsInitializerzTestCase.assertIsInitializer  sc    &$--0IIg@F:-?!@A""$xxu-IIgDF:-C!DE .r
   c                     t        |t        j                        s| j                  |xs |d       |j	                         }|j                  dd      r| j                  |xs |d       y y )Nr  r  Fz is an initializerr  r   s       r   assertIsNotInitializerzTestCase.assertIsNotInitializer  sc    &$--0IIg@F:-?!@A""$88M5)IIg@F:-?!@A *r
   c                     t        |t        j                        s| j                  |xs |d       |j	                         }|j                  dd      s| j                  |xs |d       y y )Nr  free_resultFz$ does not call free(3) on the resultr  r   s       r   assertDoesFreeResultzTestCase.assertDoesFreeResult  sc    &$--0IIg@F:-?!@A""$xxu-IIgRF:-Q!RS .r
   c                     t        |t        j                        s| j                  |xs |d       |j	                         }|j                  dd      r| j                  |xs |d       y y )Nr  r  Fz calls free(3) on the resultr  r   s       r   assertDoesNotFreeResultz TestCase.assertDoesNotFreeResult  sc    &$--0IIg@F:-?!@A""$88M5)IIgJF:-I!JK *r
   c                     t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   r| j	                  |xs	 d| d|d       y y # t
        t        f$ r Y y w xY w)NrU   r   r   r   r   r    is retainedr   r   s         r   assertArgIsNotRetainedzTestCase.assertArgIsNotRetained  s    fdmm,FF""$	K 01CD		'RytF:\%RS E*% 		r   c                     |j                         }|j                  di       j                  dd      s| j                  |xs d|d       y y )Nr   r   F
Result of r  r   r   s       r   assertResultIsRetainedzTestCase.assertResultIsRetained  sM    ""$xx"%))*<eDIIgH:fZ7G!HI Er
   c                     |j                         }|j                  di       j                  dd      r| j                  |xs d|d       y y )Nr   r   Fr  r  r   r   s       r   assertResultIsNotRetainedz"TestCase.assertResultIsNotRetained  sL    ""$88Hb!%%&8%@IIgD:fZ|!DE Ar
   c                 <   |j                         }|j                  d      j                  dd      }t        |t              rq|D ]M  }||k(  sEt	        |      t	        |      k(  s.t
        j                  ||      t
        j                  ||      k(  sM y  | j                  |xs d|d|d|       y ||k7  ret	        |      t	        |      k7  rMt
        j                  ||      t
        j                  ||      k7  r| j                  |xs d|d|d|       y y y y )Nr   r      vr    is not of type , but )r   r   r   r#   r	   
_typealiasr   )r   r   r   r   r   typestritems          r   assertResultHasTypezTestCase.assertResultHasType  s#   ""$((8$((6b% tO(HTN:!~~gw7:>>$PT;UU   		 V#F:-=bV6'U rM!Xb\1w0JNN2r4JJII Rz)9"vg[Q K 2 r
   c           
         t        |t        j                        rd}nd}|j                         }	 |d   ||z      }|j	                  dd      }t        |t              rt|D ]M  }	|	k(  sEt        |      t        |	      k(  s.t        j	                  ||      t        j	                  |	|	      k(  sM y  | j                  |xs d| d|d	|d
       y |k7  rht        |      t        |      k7  rPt        j	                  ||      t        j	                  ||      k7  r"| j                  |xs d| d| d	| d
|        y y y y # t
        t        f$ r | j                  |xs d||fz         Y w xY w)NrU   r   r   r   r   /arg %d of %s has no metadata (or doesn't exist)zarg r   r  r  )r   r   r   r   r   r   r   r   r#   r	   r  )
r   r   r   r   r   r   r   ir  r  s
             r   assertArgHasTypezTestCase.assertArgHasType  s   fdmm,FF""$
	*[!%&.1A eeFD)Gb% tO(HTN:!~~gw7:>>$PT;UU   		 [eWD
2B2&wkZ  rM!Xb\1w0JNN2r4JJIIXT%VH4DRDwiX K 2 3 *% 	II WDvV	s   E   )E-,E-c                     t        |t        j                        rd}nd}|j                         }	 |d   ||z      }|j	                  dd      }		dk7  r| j                  |xs d||fz         j	                  d	      }
|
| j                  |xs d||fz         	 |
d
   d   }|
d   D ]
  }||d   z  } 	 |k7  r| j                  |xs	 d||||fz         |d   ||z      j	                  dd      }
t        |
      t        |      k7  r| j                  |xs	 d|||
|fz         y y # t
        t        f$ r | j                  |xs d||fz         Y w xY w# t
        $ r | j                  |xs d||fz         Y w xY w)NrU   r   r   r   r   r      ^?z,arg %d of %s is not of type function_pointercallabler   zCarg %d of %s is a function pointer with incomplete type informationz;arg %d of %s is not a function_pointer with type %r, but %rcallable_retainedFz(arg %d of %s; retained: %r, expected: %r)	r   r   r   r   r   r   r   r   bool)r   r   r   sel_typeretainedr   r   r   r!  r  stifaceas                r   assertArgIsFunctionzTestCase.assertArgIsFunction  s   fdmm,FF""$		*[!%&.1A eeFD)GeII TAUFOS
 UU::II TAUFOS
		xL(E_6" % HII 3P&(E23 +uv~.223FN8tH~%II 0=&"h/0 &S *% 	II WDvV	4  	II "X&/"	s#   D' E ')EE#E=<E=c                    |j                         }	 |d   }|j                  dd      }dk7  r| j	                  |xs d| d       j                  d      }|| j	                  |xs d| d       	 |d   d   }|d	   D ]
  }	||	d   z  } 	 |k7  r| j	                  |xs d|d|d|       y y # t        t        f$ r | j	                  |xs d| d       Y w xY w# t        $ r | j	                  |xs d|d
       Y ww xY w)Nr   r   r   r   # has no metadata (or doesn't exist)r$  z  is not of type function_pointerr%  r   z7 is a function pointer with incomplete type informationz% is not a function_pointer with type r  )r   r   r   r   r   )
r   r   r(  r   r   r!  r  r*  r+  r,  s
             r   assertResultIsFunctionzTestCase.assertResultIsFunctionK  s?   ""$	*XA eeFD)GeIIgV:fX5U!VWUU::IIgV:fX5U!VW		xL(E_6" % HII ,8U, 5 *% 	IISZx/RS	&  	II 	s#   B4 4C" 4(CC""DDc                    t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   }dk7  r| j                  |xs d|||fz         |d   ||z      j                  d      }|| j                  |xs d	||fz         	 |d
   d   }	|d   d   d   dk7  r$| j                  |xs d|||d   d   d   fz         |d   dd  D ]
  }
|	|
d   z  }	 	 	|k7  r| j                  |xs	 d||||	fz         y y # t        t
        f$ r | j                  d||fz         Y w xY w# t
        $ r | j                  |xs d|d       Y rw xY w)NrU   r   r   r   zarg %d of %s does not exist   @?z%arg %d of %s is not of type block: %sr%  z;arg %d of %s: no callable specified for the block signaturer      ^vz=arg %d of %s has an invalid block signature %r for argument 0r   r   4 is a block pointer with incomplete type informationz0arg %d of %s is not a block with type %r, but %r)r   r   r   r   r   r   r   r   )r   r   r   r(  r   r   r   r  r*  r+  r,  s              r   assertArgIsBlockzTestCase.assertArgIsBlockq  s   fdmm,FF""$	G;'7?G eII V:eVW=UU
 +uv~.22:>:II "P&/"	xL(E+q!&)U2		 BVfboa&8&@AB
 _QR(6" ) HII 3E&(E23 E H% 	GII3ufoEF	G6  	II 	s$   D	 AD4 	%D10D14"EEc                 v   |j                         }	 |d   d   }|dk7  r| j                  |xs d| d|        |d   j	                  d      }|| j                  |xs d	|z         	 |d   d   }|d
   d   d   dk7  r%| j                  |xs d|d|d
   d   d   d       |d
   dd  D ]
  }||d   z  } 	 |k7  r| j                  |xs d|d|d|       y y # t        $ r( | j                  |xs dj                  |d             Y w xY w# t        $ r | j                  |xs d|d       Y }w xY w)Nr   r   r2  r   z is not of type block: z%result of {} is not of type block: {}r  r%  z;result of %s: no callable specified for the block signaturer   r   r3  zresult z  has an invalid block signature z for argument 0r   r4  z is not a block with type r  )r   r   r   formatr   )	r   r   r(  r   r   r  r*  r+  r,  s	            r   assertResultIsBlockzTestCase.assertResultIsBlock  s   ""$		8nV,G%		TF83J7)T (^
+:II P	xL(E+q!&)U2		 ;r+q1&9;
 _QR(6" ) HII ,8U, =  	IIWBII&RVW	.  	II 	s$   (C )AD .DD"D87D8c                    |j                         }	 |d   }j	                  dd      }|t
        j                  k7  r| j                  |xs d| d       |j	                  d      }||k7  r7t        |      t        |      k7  r| j                  |xs d|d|d	|       y y y # t        t        f$ r | j                  |xs d| d       Y w xY w)
Nr   r   r/  r   r   z is not of type SELsel_of_typez doesn't have sel_type z but )r   r   r   r   r   r   _C_SELr	   )r   r   r(  r   r   r!  r  r*  s           r   assertResultIsSELzTestCase.assertResultIsSEL  s    ""$	XA %%%dkk!IIgI:fX5H!IJUU=!>hrlhx.@@II )8R) A> *% 	IISZx/RS	s   B# #(CCc                    t        |t        j                        rd}nd}|j                         }	 |d   ||z      }j                  dd      }|t        j                  k7  r| j                  |xs d||fz         |j                  d      }	|	|k7  r5t        |	      t        |      k7  r| j                  |xs	 d	||||	fz         y y y # t        t
        f$ r | j                  |xs d||fz         Y w xY w)
NrU   r   r   r   r   r   zarg %d of %s is not of type SELr:  z,arg %d of %s doesn't have sel_type %r but %r)
r   r   r   r   r   r   r   r   r;  r	   )
r   r   r   r(  r   r   r   r!  r  r*  s
             r   assertArgIsSELzTestCase.assertArgIsSEL  s   fdmm,FF""$	[!%&.1A %%%dkk!IIgT!BeV_!TUUU=!>hrlhx.@@II 0A&(B/0 A> *% 	II WDvV	s   C )C32C3c                     |j                         }|d   d   }|t        j                  t        j                  fvr| j	                  |xs d| d|       y y )Nr   r   r   z is not of type BOOL, but )r   r   	_C_NSBOOL_C_BOOLr   )r   r   r   r   r  s        r   assertResultIsBOOLzTestCase.assertResultIsBOOL  sZ    ""$x.(4>>4<<88IIUZx/I'U 9r
   c                     t        |t        j                        rd}nd}|j                         }|d   ||z      d   }|t        j                  t        j
                  fvr| j                  |xs d|||fz         y y )NrU   r   r   r   z(arg %d of %s is not of type BOOL, but %r)r   r   r   r   r@  rA  r   r   r   r   r   r   r   r  s          r   assertArgIsBOOLzTestCase.assertArgIsBOOL  s    fdmm,FF""${#EFN3F;4>>4<<88II Y=PW@XX 9r
   c                 "   t        |t        j                        rd}nd}|j                         }	 |d   ||z      d   }||k7  r| j	                  |xs d|||fz         y y # t
        t        f$ r | j	                  |xs d|||fz         Y y w xY w)NrU   r   r   c_array_of_fixed_lengthz*arg %d of %s is not a C-array of length %dr   )r   r   r   countr   r   r   cnts           r   assertArgIsFixedSizezTestCase.assertArgIsFixedSize  s    fdmm,FF""$	{#EFN34MNCe|		 -Cfe,-  *% 	II Y?5&RWBXX	s   .A! !*BBc                     |j                         }	 |d   d   }||k7  r| j                  |xs d||fz         y y # t        t        f$ r | j                  |xs d||fz         Y y w xY w)Nr   rG  z*result of %s is not a C-array of length %d)r   r   r   r   )r   r   rH  r   r   rI  s         r   assertResultIsFixedSizez TestCase.assertResultIsFixedSize(  s    ""$	x.!:;Ce|		 VCvuoU 
 *% 	II R?65/Q	s   '; )A'&A'c                    t        |t        j                        rdnd|j                         }	 |d   |z      d   }t        |t        t        f      rt        fd|D              }n|z   }|k7  r| j                  |xs d|||fz         y y # t        t
        f$ r | j                  |xs d|||fz         Y ~w xY w)NrU   r   r   c_array_length_in_argz6arg %d of %s is not a C-array of with length in arg %sc              3   (   K   | ]	  }|z     y wr   r:   )r`   ra   r   s     r   rb   z.TestCase.assertArgSizeInArg.<locals>.<genexpr>G  s     5u!1v:us   )	r   r   r   r   r   r   r   listr#   )	r   r   r   rH  r   r   rI  count2r   s	           @r   assertArgSizeInArgzTestCase.assertArgSizeInArg7  s    fdmm,FF""$	{#EFN34KLC edE]+5u55FV^F&=II )K&%()  *% 	II )K&%()	s   B *B?>B?c                     t        |t        j                        rd}nd}|j                         }|d   d   }|||z   k7  r| j	                  |xs d||fz         y y )NrU   r   r   rN  z3result %s is not a C-array of with length in arg %d)r   r   r   r   r   )r   r   rH  r   r   r   rI  s          r   assertResultSizeInArgzTestCase.assertResultSizeInArgQ  sk    fdmm,FF""$8n45%&. II "H5/" !r
   c                     t        |t        j                        rd}nd}|j                         }|d   ||z      d   }|j	                  d      s-|j	                  d      s| j                  |xs d||fz         y y y )NrU   r   r   r   r   s   o*z%arg %d of %s is not an 'out' argumentr   r   r   r   r   r   rD  s          r   assertArgIsOutzTestCase.assertArgIsOut_  s    fdmm,FF""${#EFN3F;!!%(1C1CE1JIITBeV_T 2K(r
   c                     t        |t        j                        rd}nd}|j                         }|d   ||z      d   }|j	                  d      s-|j	                  d      s| j                  |xs d||fz         y y y )NrU   r   r   r   r   s   N*z'arg %d of %s is not an 'inout' argumentrV  rD  s          r   assertArgIsInOutzTestCase.assertArgIsInOutk  s    fdmm,FF""${#EFN3F;!!%(1C1CE1JIIVDvV 2K(r
   c                     t        |t        j                        rd}nd}|j                         }|d   ||z      d   }|j	                  d      s-|j	                  d      s| j                  |xs d||fz         y y y )NrU   r   r   r   r   s   n*z$arg %d of %s is not an 'in' argumentrV  rD  s          r   assertArgIsInzTestCase.assertArgIsInw  s    fdmm,FF""${#EFN3F;!!%(1C1CE1JIISAUFOS 2K(r
   c                 \    |j                  |      s| j                  |xs |d|       y y )Nz does not start with )r   r   )r   r<   testr   s       r   assertStartswithzTestCase.assertStartswith  s2    %IIgJE9,A$!JK &r
   c                 R    t        ||      s| j                  |xs | d|       y y )Nz is not an attribute of r   r   r<   keyr   s       r   assertHasAttrzTestCase.assertHasAttr  s.    uc"IIgJC5(@	!JK #r
   c                 R    t        ||      r| j                  |xs | d|       y y )Nz is an attribute of r   r`  s       r   assertNotHasAttrzTestCase.assertNotHasAttr  s.    5#IIgFC5(<UI!FG r
   c                 R    t        ||      s| j                  |xs | d|       y y )Nz is not a subclass of 
issubclassr   r   r<   typesr   s       r   assertIsSubclasszTestCase.assertIsSubclass  s.    %'IIgJE7*@	!JK (r
   c                 R    t        ||      r| j                  |xs | d|       y y )Nz is a subclass of rf  rh  s       r   assertIsNotSubclasszTestCase.assertIsNotSubclass  s.    eU#IIgFE7*<UI!FG $r
   c                     t        |t        j                        s| j                  | d       y |j                  s| j                  | d       y y )Nz is not an Objective-C classz is not a final class)r   r   r   r   __objc_final__)r   r   s     r   assertClassIsFinalzTestCase.assertClassIsFinal  sF    #t/II9:;##II234 $r
   c                    d}	 t        j                  |      }|s| j                  d|d       t	        t         j
                        s!| j                  d|dt        |              y y # t         j                  $ r d}Y jw xY w)NTFz	Protocol z does not existz is not a protocol, but )r   protocolNamedProtocolErrorr   r   formal_protocolr   )r   nameokprotos       r   assertProtocolExistszTestCase.assertProtocolExists  s    	&&t,E
 II	$9:%!5!56II	$)A$u+OP 7 !! 	B	s   A, ,BBc                     	 t        j                  |      }t        j                  |      }| j                  |       | j                  |t        |             y # t        $ r | j	                  | d       Y Mw xY w)Nz cannot be pickled)_pickledumpsloads	Exceptionr   r   r   r   )r   r<   bufclones       r   assertPickleRoundTripszTestCase.assertPickleRoundTrips  sn    	4--&CMM#&E 	&eT%[1	  	4II123	4s   *A A:9A:c                     t        d      sydt        j                  v rt        j                  d   ry| j                  t        j                         d       y)z
        Assert that the process is running in free-threaded mode when
        the interpreter was configured as such.
        Py_GIL_DISABLEDNgilzGIL is enabled)r   rW   	_xoptionsassertFalse_is_gil_enabled)r   s    r   assertFreeThreadedIfConfiguredz'TestCase.assertFreeThreadedIfConfigured  sF     01DNN"t~~e'< 	--/1ABr
   c                 |   	 |j                         }t        |d         }d|d   fgt        t        |d               z   D ]w  \  }j                  dd      r)j                  dd      r| j                  | d| d       d   j                  t        j                  t        j                  z         s"d   j                  t        j
                        rNj                  d	d      r| j                  | d| d
|xs d        |s| j                  | d| d|xs d        j                  dd       }t        |t              r.d|cxk  r|k  sn | j                  | d| d| d|xs d        not        |t              r_|\  }	}
d|	cxk  r|k  s"n | j                  | d| d|	 d|xs d        d|
cxk  r|k  s"n | j                  | d| d|
 d|xs d        d   t!        fdt        j"                  t        j$                  t        j&                  fD              rdd  }|j)                  t        j                        s?|j)                  t        j
                        s | j                  | d| d d|xs d        |dd  }|j)                  t        j*                        r:t        j,                  |      \  }}|s | j                  | d| d d|xs d        t        |t        j                        rǉj)                  t        j                        sdvsdk7  sdk7  sdd  j)                  t        j*                        rt        j,                  dd        \  }}|s=|dk(  rt!        fddD              rX| j                  | d| dd|xs d        z y )NFr   r   r   r   z: z.: both already_retained and already_cfretainedr   r   z6: null-delimited 'char*', use _C_CHAR_AS_TEXT instead  z
: 'char*' c_array_size_in_argr   z#: c_array_size_in_arg out of range  c              3   @   K   | ]  }j                  |        y wr   r   )r`   pfxr   s     r   rb   z5TestCase._validateCallableMetadata.<locals>.<genexpr>  s      .Vsc".V   r   z": byref specifier on non-pointer: z*: byref to empty struct (handle/CFType?): )r3  r$  s)   ^{AudioBufferList=I[1{AudioBuffer=II^v}]}s   ^{_CFArrayCallBacks=q^?^?^?^?}c              3   &   K   | ]  }|v  
 y wr   r:   )r`   ra   metas     r   rb   z5TestCase._validateCallableMetadata.<locals>.<genexpr>  s!      	& I&r   >   r  deref_result_pointerrN  r   r   z-: pointer argument, but no by-ref annotation:)r   r   r   	signature_C_PTR
_C_CHARPTRr   rc   rP  	enumerater   r   r+   _C_CHRr%   r#   r   _C_IN_C_OUT_C_INOUTr   _C_STRUCT_BsplitStructSignature)r   r<   
class_nameskip_simple_charptr_checkr  callable_metaargcountidxr6   berestrt  fieldsr  r   s                 @@r   _validateCallableMetadataz"TestCase._validateCallableMetadata  s     **,}[12#]8%<=>mK01B
 
IC xx*E2txx$e8 		gRu$RS F|$$T[[4;;%>?4Dht'D( 887?II 'C5(^_i_omo^pq 1IIr#j9Ir8JKL.5A!S!Q))II 'C5(KA3aPZP`^`Oab Au%1Q))II 'C5(KA3aPZP`^`Oab Q))II 'C5(KA3aPZP`^`Oab fB /3zz4;;.V  !"vt{{3DOOOO= II 'C5(J2$aPZP`^`Oab ABx??4#3#34#'#<#<T#BLD&!		$gRu,VWYVZZ[\f\ljl[mn eT]]3 MM$++..0JJ??!"v(()9)9:'+'@'@AB'Hf%$h 	&	 	 %II 'C5(UVXU[[\]g]mkm\nog
r
   c                     t        |d      rG| j                  |d       | j                  |j                  j	                         |j
                         y y )N
__bundle____framework_identifier__)r   rb  r   r  bundleIdentifierr  )r   modules     r   _validateBundleIdentifierz"TestCase._validateBundleIdentifier-  sK    6<(v'AB!!224// )r
   Tr:   )exclude_cocoaexclude_attrsc          	      n1   | j                  d      5  | j                  |       d d d        |rK	 dt        j                  v rdd l}t        t        |            }ndd l}t        t        |            }|dhz  }n
t               }h d}t        |      }|j                  d       |j                  d       |j                  d       |j                  d	       |j                  d
       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d        |j                  d!       |j                  d"       |j                  d#       |j                  d$       |j                  d%       |j                  d&       |j                  d'       |j                  d(       |j                  d)       |j                  d*       |j                  d+       |j                  d,       |j                  d-       |j                  d.       |j                  d/       |j                  d0       |j                  d1       |j                  d2       |j                  d3       |j                  d4       |j                  d5       |j                  d6       |j                  d7       |j                  d8       |j                  d9       |j                  d:       |j                  d;       |j                  d<       |j                  d=       |j                  d>       |j                  d?       |j                  d@       |j                  dA       |j                  dB       |j                  dC       |j                  dD       |j                  dE       |j                  dF       |j                  dG       |j                  dH       |j                  dI       |j                  dJ       |j                  dK       |j                  dL       |j                  dM       |j                  dN       |j                  dO       |j                  dP       |j                  dQ       |j                  dR       |j                  dS       |j                  dT       |j                  dU       |j                  dV       |j                  dW       |j                  dX       |j                  dY       |j                  dZ       |j                  d[       |j                  d\       |j                  d]       |j                  d^       |j                  d_       |j                  d`       |j                  da       |j                  db       |j                  dc       |j                  dd       |j                  de       |j                  df       |j                  dg       |j                  dh       |j                  di       |j                  dj       |j                  dk       |j                  dl       |j                  dm       |j                  dn       |j                  do       |j                  dp       |j                  dq       |j                  dr       |j                  ds       |j                  dt       |j                  du       |j                  dv       |j                  dw       |j                  dx       |j                  dy       |j                  dz       |j                  d{       |j                  d|       |j                  d}       |j                  d~       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d«       |j                  dë       |j                  dī       |j                  dū       |j                  dƫ       |j                  dǫ       |j                  dȫ       |j                  dɫ       |j                  dʫ       |j                  d˫       |j                  d̫       |j                  dͫ       |j                  dΫ       |j                  dϫ       |j                  dЫ       |j                  dѫ       |j                  dҫ       |j                  dӫ       |j                  dԫ       |j                  dի       |j                  d֫       |j                  d׫       |j                  dث       |j                  d٫       |j                  dګ       |j                  d۫       |j                  dܫ       |j                  dݫ       |j                  dޫ       |j                  d߫       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d        |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d	       |j                  d
       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d        |j                  d!       |j                  d"       |j                  d#       |j                  d$       |j                  d%       |j                  d&       |j                  d'       |j                  d(       |j                  d)       |j                  d*       |j                  d+       |j                  d,       |j                  d-       |j                  d.       |j                  d/       |j                  d0       d1 } ||      r8t        |d2d       }	g }
|
j                  d3 t        j                  d4      D               |
j                  t        |	d5d       xs g        t        |	j                        }|r|j!                         } ||      ryt        |d2d       }	|
j                  t        |	d5d       xs g        |j                  |	j                  xs d6       |
j                  |j"                  j%                                n|
j                  t        |             |rt'        t        |
            }
nt'        t        t        |                  }
t)        |
      D ]+  \  }}||v r||v r	 t        ||      }t-        |t        j.                        rt        j0                         5  |j2                  d7k(  r
	 d d d        h|j4                  j"                  }|j7                         D ]  \  }|v r|f|v rj9                  d8      r%|j2                  d9k(  rt;        fd:d;D              rL| j                  |<      5  t-        |t        j<                        r| j?                  ||| =       d d d         |j@                  j"                  j7                         D ]  \  }|v r|f|v rj9                  d8      r%| j                  |<      5  t        |j@                  d       }t-        |t        j<                        r| j?                  ||| =       d d d         	 d d d        t-        |t        jB                        r/| j                  |>      5  | j?                  |       d d d        ,. | jE                          y # 1 sw Y   )xY w# t        $ r t               }Y w xY w# t*        $ r Y sw xY w# 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w(?  Nzvalidate framework identifierAppKitr   NSObject>   utf8ValueSafeutf8ValueSafe_isKeyExcludedFromWebScript_)newTaggedNSStringWithASCIIBytes__length__>copyRenderedTextureForCGLContext_pixelFormat_bounds_isFlipped_FBSMutableSceneClientSettingsFBSSceneClientSettings)NSColor'scn_C3DColorIgnoringColorSpace_success_)AVKitPlatformColorClassr  )PDFKitPlatformColorr  )SCNColorr  )SKColorr  )r  r  )r  r  )r  r  )r  r  )r  r  ABCDContact_ABCDContact_ABCDGroup_ABCDGroup_AudioHardwareClaimAudioDeviceIDAudioHardwareClaimAudioStreamID"AudioHardwareDevicePropertyChangedAudioHardwareDevicesCreatedAudioHardwareDevicesDied"AudioHardwareStreamPropertyChangedAudioHardwareStreamsCreatedAudioHardwareStreamsDiedAudioObjectCreateAudioObjectPropertiesChangedAudioObjectsPublishedAndDiedACTrackedXPCConnectionACZeroingStringAFBArrayAFBBufferBuilderAFBDictionaryAFConversationErrorAFInstanceContextAFInstanceContextHostAFKBufferMemoryDescriptorAFKEndpointInterfaceAFKMemoryDescriptorAFMyriadAccessoryMetricMessageAFPreferencesAFSUPFunctionProviderAFSpeakableUtteranceParserAKAppleIDSession$AWDLTrafficRegistrationConfigurationAXLogColorizerAXValidationManagerBroadcomHostControllerCBDeviceCKAssetDownloadStagingManagerCKBehaviorOptionsCKInternalError
CKObjCTypeCKPrettyError CKSQLiteCompiledStatementDecoderCKSQLiteDatabaseKeyedArchiverCKSQLiteDatabaseKeyedUnarchiverCKSQLiteTOCImageInfoEntryCKSyncEngineStateCKUserDefaultsCLAssertion%CLBBTimeFreqTransferCallbackAssertionCLEEDMitigation$CLEmergencyClientEnablementAssertionCLEmergencyEnablementAssertionCLFindMyAccessoryManager!CLGNSSStateQueryAssertionResponseCLGnssDisablementAssertionCLGnssExtensionsClientCLIntersiloProxyCLIntersiloProxyToInitiatorCLIntersiloProxyToRecipientCLLocationInternalClientCLLocationManagerStateTrackerCLLocationUpdaterCLOSTransactionCLStateTrackerCRBiDiTransformCRImageCRImage_PixelBufferCSUErrorCUDashboardClientCUICommonAssetStorageCUIMaskedFacetLayerCUIMutableCommonAssetStorageCUIMutablePSDImageRefCUIMutableStructuredThemeStoreCUIPSDImageRefCUIPSDLayerRef#CUIPlaceholderCUICommonAssetStorage*CUIPlaceholderCUIMutableCommonAssetStorage!CUISingleNamedAssetMutableStorageCUIStructuredThemeStoreCUISystemStoreCUNANEndpointCUReadRequestCUSPAKECommonCUSPAKEProverCUSPAKEVerifierCUWriteRequestCWFNetworkProfileCoreUtilsNSSubrangeDataDDScannerResultDMAPFSDMCoreStorageDMFilesystem	DMManagerEFILWLoggingFLSQLitePersistenceFPAppLibraryCollectionFPCTLTermDumperFPErrorFPExtensionCollection&FPFlattenedPackageSandboxingURLWrapperFPItemCollectionFPQueryCollectionFPSandboxingURLWrapperFPSearchCollectionFPSearchTrashCollectionFPTaskFPTrashUnionCollectionFPUnarchiveOperationFPUnionCollectionFaceCoreImageGEOActiveTileGroupGEOBrandInfoMapping	GEODaemon
GEOFeatureGEOMapItemURLExtrasGEOPDTransitIncidentGEOPerformanceEventLoggerGEOPurgableFileGEORegionalResourceTileDecoderGEOSQLiteDBGEOTileEditionUpdateGEOVectorTileGEOVectorTileDecoderHardcopyCableReplacementICREnvironmentIDSDatagramChannelIDSDependencyProviderIDSDirectMessageConnectionIDSGlobalLinkMessageIDSInterfaceAddressIDSInternalQueueControllerIDSNWPathUtilsIDSRateLimiterIDSStunMessage#IDSStunRelayInterfaceInfoController
IDSTCPLinkIMFileManagerINDeferredLocalizedString#IOBluetoothHardcopyCableReplacementIOBluetoothHeadsetAudioGateway IOBluetoothLocalSDPServiceRecordIOBluetoothOBEXSessionIOBluetoothSDPDataElementIOBluetoothSDPServiceRecordIOBluetoothSDPUUIDIOBluetoothSerialPortManagerISCompositorISIcnsISMutableIcnsKCAESGCMDuplexSessionKCPairingChannelKCSRPClientContextKCSRPContextKCSRPServerContextLACACMHelperLACBiometryHelperLACDeviceTreeReaderLACLocalizationUtilsLAErrorHelperMLE5InputPortMLE5InputPortBinderMLE5OutputPortMLE5OutputPortBinderMLItemSimilarityRecommenderMLLoaderEventMLModelAssetMLMultiArrayAsNSArrayWrapperMLNeuralNetworkEngine$MLNeuralNetworkMLComputeUpdateEngineMLNeuralNetworkUpdateEngineMLNeuralNetworkV1EngineMLProbabilityDictionaryMLProgramEngineMLSequnceAsFeatureValueArrayMLTreeEnsembleClassifierMLTreeEnsembleRegressorMSVDefaultDictionaryMSVOPACKDecoderMSVOPACKEncoderMSVSegmentedDecoderMSVSegmentedEncoderMSVXPCConnectionNSAttributeDictionaryNSCTFontNSCoreTypesetterNSDocFormatReaderNSSingleLineTypesetterNSTempAttributeDictionaryOBEXFilePutOBEXSessionOTInheritanceKeyPCLogSASampleStoreSATaskSCDAAccessoryMetricMessageSFBLEScannerSFCollaborationUtilitiesSFFeatureFlagAdaptor	SFServiceSFServiceSession	SFSession#SSInflightCAMetalLayerIntervalStatsSignpostIntervalBuilderSiriAnalyticsErrorTIHardwareKeyboardLayout!TIKeyboardCandidateResultSetCoderTIKeyboardLayoutTIKeyedArchiverTIKeyedUnarchiverTKBERTLVRecordTKDataSourceTKSmartCardATRInterfaceGroupTKSmartCardWithError	TKTokenIDTRICCommandRunnerTRICEnvironmentManager!TRIFBCloudKitTreatmentRecordAssetTRIFBFactorLevelTRIFBFactorMetadataKeyValueTRIFBFastFactorLevelsTRIFBMobileAssetReferenceTRIFBTrialManagedAssetTRILevelTRINamespaceResolverTRIPBAutocreatedArrayTRIPBAutocreatedDictionaryTRIPBBoolArrayTRIPBBoolBoolDictionaryTRIPBBoolDoubleDictionaryTRIPBBoolEnumDictionaryTRIPBBoolFloatDictionaryTRIPBBoolInt32DictionaryTRIPBBoolInt64DictionaryTRIPBBoolObjectDictionaryTRIPBBoolUInt32DictionaryTRIPBBoolUInt64DictionaryTRIPBDescriptorTRIPBEnumDescriptorTRIPBExtensionDescriptorTRIPBInt32BoolDictionaryTRIPBInt64BoolDictionaryTRIPBOneofDescriptorTRIPBStringBoolDictionaryTRIPBUInt32BoolDictionaryTRIPBUInt64BoolDictionaryTSPSaveMeasurementsTTSRegexTTSUnicodeUtilsUAFAssetExpansionUAFAssetSetManagerUAFAutoAssetManagerUAFAutoAssetSetUAFCommonUtilitiesUAFSubscriptionStoreManagerUIFontUINibDecoderUINibEncoderUNLocalizedStringUNSecurityScopedURLUserRegistryDBVNCCCharBoxContextVNCCTextDetectorVNDisallowedListVNEspressoModelClassifierVNFingerprintHash!VNPersonSegmentationGeneratorFast1VNPersonSegmentationGeneratorInstanceBased4People+VNPersonSegmentationGeneratorLearnedMatting0VNPersonSegmentationGeneratorLearnedMattingTiled&VNPersonSegmentationGeneratorSemanticsVNSegmentationGeneratorVNSmartCamClassifierVNValidationUtilitiesVisionCoreMetalContextWiFiAwareDiscoveryResultWiFiP2PXPCConnectiongeo_isolatergeo_reentrant_isolater)CWInterface2twoGHzChainDisabledAndReturnReassocRequired_error_)IOBluetoothDevice.getRemoteVersionInfo_lmpVersion_lmpSubversion_)IOBluetoothHandsFreeprocessIncomingData_length_) IOBluetoothHandsFreeAudioGatewayr  )IOBluetoothHandsFreeDevicer  )r  saveToFile_bufferSize_)IOBluetoothHostController+getPropertyObjectFromIOServiceNamed_forKey_)r  >readVerboseConfigVersionInfo_outTargetID_outBaseline_outBuild_)NSFileProviderManager>checkDomainsCanBeStored_onVolumeAtURL_unsupportedReason_error_)TKSmartCard>buildIns_p1_p2_data_range_le_protocol_chained_extended_realLe_c                 :    t        | dd       }|yt        |d      S )N__getattr__F_pyobjc_parents)r   r   )r  getters     r   is_pyobjc_lazyz=TestCase.assertCallableMetadataIsSane.<locals>.is_pyobjc_lazy  s&    V]D9F~6#455r
   r  c              3      K   | ]9  }|j                   j                  d       sd|j                   vr|j                    ; yw)_r   N)r   r   r   s     r   rb   z8TestCase.assertCallableMetadataIsSane.<locals>.<genexpr>  s9       2C//43cll;R 2s   ?AT_pyobjc_funcmapr:   Objectr  r  c              3   @   K   | ]  }j                  |        y wr   r  )r`   r  	attr_names     r   rb   z8TestCase.assertCallableMetadataIsSane.<locals>.<genexpr>  s%      Q'@ &005'@r  )	BluetoothBroadcom)	classnameinstance_method)r  )rQ   )#subTestr  rW   modulesr  r   dir
FoundationImportErroraddr   extendr   getClassListrP  r  pop__dict__keyssortedr  AttributeErrorr   r   autorelease_poolr   pyobjc_instanceMethodsitemsr   r   r   r  pyobjc_classMethodsrQ   r  )r   r  r  r  r  exclude_namesr  exclude_method_namesr  r  module_namestodoparent_idxnmr<   instanceMethodDictattrr  s                     @r   assertCallableMetadataIsSanez%TestCase.assertCallableMetadataIsSane5  s    \\9:**62 ; &t||+!$'F$4M%$'J$8M *-  EM 
 M*9:23PQR	
 	N	
 	QRPQ	
 		
 		
 		
 		
 	4501 	;<;<>?7845>?7845-.8989 	23+,*%,-/*/0-.125601/0:;/*1267,-@A*+/023*%9:-.+,,'/*<=9:;<56-.*+-(AB+,@A:;45=>6723,-7878459:-.+,*++,)$/0*%-.12/08912:;*+*+?@FG=>34*+/*/*/*/*+,*+-.34+,(#/*.)+&.)/023+,)$12BC,--.23./34(#2301-./*.//0+&,'/00156+,:;-(01/*0145*+./126701/067*+*+*+?@,'/*56?@:;<=235678./89.)(#/*12,-./.)./.)-./001/*/*/0*+0178/*.)8912@A783434+,89453401+,+,/0/0,-12*%,--.2356-(-(,-'"/*(#67.)4501+&,-+&?@34./45=>,-+,-.*+.)8901+&-.23=>,-78125623*%011267*+345634454545565656+,/045454501565656/0*%+,-..//0+,./78(#.).)-./0*+./,-,-56-.=>MNGHLMBC340112234501.)23Q	
 	S	
 	QRO	
 	WXRSX	
 		
 		
 		
	6 &!V]D9FL  ,,T2  
 0A4 H NBO../D!&)$V]DAF ''8I4(P(VTVWKK 6 6 <"= ''(<(<(>? !''F4  "#l"34L "#c&k"23L!,/HD"]"]"+ %1**,~~1 !	 -,
 */)E)E)N)N&+=+C+C+E	4$(<<$	?m;$$//4$ >>-HHS Q'@Q N %!\\B	\R)$> $ > >$($&BO>O !? !" SR ,F. ,1+D+D+M+M+S+S+U	4$(<<$	?m;$$//4$!\\B	\R#*5+D+DiQU#VD)$> $ > >$($&BO>O !? !" SR ,V; -,\ E4==1\\2\.2259 /.  0F 	++-Y ;:"  & #&B " 0 SR" SRM -,^ /.s   AaA	Aa XAa3YAbY4BAb[:1Ab	\+A'Ab^AAb	_
Ab`Ab*aAaaAa0a/Aa0a3	Ab a?Ab bAbbAbbAbbAbbAb'	b*Ab4	c                 t    t         |   |       t        | |      }t        |dd      rd| _        y d| _        y )N_no_autorelease_poolFT)super__init__r   _skip_usepool)r   
methodName
testMethod	__class__s      r   r  zTestCase.__init__0  s9    $T:.
:5u=!%D!&Dr
   c                    	 t        j                  d      }|j                          t        r/| j
                  s#t        j                         j                         }nd}	 t        j                  j                  | g|i | t        j                          ~t        j                          y# t         j                  $ r Y w xY w# t        j                          ~t        j                          w xY w)z{
        Run the test, same as unittest.TestCase.run, but every test is
        run with a fresh autorelease pool.
        NSApplicationr   N)r   lookUpClasssharedApplicationerror_usepoolr  
_poolclassallocinitrN   r   run_gccollect)r   r   r   r   ps        r   r  zTestCase.run:  s    
	$""?3C !!#D..  "'')AA	""47$7$7KKMKKM zz 		 KKMKKMs   B, #C ,CC+C0r   )NF)runTest)Br   
__module____qualname____doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r"  r-  r0  r5  r8  r<  r>  rB  rE  rJ  rL  rR  rT  rW  rY  r[  r^  rb  rd  rj  rl  ro  rw  r  r  r  r  r  r  r  __classcell__)r  s   @r   r   r   :  si   /
8@.HTEY
*
X$ML&&X
&*$V
B>
TFBTL
J
F
6(T7r$L/b,\*4(4


LLHLH5Q2C$ AFdL (,2y.v'r
   r   c                     | rt         S d S )Nc                     | S r   r:   r   s    r   <lambda>z#expectedFailureIf.<locals>.<lambda>]  s    Dr
   )expectedFailure)	conditions    r   expectedFailureIfr-  Y  s      r
   c                     d| _         | S )NT)r  r)  s    r   no_autorelease_poolr/  `  s     $DKr
   )Cr%  
contextlibgcr  osr(   rer   structr4   sysrW   unittestrN   
subprocessrH   picklery  ri  r   	sysconfigr   r   r   
__unittestenvironr   r  r	   contextmanagerr   r2   r7   r=   r@   rB   rD   rG   r&   rS   r[   re   ri   rp   rs   rw   ry   r}   r  r  r#   r  r   r  _C_LNG
_C_LNG_LNG_C_ULNG_C_ULNG_LNGr   r   r   mainr+  rO   SkipTestr-  r/  r:   r
   r   <module>rC     s|              7 
 
 {{677 . .  <&"	 &$ (  $ T12
 W!2!2!24!8WW	
"kk
4?? #||
4 Vy!! Vr0 ~~++!!
!r
   