
    /hhB_                         S SK r S SKrS SKrS SKJr  S r\" \R                  \R                  5      u  rr	r
\" \R                  \R                  5      u  rrr\S:X  a  \ R                  " 5         gg)    N)
isabstractc                    ^ ^  " U 4S jS[         R                  5      n " U U4S jS[         R                  5      n " U 4S jS[         R                  5      nX#U4$ )Nc                   :   > \ rS rSrU 4S jrU 4S jrU 4S jrSrg)#test_factory.<locals>.TestLegacyAPI   c                   > [         R                  S 5       nU R                  UR                  5        S nU R	                  [        US5      5         " S STS9nU R                  [        U5         " S SU5      nU R                  U" 5       R                  S	5        U R	                  [        UR                  SS
5      5        g )Nc                     g N selfs    6/opt/python-3.13.8/usr/lib/python3.13/test/test_abc.pyfooMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.foo           c                     g r
   r   r   s    r   barMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.bar       4r   __isabstractmethod__c                   8    \ rS rSr\R
                  S 5       rSrg)Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.C   c                     gN   r   r   s    r   r   Otest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.C.foo   s    &'r   r   N)__name__
__module____qualname____firstlineno__abcabstractpropertyr   __static_attributes__r   r   r   Cr      s    %%' &'r   r&   	metaclassc                   2   ^  \ rS rSr\U 4S j5       rSrU =r$ )Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.D   c                    > [         TU ]  $ r
   superr   r   	__class__s    r   r   Otest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.D.foo       &+gk1r   r   )r   r    r!   r"   propertyr   r%   __classcell__r0   s   @r   Dr*      s    1 1r   r6   r   F)r#   r$   
assertTruer   assertFalsehasattrassertRaises	TypeErrorassertEqualr   getattrr   r   r   r&   r6   abc_ABCMetas        r   test_abstractproperty_basics@test_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics   s    !! "OOC445WS*@AB(k ( i+2A 2 QSWWa(WQUU,BEJKr   c                   > [         R                  S 5       nU R                  UR                  5        [        S 5       nU R                  [        USS5      5         " S STS9nU R                  [        U5         " S S	U5      nU R                  UR                  5       S	5        U R                  U" 5       R                  5       S	5        g )
Nc                     g r
   r   clss    r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.foo$       r   c                     g r
   r   rD   s    r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.bar'   rG   r   r   Fc                   8    \ rS rSr\R
                  S 5       rSrg)Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.C+   c                     U R                   $ r
   r   rD   s    r   r   Rtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.C.foo,   s    %(\\1r   r   N)r   r    r!   r"   r#   abstractclassmethodr   r%   r   r   r   r&   rK   +   s    ((1 )1r   r&   r'   c                   2   ^  \ rS rSr\U 4S j5       rSrU =r$ )Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.D/   c                     > [         TU ]  5       $ r
   r-   rE   r0   s    r   r   Rtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.D.foo0       %*W[]2r   r   r   r    r!   r"   classmethodr   r%   r4   r5   s   @r   r6   rR   /       2 2r   r6   )r#   rP   r7   r   rY   r8   r=   r:   r;   r<   r   r>   s        r   test_abstractclassmethod_basicsCtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics#   s    $$ %OOC445 WS*@%HI2k 2 i+3A 3 QUUWc*QSWWY,r   c                   > [         R                  S 5       nU R                  UR                  5        [        S 5       nU R                  [        USS5      5         " S STS9nU R                  [        U5         " S S	U5      nU R                  UR                  5       S
5        U R                  U" 5       R                  5       S
5        g )Nc                      g r
   r   r   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.foo6       r   c                      g r
   r   r   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.bar9   r`   r   r   Fc                   8    \ rS rSr\R
                  S 5       rSrg)Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.C=   c                      gr   r   r   r   r   r   Stest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.C.foo>       "#r   r   N)r   r    r!   r"   r#   abstractstaticmethodr   r%   r   r   r   r&   rd   =   s    ))# *#r   r&   r'   c                   $    \ rS rSr\S 5       rSrg)Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.DA   c                      gN   r   r   r   r   r   Stest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.D.fooB   rh   r   r   Nr   r    r!   r"   staticmethodr   r%   r   r   r   r6   rk   A       # #r   r6   ro   )r#   ri   r7   r   rr   r8   r=   r:   r;   r<   r   r>   s        r    test_abstractstaticmethod_basicsDtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics5   s    %% &OOC445 WS*@%HI$k $ i+$A $ QUUWa(QSWWY*r   r   N)r   r    r!   r"   r@   r[   rt   r%   r?   s   r   TestLegacyAPIr      s    	L"	-$	+ 	+r   rw   c                   n  > \ rS rSrS rS rU 4S jrU 4S jrU 4S jrU 4S jr	U 4S jr
U 4S	 jrU 4S
 jrU 4S jrU 4S jrU 4S jrU 4S jrU U4S jrU 4S jrU 4S jrU 4S jrU 4S jrU 4S jrS rU 4S jrS rU 4S jrU 4S jrU 4S jrU 4S jrU 4S jrS rU 4S jr U 4S jr!U 4S  jr"S!r#g")#test_factory.<locals>.TestABCH   c                 
    " S S[         R                  5      nU R                  [        U5      [         R                  5        U R                  [        U5         " S SU5      nU R                  UR                  5       S5        g )Nc                   B    \ rS rSr\\R                  S 5       5       rSrg)8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.CL   c                     U R                   $ r
   rN   rD   s    r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.C.fooM       %(\\1r   r   N	r   r    r!   r"   rY   r#   abstractmethodr   r%   r   r   r   r&   r}   L       ##1 $ 1r   r&   c                   2   ^  \ rS rSr\U 4S j5       rSrU =r$ )8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.DR   c                     > [         TU ]  5       $ r
   r-   rU   s    r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.D.fooS   rW   r   r   rX   r5   s   @r   r6   r   R   rZ   r   r6   )r#   ABCr<   typeABCMetar:   r;   r   )r   r&   r6   s      r   test_ABC_helper-test_factory.<locals>.TestABC.test_ABC_helperJ   s`    2CGG 2 T!Wckk2i+3A 3 QUUWc*r   c                     [         R                  S 5       nU R                  UR                  5        S nU R	                  [        US5      5        g )Nc                     g r
   r   r   s    r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.fooX   r   r   c                     g r
   r   r   s    r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.bar[   r   r   r   )r#   r   r7   r   r8   r9   )r   r   r   s      r   test_abstractmethod_basics8test_factory.<locals>.TestABC.test_abstractmethod_basicsW   sA      OOC445WS*@ABr   c                 V  >^ [         [        R                  S 5       5       nU R                  UR                  5        S nU R                  [        USS5      5         " S STS9mU R                  [        T5         " U4S jS	T5      nU R                  U" 5       R                  S
5        g )Nc                     g r
   r   r   s    r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.foo_   s    r   c                     g r
   r   r   s    r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.barc   r   r   r   Fc                   B    \ rS rSr\\R                  S 5       5       rSrg)Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Cf   c                     gr   r   r   s    r   r   Itest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.C.foog       &'r   r   N)	r   r    r!   r"   r3   r#   r   r   r%   r   r   r   r&   r   f   s    ##' $ 'r   r&   r'   c                   ^   >^  \ rS rSr YR                  R
                  U 4S j5       rSrU =r$ )Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Dk   c                    > [         TU ]  $ r
   r-   r/   s    r   r   Itest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.D.fool   r2   r   r   r   r    r!   r"   r   getterr%   r4   r0   r&   s   @r   r6   r   k       1 1r   r6   r   )r3   r#   r   r7   r   r8   r=   r:   r;   r<   r   )r   r   r   r6   r&   r?   s       @r   r@   :test_factory.<locals>.TestABC.test_abstractproperty_basics^   s       OOC445WS*@%HI(k ( i+2A 2 QSWWa(r   c                   > [         [        R                  S 5       5       nU R                  UR                  5        [         S 5       nU R                  [        USS5      5         " S STS9nU R                  [        U5         " S S	U5      nU R                  UR                  5       S	5        U R                  U" 5       R                  5       S	5        g )
Nc                     g r
   r   rD   s    r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.fooq   s    r   c                     g r
   r   rD   s    r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.baru   rG   r   r   Fc                   B    \ rS rSr\\R                  S 5       5       rSrg)Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Cy   c                     U R                   $ r
   rN   rD   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.C.fooz   r   r   r   Nr   r   r   r   r&   r   y   r   r   r&   r'   c                   2   ^  \ rS rSr\U 4S j5       rSrU =r$ )Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.D~   c                     > [         TU ]  5       $ r
   r-   rU   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.D.foo   rW   r   r   rX   r5   s   @r   r6   r   ~   rZ   r   r6   )rY   r#   r   r7   r   r8   r=   r:   r;   r<   r   r>   s        r   r[   =test_factory.<locals>.TestABC.test_abstractclassmethod_basicsp   s       OOC445 WS*@%HI2k 2 i+3A 3 QUUWc*QSWWY,r   c                   > [         [        R                  S 5       5       nU R                  UR                  5        [         S 5       nU R                  [        USS5      5         " S STS9nU R                  [        U5         " S S	U5      nU R                  UR                  5       S
5        U R                  U" 5       R                  5       S
5        g )Nc                      g r
   r   r   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.foo   s    r   c                      g r
   r   r   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.bar   r`   r   r   Fc                   B    \ rS rSr\\R                  S 5       5       rSrg)Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.C   c                      gr   r   r   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.C.foo   s    "#r   r   N)	r   r    r!   r"   rr   r#   r   r   r%   r   r   r   r&   r      s    ### $ #r   r&   r'   c                   $    \ rS rSr\S 5       rSrg)Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.D   c                      grn   r   r   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.D.foo   rh   r   r   Nrq   r   r   r   r6   r      rs   r   r6   ro   )rr   r#   r   r7   r   r8   r=   r:   r;   r<   r   r>   s        r   rt   >test_factory.<locals>.TestABC.test_abstractstaticmethod_basics   s       OOC445 WS*@%HI$k $ i+$A $ QUUWa(QSWWY*r   c                 H   >  " S STS9nSnU R                  [        X!5        g )Nc                   8    \ rS rSr\R
                  S 5       rSrg)Ptest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.C   c                     g r
   r   r   s    r   
method_one[test_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.C.method_one       r   r   N)r   r    r!   r"   r#   r   r   r%   r   r   r   r&   r          ## $r   r&   r'   zBclass C without an implementation for abstract method 'method_one'assertRaisesRegexr;   r   r&   msgr?   s      r   'test_object_new_with_one_abstractmethodEtest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod   s'    k  XC""9c5r   c                 H   >  " S STS9nSnU R                  [        X!5        g )Nc                   \    \ rS rSr\R
                  S 5       r\R
                  S 5       rSrg)Rtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C   c                     g r
   r   r   s    r   r   ]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_one   r   r   c                     g r
   r   r   s    r   
method_two]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_two   r   r   r   N)	r   r    r!   r"   r#   r   r   r   r%   r   r   r   r&   r      s2    ## $## $r   r&   r'   zQclass C without an implementation for abstract methods 'method_one', 'method_two'r   r   s      r   )test_object_new_with_many_abstractmethodsGtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods   s'    k  gC""9c5r   c                 N  >^ [         R                  [         R                  [         R                  [         R                  4 GH`  m " U4S jSTS9nU R                  UR                  S15        U R                  [        U5        U R                  [        U5      5         " S SU5      nU R                  UR                  S15        U R                  [        U5        U R                  [        U5      5         " S SU5      nU R                  UR                  [        5       5        U" 5         U R                  [        U5      5         " U4S	 jS
U5      nU R                  UR                  S15        U R                  [        U5        U R                  [        U5      5        GMc     g )Nc                   .   > \ rS rSr Y S 5       rS rSrg)Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C   c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.foo       #'r   c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.bar       4r   r   N)r   r    r!   r"   r   r   r%   abstractthings   r   r&   r      s    "' #''r   r&   r'   r   c                       \ rS rSrS rSrg)Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.D   c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.D.bar   r   r   r   Nr   r    r!   r"   r   r%   r   r   r   r6   r          'r   r6   c                       \ rS rSrS rSrg)Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.E   c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.E.foo   r   r   r   Nr   r    r!   r"   r   r%   r   r   r   Er      r   r   r   c                   (   > \ rS rSr Y S 5       rSrg)Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.F   c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.F.bar   r   r   r   Nr   r   s   r   Fr      s    "' #'r   r  r   )r#   r   r$   rP   ri   r<   __abstractmethods__r:   r;   r7   r   setr8   )r   r&   r6   r   r  r   r?   s        @r   test_abstractmethod_integration=test_factory.<locals>.TestABC.test_abstractmethod_integration   s=   "%"4"4c6J6J"%"9"9"%":":"<(+ (   !6!6@!!)Q/
1.( (  !6!6@!!)Q/
1.( (  !6!6>  A/( (   !6!6@!!)Q/
1.3"<r   c                   >^^^  " S STS9mU R                  [        T5         " U4S jST5      mU R                  [        T5         " U4S jST5      nU R                  U" 5       R                  S5         " S	 S
[        5      mU R                  [
        5          " U4S jST5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSr\\R                  S 5       5       r\R                  \R                  S 5       5       rSr	g)Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C   c                     gr   r   r   s    r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C.foo   r   r   c                     g r
   r   r   vals     r   r   r         $(r   r   N)
r   r    r!   r"   r3   r#   r   r   setterr%   r   r   r   r&   r     s>    ##' $ '##( $ (r   r&   r'   c                   ^   >^  \ rS rSr YR                  R
                  U 4S j5       rSrU =r$ )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.D   c                    > [         TU ]  $ r
   r-   r/   s    r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.D.foo   r2   r   r   r   r   s   @r   r6   r     r   r   r6   c                   P   > \ rS rSr Y R                  R
                  S 5       rSrg)Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.E   c                     g r
   r   r  s     r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.E.foo       $(r   r   Nr   r    r!   r"   r   r  r%   r6   s   r   r   r         ( (r   r   r   c                       \ rS rSrS r\rSrg)Stest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBool   c                     [        5       er
   )
ValueErrorr   s    r   __bool__\test_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBool.__bool__   s
    $,&r   r   N)r   r    r!   r"   r'  __len__r%   r   r   r   NotBoolr#     s    '"r   r*  c                   F   > \ rS rSrS r Y " 5       \l        \" \5      rSrg)Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.F   c                     g r
   r   r   s    r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.F.bar   s    r   r   N)	r   r    r!   r"   r   r   r3   r   r%   )r*  s   r   r  r,     s    /6yC,"3-Cr   r  )r:   r;   r<   r   objectr&  )r   r   r  r&   r6   r*  r?   s      @@@r   $test_descriptors_with_abstractmethodBtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod   s    )k ) i+2A 2 i+)A ) QSWWa(#& # "":.( ( /..s   B33
Cc                   >^^^  " U4S jS5      m " U4S jSTS9mU R                  [        T5         " U4S jST5      mU R                  [        T5         " U4S jS	T5      nU R                  UR                  R                  5        g )
Nc                   H   > \ rS rSrSS jrU 4S jrU 4S jr\S 5       rSr	g)	\test_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor   Nc                     Xl         X l        g r
   _fget_fset)r   fgetfsets      r   __init__etest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__init__   s    !%J!%Jr   c                 (   > T" XR                   5      $ r
   r9  r   callable
Descriptors     r   r   ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.getter   s    %h

;;r   c                 *   > T" U R                   U5      $ r
   r@  rA  s     r   r  ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.setter   s    %djj(;;r   c                 l    [        U R                  SS5      =(       d    [        U R                  SS5      $ )Nr   F)r=   r9  r:  r   s    r   r   qtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__isabstractmethod__   s0    #DJJ0FN R&tzz3I5QSr   r8  r
   )
r   r    r!   r"   r=  r   r  r3   r   r%   rC  s   r   rC  r5     s&    &<<S Sr   rC  c                      > \ rS rSr Y \R
                  S 5       5       r\R                  \R
                  S 5       5       rSrg)Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C   c                     gr   r   r   s    r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C.foo   r   r   c                     g r
   r   r  s     r   r   rN     r  r   r   N)	r   r    r!   r"   r#   r   r   r  r%   rI  s   r   r&   rK     s?    ##' $ '##( $ (r   r&   r'   c                   ^   >^  \ rS rSr YR                  R
                  U 4S j5       rSrU =r$ )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.D   c                    > [         TU ]  $ r
   r-   r/   s    r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.D.foo   r2   r   r   r   r   s   @r   r6   rQ     r   r   r6   c                   P   > \ rS rSr Y R                  R
                  S 5       rSrg)Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.E   c                     g r
   r   r  s     r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.E.foo   r  r   r   Nr  r   s   r   r   rV     r!  r   r   )r:   r;   r8   r   r   )r   r   r&   r6   rC  r?   s     @@@r   *test_customdescriptors_with_abstractmethodHtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod   sq    S S)k ) i+2A 2 i+)A ) QUU778r   c                    >  " S STS9nU R                  UR                  S15         " S S[        U5      n " S SUS9ng )	Nc                   8    \ rS rSr\R
                  S 5       rSrg);test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ai  c                     g r
   r   r   s    r   x=test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.A.x  r   r   r   N)r   r    r!   r"   r#   r   r`  r%   r   r   r   Ar^    r   r   rb  r'   r`  c                       \ rS rSrS rSrg)>test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.metai  c                     gN   r   r   s    r   r`  @test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.meta.x  s    r   r   N)r   r    r!   r"   r`  r%   r   r   r   metard    s    r   ri  c                       \ rS rSrSrg);test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ci  r   Nr   r    r!   r"   r%   r   r   r   r&   rk        r   r&   )r<   r  r   )r   rb  ri  r&   r?   s       r   test_metaclass_abc0test_factory.<locals>.TestABC.test_metaclass_abc  sC    k  Q22SE:tQ d r   c                   >  " S STS9n " S S[         5      nU" 5       nU R                  [        X!5      5        U R                  [        X!45      5        U R                  X15        U R                  X145        UR	                  U5      nU R                  [        X!5      5        U R                  [        X!45      5        U R                  X15        U R                  X145        U R                  XB5         " S SU5      nU" 5       nU R                  [        XQ5      5        U R                  [        XQ45      5        U R                  Xa5        U R                  Xa45        g )Nc                       \ rS rSrSrg)Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ai  r   Nrl  r   r   r   rb  rr    rm  r   rb  r'   c                       \ rS rSrSrg)Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Bi  r   Nrl  r   r   r   Brt    rm  r   ru  c                       \ rS rSrSrg)Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ci!  r   Nrl  r   r   r   r&   rw  !  rm  r   r&   )r0  r8   
issubclassassertNotIsInstanceregisterr7   assertIsInstanceassertIs)r   rb  ru  bB1r&   cr?   s          r   test_registration_basics6test_factory.<locals>.TestABC.test_registration_basics  s   k F AZ-.Z401$$Q*$$Q-ABOOJq,-OOJq$/0!!!'!!!T*MM" A AOOJq,-OOJq$/0!!!'!!!T*r   c                 D  >  " S STS9nUR                    " S S[        5      5       nU" 5       nU R                  [        X!5      5        U R                  [        X!45      5        U R	                  X15        U R	                  X145        UR                    " S SU5      5       nU" 5       nU R                  [        XA5      5        U R                  [        XA45      5        U R	                  XQ5        U R	                  XQ45        U R                  XAR                  U5      5        g )Nc                       \ rS rSrSrg)Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ai*  r   Nrl  r   r   r   rb  r  *  rm  r   rb  r'   c                       \ rS rSrSrg)Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Bi,  r   Nrl  r   r   r   ru  r  ,      r   ru  c                       \ rS rSrSrg)Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ci4  r   Nrl  r   r   r   r&   r  4  r  r   r&   )rz  r0  r7   rx  r{  r|  )r   rb  ru  r}  r&   r  r?   s         r   test_register_as_class_deco9test_factory.<locals>.TestABC.test_register_as_class_deco)  s    k ZZF  AOOJq,-OOJq$/0!!!'!!!T*ZZA  AOOJq,-OOJq$/0!!!'!!!T*MM!ZZ]+r   c                 n  >  " S STS9n " S S5      nU" 5       nU R                  [        X15      5        U R                  [        X145      5        T" 5       nUR                  U5        T" 5       nU R                  XT5        U R	                  [        X15      5        U R	                  [        X145      5        g )Nc                       \ rS rSrSrg)Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.Ai?  r   Nrl  r   r   r   rb  r  ?  rm  r   rb  r'   c                       \ rS rSrSrg)Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.BiA  r   Nrl  r   r   r   ru  r  A  rm  r   ru  )r8   
isinstancerz  assertGreaterr7   )r   rb  ru  r}  	token_old	token_newr?   abc_get_cache_tokens         r   test_isinstance_invalidation:test_factory.<locals>.TestABC.test_isinstance_invalidation>  s    k  AZ-.Z401+-IJJqM+-Iy4OOJq,-OOJq$/0r   c                   >  " S STS9nUR                  [        5        U R                  SU5        U R                  SU45        U R                  [	        [        U5      5        U R                  [	        [        U45      5         " S SU5      nUR                  [
        5         " S S[
        5      nU R                  S	U5        U R                  S	U45        U R                  [	        [
        U5      5        U R                  [	        [
        U45      5        U R                  [	        X15      5        U R                  [	        X145      5        g )
Nc                       \ rS rSrSrg)Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.AiN  r   Nrl  r   r   r   rb  r  N  rm  r   rb  r'   *   c                       \ rS rSrSrg)Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.BiU  r   Nrl  r   r   r   ru  r  U  rm  r   ru  c                       \ rS rSrSrg)Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.CiX  r   Nrl  r   r   r   r&   r  X  s    $r   r&    )rz  intr{  r7   rx  strr   rb  ru  r&   r?   s       r   test_registration_builtins8test_factory.<locals>.TestABC.test_registration_builtinsM  s    k JJsO!!"a(!!"qd+OOJsA./OOJsQD12A JJsOC!!"a(!!"qd+OOJsA./OOJsQD12OOJq,-OOJq$/0r   c                   >  " S STS9nUR                  U5         " S SU5      nU R                  [        UR                   U5         " S S[        5      nUR                  U5        UR                  U5         " S S	U5      nUR                  U5        U R                  [        UR                   U5        UR                  U5        g )
Nc                       \ rS rSrSrg)Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Aia  r   Nrl  r   r   r   rb  r  a  rm  r   rb  r'   c                       \ rS rSrSrg)Ftest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.A1id  r   Nrl  r   r   r   A1r  d  rm  r   r  c                       \ rS rSrSrg)Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Big  r   Nrl  r   r   r   ru  r  g  rm  r   ru  c                       \ rS rSrSrg)Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Cik  r   Nrl  r   r   r   r&   r  k  rm  r   r&   )rz  r:   RuntimeErrorr0  )r   rb  r  ru  r&   r?   s        r   test_registration_edge_cases:test_factory.<locals>.TestABC.test_registration_edge_cases`  s    k JJqMQ lBKK;F KKNKKNA JJqMlAJJ:JJqMr   c                 \   >  " S STS9nU R                  [        SUR                  S5        g )Nc                       \ rS rSrSrg)@test_factory.<locals>.TestABC.test_register_non_class.<locals>.Air  r   Nrl  r   r   r   rb  r  r  rm  r   rb  r'   zCan only register classesro   )r   r;   rz  r   rb  r?   s     r   test_register_non_class5test_factory.<locals>.TestABC.test_register_non_classq  s+    k ""9.I#$::q2r   c                 b  >  " S STS9nU R                  [        X5      5        U R                  [        X45      5         " S STS9nU R                  [        X5      5        U R                  [        X45      5        U R                  [        X!5      5        U R                  [        X!45      5         " S STS9nUR                  U5         " S S	U5      nU R                  [        XA5      5        U R                  [        XA45      5         " S
 SU5      nUR                  U5        U R                  [        X25      5        U R                  [        X245      5        U R                  [        X45      5        U R                  [        X445      5        U R                  [        XQ5      5        U R                  [        XQ45      5        U R                  [        XR5      5        U R                  [        XR45      5        U R                  [        XT5      5        U R                  [        XT45      5        UR                  [        5         " S S[        5      nU R                  [        Xa5      5        U R                  [        Xa45      5        U R                  SU5        U R                  SU45        g )Nc                       \ rS rSrSrg)Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Aix  r   Nrl  r   r   r   rb  r  x  rm  r   rb  r'   c                       \ rS rSrSrg)Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Bi|  r   Nrl  r   r   r   ru  r  |  rm  r   ru  c                       \ rS rSrSrg)Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Ci  r   Nrl  r   r   r   r&   r    rm  r   r&   c                       \ rS rSrSrg)Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.B1i  r   Nrl  r   r   r   r~  r    rm  r   r~  c                       \ rS rSrSrg)Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.C1i  r   Nrl  r   r   r   C1r    rm  r   r  c                       \ rS rSrSrg)Mtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.MyInti  r   Nrl  r   r   r   MyIntr    rm  r   r  r  )r7   rx  r8   rz  r  r{  )r   rb  ru  r&   r~  r  r  r?   s          r    test_registration_transitiveness>test_factory.<locals>.TestABC.test_registration_transitivenessw  s   k OOJq,-OOJq$/0k Z-.Z401Z-.Z401k JJqMQ OOJr-.OOJr401Q KKOZ-.Z401Z./Z512OOJr-.OOJr401OOJr-.OOJr401OOJr./OOJr512KK OOJu01OOJud34!!"a(!!"qd+r   c                   >^^^^	  " S ST
S9nU R                  [        5         [        0 U5        S S S 5        U R                  [        5         [        SU5        S S S 5         " S S5      nU R                  [        5         [        U" 5       U5        S S S 5        S S S S	 /n[        U5       HX  u  nm " U4S
 jST
S9nU R	                  US9   U R                  [        5         [        [
        U5        S S S 5        S S S 5        MZ      " S S[        5      mSmUU4S jm	 " U	4S jST
S9nU R                  TT5         [        [
        U5        S S S 5        g ! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GM  = f! , (       d  f       g = f)Nc                       \ rS rSrSrg)Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ai  r   Nrl  r   r   r   rb  r    rm  r   rb  r'   r  c                       \ rS rSrSrSrg)Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ci  r  r   N)r   r    r!   r"   __mro__r%   r   r   r   r&   r    s    r   r&   c                     / $ r
   r   )r`  s    r   <lambda>Mtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>  s    "r   c                      gNr  r   r   r   r   r  r    s    r   c                      S/$ r  r   r   r   r   r  r    s    r   c                      > \ rS rSr Y rSrg)Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Si  r   Nr   r    r!   r"   __subclasses__r%   )funcs   r   Sr    s    %)Nr   r  )ic                       \ rS rSrSrg)Ptest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.CustomErrori  r   Nrl  r   r   r   CustomErrorr    s    #r   r  zexception from __subclasses__c                     > T " T5      er
   r   )r  exc_msgs   r   	raise_excNtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.raise_exc  s    !'**r   c                      > \ rS rSr Y rSrg)r  i  r   Nr  )r  s   r   r  r    s    !*r   )r:   r;   rx  	enumeratesubTestr  	Exceptionr   )r   rb  r&   bogus_subclassesr  r  r  r  r  r  r?   s         @@@@r   test_issubclass_bad_arguments;test_factory.<locals>.TestABC.test_issubclass_bad_arguments  s`   k  ""9-2q! . ""9-2q! .
  ""9-13" . 	  %%564*+ * \\A\&**95"3* 6 '&	 7 .i-5G++k + ''W=3" >=U .- .- .-" 65 '& >=sS   EE.F F"'F8F"F5
E+.
E= 
F
FF""
F2	5
Gc                   ^  " U4S jS[         R                  S9mU R                  [        TT5      5        U R                  [        TT45      5         " S S5      nU R	                  [        UT5      5        U R	                  [        UT45      5         " S S5      nU R                  [        UT5      5        U R                  [        UT45      5        g )Nc                   ,   > \ rS rSr\U 4S j5       rSrg):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ai  c                 8   > U TL a  SUR                   ;   $ [        $ )Nr   )__dict__NotImplemented)rE   r&   rb  s     r   __subclasshook__Ktest_factory.<locals>.TestABC.test_subclasshook.<locals>.A.__subclasshook__  s    ax$

22))r   r   N)r   r    r!   r"   rY   r  r%   )rb  s   r   rb  r    s    * *r   rb  r'   c                       \ rS rSrSrSrg):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Bi  r  r   Nr   r   r   r   ru  r    s    r   ru  c                       \ rS rSrSrSrg):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ci  r  r   N)r   r    r!   r"   spamr%   r   r   r   r&   r    s    r   r&   )r#   r   r8   rx  r7   )r   ru  r&   rb  s      @r   test_subclasshook/test_factory.<locals>.TestABC.test_subclasshook  s    *ckk * Z1-.ZA401 OOJq!,-OOJq1$/0 Z1-.ZA401r   c                    >^  " S STS9n " U4S jS[         5      m " S SUT5      nU R                  TR                  S5        U" 5         U R                  TR                  S	5        g )
Nc                       \ rS rSrSrg)Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ai  r   Nrl  r   r   r   rb  r    rm  r   rb  r'   c                   0   >^  \ rS rSrSrUU 4S jrSrU =r$ )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Bi  r   c                 L   > T=R                   S-  sl         [        TU ]	  U 5      $ rf  )counterr.   __new__)rE   ru  r0   s    r   r  Ptest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.B.__new__  s    IINI 7?3//r   r   )r   r    r!   r"   r   r  r%   r4   )r0   ru  s   @r   ru  r    s    0 0r   ru  c                       \ rS rSrSrg)Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ci  r   Nrl  r   r   r   r&   r    rm  r   r&   r   rg  )r0  r<   r   )r   rb  r&   ru  r?   s      @r   test_all_new_methods_are_called=test_factory.<locals>.TestABC.test_all_new_methods_are_called  sV    k 0F 0
Aq QYY*CQYY*r   c                 V    U R                  [        [        R                  S5      5        g )N	__slots__)r7   r9   r#   r   r   s    r   test_ABC_has___slots__4test_factory.<locals>.TestABC.test_ABC_has___slots__  s    OOGCGG[9:r   c           	         > S n " S S5      n " S S5      n " S SU" TX#5      5      nU R                  UR                  T5        g )Nc                 \   ^ ^  " UU 4S jS[         5      n[         R                  USS0 5      $ )Nc                   $   > \ rS rSrU U4S jrSrg)^test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclassi  c                    > T" UTU5      $ r
   r   )rE   name
this_basesdbasesri  s       r   r  ftest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclass.__new__  s    #D%33r   r   N)r   r    r!   r"   r  r%   )r  ri  s   r   r(   r    s    4 4r   r(   temporary_classr   )r   r  )ri  r  r(   s   `` r   with_metaclassKtest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass  s,    4 4 4 ||I/@"bIIr   c                       \ rS rSrSrg)>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ai  r   Nrl  r   r   r   rb  r        Sr   rb  c                       \ rS rSrSrg)>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Bi  r   Nrl  r   r   r   ru  r    r  r   ru  c                       \ rS rSrSrg)>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ci  r   Nrl  r   r   r   r&   r    rm  r   r&   )r<   r0   )r   r  rb  ru  r&   r?   s        r   test_tricky_new_works3test_factory.<locals>.TestABC.test_tricky_new_works  s<    J
 LLN;5 Q[[+6r   c                   >  " S STS9nU? U R                  UR                  S15        U R                  [	        US5      5        [
        R                  " U5        U R                  UR                  [        5       5        U" 5         g )Nc                   8    \ rS rSr\R
                  S 5       rSrg)8test_factory.<locals>.TestABC.test_update_del.<locals>.Ai  c                     g r
   r   r   s    r   r   <test_factory.<locals>.TestABC.test_update_del.<locals>.A.foo   r   r   r   Nr   r    r!   r"   r#   r   r   r%   r   r   r   rb  r#    r   r   rb  r'   r   )r   r<   r  r8   r9   r#   update_abstractmethodsr  r  s     r   test_update_del-test_factory.<locals>.TestABC.test_update_del  sn    k 
 Q22UG<WQ./&&q)Q22CE:Cr   c                    >  " S STS9n[         R                  S 5       nX!l        [         R                  " U5        U R	                  UR
                  SS15        SnU R                  [        X15        g )Nc                   8    \ rS rSr\R
                  S 5       rSrg)Htest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.Ai  c                     g r
   r   r   s    r   r   Ltest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.A.bar  r   r   r   N)r   r    r!   r"   r#   r   r   r%   r   r   r   rb  r,    r   r   rb  r'   c                     g r
   r   r   s    r   updated_fooRtest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.updated_foo      r   r   r   zCclass A without an implementation for abstract methods 'bar', 'foo')r#   r   r   r'  r<   r  r   r;   )r   rb  r0  r   r?   s       r   test_update_new_abstractmethods=test_factory.<locals>.TestABC.test_update_new_abstractmethods  sm    k 
     E&&q)Q22UENCWC""9c5r   c                 *  >  " S STS9n " S SU5      nSnU R                  [        X25        U R                  UR                  S15        S Ul        [
        R                  " U5        U" 5         U R                  UR                  [        5       5        g )	Nc                   8    \ rS rSr\R
                  S 5       rSrg)Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Ai  c                     g r
   r   r   s    r   r   Gtest_factory.<locals>.TestABC.test_update_implementation.<locals>.A.foo   r   r   r   Nr&  r   r   r   rb  r7    r   r   rb  r'   c                       \ rS rSrSrg)Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Bi$  r   Nrl  r   r   r   ru  r;  $  rm  r   ru  ;class B without an implementation for abstract method 'foo'r   c                     g r
   r   r   s    r   r  Jtest_factory.<locals>.TestABC.test_update_implementation.<locals>.<lambda>+  s    r   )r   r;   r<   r  r   r#   r'  r  r   rb  ru  r   r?   s       r   test_update_implementation8test_factory.<locals>.TestABC.test_update_implementation  s}    k 
A  PC""9c5Q22UG<%AE&&q)CQ22CE:r   c                    >  " S STS9nS n[         R                  U " S SU5      5       5       nU" 5         U R                  UR                  [	        5       5        g )Nc                   8    \ rS rSr\R
                  S 5       rSrg)Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Ai3  c                     g r
   r   r   s    r   r   Etest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.A.foo4  r   r   r   Nr&  r   r   r   rb  rD  3  r   r   rb  r'   c                     S U l         U $ )Nc                     g r
   r   r   s    r   r  atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator.<locals>.<lambda>9  s    tr   )r   rD   s    r   class_decoratorOtest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator8  s    +
r   c                       \ rS rSrSrg)Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Bi<  r   Nrl  r   r   r   ru  rM  <  s     r   ru  )r#   r'  r<   r  r  )r   rb  rJ  ru  r?   s       r   test_update_as_decorator6test_factory.<locals>.TestABC.test_update_as_decorator2  s\    k 
 ''A   ( CQ22CE:r   c                      " S S5      n[         R                  S 5       nX!l        [         R                  " U5        U" 5         U R	                  [        US5      5        g )Nc                       \ rS rSrSrg)<test_factory.<locals>.TestABC.test_update_non_abc.<locals>.AiE  r   Nrl  r   r   r   rb  rR  E  rm  r   rb  c                     g r
   r   r   s    r   r0  Ftest_factory.<locals>.TestABC.test_update_non_abc.<locals>.updated_fooH  r2  r   r  )r#   r   r   r'  r8   r9   )r   rb  r0  s      r   test_update_non_abc1test_factory.<locals>.TestABC.test_update_non_abcD  sV          E&&q)CWQ(=>?r   c                    >  " S STS9n " S SU5      nU" 5         U? [        R                  " U5        SnU R                  [        X25        g )Nc                   8    \ rS rSr\R
                  S 5       rSrg)Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.AiR  c                     g r
   r   r   s    r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.A.fooS  r   r   r   Nr&  r   r   r   rb  rY  R  r   r   rb  r'   c                       \ rS rSrS rSrg)Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.BiW  c                     g r
   r   r   s    r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.B.fooX      r   r   Nr   r   r   r   ru  r]  W      r   ru  r<  r   r#   r'  r   r;   r?  s       r   test_update_del_implementation<test_factory.<locals>.TestABC.test_update_del_implementationQ  sJ    k 
A  C&&q)OC""9c5r   c                    >  " S STS9n " S SU5      n " S SU5      nU" 5         U? [        R                  " U5        SnU R                  [        XC5        g )	Nc                   8    \ rS rSr\R
                  S 5       rSrg)Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Aie  c                     g r
   r   r   s    r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.A.foof  r   r   r   Nr&  r   r   r   rb  rg  e  r   r   rb  r'   c                       \ rS rSrSrg)Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Bij  r   Nrl  r   r   r   ru  rk  j  rm  r   ru  c                       \ rS rSrS rSrg)Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Cim  c                     g r
   r   r   s    r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.C.foon  r`  r   r   Nr   r   r   r   r&   rm  m  ra  r   r&   z;class C without an implementation for abstract method 'foo'rb  )r   rb  ru  r&   r   r?   s        r   "test_update_layered_implementation@test_factory.<locals>.TestABC.test_update_layered_implementationd  sV    k 
A A  C&&q)OC""9c5r   c                    >  " S STS9n " S STS9n " S SX!5      nU R                  UR                  S15        U?[        R                  " U5        U R                  UR                  [        5       5        U" 5         g )	Nc                   8    \ rS rSr\R
                  S 5       rSrg)Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ai{  c                     g r
   r   r   s    r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.A.foo|  r   r   r   Nr&  r   r   r   rb  rt  {  r   r   rb  r'   c                       \ rS rSrS rSrg)Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Bi  c                     g r
   r   r   s    r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.B.foo  r`  r   r   Nr   r   r   r   ru  rx    ra  r   ru  c                   8    \ rS rSr\R
                  S 5       rSrg)Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ci  c                     g r
   r   r   s    r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.C.foo  r   r   r   Nr&  r   r   r   r&   r|    r   r   r&   r   )r<   r  r   r#   r'  r  r  s       r   test_update_multi_inheritance;test_factory.<locals>.TestABC.test_update_multi_inheritancez  sq    k 
k A 
 Q22UG<&&q)Q22CE:Cr   r   N)$r   r    r!   r"   r   r   r@   r[   rt   r   r   r  r1  rZ  rn  r  r  r  r  r  r  r  r  r  r  r	  r  r(  r3  r@  rN  rU  rc  rp  r  r%   )r?   r  s   r   TestABCry   H   s    	+	C	)$	-(	+(	6		6	/8	(>	9<		+0	,*	1	1&	"	2%	,N/	#b	2$	+	;
	7	 	6 	;(	;$	@	6&	6,	 	r   r  c                   .   > \ rS rSrU 4S jrU 4S jrSrg)-test_factory.<locals>.TestABCWithInitSubclassi  c           
         >^  " S STS9n0 m " U4S jS5      n " S SX!SS	S
S9nU R                  T[        SS	S
S95        g )Nc                       \ rS rSrSrSrg)\test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.abc_ABCi  r   N)r   r    r!   r"   r  r%   r   r   r   abc_ABCr    s    	r   r  r'   c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )htest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargsi  c                 D   > [         TU ]  5         TR                  U5        g r
   r.   __init_subclass__updaterE   kwargsr0   saved_kwargss     r   r  ztest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargs.__init_subclass__      G-/ ''/r   r   r   r    r!   r"   r  r%   r4   r0   r  s   @r   ReceivesClassKwargsr        0 0r   r  c                       \ rS rSrSrg)]test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.Receiveri  r   Nrl  r   r   r   Receiverr    rm  r   r  rg     r   )r`  yzr<   dict)r   r  r  r  r  r?   s       @r   test_works_with_init_subclassKtest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass  sJ    K L0 0.1Q \4!qA+>?r   c                 n   >^ 0 m " U4S jS5      n " S SUTSS9nU R                  T[        SS95        g )Nc                   ,   >^  \ rS rSrU U4S jrSrU =r$ )otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Ai  c                 D   > [         TU ]  5         TR                  U5        g r
   r  r  s     r   r  ځtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.A.__init_subclass__  r  r   r   r  r  s   @r   rb  r    r  r   rb  c                       \ rS rSrSrg)otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Bi  r   Nrl  r   r   r   ru  r    rm  r   ru  test)r(   r  )r  r  )r   rb  ru  r  r?   s      @r   6test_positional_only_and_kwonlyargs_with_init_subclassdtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass  s7    L0 0
A6 \4V+<=r   r   N)r   r    r!   r"   r  r  r%   rv   s   r   TestABCWithInitSubclassr    s    
	@
	> 
	>r   r  )unittestTestCase)r?   r  rw   r  r  s   ``   r   test_factoryr     sQ    5+)) 5+pI	 I	(## I	X>("3"3 >2 #:::r   __main__)r  r#   _py_abcinspectr   r  r   get_cache_tokenTestLegacyAPI_Py
TestABC_PyTestABCWithInitSubclass_PyTestLegacyAPI_C	TestABC_CTestABCWithInitSubclass_Cr   mainr   r   r   <module>r     sz     
  ^
;@ <HHKH[H[<] 8 *88DW__ELE\E\9^ 55 zMMO r   