
    0hh3                     D   S SK r S SKrS SKJr   " S S\ R                  5      r " S S\ R                  5      r " S S\5      r " S	 S
\5      r	\" SS9r
\" \
4S9r " S S5      r " S S\5      r " S S\ R                  5      rS r\S:X  a  \ R"                  " 5         gg)    N)supportc                   2    \ rS rSrS rS rS rS rS rSr	g)	TestIsInstanceExceptions   c                      " S S[         5      n " S S[         5      nU R                  S[        U" 5       U" 5       5      5        g )Nc                   *    \ rS rSrS r\" \5      rSrg);TestIsInstanceExceptions.test_class_has_no_bases.<locals>.I   c                     g N selfs    =/opt/python-3.13.8/usr/lib/python3.13/test/test_isinstance.pygetclassDTestIsInstanceExceptions.test_class_has_no_bases.<locals>.I.getclass   s        r   N__name__
__module____qualname____firstlineno__r   property	__class____static_attributes__r   r   r   Ir	      s     !*Ir   r   c                   *    \ rS rSrS r\" \5      rSrg);TestIsInstanceExceptions.test_class_has_no_bases.<locals>.C!   c                     gNr   r   r   s    r   getbasesDTestIsInstanceExceptions.test_class_has_no_bases.<locals>.C.getbases"       r   r   Nr   r   r   r   r"   r   	__bases__r   r   r   r   Cr   !        *Ir   r'   F)objectassertEqual
isinstancer   r   r'   s      r   test_class_has_no_bases0TestIsInstanceExceptions.test_class_has_no_bases   s7    	+ 	+	+ 	+
 	
13 45r   c                    ^  " S S[         5      m " U4S jS[         5      n " S S[         5      nU R                  [        [        U" 5       U" 5       5        g )Nc                   *    \ rS rSrS r\" \5      rSrg)PTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.E+   c                     [         er   RuntimeErrorr   s    r   r"   YTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.E.getbases,       ""r   r   Nr%   r   r   r   Er1   +       # *Ir   r8   c                   2   > \ rS rSrU 4S jr\" \5      rSrg)PTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.I0   c                    > T" 5       $ r   r   )r   r8   s    r   r   YTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.I.getclass1   s
    s
r   r   Nr   )r8   s   r   r   r;   0   s     *Ir   r   c                   *    \ rS rSrS r\" \5      rSrg)PTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.C5   c                     gr!   r   r   s    r   r"   YTestIsInstanceExceptions.test_bases_raises_other_than_attribute_error.<locals>.C.getbases6   r$   r   r   Nr%   r   r   r   r'   r@   5   r(   r   r'   r)   assertRaisesr5   r+   )r   r   r'   r8   s      @r   ,test_bases_raises_other_than_attribute_errorETestIsInstanceExceptions.test_bases_raises_other_than_attribute_error*   sA    	+ 	+
	+ 	+
	+ 	+
 	,
AC=r   c                      " S S5      n " S S[         5      nU R                  [        [        U" 5       U" 5       5        g )Nc                       \ rS rSrSrg)FTestIsInstanceExceptions.test_dont_mask_non_attribute_error.<locals>.I?   r   Nr   r   r   r   r   r   r   r   r   rJ   ?       r   r   c                   *    \ rS rSrS r\" \5      rSrg)FTestIsInstanceExceptions.test_dont_mask_non_attribute_error.<locals>.CA   c                     [         er   r4   r   s    r   r"   OTestIsInstanceExceptions.test_dont_mask_non_attribute_error.<locals>.C.getbasesB   r7   r   r   Nr%   r   r   r   r'   rO   A   r9   r   r'   rD   r,   s      r   "test_dont_mask_non_attribute_error;TestIsInstanceExceptions.test_dont_mask_non_attribute_error>   s-    	+ 	+
 	,
AC=r   c                      " S S5      n " S S[         5      nU R                  [        [        U" 5       U" 5       5        g )Nc                       \ rS rSrSrg)=TestIsInstanceExceptions.test_mask_attribute_error.<locals>.IK   r   NrL   r   r   r   r   rW   K   rM   r   r   c                   *    \ rS rSrS r\" \5      rSrg)=TestIsInstanceExceptions.test_mask_attribute_error.<locals>.CM   c                     [         er   AttributeErrorr   s    r   r"   FTestIsInstanceExceptions.test_mask_attribute_error.<locals>.C.getbasesN       $$r   r   Nr%   r   r   r   r'   rZ   M       % *Ir   r'   )r)   rE   	TypeErrorr+   r,   s      r   test_mask_attribute_error2TestIsInstanceExceptions.test_mask_attribute_errorJ   s-    	+ 	+
 	)Zac:r   c                      " S S[         5      nU" 5       nU R                  [        [        U[        5         " S S5      nU R                  [        [        X#5        g )Nc                   *    \ rS rSrS r\" \5      rSrg)QTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error.<locals>.CW   c                     [         er   r4   r   s    r   r   ZTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error.<locals>.C.getclassX   r7   r   r   Nr   r   r   r   r'   rg   W   r9   r   r'   c                       \ rS rSrSrg)QTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_error.<locals>.D`   r   NrL   r   r   r   Drl   `   rM   r   rn   )r)   rE   r5   r+   bool)r   r'   crn   s       r   -test_isinstance_dont_mask_non_attribute_errorFTestIsInstanceExceptions.test_isinstance_dont_mask_non_attribute_errorV   sD    	+ 	+
 C,
At< 	,
A9r   r   N)
r   r   r   r   r-   rF   rS   rc   rq   r   r   r   r   r   r      s    6 >(>;:r   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestIsSubclassExceptionsg   c                      " S S[         5      n " S SU5      nU R                  [        [        U" 5       U" 5       5        g )Nc                   *    \ rS rSrS r\" \5      rSrg)FTestIsSubclassExceptions.test_dont_mask_non_attribute_error.<locals>.Ci   c                     [         er   r4   r   s    r   r"   OTestIsSubclassExceptions.test_dont_mask_non_attribute_error.<locals>.C.getbasesj   r7   r   r   Nr%   r   r   r   r'   rx   i   r9   r   r'   c                       \ rS rSrSrg)FTestIsSubclassExceptions.test_dont_mask_non_attribute_error.<locals>.Sn   r   NrL   r   r   r   Sr}   n       Dr   r   r)   rE   r5   
issubclassr   r'   r   s      r   rS   ;TestIsSubclassExceptions.test_dont_mask_non_attribute_errorh   s0    	+ 	+
 	,
AC=r   c                      " S S[         5      n " S SU5      nU R                  [        [        U" 5       U" 5       5        g )Nc                   *    \ rS rSrS r\" \5      rSrg)=TestIsSubclassExceptions.test_mask_attribute_error.<locals>.Cs   c                     [         er   r]   r   s    r   r"   FTestIsSubclassExceptions.test_mask_attribute_error.<locals>.C.getbasest   r`   r   r   Nr%   r   r   r   r'   r   s   ra   r   r'   c                       \ rS rSrSrg)=TestIsSubclassExceptions.test_mask_attribute_error.<locals>.Sx   r   NrL   r   r   r   r   r   x   r   r   r   r)   rE   rb   r   r   s      r   rc   2TestIsSubclassExceptions.test_mask_attribute_errorr   s0    	+ 	+
 	)Zac:r   c                 v     " S S5      n " S S[         5      nU R                  [        [        X" 5       5        g )Nc                       \ rS rSrSrg)QTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg.<locals>.B   r   NrL   r   r   r   Br      rM   r   r   c                   *    \ rS rSrS r\" \5      rSrg)QTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg.<locals>.C   c                     [         er   r4   r   s    r   r"   ZTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg.<locals>.C.getbases   r7   r   r   Nr%   r   r   r   r'   r      r9   r   r'   r   r   r   r'   s      r   -test_dont_mask_non_attribute_error_in_cls_argFTestIsSubclassExceptions.test_dont_mask_non_attribute_error_in_cls_arg   s+    	+ 	+
 	,
Aqs;r   c                 v     " S S5      n " S S[         5      nU R                  [        [        X" 5       5        g )Nc                       \ rS rSrSrg)HTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg.<locals>.B   r   NrL   r   r   r   r   r      rM   r   r   c                   *    \ rS rSrS r\" \5      rSrg)HTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg.<locals>.C   c                     [         er   r]   r   s    r   r"   QTestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg.<locals>.C.getbases   r`   r   r   Nr%   r   r   r   r'   r      ra   r   r'   r   r   s      r   $test_mask_attribute_error_in_cls_arg=TestIsSubclassExceptions.test_mask_attribute_error_in_cls_arg   s+    	+ 	+
 	)ZAC8r   r   N)	r   r   r   r   rS   rc   r   r   r   r   r   r   rt   rt   g   s    >;<9r   rt   c                   6    \ rS rSrS rS r\" \5      rS rSr	g)AbstractClass   c                     Xl         g r   bases)r   r   s     r   __init__AbstractClass.__init__       
r   c                     U R                   $ r   r   r   s    r   r"   AbstractClass.getbases       zzr   c                     [        U 5      $ r   )AbstractInstancer   s    r   __call__AbstractClass.__call__   s    %%r   r   N)
r   r   r   r   r   r"   r   r&   r   r   r   r   r   r   r      s    "I&r   r   c                   0    \ rS rSrS rS r\" \5      rSrg)r      c                     Xl         g r   klass)r   r   s     r   r   AbstractInstance.__init__   r   r   c                     U R                   $ r   r   r   s    r   r   AbstractInstance.getclass   r   r   r   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    "Ir   r   r   r   c                       \ rS rSrSrg)Super   r   NrL   r   r   r   r   r          r   r   c                       \ rS rSrSrg)Child   r   NrL   r   r   r   r   r      r   r   r   c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)TestIsInstanceIsSubclass   c                    U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [
        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        g NTF)r*   r+   r   r   AbstractSuperAbstractChildr   s    r   test_isinstance_normal/TestIsInstanceIsSubclass.test_isinstance_normal   s    z%'59:
57E :;
57M BC
57M BCz%'59:
57M BCr   c                    U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [
        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [        5      5        U R                  S[        [        5       [
        5      5        g r   )r*   r+   r   r   r   r   r   s    r   test_isinstance_abstract1TestIsInstanceIsSubclass.test_isinstance_abstract   s    z-/=IJ
=?M JK
=?E BC
=?E BCz-/=IJz-/=IJ
=?E BC
=?E BCr   c                    U R                  [        [        5       [        [        -  5      5        U R	                  [        S [
        [        -  5      5        U R                  [        S[
        [        -  5      5        U R                  [        S[
        [        -  5      5        U R                  [        / [        R                  [        R                  -  5      5        U R                  [        S[        R                  [        -  5      5        U R	                  [        S[        R                  [        R                  -  5      5        U R                  [        S [        S -  5      5        U R	                  [        S[        [
        -  5      5        U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        S[        [           [        -  5        S S S 5        U R                  [        5         [        S[        [
        -  [        [           -  [        -  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nj= f! , (       d  f       g = f)N       gQ	@)
assertTruer+   r   intassertFalsestrtypingListTuplerE   rb   listfloatr   s    r   test_isinstance_with_or_union6TestIsInstanceIsSubclass.test_isinstance_with_or_union   s   
57ECK89D#)45
1cCi01
2sSy12
2v{{V\\'ABC
1fkkC&789Av{{V\\'ABC
4t45D#)45y)q$s)$ *y)q$s)c/* *y)q%#+S	1C78 *)	 *)))))s$   "I	I-I+	
I
I(+
I9c                    U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  [        [        R                  [        R                  [        R                  -  5      5        U R                  [        [        [        R                  [        R                  -  5      5        g r   )r*   r   r   r   r   r   r   r   r   r   r   r   s    r   test_subclass_normal-TestIsInstanceIsSubclass.test_subclass_normal   s    z%78
5- @A
5% 89z%78z%78
5- @A
6;;FLL0HIJCV\\)ABCr   c                    U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [        5      5        U R                  S[        [        [
        5      5        U R                  S[        [        [        5      5        g r   )r*   r   r   r   r   r   r   s    r   test_subclass_abstract/TestIsInstanceIsSubclass.test_subclass_abstract   s    z-GH
=- HI
=% @Az-GHz-GH
=% @A
=% @Ar   c           	         U R                  S[        [        [        45      5        U R                  S[        [        [        45      5        U R                  S[        [        [        45      5        U R                  S[        [        [        [        45      5        U R                  S[        [        S5      5        U R                  S[        [        [        [        445      5        U R                  S[        [        [        [
        [        445      5        U R                  S[        [        [        [        [        445      5        g )NTFr   )r*   r   r   r   r   r   r   r   s    r   test_subclass_tuple,TestIsInstanceIsSubclass.test_subclass_tuple   s    z%%:;z%%:;
55( ;<z%%@A
5" 56z%%%1BCDz#eS\/BCDz#eS\/BCDr   c                     [         R                  " 5          U R                  [        [        [
        [        [        5        S S S 5        g ! , (       d  f       g = fr   )r   infinite_recursionrE   RecursionError	blowstackr   r   r   s    r   test_subclass_recursion_limit6TestIsInstanceIsSubclass.test_subclass_recursion_limit
  s2     '')niS#N *))s   *A		
Ac                     [         R                  " 5          U R                  [        [        [
        S[        5        S S S 5        g ! , (       d  f       g = f)Nr   )r   r   rE   r   r   r+   r   r   s    r   test_isinstance_recursion_limit8TestIsInstanceIsSubclass.test_isinstance_recursion_limit  s2     '')niRM *))s   &A
Ac                    U R                  [        [        [        [        -  [        -  5      5        U R                  [        [        [        [
        -  [        -  5      5        U R                  [        [        [        [        -  5      5        U R                  [        [        [        [        -  5      5        U R                  [        5         [        S[
        [        -  5        S S S 5        U R                  [        5         [        [        [        [           [
        -  5        S S S 5        g ! , (       d  f       NO= f! , (       d  f       g = f)Nr   )r   r   r   r   r   r   r   dictr)   rE   rb   r   r   r   s    r   test_subclass_with_union1TestIsInstanceIsSubclass.test_subclass_with_union  s    
3ec(9:;
3ec(9:;D%)45FE#I67y)q%%-( *y)sDI-. *) *)))s   D-#D>-
D;>
Ec                 ~   ^  " S S5      m " U4S jS5      nU R                  S[        U" 5       [        5      5        g )Nc                   $    \ rS rSr\S 5       rSrg)ETestIsInstanceIsSubclass.test_issubclass_refcount_handling.<locals>.Ai#  c                     [         4$ r   )r   r   s    r   r&   OTestIsInstanceIsSubclass.test_issubclass_refcount_handling.<locals>.A.__bases__$  s	    wr   r   Nr   r   r   r   r   r&   r   r   r   r   Ar   #  s     r   r   c                   2   > \ rS rSrS r\U 4S j5       rSrg)ETestIsInstanceIsSubclass.test_issubclass_refcount_handling.<locals>.Bi(  c                     SU l         g )N   xr   s    r   r   NTestIsInstanceIsSubclass.test_issubclass_refcount_handling.<locals>.B.__init__)  s     r   c                    > T" 5       4$ r   r   )r   r   s    r   r&   OTestIsInstanceIsSubclass.test_issubclass_refcount_handling.<locals>.B.__bases__.  s    wr   r  N)r   r   r   r   r   r   r&   r   )r   s   r   r   r   (  s    
  r   r   T)r*   r   r   )r   r   r   s     @r   !test_issubclass_refcount_handling:TestIsInstanceIsSubclass.test_issubclass_refcount_handling   s2    	 	
	 	 	z!#s34r   c                 N    " S S5      n[         R                  " S5         U R                  [        [        U" 5       [
        5        U R                  [        [        [
        U" 5       5        U R                  [        [        SU" 5       5        S S S 5        g ! , (       d  f       g = f)Nc                   $    \ rS rSr\S 5       rSrg)DTestIsInstanceIsSubclass.test_infinite_recursion_in_bases.<locals>.Xi5  c                     U R                   $ r   )r&   r   s    r   r&   NTestIsInstanceIsSubclass.test_infinite_recursion_in_bases.<locals>.X.__bases__6  s    ~~%r   r   Nr   r   r   r   Xr  5  s    & &r   r     r  )r   r   rE   r   r   r   r+   r   r  s     r    test_infinite_recursion_in_bases9TestIsInstanceIsSubclass.test_infinite_recursion_in_bases4  sj    	& 	& ''+nj!#sCnj#qsCnj!QSA ,++s   A,B
B$c                     " S S[         5      n[        R                  " 5          U R                  [        5         [        U" 5       [        5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)Regression test for bpo-30570.c                       \ rS rSrS rSrg)QTestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuple.<locals>.Failurei@  c                 
    U S 4$ r   r   )r   attrs     r   __getattr__]TestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuple.<locals>.Failure.__getattr__A  s    d|#r   r   Nr   r   r   r   r  r   r   r   r   Failurer  @  s    $r   r  N)r)   r   r   rE   r   r   r   )r   r  s     r   'test_infinite_recursion_via_bases_tuple@TestIsInstanceIsSubclass.test_infinite_recursion_via_bases_tuple>  sS    	$f 	$ '')"">279c* 3 *)22 *)s"   A3A"A3"
A0	,A33
Bc                      " S S5      n[         R                  " 5          U R                  [        [        U" 5       [
        5        SSS5        g! , (       d  f       g= f)r  c                   $    \ rS rSr\S 5       rSrg)@TestIsInstanceIsSubclass.test_infinite_cycle_in_bases.<locals>.XiI  c                 
    X U 4$ r   r   r   s    r   r&   JTestIsInstanceIsSubclass.test_infinite_cycle_in_bases.<locals>.X.__bases__J  s    D))r   r   Nr   r   r   r   r  r"  I  s    * *r   r  Nr   r   rE   r   r   r   r  s     r   test_infinite_cycle_in_bases5TestIsInstanceIsSubclass.test_infinite_cycle_in_basesG  s<    	* 	* '')nj!#sC *))s   &A
Ac                    ^  " U4S jS5      m[         R                  " S5         U R                  [        [        T" 5       [
        5        SSS5        g! , (       d  f       g= f)r  c                   "   > \ rS rSrU 4S jrSrg)>TestIsInstanceIsSubclass.test_infinitely_many_bases.<locals>.XiR  c                    > U R                  US5         " S S5      n " S S5      nTR                  =Ul        Ul        U" 5       U" 5       4$ )Nr&   c                       \ rS rSrSrg)UTestIsInstanceIsSubclass.test_infinitely_many_bases.<locals>.X.__getattr__.<locals>.AiU  r   NrL   r   r   r   r   r-  U      r   r   c                       \ rS rSrSrg)UTestIsInstanceIsSubclass.test_infinitely_many_bases.<locals>.X.__getattr__.<locals>.BiW  r   NrL   r   r   r   r   r0  W  r.  r   r   )r*   r  )r   r  r   r   r  s       r   r  JTestIsInstanceIsSubclass.test_infinitely_many_bases.<locals>.X.__getattr__S  sG      {3  01=QSz!r   r   Nr  )r  s   r   r  r*  R  s    " "r   r  r  Nr%  r  s    @r   test_infinitely_many_bases3TestIsInstanceIsSubclass.test_infinitely_many_basesP  s?    	" 	" ''+nj!#sC ,++s   &A
A"r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  r2  r   r   r   r   r   r      sR    D
D9&
D	B
EON/5(B+DDr   r   c                 j    U4n[        [        R                  " 5       5       H  nU4nU " X5        M     g r   )ranger   exceeds_recursion_limit)fxnarg
compare_to	tuple_argcnts        r   r   r   _  s2     IW4467L	C 8r   __main__)unittestr   testr   TestCaser   rt   r)   r   r   r   r   r   r   r   r   r   mainr   r   r   <module>rA     s   
   V:x00 V:x+9x00 +9`	&F 	&#v # B']$45	 		E 	fDx00 fDR zMMO r   