+
    Bi._                        ^ RI t ^ RIt^ RIt^ RIHt R t]! ]P                  ]P                  4      w  tt	t
]! ]P                  ]P                  4      w  tttR]n        R]	n        R]
n        ]R8X  d   ] P                   ! 4        R# R# )    N)
isabstractc                    a a  ! V 3R  lR\         P                  4      p ! V V3R lR\         P                  4      p ! V 3R lR\         P                  4      pW#V3# )c                   F   <a  ] tR t^t o V3R ltV3R ltV3R ltRtV tR# )#test_factory.<locals>.TestLegacyAPIc                |  < \         P                  R  4       pV P                  VP                  4       R pV P	                  VR4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  V! 4       P                  ^4       V P                  \        VP                  RR4      4       R	# )
c                     R # N selfs   &$/usr/lib/python3.14/test/test_abc.pyfooMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.foo           c                     R # r	   r
   r   s   &r   barMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.bar       4r   __isabstractmethod__c                   D   a  ] tR t^t o ]P
                  R 4       tRtV tR# )Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Cc                    ^#    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____classdictcell____classdict__s   @r   Cr      s     %%' &'r   r'   	metaclassc                   <   a a ] tR t^t o]V 3R l4       tRtVtV ;t# )Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Dc                   < \         SV `  # 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#   r$   __classcell__r0   r&   s   @@r   Dr+      s     1 11r   r6   FN)r!   r"   
assertTruer   assertNotHasAttrassertRaises	TypeErrorassertEqualr   assertFalsegetattrr   r   r   r'   r6   abc_ABCMetas   &    r   test_abstractproperty_basics@test_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics   s    !! "OOC445!!#'=>(k ( i+2A 2 QSWWa(WQUU,BEJKr   c                  < \         P                  R  4       pV P                  VP                  4       \        R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       R4       V P                  V! 4       P                  4       R4       R	# )
c                     R # r	   r
   clss   &r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.foo$       r   c                     R # r	   r
   rD   s   &r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.bar'   rG   r   r   Fc                   D   a  ] tR t^+t o ]P
                  R 4       tRtV tR# )Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Cc                    V P                   # 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%   s   @r   r'   rK   +   s     ((1 )1r   r'   r(   c                   <   a a ] tR t^/t o]V 3R l4       tRtVtV ;t# )Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Dc                    < \         SV `  4       # 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#   r$   r4   r5   s   @@r   r6   rQ   /        2 22r   r6   N)r!   rO   r7   r   rW   r<   r=   r9   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                  < \         P                  R  4       pV P                  VP                  4       \        R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       ^4       V P                  V! 4       P                  4       ^4       R	# )
c                      R # r	   r
   r
   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.foo6       r   c                      R # r	   r
   r
   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.bar9   r^   r   r   Fc                   D   a  ] tR t^=t o ]P
                  R 4       tRtV tR# )Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Cc                     ^# 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%   s   @r   r'   rb   =   s     ))# *#r   r'   r(   c                   0   a  ] tR t^At o ]R 4       tRtV tR# )Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Dc                     ^#    r
   r
   r   r   r   Stest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.D.fooB   re   r   r
   Nr   r   r   r    staticmethodr   r#   r$   r%   s   @r   r6   rh   A        # #r   r6   N)r!   rf   r7   r   rn   r<   r=   r9   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@   rY   rp   r#   r$   r&   r?   s   @r   TestLegacyAPIr      s     	L"	-$	+ 	+r   rs   c                   z  <a  ] tR t^Ht o R tR tV3R ltV3R ltV3R ltV3R lt	V3R lt
V3R ltV3R	 ltV3R
 ltV3R ltV3R ltV3R ltVV3R ltV3R ltV3R ltV3R ltV3R ltV3R ltR tV3R ltR tV3R ltV3R ltV3R ltV3R ltV3R ltR tV3R lt V3R lt!V3R lt"R t#V t$R!# )"test_factory.<locals>.TestABCc                    ! R  R\         P                  4      pV P                  \        V4      \         P                  4       V P                  \        V4        ! R RV4      pV P                  VP                  4       R4       R# )c                   N   a  ] tR t^Lt o ]]P                  R 4       4       tRtV t	R# )8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Cc                    V P                   # r	   rM   rD   s   &r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.C.fooM       %(\\1r   r
   N
r   r   r   r    rW   r!   abstractmethodr   r#   r$   r%   s   @r   r'   rx   L   !     ##1 $ 1r   r'   c                   <   a a ] tR t^Rt o]V 3R l4       tRtVtV ;t# )8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Dc                    < \         SV `  4       # r	   r-   rS   s   &r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.D.fooS   rU   r   r
   rV   r5   s   @@r   r6   r   R   rX   r   r6   N)r!   ABCr;   typeABCMetar9   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                    \         P                  R  4       pV P                  VP                  4       R pV P	                  VR4       R# )c                     R # r	   r
   r   s   &r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.fooX   r   r   c                     R # r	   r
   r   s   &r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.bar[   r   r   r   N)r!   r}   r7   r   r8   )r   r   r   s   &  r   test_abstractmethod_basics8test_factory.<locals>.TestABC.test_abstractmethod_basicsW   s<      OOC445!!#'=>r   c                ^  <a \         \        P                  R  4       4       pV P                  VP                  4       R pV P                  \        VRR4      4        ! R RSR7      oV P                  \        S4        ! V3R lRS4      pV P                  V! 4       P                  ^4       R	# )
c                     R # r	   r
   r   s   &r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.foo_   s    r   c                     R # r	   r
   r   s   &r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.barc   r   r   r   Fc                   N   a  ] tR t^ft o ]]P                  R 4       4       tRtV t	R# )Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Cc                    ^# 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%   s   @r   r'   r   f   s!     ##' $ 'r   r'   r(   c                   h   <a a ] tR t^kt o ZP                  P
                  V 3R l4       tRtVtV ;t# )Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Dc                   < \         SV `  # 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#   r$   r4   r0   r&   r'   s   @@r   r6   r   k        1 11r   r6   N)r3   r!   r}   r7   r   r<   r=   r9   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                  < \         \        P                  R  4       4       pV P                  VP                  4       \         R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       R4       V P                  V! 4       P                  4       R4       R	# )
c                     R # r	   r
   rD   s   &r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.fooq   s    r   c                     R # r	   r
   rD   s   &r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.baru   rG   r   r   Fc                   N   a  ] tR t^yt o ]]P                  R 4       4       tRtV t	R# )Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Cc                    V P                   # r	   rM   rD   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.C.fooz   r{   r   r
   Nr|   r%   s   @r   r'   r   y   r~   r   r'   r(   c                   <   a a ] tR t^~t o]V 3R l4       tRtVtV ;t# )Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Dc                    < \         SV `  4       # r	   r-   rS   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.D.foo   rU   r   r
   rV   r5   s   @@r   r6   r   ~   rX   r   r6   N)rW   r!   r}   r7   r   r<   r=   r9   r:   r;   r   r>   s   &    r   rY   =test_factory.<locals>.TestABC.test_abstractclassmethod_basicsp   s       OOC445 WS*@%HI2k 2 i+3A 3 QUUWc*QSWWY,r   c                  < \         \        P                  R  4       4       pV P                  VP                  4       \         R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       ^4       V P                  V! 4       P                  4       ^4       R	# )
c                      R # r	   r
   r
   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.foo   s    r   c                      R # r	   r
   r
   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.bar   r^   r   r   Fc                   N   a  ] tR t^t o ]]P                  R 4       4       tRtV t	R# )Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Cc                     ^# r   r
   r
   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.C.foo   s    "#r   r
   N)
r   r   r   r    rn   r!   r}   r   r#   r$   r%   s   @r   r'   r      s!     ### $ #r   r'   r(   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Dc                     ^# rj   r
   r
   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.D.foo   re   r   r
   Nrm   r%   s   @r   r6   r      ro   r   r6   N)rn   r!   r}   r7   r   r<   r=   r9   r:   r;   r   r>   s   &    r   rp   >test_factory.<locals>.TestABC.test_abstractstaticmethod_basics   s       OOC445 WS*@%HI$k $ i+$A $ QUUWa(QSWWY*r   c                P   <  ! R  RSR7      pRpV P                  \        W!4       R# )c                   D   a  ] tR t^t o ]P
                  R 4       tRtV tR# )Ptest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.Cc                    R # 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%   s   @r   r'   r           ## $r   r'   r(   zBclass C without an implementation for abstract method 'method_one'N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                P   <  ! R  RSR7      pRpV P                  \        W!4       R# )c                   h   a  ] tR t^t o ]P
                  R 4       t]P
                  R 4       tRtV t	R# )Rtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.Cc                    R # r	   r
   r   s   &r   r   ]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_one   r   r   c                    R # 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%   s   @r   r'   r      s5     ## $## $r   r'   r(   zQclass C without an implementation for abstract methods 'method_one', 'method_two'Nr   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                V  <a \         P                  \         P                  \         P                  \         P                  3 EFc  o ! V3R  lRSR7      pV P                  VP                  R04       V P                  \        V4       V P                  \        V4      4        ! R RV4      pV P                  VP                  R04       V P                  \        V4       V P                  \        V4      4        ! R RV4      pV P                  VP                  \        4       4       V! 4        V P                  \        V4      4        ! V3R lR	V4      pV P                  VP                  R
04       V P                  \        V4       V P                  \        V4      4       EKf  	  R# )c                   :   <a  ] tR t^t o  ZR 4       tR tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Cc                    R # r	   r
   r   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.foo       #'r   c                    R # 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#   r$   r&   abstractthings   @r   r'   r      s     "' #'''r   r'   r(   r   c                   &   a  ] tR t^t o R tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Dc                    R # 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%   s   @r   r6   r           ''r   r6   c                   &   a  ] tR t^t o R tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Ec                    R # 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%   s   @r   Er      r   r   r   c                   4   <a  ] tR t^t o  ZR 4       tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Fc                    R # 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   N)r!   r}   r"   rO   rf   r;   __abstractmethods__r9   r:   r7   r   setr<   )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                  <aaa  ! R  RSR7      oV P                  \        S4        ! V3R lRS4      oV P                  \        S4        ! V3R lRS4      pV P                  V! 4       P                  ^4        ! R R\        4      oV P                  \
        4      ;_uu_ 4         ! V3R	 lR
S4      pRRR4       R#   + '       g   i     R# ; i)c                      a  ] tR t^t o ]]P                  R 4       4       t]P                  ]P                  R 4       4       tRt	V t
R# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Cc                    ^# r   r
   r   s   &r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C.foo   r   r   c                    R # r	   r
   r   vals   &&r   r   r          $(r   r
   N)r   r   r   r    r3   r!   r}   r   setterr#   r$   r%   s   @r   r'   r      sA     ##' $ '##( $ (r   r'   r(   c                   h   <a a ] tR t^t o ZP                  P
                  V 3R l4       tRtVtV ;t# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Dc                   < \         SV `  # 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                   \   <a  ] tR t^t o  ZP                  P
                  R 4       tRtV tR# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Ec                    R # 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#   r$   r&   r6   s   @r   r   r          ( (r   r   c                   *   a  ] tR t^t o R t]tRtV tR# )Stest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBoolc                    \        4       h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%   s   @r   NotBoolr     s     '"r   r  c                   R   <a  ] tR t^t o R t Z! 4       ]n        ]! ]4      tRtV t	R# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Fc                    R # 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$   )r&   r  s   @r   r   r     s     /6yC,"3-Cr   r   N)r9   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   &B??C	c                   <aaa  ! V3R  lR4      o ! V3R lRSR7      oV P                  \        S4        ! V3R lRS4      oV P                  \        S4        ! V3R lRS4      pV P                  VP                  P                  4       R	# )
c                   T   <a  ] tR t^t o RR ltV3R ltV3R lt]R 4       tRt	V t
R# )\test_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.DescriptorNc                    Wn         W n        R # r	   _fget_fset)r   fgetfsets   &&&r   __init__etest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__init__   s    !%J!%Jr   c                (   < S! WP                   4      # r	   r   r   callable
Descriptors   &&r   r   ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.getter   s    %h

;;r   c                *   < S! V P                   V4      # r	   r'  r(  s   &&r   r   ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.setter   s    %djj(;;r   c                n    \        V P                  R R4      ;'       g    \        V P                  R R4      # )r   F)r=   r   r!  r   s   &r   r   qtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__isabstractmethod__   s6    #DJJ0FN R R&tzz3I5QSr   r  r	   )r   r   r   r    r$  r   r   r3   r   r#   r$   r&   r*  s   @r   r*  r     s(     &<<S Sr   r*  c                      <a  ] tR t^t o  Z]P
                  R 4       4       t]P                  ]P
                  R 4       4       tRtV t	R# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Cc                    ^# r   r
   r   s   &r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C.foo   r   r   c                    R # r	   r
   r   s   &&r   r   r4     r   r   r
   N)
r   r   r   r    r!   r}   r   r   r#   r$   r0  s   @r   r'   r2     sA     ##' $ '##( $ (r   r'   r(   c                   h   <a a ] tR t^t o ZP                  P
                  V 3R l4       tRtVtV ;t# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Dc                   < \         SV `  # 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   r7     r   r   r6   c                   \   <a  ] tR t^t o  ZP                  P
                  R 4       tRtV tR# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Ec                    R # 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   r;     r  r   r   N)r9   r:   r<   r   r   )r   r   r'   r6   r*  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                   <  ! R  RSR7      pV P                  VP                  R04        ! R R\        V4      p ! R RVR7      pR# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# );test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ai  c                    R # 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}   rD  r#   r$   r%   s   @r   ArB    r   r   rF  r(   rD  c                   &   a  ] tR tRt o R tRtV tR# )>test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.metai  c                    ^#    r
   r   s   &r   rD  @test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.meta.x  s    r   r
   N)r   r   r   r    rD  r#   r$   r%   s   @r   metarH    s      r   rM  c                       ] tR tRtRtR# );test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ci  r
   Nr   r   r   r    r#   r
   r   r   r'   rO        r   r'   N)r;   r   r   )r   rF  rM  r'   r?   s   &   r   test_metaclass_abc0test_factory.<locals>.TestABC.test_metaclass_abc  sC    k  Q22SE:tQ d r   c                X  <  ! R  RSR7      p ! R R\         4      pV! 4       pV P                  W!4       V P                  W!34       V P                  W14       V P                  W134       VP                  V4      pV P	                  W!4       V P	                  W!34       V P                  W14       V P                  W134       V P                  WB4        ! R RV4      pV! 4       pV P	                  WQ4       V P	                  WQ34       V P                  Wa4       V P                  Wa34       R# )c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ai  r
   NrP  r
   r   r   rF  rV    rQ  r   rF  r(   c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Bi  r
   NrP  r
   r   r   BrX    rQ  r   rY  c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ci!  r
   NrP  r
   r   r   r'   r[  !  rQ  r   r'   N)r  assertNotIsSubclassassertNotIsInstanceregisterassertIsSubclassassertIsInstanceassertIs)r   rF  rY  bB1r'   cr?   s   &      r   test_registration_basics6test_factory.<locals>.TestABC.test_registration_basics  s   k F A$$Q*$$Q-$$Q*$$Q-AB!!!'!!!T*!!!'!!!T*MM" A A!!!'!!!T*!!!'!!!T*r   c                  <  ! R  RSR7      pVP                    ! R R\        4      4       pV! 4       pV P                  W!4       V P                  W!34       V P                  W14       V P                  W134       VP                    ! R RV4      4       pV! 4       pV P                  WA4       V P                  WA34       V P                  WQ4       V P                  WQ34       V P	                  WAP                  V4      4       R# )c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ai*  r
   NrP  r
   r   r   rF  ri  *  rQ  r   rF  r(   c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Bi,  r
   NrP  r
   r   r   rY  rk  ,      r   rY  c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ci4  r
   NrP  r
   r   r   r'   rn  4  rl  r   r'   N)r^  r  r_  r`  ra  )r   rF  rY  rb  r'   rd  r?   s   &     r   test_register_as_class_deco9test_factory.<locals>.TestABC.test_register_as_class_deco)  s    k ZZF  A!!!'!!!T*!!!'!!!T*ZZA  A!!!'!!!T*!!!'!!!T*MM!ZZ]+r   c                .  <  ! R  RSR7      p ! R R4      pV! 4       pV P                  W14       V P                  W134       S! 4       pVP                  V4       S! 4       pV P                  WT4       V P                  W14       V P                  W134       R# )c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.Ai?  r
   NrP  r
   r   r   rF  rs  ?  rQ  r   rF  r(   c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.BiA  r
   NrP  r
   r   r   rY  ru  A  rQ  r   rY  N)r]  r^  assertGreaterr`  )r   rF  rY  rb  	token_old	token_newr?   abc_get_cache_tokens   &     r   test_isinstance_invalidation:test_factory.<locals>.TestABC.test_isinstance_invalidation>  s    k  A$$Q*$$Q-+-IJJqM+-Iy4!!!'!!!T*r   c                6  <  ! R  RSR7      pVP                  \        4       V P                  ^*V4       V P                  ^*V34       V P                  \        V4       V P                  \        V34        ! R RV4      pVP                  \        4        ! R R\        4      pV P                  RV4       V P                  RV34       V P                  \        V4       V P                  \        V34       V P                  W14       V P                  W134       R# )	c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.AiN  r
   NrP  r
   r   r   rF  r~  N  rQ  r   rF  r(   c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.BiU  r
   NrP  r
   r   r   rY  r  U  rQ  r   rY  c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.CiX  r
   NrP  r
   r   r   r'   r  X  s    $r   r'    N)r^  intr`  r_  strr   rF  rY  r'   r?   s   &   r   test_registration_builtins8test_factory.<locals>.TestABC.test_registration_builtinsM  s    k JJsO!!"a(!!"qd+!!#q)!!#t,A JJsOC!!"a(!!"qd+!!#q)!!#t,!!!'!!!T*r   c                  <  ! R  RSR7      pVP                  V4        ! R RV4      pV P                  \        VP                   V4        ! R R\        4      pVP                  V4       VP                  V4        ! R RV4      pVP                  V4       V P                  \        VP                   V4       VP                  V4       R	# )
c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Aia  r
   NrP  r
   r   r   rF  r  a  rQ  r   rF  r(   c                       ] tR tRtRtR# )Ftest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.A1id  r
   NrP  r
   r   r   A1r  d  rQ  r   r  c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Big  r
   NrP  r
   r   r   rY  r  g  rQ  r   rY  c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Cik  r
   NrP  r
   r   r   r'   r  k  rQ  r   r'   N)r^  r9   RuntimeErrorr  )r   rF  r  rY  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                d   <  ! R  RSR7      pV P                  \        RVP                  ^4       R# )c                       ] tR tRtRtR# )@test_factory.<locals>.TestABC.test_register_non_class.<locals>.Air  r
   NrP  r
   r   r   rF  r  r  rQ  r   rF  r(   zCan only register classesN)r   r:   r^  r   rF  r?   s   & r   test_register_non_class5test_factory.<locals>.TestABC.test_register_non_classq  s+    k ""9.I#$::q2r   c                  <  ! R  RSR7      pV P                  W4       V P                  W34        ! R RSR7      pV P                  W4       V P                  W34       V P                  W!4       V P                  W!34        ! R RSR7      pVP                  V4        ! R RV4      pV P                  WA4       V P                  WA34        ! R	 R
V4      pVP                  V4       V P                  W24       V P                  W234       V P                  W44       V P                  W434       V P                  WQ4       V P                  WQ34       V P                  WR4       V P                  WR34       V P                  WT4       V P                  WT34       VP                  \        4        ! R R\        4      pV P                  Wa4       V P                  Wa34       V P	                  ^*V4       V P	                  ^*V34       R# )c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Aix  r
   NrP  r
   r   r   rF  r  x  rQ  r   rF  r(   c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Bi|  r
   NrP  r
   r   r   rY  r  |  rQ  r   rY  c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Ci  r
   NrP  r
   r   r   r'   r    rQ  r   r'   c                       ] tR tRtRtR# )Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.B1i  r
   NrP  r
   r   r   rc  r    rQ  r   rc  c                       ] tR tRtRtR# )Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.C1i  r
   NrP  r
   r   r   C1r    rQ  r   r  c                       ] tR tRtRtR# )Mtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.MyInti  r
   NrP  r
   r   r   MyIntr    rQ  r   r  N)r_  r\  r^  r  r`  )r   rF  rY  r'   rc  r  r  r?   s   &      r    test_registration_transitiveness>test_factory.<locals>.TestABC.test_registration_transitivenessw  s   k !!!'!!!T*k $$Q*$$Q-$$Q*$$Q-k JJqMQ !!"(!!"d+Q KKO$$Q*$$Q-$$Q+$$Q.!!"(!!"d+!!"(!!"d+!!")!!"e,KK !!%+!!%.!!"a(!!"qd+r   c           
     "  <aaaa	  ! R  RS
R7      pV P                  \        4      ;_uu_ 4        \        / V4       RRR4       V P                  \        4      ;_uu_ 4        \        ^*V4       RRR4        ! R R4      pV P                  \        4      ;_uu_ 4        \        V! 4       V4       RRR4       RR R R .p\        V4       Fn  w  po ! V3R	 lR
S
R7      pV P	                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        \        \
        V4       RRR4       RRR4       Kp  	   ! R R\        4      oRoVV3R lo	 ! V	3R lR
S
R7      pV P                  SS4      ;_uu_ 4        \        \
        V4       RRR4       R#   + '       g   i     ELf; i  + '       g   i     ELH; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     EK/  ; i  + '       g   i     R# ; i)c                       ] tR tRtRtR# )Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ai  r
   NrP  r
   r   r   rF  r    rQ  r   rF  r(   Nc                       ] tR tRt^*tRtR# )Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ci  r
   N)r   r   r   r    __mro__r#   r
   r   r   r'   r    s    r   r'   c                     . # r	   r
   )rD  s   &r   <lambda>Mtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>  s    "r   c                      ^*# *   r
   r
   r   r   r  r    s    r   c                      ^*.# r  r
   r
   r   r   r  r    s    r   c                      < ] tR tRt Z tRtR# )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                       ] tR tRtRtR# )Ptest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.CustomErrori  r
   NrP  r
   r   r   CustomErrorr    s    #r   r  zexception from __subclasses__c                     < S ! S4      hr	   r
   )r  exc_msgs   r   	raise_excNtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.raise_exc  s    !'**r   c                      < ] tR tRt Z tRtR# )r  i  r
   Nr  )r  s   r   r  r    s    !*r   )r9   r:   
issubclass	enumeratesubTestr  	Exceptionr   )r   rF  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5"3* 6 '&	 7 .i-5G++k + ''W==3" >=U .-- .-- .--" 65 '&& >==sS   F!F-G:G(G)G(>G=F*	-F>	G	G% G((G:=H	c                H  a  ! V3R  lR\         P                  R7      oV P                  SS4       V P                  SS34        ! R R4      pV P                  VS4       V P                  VS34        ! R R4      pV P                  VS4       V P                  VS34       R# )c                   8   <a  ] tR tRt o ]V3R l4       tRtV tR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ai  c                :   < V SJ d   R VP                   9   # \        # r   )__dict__NotImplemented)rE   r'   rF  s   &&r   __subclasshook__Ktest_factory.<locals>.TestABC.test_subclasshook.<locals>.A.__subclasshook__  s    ax$

22))r   r
   N)r   r   r   r    rW   r  r#   r$   )r&   rF  s   @r   rF  r    s     * *r   rF  r(   c                       ] tR tRt^*tRtR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Bi  r
   N)r   r   r   r    r   r#   r
   r   r   rY  r    s    r   rY  c                       ] tR tRt^*tRtR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ci  r
   N)r   r   r   r    spamr#   r
   r   r   r'   r    s    r   r'   N)r!   r   r\  r_  )r   rY  r'   rF  s   &  @r   test_subclasshook/test_factory.<locals>.TestABC.test_subclasshook  s    *ckk * $$Q*$$Q- !!!Q'!!!aT* $$Q*$$Q-r   c                   <a  ! R  RSR7      p ! V3R lR\         4      o ! R RVS4      pV P                  SP                  ^ 4       V! 4        V P                  SP                  ^4       R# )c                       ] tR tRtRtR# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ai  r
   NrP  r
   r   r   rF  r    rQ  r   rF  r(   c                   :   <a a ] tR tRt o^ tVV 3R ltRtVtV ;t# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Bi  c                T   < S;P                   ^,          un         \        SV `	  V 4      # rJ  )counterr.   __new__)rE   rY  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#   r$   r4   )r0   r&   rY  s   @@r   rY  r    s     0 0r   rY  c                       ] tR tRtRtR# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ci  r
   NrP  r
   r   r   r'   r    rQ  r   r'   N)r  r;   r  )r   rF  r'   rY  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                F    V P                  \        P                  R 4       R# )	__slots__N)assertHasAttrr!   r   r   s   &r   test_ABC_has___slots__4test_factory.<locals>.TestABC.test_ABC_has___slots__  s    sww4r   c           	        < R  p ! R R4      p ! R R4      p ! R RV! SW#4      4      pV P                  VP                  S4       R# )c                 \   a a  ! VV 3R  lR\         4      p\         P                  VRR/ 4      # )c                   0   <a  ] tR tRt o VV3R ltRtV tR# )^test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclassi  c                   < S! VSV4      # r	   r
   )rE   name
this_basesdbasesrM  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$   )r&   r  rM  s   @r   r)   r    s     4 4r   r)   temporary_classr
   )r   r  )rM  r  r)   s   fj r   with_metaclassKtest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass  s,    4 4 4 ||I/@"bIIr   c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ai  r
   NrP  r
   r   r   rF  r         Sr   rF  c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Bi  r
   NrP  r
   r   r   rY  r    r  r   rY  c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ci  r
   NrP  r
   r   r   r'   r    rQ  r   r'   N)r;   r0   )r   r  rF  rY  r'   r?   s   &    r   test_tricky_new_works3test_factory.<locals>.TestABC.test_tricky_new_works  s<    J
 LLN;5 Q[[+6r   c                  <  ! R  RSR7      pV= V P                  VP                  R04       V P                  VR4       \        P
                  ! V4       V P                  VP                  \        4       4       V! 4        R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )8test_factory.<locals>.TestABC.test_update_del.<locals>.Ai  c                    R # 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%   s   @r   rF  r
    r   r   rF  r(   r   N)r   r;   r   r8   r!   update_abstractmethodsr   r  s   & r   test_update_del-test_factory.<locals>.TestABC.test_update_del  si    k 
 Q22UG<!!!U+&&q)Q22CE:Cr   c                   <  ! R  RSR7      p\         P                  R 4       pW!n        \         P                  ! V4       V P	                  VP
                  RR04       RpV P                  \        W14       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Htest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.Ai  c                    R # 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%   s   @r   rF  r    r   r   rF  r(   c                     R # 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'N)r!   r}   r   r  r;   r   r   r:   )r   rF  r  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                2  <  ! R  RSR7      p ! R RV4      pRpV P                  \        W24       V P                  VP                  R04       R Vn        \
        P                  ! V4       V! 4        V P                  VP                  \        4       4       R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Ai  c                    R # r	   r
   r   s   &r   r   Gtest_factory.<locals>.TestABC.test_update_implementation.<locals>.A.foo   r   r   r
   Nr  r%   s   @r   rF  r    r   r   rF  r(   c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Bi$  r
   NrP  r
   r   r   rY  r"  $  rQ  r   rY  ;class B without an implementation for abstract method 'foo'r   c                     R # r	   r
   r   s   &r   r  Jtest_factory.<locals>.TestABC.test_update_implementation.<locals>.<lambda>+  s    r   N)r   r:   r;   r   r   r!   r  r   r   rF  rY  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                   <  ! R  RSR7      pR p\         P                  V ! R RV4      4       4       pV! 4        V P                  VP                  \	        4       4       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Ai3  c                    R # r	   r
   r   s   &r   r   Etest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.A.foo4  r   r   r
   Nr  r%   s   @r   rF  r+  3  r   r   rF  r(   c                     R  V n         V # )c                     R # 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                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Bi<  r
   NrP  r
   r   r   rY  r4  <  s     r   rY  N)r!   r  r;   r   r   )r   rF  r1  rY  r?   s   &   r   test_update_as_decorator6test_factory.<locals>.TestABC.test_update_as_decorator2  s\    k 
 ''A   ( CQ22CE:r   c                     ! R  R4      p\         P                  R 4       pW!n        \         P                  ! V4       V! 4        V P	                  VR4       R# )c                       ] tR tRtRtR# )<test_factory.<locals>.TestABC.test_update_non_abc.<locals>.AiE  r
   NrP  r
   r   r   rF  r9  E  rQ  r   rF  c                     R # r	   r
   r   s   &r   r  Ftest_factory.<locals>.TestABC.test_update_non_abc.<locals>.updated_fooH  r  r   r   N)r!   r}   r   r  r8   )r   rF  r  s   &  r   test_update_non_abc1test_factory.<locals>.TestABC.test_update_non_abcD  sQ          E&&q)C!!!%:;r   c                   <  ! R  RSR7      p ! R RV4      pV! 4        V= \        P                  ! V4       RpV P                  \        W24       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.AiR  c                    R # r	   r
   r   s   &r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.A.fooS  r   r   r
   Nr  r%   s   @r   rF  r@  R  r   r   rF  r(   c                   &   a  ] tR tRt o R tRtV tR# )Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.BiW  c                    R # r	   r
   r   s   &r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.B.fooX      r   r
   Nr   r%   s   @r   rY  rD  W        r   rY  r#  N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                   <  ! R  RSR7      p ! R RV4      p ! R RV4      pV! 4        V= \        P                  ! V4       RpV P                  \        WC4       R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Aie  c                    R # r	   r
   r   s   &r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.A.foof  r   r   r
   Nr  r%   s   @r   rF  rN  e  r   r   rF  r(   c                       ] tR tRtRtR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Bij  r
   NrP  r
   r   r   rY  rR  j  rQ  r   rY  c                   &   a  ] tR tRt o R tRtV tR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Cim  c                    R # r	   r
   r   s   &r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.C.foon  rG  r   r
   Nr   r%   s   @r   r'   rT  m  rH  r   r'   z;class C without an implementation for abstract method 'foo'NrI  )r   rF  rY  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                  <  ! R  RSR7      p ! R RSR7      p ! R RW!4      pV P                  VP                  R04       V=\        P                  ! V4       V P                  VP                  \        4       4       V! 4        R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ai{  c                    R # r	   r
   r   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.A.foo|  r   r   r
   Nr  r%   s   @r   rF  r[  {  r   r   rF  r(   c                   &   a  ] tR tRt o R tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Bi  c                    R # r	   r
   r   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.B.foo  rG  r   r
   Nr   r%   s   @r   rY  r_    rH  r   rY  c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ci  c                    R # r	   r
   r   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.C.foo  r   r   r
   Nr  r%   s   @r   r'   rc    r   r   r'   r   N)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@   rY   rp   r   r   r   r  r>  rR  re  ro  rz  r  r  r  r  r  r  r  r  r  r  r  r'  r5  r<  rJ  rW  rf  r#   r$   )r&   r?   ry  s   @r   TestABCru   H   s     	+	?	)$	-(	+(	6		6	/8	(>	9<		+0	,*	+	+&	"	2%	,N/	#b	.$	+	5
	7	 	6 	;(	;$	<	6&	6,	 	r   rh  c                   :   <a  ] tR tRt o V3R ltV3R ltRtV tR# )-test_factory.<locals>.TestABCWithInitSubclassi  c           
        <a  ! R  RSR7      p/ o ! V3R lR4      p ! R RW!^^^R7      pV P                  S\        ^^^R7      4       R# )	c                       ] tR tRtRtRtR# )\test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.abc_ABCi  r
   N)r   r   r   r    r  r#   r
   r   r   abc_ABCrm    s    	r   rn  r(   c                   6   <a a ] tR tRt oV V3R ltRtVtV ;t# )htest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargsi  c                F   < \         SV `  4        SP                  V4       R # r	   r.   __init_subclass__updaterE   kwargsr0   saved_kwargss   &,r   rs  ztest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargs.__init_subclass__      G-/ ''/r   r
   r   r   r   r    rs  r#   r$   r4   r0   r&   rw  s   @@r   ReceivesClassKwargsrp         0 0r   r|  c                       ] tR tRtRtR# )]test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.Receiveri  r
   NrP  r
   r   r   Receiverr    rQ  r   r  )rD  yzNr;   dict)r   rn  r|  r  rw  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                |   <a / o ! V3R  lR4      p ! R RVSRR7      pV P                  S\        RR7      4       R# )c                   6   <a a ] tR tRt oV V3R ltRtVtV ;t# )otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Ai  c                F   < \         SV `  4        SP                  V4       R # r	   rr  ru  s   &,r   rs  ځtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.A.__init_subclass__  ry  r   r
   rz  r{  s   @@r   rF  r    r}  r   rF  c                       ] tR tRtRtR# )otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Bi  r
   NrP  r
   r   r   rY  r    rQ  r   rY  test)r)   r  )r  Nr  )r   rF  rY  rw  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#   r$   rr   s   @r   TestABCWithInitSubclassrj    s     
	@
	> 
	>r   r  )unittestTestCase)r?   ry  rs   rh  r  s   ff   r   test_factoryr     sQ    5+)) 5+pI	 I	(## I	X>("3"3 >2 #:::r   T__main__)r  r!   _py_abcinspectr   r  r   get_cache_tokenTestLegacyAPI_Py
TestABC_PyTestABCWithInitSubclass_PyTestLegacyAPI_C	TestABC_CTestABCWithInitSubclass_C__unittest_thread_unsafe__r   mainr
   r   r   <module>r     s     
  ^
;@ <HHOH_H_<a 8 *88DS[[EHEXEX9Z 55
 /3  +(,
 %8<  5zMMO r   