
    /hh                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJr  S SKJr  S SKJr  S SKJr   S SKr S SKr " S S\
R0                  5      r " S S	\
R0                  \5      r " S
 S\
R0                  5      r " S S\
R0                  5      r " S S\
R0                  5      r " S S\
R0                  5      r " S S\
R0                  5      r " S S\ 5      r! " S S\
R0                  5      r"\#S:X  a  \
RH                  " 5         gg! \ a    Sr Nf = f! \ a    Sr Nf = f)    N)deepcopy)redirect_stdout)support)ExtraAssertionsc                   L   \ rS rSrS rSS jrSS jrSS jrSS jrSS jr	SS jr
S	 rS
 r/ 4S jrS rS rS rS r\R&                  " S5      \R*                  " \SL S5      S 5       5       r\R&                  " S5      \R*                  " \SL S5      S 5       5       rS rSrg)OperatorsTest   c                 P   [         R                  R                  " U /UQ70 UD6  0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"S#S$.EU l        [	        U R                  R                  5       5       H3  u  p4UR                  5       (       a  US%-   nOS&U-  nX@R                  U'   M5     SSS'S(S)S*S+.U l        [	        U R                  R                  5       5       H3  u  p4UR                  5       (       a  US,-   nOS-U-  nX@R                  U'   M5     g ).Nadd+sub-mul*matmul@truediv/floordivz//divmodpowz**lshiftz<<rshiftz>>and&xor^or|cmplt<le<=eq==!=>>=)negtgez(a, b)za %s babs~intfloat)posnegr-   invertr/   r0   z(a)z%s a)unittestTestCase__init__binopslistitemsislowerunops)selfargskwargsnameexprs        8/opt/python-3.13.8/usr/lib/python3.13/test/test_descr.pyr6   OperatorsTest.__init__!   s   ""49$9&9
3
3
 3
 c	

 s
 
 h
 4
 d
 d
 3
 3
 #
 5
 #
  $!
" $#
$ )
. t{{0023JD||~~h$ $KK 4 

 tzz//12JD||~~e|}#JJt 3    c                    SU0nU R                  [        X55      U5        [        U5      n[        Xd5      nXFR                  ;  a   UR
                  S   nXFR                  ;  a  M   U R                  [        USU5      UR                  U   5        U R                  U" U5      U5        [        X5      nU R                  U" 5       U5        g )Nar   im_funcassertEqualevaltypegetattr__dict__	__bases__)	r<   rE   resr@   methdtmbms	            rA   	unop_testOperatorsTest.unop_testQ   s    !Hd,GA **$AA **$ 	Iq11::d3CD1s#Qs#rC   c                    XS.nU R                  [        XF5      U5        [        U5      n[        Xu5      nXWR                  ;  a   UR
                  S   nXWR                  ;  a  M   U R                  [        USU5      UR                  U   5        U R                  U" X5      U5        [        X5      n	U R                  U	" U5      U5        g )NrE   br   rF   rG   )
r<   rE   rX   rN   r@   rO   rP   rQ   rR   rS   s
             rA   
binop_testOperatorsTest.binop_testa   s    d,GA**$AA **$ 	Iq11::d3CD1#&QA$rC   c           	         XUS.nU R                  [        XW5      U5        [        U5      n[        X5      n	XhR                  ;  a   UR
                  S   nXhR                  ;  a  M   U R                  [        U	SU	5      UR                  U   5        U R                  U	" U[        X#5      5      U5        [        X5      n
U R                  U
" [        X#5      5      U5        g )NrE   rX   cr   rF   )rH   rI   rJ   rK   rL   rM   slice)r<   rE   rX   r]   rN   r@   rO   rP   rQ   rR   rS   s              rA   sliceop_testOperatorsTest.sliceop_testp   s    !$d,GA**$AA **$ 	Iq11::d3CD1eAk*C0QE!K#.rC   c                    [        U5      US.n[        XF5        U R                  US   U5        [        U5      n[	        Xu5      nXWR
                  ;  a   UR                  S   nXWR
                  ;  a  M   U R                  [	        USU5      UR
                  U   5        [        U5      US'   U" US   U5        U R                  US   U5        [        U5      US'   [	        US   U5      n	U	" U5        U R                  US   U5        g )NrW   rE   r   rF   r   execrH   rJ   rK   rL   rM   )
r<   rE   rX   rN   stmtrO   rP   rQ   rR   rS   s
             rA   
setop_testOperatorsTest.setop_test~   s    1+A&T3%GA**$AA **$ 	Iq11::d3CD!#	!C&!3%!#QsVT"
13%rC   c                    [        U5      X#S.n[        XW5        U R                  US   U5        [        U5      n[	        X5      n	XhR
                  ;  a   UR                  S   nXhR
                  ;  a  M   U R                  [	        U	SU	5      UR
                  U   5        [        U5      US'   U	" US   X#5        U R                  US   U5        [        U5      US'   [	        US   U5      n
U
" X#5        U R                  US   U5        g )Nr\   rE   r   rF   rb   )r<   rE   rX   r]   rN   rd   rO   rP   rQ   rR   rS   s              rA   set2op_testOperatorsTest.set2op_test   s    1+A.T3%GA**$AA **$ 	Iq11::d3CD!#	!C&!3%!#QsVT"
13%rC   c                 :   [        U5      X#US.n[        Xh5        U R                  US   U5        [        U5      n	XyR                  ;  a   U	R
                  S   n	XyR                  ;  a  M   [        X5      n
U R                  [        U
SU
5      U	R                  U   5        [        U5      US'   U
" US   [        X#5      U5        U R                  US   U5        [        U5      US'   [        US   U5      nU" [        X#5      U5        U R                  US   U5        g )N)rE   rX   r]   rP   rE   r   rF   )r   rc   rH   rJ   rL   rM   rK   r^   )r<   rE   rX   r]   rP   rN   rd   rO   
dictionaryrQ   rR   rS   s               rA   setsliceop_testOperatorsTest.setsliceop_test   s    #A;QQ?
TC#.G**$AA **$A 	Iq11::d3CD"1+
3	*S/5;*C#."1+
3Z_d+
5;C#.rC   c           	      V   U R                  S/S/SS/SS5        U R                  / SQSSSS5        U R                  / SQSS	SS5        U R                  / SQSSS
S5        U R                  / SQS	SSS/SS5        U R                  S/S/SS/SS5        U R                  SS/S/ SQSS5        U R                  / SQSSS5        U R                  SS/S/ SQSS5        U R                  SS/S/ SQSS5        U R	                  SS/SSSS/SS5        U R                  / SQSSSS// SQSS5        g ) N      a+b__add__ro   rp      b in a__contains__   r   a[b]__getitem__a[b:c]a+=b__iadd__rt   ro   rp   ro   rp   ro   rp   a*=b__imul__len(a)__len__a*b__mul__b*a__rmul__a[b]=c__setitem__ro   rp   rt   rw         ro   r   r   rw   a[b:c]=d)rY   r_   re   rT   rh   rl   r<   s    rA   
test_listsOperatorsTest.test_lists   s/    	aS1Q%	:Ax@Ax@Av}='1a!A-HaS1Q%<1q-Dw8Y71q-	B1q-
C!A1qeX}EY1qeY
%	'rC   c           	      p   U R                  SSS.SSSS5        U R                  SSS.SSSS5        U R                  SSS.SSSS	5        SSS.n/ n[        UR                  5       5       H  nUR                  U5        M     / n[	        U5       H  nUR                  U5        M     U R                  XB5        / nUR                  5        H  nUR                  U5        M     U R                  XB5        / n[        R                  U5       H  nUR                  U5        M     U R                  XB5        SSS.nU R                  USS
S5        U R                  [        [        U5      0 5      U5        U R                  [        UR                  5       0 5      U5        U R                  SSS.SSSSSS.SS5        g )Nrp   rw   ro   rt   ro   ru   rv   r   rx   ry   r   r   rt   rs   r   r   )rY   r8   keysappenditerrH   __iter__dictrT   rI   repr__repr__rh   )r<   rP   l1ils        rA   
test_dictsOperatorsTest.test_dicts   sz   1q	1a>B1q	1a>B1q	1a?AJaffhAIIaL  aAHHQK AHHQK q!AHHQK "AJq!Xy1d1gr*A.ajjlB/3AAqQQ-%	'rC   c                    XS.nU R                   R                  5        HA  u  pVXS;  d  M  SU-  n[        X5      (       d  M#  [        Xd5      nU R	                  XXvU5        MC     [        U R                  R                  5       5       H@  u  pVXS;  d  M  SU-  n[        X5      (       d  M#  [        Xd5      nU R                  XXe5        MB     g )NrW   z__%s__)r7   r9   hasattrrI   rY   r8   r;   rT   )r<   rE   rX   skipr   r?   r@   rN   s           rA   number_operatorsOperatorsTest.number_operators   s    ++++-JD$1##t*COOA#T: . tzz//12JD$1##t*CNN146 3rC   c                 N   U R                  SS5        U R                  SR                  5       S5        U R                  SR                  5       S5         " S S[        5      nU R                  U" S5      S5         U" 5       S-     U R	                  S	5        g ! [
         a     g f = f)
Nd   rt   ro   r   c                       \ rS rSrS rSrg)"OperatorsTest.test_ints.<locals>.C   c                     [         $ NNotImplementedr<   others     rA   rr   *OperatorsTest.test_ints.<locals>.C.__add__       %%rC    N)__name__
__module____qualname____firstlineno__rr   __static_attributes__r   rC   rA   Cr          &rC   r   r    z+NotImplemented should have caused TypeError)r   rH   __bool__r/   fail	TypeErrorr<   r   s     rA   	test_intsOperatorsTest.test_ints   s    c1%!+!+	& 	& 	1q!	EC"H IICD  		s   ;
B 
B$#B$c                 (    U R                  SS5        g )Ng      Y@      @)r   r   s    rA   test_floatsOperatorsTest.test_floats	  s    eS)rC   c                    U R                  SS/ SQS9   " S S[        5      nU" SSS	9nU R                  [        U5      S
5        U R                  UR                  S5        U" USS	9nU R                  [        U5      S5        U R                  UR                  S5        U" S5      nU R                  [        U5      S5        U R                  UR                  S5        g )Ny              Y@              @)	r!   r#   r+   r,   r/   r0   r   r   mod)r   c                   *    \ rS rSrS/rS rS r\rSrg),OperatorsTest.test_complexes.<locals>.Numberi  precc                 b    [         R                  " U /UQ76 nUR                  SS5      Ul        U$ )Nr      )complex__new__getr   )clsr=   kwdsresults       rA   r   4OperatorsTest.test_complexes.<locals>.Number.__new__  s,     4t4"hhvr2rC   c                     U R                   nU R                  S:X  a  SXR                  4-  $ U R                  S:X  a  SXR                  4-  $ SXR                  XR                  4-  $ )N        %.*gz%.*gjz(%.*g+%.*gj))r   imagreal)r<   r   s     rA   r   5OperatorsTest.test_complexes.<locals>.Number.__repr__  s_    yy99#!T99$55599#"dII%666%yy$		(JJJrC   r   N)	r   r   r   r   	__slots__r   r   __str__r   r   rC   rA   Numberr     s    IK GrC   r   gQ	@r   r   z3.14rp   z3.1g     Pm@z234.5r   )r   r   rH   r   r   )r<   r   rE   s      rA   test_complexesOperatorsTest.test_complexes  s    fd 2O 	P	W 	 4a a&)#11a%(#5Ma'*$rC   c                     U R                  [        R                  SS5      [        SS5      5        U R                  [        R	                  SS5      S5        g )Nr   g      @r   ro   g       )rH   r   __radd__r0   __rsub__r   s    rA   test_explicit_reverse_methods+OperatorsTest.test_explicit_reverse_methods.  sA    ))"c2GC4EFQ/6rC   "the module 'xxsubtype' is internalNrequires xxsubtype modulec           
      :   SS K nSS KnS%S jnX1R                  UR                  '   U R	                  U" S/5      U" S/5      U" SS/5      SS5        U R	                  U" / SQ5      SSSS	5        U R	                  U" / SQ5      S
SSS	5        U R	                  U" / SQ5      SSSS5        U R                  U" / SQ5      SSU" SS/5      SS5        U R                  U" S/5      U" S/5      U" SS/5      SS5        U R                  U" SS/5      SU" / SQ5      SS5        U R                  U" / SQ5      SSS5        U R	                  U" SS/5      SU" / SQ5      SS5        U R	                  U" SS/5      SU" / SQ5      SS5        U R                  U" SS/5      SSU" SS/5      SS5        U R                  U" / SQ5      SSU" SS/5      U" / SQ5      S S5         " S! S"UR                  5      nU" 5       nU R                  U/ 5        U R                  UR                  5       S5        UR                  S#5        U R                  US#/5        U R                  UR                  5       S5        UR                  S$5        U R                  UR                  5       S$5        g )&Nr   c                 ,    SS K nUR                  U 5      $ Nr   )	xxsubtypespamlist)r   memospams      rA   r   /OperatorsTest.test_spam_lists.<locals>.spamlist9  s    $==##rC   ro   rp   rq   rr   rs   ru   rv   rw   rx   ry   rz   r{   r|   rt   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                       \ rS rSrS rSrg)(OperatorsTest.test_spam_lists.<locals>.CiU  c                     gNro   r   r   s    rA   foo,OperatorsTest.test_spam_lists.<locals>.C.fooV      !rC   r   Nr   r   r   r   r   r   r   rC   rA   r   r   U      #rC   r   r   *   r   )copyr   _deepcopy_dispatchr   rY   r_   re   rT   rh   rl   rH   r   r   getstatesetstate)r<   r   r   r   r   rE   s         rA   test_spam_listsOperatorsTest.test_spam_lists3  sX    	'	$
 2:.!x}h!uou 	")1a>J)1a>J)1aG(7+Q8QqE?H'	)!x}h!uov"	$!AH],CV"	$x(!XyA!AH],CU!	#!AH],CU"	$1Q%!Q!A&	(Xi0!Q!A%i0*m	M	$ 	$CB!$	SE"q)	

2r*rC   c                    SS K nSS KnSS jnX1R                  UR                  '   U R	                  U" SSS.5      SSSS5        U R	                  U" SSS.5      SSSS5        U R	                  U" SSS.5      SSS	S
5        U" SSS.5      n/ n[        UR                  5       5       H  nUR                  U5        M     / n[        U5       H  nUR                  U5        M     U R                  Xu5        / nUR                  5        H  nUR                  U5        M     U R                  Xu5        / n[        U" 0 5      5      R                  U5       H  nUR                  U5        M     U R                  Xu5        SSS.nU" U5      n	U R                  U	SSS5        U R                  U	[        U5      SS5        U R                  U" SSS.5      SSU" SSSS.5      SS5         " S SUR                  5      n
U
" 5       nU R                  [        UR                  5       5      / 5        U R                  UR!                  5       S5        SUS'   U R                  [        UR                  5       5      S/5        U R                  UR#                  5       S5        UR%                  S5        U R                  UR#                  5       S5        g )Nr   c                 z    SS K nUR                  5       n[        U R                  5       5       H	  u  pEXSU'   M     U$ r   )r   spamdictr8   r9   )rP   r   r   sdkvs         rA   r   /OperatorsTest.test_spam_dicts.<locals>.spamdicte  s2    $BQWWY1 (IrC   rp   rw   r   ro   ru   rv   rx   ry   r   r   zrepr(a)r   rt   rs   r   r   c                       \ rS rSrS rSrg)(OperatorsTest.test_spam_dicts.<locals>.Ci  c                     gr   r   r   s    rA   r   ,OperatorsTest.test_spam_dicts.<locals>.C.foo  r   rC   r   Nr   r   rC   rA   r   r    r   rC   r   barr   r   r  r   r   )r   r   r   r   rY   r8   r   r   r   rH   r   rJ   rT   r   rh   r9   r   r   r   )r<   r   r   r   rP   r   r   r   	straightdspamdr   rE   s               rA   test_spam_dictsOperatorsTest.test_spam_dicts`  sM    	'	 2:.A+Q8^LA+Q8^LA+Q6=IAYaffhAIIaL  aAHHQK AHHQK hrl#,,Q/AHHQK 0AJ	#ua95ud9oy*EQ),aHA]4K]	,	$ 	$Caggi"-!$%aggi>*:;q)	

3s+rC   c                     U R                  [        [        R                  5      R	                  5       [        R                  5        g r   )rH   rangesysmaxsizer   r   s    rA   test_wrap_lenfunc_bad_cast(OperatorsTest.test_wrap_lenfunc_bad_cast  s(    s{{+335s{{CrC   )r7   r;   )r   r   )rq   rr   )rz   ry   )r{   r|   )r   r   )r   r   )r   r   r   r   r6   rT   rY   r_   re   rh   rl   r   r   r   r   r   r   r   r   impl_detailr4   skipIfr   r   r  r  r   r   rC   rA   r   r      s    .$`$ %/&&&&/&'"'< +- 7"E$*%B7
 =>__Y$&(CD)+ E ?)+V =>__Y$&(CD/, E ?/,bDrC   r   c                     ^  \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rU 4S jr\R0                  S 5       r\R4                  " S5      \R8                  " \SL S5      S 5       5       rS r\R0                  S 5       r \R4                  " S5      \R8                  " \SL S5      S 5       5       r!S r"S r#S r$\RJ                  S  5       r&S! r'\RJ                  S" 5       r(S# r)S$ r*S% r+S& r,\R4                  " S'5      S( 5       r-S) r.S* r/S+ r0S, r1\R8                  " \2Rf                  Rh                  S-:  S.5      S/ 5       r5\Rl                  S0 5       r7S1 r8S2 r9S3 r:U 4S4 jr;S5 r<S6 r=S7 r>S8 r?S9 r@S: rAS; rBS< rCS= rDS> rES? rFS@ rGSA rHSB rISC rJSD rKSE rLSF rMSG rNSH rOSI rPSJ rQSK rRSL rSSM rTSN rUSO rVSP rWSQ rXSR rYSS rZST r[SU r\SV r]SW r^SX r_SY r`SZ raS[ rbS\ rcS] rd\R4                  " S^5      S_ 5       reS` rfSa rgSb rhSc riSd rjSe rk\R                  " Sf5      Sg 5       rmSh rnSi roSj rpSk rqSl rrSm rsSn rtSo ruSp rvSq rwSr rxSs rySt rzSu r{Sv r|Sw r}Sx r~Sy rSz rS{ rS| rS} rS~ rS rS rS rU 4S jr\R8                  " \SL S5      S 5       r\GR                  " 5       S 5       rS rS rSrU =r$ )ClassPropertiesAndMethodsi  c                   ^  T R                  [        [        [        5      5        T R                  0 [        5        [        5       nT R	                  U0 5        T R                  UR                  [        5        T R                  U[        5         " U 4S jS[        5      nT R                  [        U[        5      5        U" S5      nT R	                  UR                  S5        U" SSS9nT R	                  US   S:H  =(       a    US   S5        U" 5       nT R	                  UR                  S	5        T R	                  UR                  5       S	5        UR                  S
5        T R	                  UR                  S
5        T R	                  UR                  5       S
5        UR                  S5        T R	                  UR                  S5        T R	                  UR                  5       S5        T R	                  US   S
5        SUS'   T R	                  US   S5        Sn[        U5       H'  nU" 5       XW'   [        U5       H  nXx-  XW   U'   M     M)     [        U5       H.  n[        U5       H  nT R	                  XW   U   Xx-  5        M     M0     g )Nc                   D   > \ rS rSrSrU 4S jrS rU 4S jrS rS r	Sr
g	)
6ClassPropertiesAndMethods.test_python_dicts.<locals>.Ci  c                    > U(       a%  TR                  [        U5      S5        US   U l        U(       a'  [        UR	                  5       5       H	  u  p4X0U'   M     g g Nro   r   )rH   lenstater8   r9   )
self_localrE   kwr  r  r<   s        rA   r6   ?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.__init__  sL    $$SVQ/'(tJ$ $RXXZ 0()1 !1 rC   c                 &    U R                  US5      $ r   )r   r<   keys     rA   ry   BClassPropertiesAndMethods.test_python_dicts.<locals>.C.__getitem__  s    xxQ''rC   c                 ^   > TR                  U[        5        [        R                  XU5        g r   )assertIsInstancer/   r   r   )r   r%  valuer<   s      rA   r   BClassPropertiesAndMethods.test_python_dicts.<locals>.C.__setitem__  s#    %%c3/  %8rC   c                     Xl         g r   r  r<   r  s     rA   r   ?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.setstate      "
rC   c                     U R                   $ r   r,  r   s    rA   r   ?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.getstate      zz!rC   r,  N)r   r   r   r   r  r6   ry   r   r   r   r   r   s   rA   r   r    s!    E*(9#"rC   r   r   ro   rp   r	  r   r  r  r   
   r      2   )
assertTrue
issubclassr   r(  rH   assertIs	__class__r  r   r   r  )	r<   rP   r   a1a2rE   Nr   js	   `        rA   test_python_dicts+ClassPropertiesAndMethods.test_python_dicts  s   
4./b$'FBakk4(a&	" 	"$ 	
1d+,rU2&1!_A%1BqE59C"%r*	

1!$q)	

2"%r*2""2#qA3AD1X#Q   qA1X  a!#.  rC   c                      " S S[         5      nU" 5       nUR                  / SQ5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        U R                  USS
 S5        g )Nc                       \ rS rSrS rSrg)6ClassPropertiesAndMethods.test_python_lists.<locals>.Ci  c                     [        U[        5      (       a  UR                  UR                  4$ [        R                  X5      S-   $ Nr   )
isinstancer^   startstopr8   ry   r<   r   s     rA   ry   BClassPropertiesAndMethods.test_python_lists.<locals>.C.__getitem__  s7    a''77AFF?*''0366rC   r   Nr   r   r   r   ry   r   r   rC   rA   r   rB    s    7rC   r   r   ro   rp   r   r   ro   e   rp   f      )r   rN  )r8   extendrH   r<   r   rE   s      rA   test_python_lists+ClassPropertiesAndMethods.test_python_lists  su    	7 	7
 C	1s#1s#1s#3sY/rC   c                 J  ^^^^^^^  " S S[         S9nU" 5       nU R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5         " S S[         5      n " S S	US9nU R                  UR	                  5       U5        U" 5       nU R                  UR
                  U5         " S
 S[         5      n " S SUS9nU R                  UR                  S5        U" 5       nU R                  UR                  S5         " S S[        5      m " U4S jS[        5      n " S SUS9nU R                  UR                  S5        U R                  UR                  S5        U R                  SUR                  5        U" 5       nU R                  UR                  5       S5         " U4S jS[         5      m " S STS9n	 " S SU	5      n
 " S SU	5      n " S S	X5      nU R                  U" 5       R                  5       S5         " S S X5      nU R                  U" 5       R                  5       S!5         " U4S" jS#[         5      m " S$ STS9n	U	" 5       nU R                  US%5        S&Ul        U R                  UR                  S&5        U R                  UR                   S'5         " S( S)TT5      n " S* SUS9n	 " S+ SU	5      n
 " S, SU	5      n " S- S	X5      nU R                  U" 5       R                  S5         " U4S. jS/[         5      m " S0 STS9nU R                  TR"                  S5        U" 5       nU R                  [        U5      U5        U R                  TR"                  S5         " S1 S[        5      nU" 5       nU" 5         U R%                  S25         " S3 S[         5      n	 " S4 S[        5      n
 " S5 S[        U	S9n " S6 S	X5      nU R)                  U	[        U5      5        / m " U4S7 jS8[         5      n " U4S9 jS:U5      n " S; SUS9n	U R                  S8/T5        TR+                  5          " S< SUS9n
U R                  S:S8/T5        TR+                  5          " S= SX5      nU R                  S:S8/T5        TR+                  5         U R                  S>UR,                  5         " S? S@X5      nU R                  S:S8/T5        TR+                  5         U R                  S>UR,                  5         " SA S	U[         S9nU R                  S:S8/T5        TR+                  5         U R                  S>UR,                  5         " SB S XS9nU R                  S:S8/T5        TR+                  5         U R                  S>UR,                  5        [        5       mU4SC jn " SD SEUS9n " SF SG[        US9n " SH SIUUS9nU R)                  TU5        U R)                  TU5        U R)                  TU5        / m " UU4SJ jSK5      n " UU4SL jSMU5      n " SN SUS9n	U R)                  U[        U	5      5        U R                  SK/T5        TR+                  5         U R                  SK/T5        TR+                  5          " SO SUS9n
U R)                  U[        U
5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5          " SP SX5      nU R)                  U[        U5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5          " SQ S@X5      nU R)                  U[        U5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5         U R/                  [&        5          " SR S	U[         S9nS S S 5         " SS S UUS9nU R)                  U[        U5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5          " ST SU[        5       U5      nU R)                  U[        U5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5          " SV SWU[        5       5      nU R)                  U[        U5      5        U R                  SMSK/T5        TR+                  5         U R                  SMSK/T5        TR+                  5         U R/                  [&        5          " SX SEU[1        5       5      nS S S 5        U R/                  [&        5          " SY SE[1        5       U5      nS S S 5        g ! [&         a     GN+f = f! , (       d  f       GN= f! , (       d  f       Nd= f! , (       d  f       g = f)ZNc                   &    \ rS rSrS rS rS rSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Ci  c                     SU l         g r   	_C__stater   s    rA   r6   <ClassPropertiesAndMethods.test_metaclass.<locals>.C.__init__  	     rC   c                     U R                   $ r   rW  r   s    rA   r   <ClassPropertiesAndMethods.test_metaclass.<locals>.C.getstate      ||#rC   c                     Xl         g r   rW  r-  s     rA   r   <ClassPropertiesAndMethods.test_metaclass.<locals>.C.setstate      $rC   __stateNr   r   r   r   r6   r   r   r   r   rC   rA   r   rU        !$%rC   r   	metaclassr   r3  c                       \ rS rSrS rSrg)<ClassPropertiesAndMethods.test_metaclass.<locals>._metaclassi  c                     U $ r   r   r   s    rA   myselfCClassPropertiesAndMethods.test_metaclass.<locals>._metaclass.myself  s    CZrC   r   N)r   r   r   r   rk  r   r   rC   rA   
_metaclassrh    s    'rC   rm  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Di  r   Nr   r   r   r   r   r   rC   rA   Dro        rC   rq  c                       \ rS rSrS rSrg)4ClassPropertiesAndMethods.test_metaclass.<locals>.M1i  c                 8    SUS'   [         R                  XX#5      $ )Nro   __spam__rJ   r   )r   r?   basesr   s       rA   r   <ClassPropertiesAndMethods.test_metaclass.<locals>.M1.__new__  s    #$Z ||Cu;;rC   r   Nr   r   r   r   r   r   r   rC   rA   M1rt    s    <rC   r{  c                       \ rS rSrSrg)rU  i  r   Nrp  r   rC   rA   r   rU    rr  rC   ro   c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_metaclass.<locals>._instancei  r   Nrp  r   rC   rA   	_instancer~    rr  rC   r  c                   2   > \ rS rSr\S 5       rU 4S jrSrg)4ClassPropertiesAndMethods.test_metaclass.<locals>.M2i  c                 T    [         R                  U 5      nXl        X$l        X4l        U$ r   )objectr   r?   rx  r   )r   r?   rx  r   r<   s        rA   r   <ClassPropertiesAndMethods.test_metaclass.<locals>.M2.__new__  s$    ~~c* 	"
 	rC   c           	         > T" 5       nU R                    HC  nUR                  S5      (       a  M  [        XU R                   U   R                  X5      5        ME     U$ )N__)r   
startswithsetattr__get__)r<   itr%  r  s      rA   __call__=ClassPropertiesAndMethods.test_metaclass.<locals>.M2.__call__  sN    [99C~~d++ BTYYs^%;%;B%EF % 	rC   )rx  r   r?   N)r   r   r   r   staticmethodr   r  r   )r  s   rA   M2r    s      rC   r  c                       \ rS rSrS rSrg)rU  i  c                     gNr   r   r   s    rA   r   8ClassPropertiesAndMethods.test_metaclass.<locals>.C.spam      rC   r   Nr   r   r   r   r   r   r   rC   rA   r   rU        rC   r   r   r   c                   ,   >^  \ rS rSrU U4S jrSrU =r$ );ClassPropertiesAndMethods.test_metaclass.<locals>.autosuperi  c                    > [         TU ]  U XU5      nUS S S:X  a  USS  nUS S S:X  a  M  U(       a  SU-  nOSn[        XA[        U5      5        U$ )Nro   _z
_%s__super__super)superr   r  )rf  r?   rx  r   r   r9  	autosupers        rA   r   CClassPropertiesAndMethods.test_metaclass.<locals>.autosuper.__new__  sj    Iy9):>tM 2Ah#o8D 2Ah#o'$.D$D5:.
rC   r   r   r   r   r   r   r   __classcell__)r9  r  s   @rA   r  r    s     rC   r  c                       \ rS rSrS rSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Ai%  c                     gNAr   r   s    rA   rO   8ClassPropertiesAndMethods.test_metaclass.<locals>.A.meth&      rC   r   Nr   r   r   r   rO   r   r   rC   rA   r  r  %      rC   r  c                       \ rS rSrS rSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Bi(  c                 <    SU R                   R                  5       -   $ NB	_B__superrO   r   s    rA   rO   8ClassPropertiesAndMethods.test_metaclass.<locals>.B.meth)      T\\..000rC   r   Nr  r   rC   rA   r  r  (      1rC   r  c                       \ rS rSrS rSrg)rU  i+  c                 <    SU R                   R                  5       -   $ Nr   	_C__superrO   r   s    rA   rO   8ClassPropertiesAndMethods.test_metaclass.<locals>.C.meth,  r  rC   r   Nr  r   rC   rA   r   rU  +  r  rC   c                       \ rS rSrS rSrg)ro  i.  c                 <    SU R                   R                  5       -   $ Nrq  )	_D__superrO   r   s    rA   rO   8ClassPropertiesAndMethods.test_metaclass.<locals>.D.meth/  r  rC   r   Nr  r   rC   rA   rq  ro  .  r  rC   DCBAc                       \ rS rSrS rSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Ei2  c                 <    SU R                   R                  5       -   $ )NE)	_E__superrO   r   s    rA   rO   8ClassPropertiesAndMethods.test_metaclass.<locals>.E.meth3  r  rC   r   Nr  r   rC   rA   r  r  2  r  rC   r  EBCAc                   ,   >^  \ rS rSrU U4S jrSrU =r$ )>ClassPropertiesAndMethods.test_metaclass.<locals>.autopropertyi7  c                   > 0 nUR                  5        Hu  u  pVUR                  S5      (       a"  USS  nUR                  US5      u  pxUnXx4XE'   M=  UR                  S5      (       d  MU  USS  nUR                  US5      u  pxUnXx4XE'   Mw     UR                  5        H  u  nu  px[        Xx5      X5'   M     [        T
U ]  U XU5      $ )N_get_r   NN_set_)r9   r  r   propertyr  r   )rf  r?   rx  r   hitsr%  valr   setr9  autopropertys            rA   r   FClassPropertiesAndMethods.test_metaclass.<locals>.autoproperty.__new__:  s     $

HC~~g..!!"g#'88C#>!$'H	00!!"g#'88C#>!$'H	 !- (,zz|OC# ( 2DI (4\9=i<@O OrC   r   r  )r9  r  s   @rA   r  r  7  s    O OrC   r  c                        \ rS rSrS rS rSrg)r  iK  c                     U R                   * $ r   _A__xr   s    rA   _get_x:ClassPropertiesAndMethods.test_metaclass.<locals>.A._get_xL  s    y rC   c                     U* U l         g r   r  r<   xs     rA   _set_x:ClassPropertiesAndMethods.test_metaclass.<locals>.A._set_xN  s    2rC   __xN)r   r   r   r   r  r  r   r   rC   rA   r  r  K  s    !rC   r  r   ic                       \ rS rSrSrg)@ClassPropertiesAndMethods.test_metaclass.<locals>.multimetaclassiV  r   Nrp  r   rC   rA   multimetaclassr  V      rC   r  c                       \ rS rSrS rSrg)r  iY  c                     gr  r   r   s    rA   r  r  Z  r  rC   r   Nr   r   r   r   r  r   r   rC   rA   r  r  Y  r  rC   c                       \ rS rSrS rSrg)r  i\  c                 <    SU R                   R                  5       -   $ r  )r  r  r   s    rA   r  :ClassPropertiesAndMethods.test_metaclass.<locals>.B._get_x]      T\\00222rC   r   Nr  r   rC   rA   r  r  \      3rC   c                       \ rS rSrS rSrg)rU  i_  c                 <    SU R                   R                  5       -   $ r  )r  r  r   s    rA   r  :ClassPropertiesAndMethods.test_metaclass.<locals>.C._get_x`  r  rC   r   Nr  r   rC   rA   r   rU  _  r  rC   c                       \ rS rSrS rSrg)ro  ib  c                 <    SU R                   R                  5       -   $ r  )r  r  r   s    rA   r  :ClassPropertiesAndMethods.test_metaclass.<locals>.D._get_xc  r  rC   r   Nr  r   rC   rA   rq  ro  b  r  rC   c                   &   > \ rS rSrSrU 4S jrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Tih  r   c                 0   > T=R                   S-  sl         g r   counter)r<   r=   Ts     rA   r6   <ClassPropertiesAndMethods.test_metaclass.<locals>.T.__init__j  s    		Q	rC   r   N)r   r   r   r   r  r6   r   )r  s   rA   r  r  h  s    G rC   r  c                       \ rS rSrSrg)rU  il  r   Nrp  r   rC   rA   r   rU  l  rr  rC   c                       \ rS rSrSrg)rU  is  r   Nrp  r   rC   rA   r   rU  s      rC   z5calling object w/o call method should raise TypeErrorc                       \ rS rSrS rSrg)r  i{  c                  .    [         R                  " U 0 UD6$ r   rw  r=   r>   s     rA   r   ;ClassPropertiesAndMethods.test_metaclass.<locals>.A.__new__|  s    ||T4V44rC   r   Nrz  r   rC   rA   r  r  {      5rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)rU  i  r   Nrp  r   rC   rA   r   rU    rr  rC   c                       \ rS rSrSrg)ro  i  r   Nrp  r   rC   rA   rq  ro    rr  rC   c                   F   >^  \ rS rSr\U U4S j5       r\S 5       rSrU =r	$ )7ClassPropertiesAndMethods.test_metaclass.<locals>.AMetai  c                 F   > TR                  S5        [        TU ]	  XX#5      $ )NAMetar   r  r   mclsr?   rx  nsr9  	new_callss       rA   r   ?ClassPropertiesAndMethods.test_metaclass.<locals>.AMeta.__new__  "      )wt5==rC   c                     0 $ r   r   )r	  r?   rx  s      rA   __prepare__CClassPropertiesAndMethods.test_metaclass.<locals>.AMeta.__prepare__  s    	rC   r   
r   r   r   r   r  r   classmethodr  r   r  r9  r  s   @rA   r  r    s)    > >  rC   r  c                   L   >^  \ rS rSr\U U4S j5       r\U 4S j5       rSrU =r	$ )7ClassPropertiesAndMethods.test_metaclass.<locals>.BMetai  c                 F   > TR                  S5        [        TU ]	  XX#5      $ )NBMetar  r  s       rA   r   ?ClassPropertiesAndMethods.test_metaclass.<locals>.BMeta.__new__  r  rC   c                 0   > [         TU ]  X5      nSUS'   U$ )NTBMeta_was_here)r  r  r	  r?   rx  r
  r9  s       rA   r  CClassPropertiesAndMethods.test_metaclass.<locals>.BMeta.__prepare__  s"    W(5'+#$	rC   r   r  r  s   @rA   r  r    s)    > >  rC   r  c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)rU  i  r   Nrp  r   rC   rA   r   rU    rr  rC   r  c                       \ rS rSrSrg)4ClassPropertiesAndMethods.test_metaclass.<locals>.C2i  r   Nrp  r   rC   rA   C2r!    rr  rC   r"  c                       \ rS rSrSrg)ro  i  r   Nrp  r   rC   rA   rq  ro    rr  rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                     > T$ r   r   )r=   r>   markers     rA   func6ClassPropertiesAndMethods.test_metaclass.<locals>.func  s    MrC   c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Xi  r   Nrp  r   rC   rA   Xr*    rr  rC   r+  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Yi  r   Nrp  r   rC   rA   Yr-    rr  rC   r.  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Zi  r   Nrp  r   rC   rA   Zr0    rr  rC   r1  c                   B   >^  \ rS rSrU U4S jr\U4S j5       rSrU =r$ ):ClassPropertiesAndMethods.test_metaclass.<locals>.ANotMetai  c                 D   > TR                  S5        [        TU ]	  U 5      $ NANotMetar  r	  r=   r>   r9  r  s      rA   r   BClassPropertiesAndMethods.test_metaclass.<locals>.ANotMeta.__new__         ,wt,,rC   c                 *   > TR                  S5        0 $ r5  r   )r	  r?   rx  prepare_callss      rA   r  FClassPropertiesAndMethods.test_metaclass.<locals>.ANotMeta.__prepare__  s    $$Z0	rC   r   	r   r   r   r   r   r  r  r   r  r9  r  r<  s   @rA   r6  r3    s    -  rC   r6  c                   D   >^  \ rS rSrU U4S jr\U U4S j5       rSrU =r$ ):ClassPropertiesAndMethods.test_metaclass.<locals>.BNotMetai  c                 D   > TR                  S5        [        TU ]	  U 5      $ NBNotMetar  r7  s      rA   r   BClassPropertiesAndMethods.test_metaclass.<locals>.BNotMeta.__new__  r9  rC   c                 D   > TR                  S5        [        TU ]	  X5      $ rC  )r   r  r  )r	  r?   rx  r9  r<  s      rA   r  FClassPropertiesAndMethods.test_metaclass.<locals>.BNotMeta.__prepare__  s!    $$Z0w*477rC   r   r>  r?  s   @rA   rD  rA    s    - 8 8rC   rD  c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)rU  i  r   Nrp  r   rC   rA   r   rU    rr  rC   c                       \ rS rSrSrg)r!  i  r   Nrp  r   rC   rA   r"  r!    rr  rC   c                       \ rS rSrSrg)ro  i  r   Nrp  r   rC   rA   rq  ro        rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_metaclass.<locals>.Fi  r   Nrp  r   rC   rA   FrP    rr  rC   rQ  c                       \ rS rSrSrg)4ClassPropertiesAndMethods.test_metaclass.<locals>.F2i   r   Nrp  r   rC   rA   F2rS     rr  rC   rT  c                       \ rS rSrSrg)r*  i+  r   Nrp  r   rC   rA   r+  r*  +  rM  rC   c                       \ rS rSrSrg)r*  i.  r   Nrp  r   rC   rA   r+  r*  .  rM  rC   )rJ   rH   r   r   rk  r9  rv  r  r?   rx  assertInr   r   rO   assertNotHasAttrr  r  r  r   r   r8  clearrL   assertRaisesr/   )r<   r   rE   rm  rq  rP   r{  r]   r  r  r  r  r  r  r  r"  r'  r+  r.  r1  r6  rD  rQ  rT  r  r  r  r  r&  r  r<  s                           @@@@@@@rA   test_metaclass(ClassPropertiesAndMethods.test_metaclass  sx   	%$ 	% Cq)	

2r*	( 	(	* 	Q'Ca(	< 	<	" 	Q'CQ'	 		 	 	" 	 	%"%faff%C2&	 		) 		1 	1	1 	1	1 	1 	V,	1 	1 	V,	O4 	O(	, 	
 Ca%b!#&	\9 		. 		3 	3	3 	3	3 	3 	'	 		! 	A&Ca!$A&CSii $ %	5 	5	 		! 		 	aa! 		D 			E 			% 	'I.	% 	 	'7+Y7	 	 	'7+Y7&

3	 	'7+Y7&4	T 	'7+Y7&

3	 	'7+Y7&

3 		$ 		$ 		T 	fa fa fa  	 		8 	8x 	8	( 	hQ(*}5*y1	( 	hQ(*j1=A*j19=	 	hQ(*j19=*j1=A	 	hR)*j19=*j1=A y)A  *	X 	hQ(*j19=*j1=A	! 	hQ(*j19=*j1=A	FH 	hR)*j19=*j1=A y)Asu  * y)CE1  *)o $l *)< *) *)s6   *g  	g1hh 
g.-g.1
h 
h
h"c                   ^	^
 / m
[        [        5      m	 " U	U
4S jST	5      nU" S5      nSUl        UR                  nU?U R                  T
/ SQ5          " S S[        R
                  [        5      nU R                  S5        S	 n " S
 S5      n[        S5       Vs/ s H  n[        U" 5       U40 5      PM     nnU R                  UR                  5       U5        g ! [         a     Nff = fs  snf )Nc                   L   > \ rS rSrU 4S jrU U4S jrU U4S jrU U4S jrSrg)<ClassPropertiesAndMethods.test_module_subclasses.<locals>.MMi5  c                 (   > TR                  X5        g r   )r6   )r<   r?   MTs     rA   r6   EClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__init__6  s    D'rC   c                 L   > TR                  SU45        TR                  X5      $ )NrK   )r   __getattribute__r<   r?   ra  logs     rA   rd  MClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__getattribute__8  s%    

It,-**466rC   c                 P   > TR                  SX45        TR                  XU5        g )Nr  )r   __setattr__)r<   r?   r)  ra  rf  s      rA   ri  HClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__setattr__;  s"    

It34t51rC   c                 N   > TR                  SU45        TR                  X5        g )Ndelattr)r   __delattr__re  s     rA   rm  HClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__delattr__>  s     

It,-t*rC   r   N)	r   r   r   r   r6   rd  ri  rm  r   )ra  rf  s   rA   MMr_  5  s    (72+ +rC   ro  rE   r   ))r  r   r   rK   r   )rl  r   c                       \ rS rSrSrg)@ClassPropertiesAndMethods.test_module_subclasses.<locals>.ModuleiK  r   Nrp  r   rC   rA   Modulerr  K  rM  rC   rs  z?inheriting from ModuleType and str at the same time should failc                  f    SR                  [        R                  " [        R                  SS95      $ )Nr   r3  )r  )joinrandomchoicesstringascii_lettersr   rC   rA   random_nameEClassPropertiesAndMethods.test_module_subclasses.<locals>.random_nameT  s"    776>>&*>*>"EFFrC   c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_module_subclasses.<locals>.AiV  r   Nrp  r   rC   rA   r  r}  V  rr  rC   r  r   )rJ   r  r   rH   types
ModuleTypestrr   r   r  __subclasses__)r<   ro  rE   r  rs  rz  r  r   
subclassesra  rf  s            @@rA   test_module_subclasses0ClassPropertiesAndMethods.test_module_subclasses1  s    #Y	+ 	+ 	+ sGEEE 3 	4
	%))3 
 II $ %	G	 	=B3ZHZd;=1$3Z
H))+Z8  		 Is   C C.
C+*C+c                 &  ^  " S S[         5      mT" 5       nU R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5         " U4S jS[        T5      nU" 5       nU R                  [        UR                  5       5      / 5        SUS'   U R                  [        UR                  5       5      S	/5        U R                  US   S5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR                  U[        T[         45         " S
 S[         5      n " S SU[
        5      nU R                  U" 5       R                  5       S5        U R                  [        U" 5       5      S5        U R                  U" 5       R                  5       S5        U R                  [        U" 5       5      S5        g )Nc                   &    \ rS rSrS rS rS rSrg)>ClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Ci]  c                     SU l         g r   rW  r   s    rA   r6   GClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.__init__^  rZ  rC   c                     U R                   $ r   rW  r   s    rA   r   GClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.getstate`  r]  rC   c                     Xl         g r   rW  r-  s     rA   r   GClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.setstateb  r`  rC   ra  Nrc  r   rC   rA   r   r  ]  rd  rC   r   r   r3  c                   "   > \ rS rSrU 4S jrSrg)>ClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Dih  c                 R   > [         R                  U 5        TR                  U 5        g r   )r   r6   r   s    rA   r6   GClassPropertiesAndMethods.test_multiple_inheritance.<locals>.D.__init__i  s    d#

4 rC   r   Nr   r   r   r   r6   r   r   s   rA   rq  r  h  s    ! !rC   rq  worldhello)r  r  c                        \ rS rSrS rS rSrg)AClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Nodeiw  c                 4    [        U R                  5       5      $ r   )r/   r   r   s    rA   __int__IClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Node.__int__x  s    488:&rC   c                     g)N23r   r   s    rA   r   EClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Node.fooz      rC   r   N)r   r   r   r   r  r   r   r   rC   rA   Noder  w  s    'rC   r  c                       \ rS rSrS rSrg)AClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Fragi|  c                     g)N42r   r   s    rA   r   EClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Frag.foo}  r  rC   r   Nr   r   rC   rA   Fragr  |      rC   r     r   )r  rH   r   r   r   r8   r   r9   __mro__r  r/   )r<   rE   rq  rP   r  r  r   s         @rA   test_multiple_inheritance3ClassPropertiesAndMethods.test_multiple_inheritance[  s   	% 	% Cq)	

2r*	!a 	! Caffh,'
aggi+=*>?7W-q)	

2r*Qa$89	6 	
	4 	 	)2.TVb))2.TVb)rC   c                 T    " S S[         5      nU R                  U" 5       R                  5       S5         " S SU5      nU R                  U" 5       R                  5       S5        U R                  U" 5       R                  5       S5         " S SU5      nU R                  U" 5       R                  5       S5        U R                  U" 5       R                  5       S5         " S SX#5      nU R                  U" 5       R                  5       S5        U R                  U" 5       R                  5       S5        U R                  UR                  XBX1[         45         " S	 S
X25      nU R                  U" 5       R                  5       S5        U R                  U" 5       R                  5       S5        U R                  UR                  XSX![         45          " S SXE5      nU R                  S5          " S SXT5      nU R                  S5        g ! [         a     N*f = f! [         a     g f = f)Nc                       \ rS rSrS rSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Ai  c                     gr  r   r   s    rA   r   BClassPropertiesAndMethods.test_diamond_inheritance.<locals>.A.spam      3rC   r   Nr  r   rC   rA   r  r    s    &rC   r  c                        \ rS rSrS rS rSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Bi  c                     gr  r   r   s    rA   booAClassPropertiesAndMethods.test_diamond_inheritance.<locals>.B.boo      #rC   c                     gr  r   r   s    rA   r   BClassPropertiesAndMethods.test_diamond_inheritance.<locals>.B.spam  r  rC   r   N)r   r   r   r   r  r   r   r   rC   rA   r  r    s    %&rC   r  c                       \ rS rSrS rSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Ci  c                     gr  r   r   s    rA   r  AClassPropertiesAndMethods.test_diamond_inheritance.<locals>.C.boo  r  rC   r   N)r   r   r   r   r  r   r   rC   rA   r   r    s    %rC   r   c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Di  r   Nrp  r   rC   rA   rq  r        trC   rq  c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Ei  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Fi  r   Nrp  r   rC   rA   rQ  r        4rC   rQ  z#expected MRO order disagreement (F)c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Gi  r   Nrp  r   rC   rA   Gr    r  rC   r  z#expected MRO order disagreement (G))r  rH   r   r  r  r   r   )r<   r  r  r   rq  r  rQ  r  s           rA   test_diamond_inheritance2ClassPropertiesAndMethods.test_diamond_inheritance  s   	' 	'S)	' 	' 	S)C(	& 	&S)C(S)C(Q1$89S)C(Q1$89	=A II;<	=A II;<  		  		s$   H
 -H 

HH
H'&H'c           
           " S S[         5      n " S S[         5      n " S S[         5      n " S SU5      n " S	 S
U5      n " S SXBXS5      nU R                  UR                  XdX%X[         45        g )Nc                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Ai  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Bi  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Ci  r   Nrp  r   rC   rA   r   r    r  rC   r   c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Xi  r   Nrp  r   rC   rA   r+  r        DrC   r+  c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Yi  r   Nrp  r   rC   rA   r.  r    r  rC   r.  c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.Zi  r   Nrp  r   rC   rA   r1  r    s    $rC   r1  r  rH   r  )r<   r  r  r   r+  r.  r1  s          rA   test_ex5_from_c3_switch1ClassPropertiesAndMethods.test_ex5_from_c3_switch  sQ    AQ1v$>?rC   c                     " S S[         5      n " S SU5      n " S SU5      n " S SU5      n " S	 S
U5      n " S SXC5      n " S SU5      n " S SXg5      nU R                  UR                  XdX#U[         45        U R                  UR                  XuX![         45        U R                  UR                  XXGXRX1[         4	5        g )Nc                       \ rS rSrSrg)9ClassPropertiesAndMethods.test_monotonicity.<locals>.Boati  r   Nrp  r   rC   rA   Boatr        DrC   r  c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_monotonicity.<locals>.DayBoati  r   Nrp  r   rC   rA   DayBoatr    s    TrC   r  c                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_monotonicity.<locals>.WheelBoati  r   Nrp  r   rC   rA   	WheelBoatr    s    trC   r  c                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_monotonicity.<locals>.EngineLessi  r   Nrp  r   rC   rA   
EngineLessr    s    4rC   r  c                       \ rS rSrSrg)CClassPropertiesAndMethods.test_monotonicity.<locals>.SmallMultihulli  r   Nrp  r   rC   rA   SmallMultihullr    s    trC   r  c                       \ rS rSrSrg)CClassPropertiesAndMethods.test_monotonicity.<locals>.PedalWheelBoati  r   Nrp  r   rC   rA   PedalWheelBoatr        DrC   r  c                       \ rS rSrSrg)CClassPropertiesAndMethods.test_monotonicity.<locals>.SmallCatamarani  r   Nrp  r   rC   rA   SmallCatamaranr    s    drC   r  c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_monotonicity.<locals>.Pedaloi  r   Nrp  r   rC   rA   Pedalor    s    TrC   r  r  )	r<   r  r  r  r  r  r  r  r  s	            rA   test_monotonicity+ClassPropertiesAndMethods.test_monotonicity  s     6 !d!##''+W+8Z82^29^9//7tVL	N//wfE	Gz	A	BrC   c           
           " S S[         5      n " S S[         5      n " S S[         5      n " S SX5      n " S	 S
X5      n " S SXE5      nU R                  UR                  XdXQX#[         45        g )Nc                       \ rS rSrSrg)AClassPropertiesAndMethods.test_consistency_with_epg.<locals>.Panei  r   Nrp  r   rC   rA   Paner    r  rC   r  c                       \ rS rSrSrg)KClassPropertiesAndMethods.test_consistency_with_epg.<locals>.ScrollingMixini  r   Nrp  r   rC   rA   ScrollingMixinr        drC   r  c                       \ rS rSrSrg)IClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditingMixini  r   Nrp  r   rC   rA   EditingMixinr    s    DrC   r  c                       \ rS rSrSrg)KClassPropertiesAndMethods.test_consistency_with_epg.<locals>.ScrollablePanei  r   Nrp  r   rC   rA   ScrollablePaner    s    4rC   r  c                       \ rS rSrSrg)IClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditablePanei  r   Nrp  r   rC   rA   EditablePaner    s    trC   r  c                       \ rS rSrSrg)SClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditableScrollablePanei  r   Nrp  r   rC   rA   EditableScrollablePaner
    s    4rC   r  r  )r<   r  r  r  r  r  r  s          rA   test_consistency_with_epg3ClassPropertiesAndMethods.test_consistency_with_epg  sX     6 *V*(6(7T7343G^G/77%|f6	7rC   c           	        ^  SnU 4S jn " S S[         5      n " S SU5      n " S S[         5      nU" [        S	[        S
X340 5        U" [        U[        S
X440 5        U" [        U[        S
X5U40 5         " S S[         5      n " S SU5      n " S SU5      n " S SXx5      n	 " S SX5      n
U" [        U[        SX40 5        g )NzCCannot create a consistent method resolution order (MRO) for bases c                 *  >  U" U6   TR                  SU -  5        g ! U  ao  n[        R                  " 5       (       aK  [        U5      R	                  U5      (       d'  TR                  S[        U5      < SU< 35         S nAg  S nAg  S nAg S nAff = f)NzExpected %szMessage z, expected )r   r   check_impl_detailr  r  )excexpectedcallabler=   msgr<   s        rA   raises?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.raises  s    	/$ 		-#-.  8,,..s8..x88		#&s8X#7 8 8 9 /8s    BABBc                       \ rS rSrSrg):ClassPropertiesAndMethods.test_mro_disagreement.<locals>.A  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg):ClassPropertiesAndMethods.test_mro_disagreement.<locals>.Bi  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg):ClassPropertiesAndMethods.test_mro_disagreement.<locals>.Ci  r   Nrp  r   rC   rA   r   r    r  rC   r   zduplicate base class Ar+  c                       \ rS rSrSrg)CClassPropertiesAndMethods.test_mro_disagreement.<locals>.GridLayouti  r   Nrp  r   rC   rA   
GridLayoutr    s    $rC   r   c                       \ rS rSrSrg)GClassPropertiesAndMethods.test_mro_disagreement.<locals>.HorizontalGridi  r   Nrp  r   rC   rA   HorizontalGridr"    s    $rC   r#  c                       \ rS rSrSrg)EClassPropertiesAndMethods.test_mro_disagreement.<locals>.VerticalGridi  r   Nrp  r   rC   rA   VerticalGridr%    s    rC   r&  c                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.HVGridi  r   Nrp  r   rC   rA   HVGridr(    r  rC   r)  c                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.VHGridi  r   Nrp  r   rC   rA   VHGridr+    r  rC   r,  ConfusedGrid)r  r   rJ   )r<   mro_err_msgr  r  r  r   r   r#  r&  r)  r,  s   `          rA   test_mro_disagreement/ClassPropertiesAndMethods.test_mro_disagreement  s    0
	/ 	 	y2S1&"	&y+S1&"	&y+S1)R	) 	'&.Z.,:,8^88\8y+^f%5r	;rC   c                 h   [        5       nU R                  UR                  [         5        U R                  [        U5      [         5        [        5       nU R	                  X5        U R                  US5         SUl        U R                  S5        U R                  [        5       S5         " S S[         5      nU" 5       nU R                  UR                  0 5        SUl        U R                  UR                  S5        U R                  UR                  SS05        g ! [        [        4 a     Nf = f)Nr   r   z1object() should not allow setting a foo attributerL   c                       \ rS rSrSrg):ClassPropertiesAndMethods.test_object_class.<locals>.Cdicti  r   Nrp  r   rC   rA   Cdictr3    rr  rC   r4  ro   )r  rH   r9  rJ   assertNotEqualrX  r   r   AttributeErrorr   rL   )r<   rE   rX   r4  r  s        rA   test_object_class+ClassPropertiesAndMethods.test_object_class  s    Hf-a&)HA!a'	KAE IIIJfh
3	F 	GR("eQZ0 	* 		s   8D D10D1c                     " S S[         R                  5      n[         R                  " S5      nU R                  UR                  [         R                  L 5        U R	                  [        US5      5        Xl        U R                  UR                  UL 5        U R                  [        US5      5        [         R                  Ul        U R                  UR                  [         R                  L 5        U R	                  [        US5      5         " S S[        5      nU R                  [        5         USl        S S S 5         " S S	[        5      nU R                  [        5         US
l        S S S 5         " S S[        5      nU R                  [        5         USl        S S S 5         " S S[        5      nU R                  [        5         USl        S S S 5         " S S[        5      nU R                  [        5         USl        S S S 5         " S S[        5      nU R                  [        5         USl        S S S 5         " S S[        5      n	U R                  [        5         U	[        5       l        S S S 5        g ! , (       d  f       GNP= f! , (       d  f       GN.= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrSrg)jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.SubTypei  ro   r   Nr   r   r   r   rE   r   r   rC   rA   SubTyper;    s    ArC   r=  rR   rE   c                       \ rS rSrSrSrg)hClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyInti.  r   Nr   r   r   r   r   r   r   rC   rA   MyIntr?  .      IrC   rA  ro   c                       \ rS rSrSrSrg)jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyFloati3  r   Nr@  r   rC   rA   MyFloatrD  3  rB  rC   rE        ?c                       \ rS rSrSrSrg)lClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyComplexi8  r   Nr@  r   rC   rA   	MyComplexrH  8  rB  rC   rI  y      ?       @c                       \ rS rSrSrSrg)hClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyStri=  r   Nr@  r   rC   rA   MyStrrK  =  rB  rC   rL  c                       \ rS rSrSrSrg)jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyBytesiB  r   Nr@  r   rC   rA   MyBytesrN  B  rB  rC   rO     ac                       \ rS rSrSrSrg)jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyTupleiG  r   Nr@  r   rC   rA   MyTuplerR  G  rB  rC   rS  r   c                       \ rS rSrSrSrg)nClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyFrozenSetiL  r   Nr@  r   rC   rA   MyFrozenSetrU  L  rB  rC   rV  )r~  r  r6  r9  assertFalser   r/   rZ  r   r0   r   r  bytestuple	frozenset)
r<   r=  rR   rA  rE  rI  rL  rO  rS  rV  s
             rA   ?test_object_class_assignment_between_heaptypes_and_nonheaptypesYClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes  s   	e&& 	 S!u'7'778C)w./3(&&u'7'778C)	C 	y)!QM *	e 	y)%SO *	 	y)!*V *	C 	y)!CM *	e 	y)$DN *	e 	y)"BL *	) 	y)$/IK! *)= *)
 *)
 *)
 *)
 *)
 *)
 *)sT   3J'JJ(J:K7K+K-
J
J%(
J7:
K
K
K*-
K;c                 v  ^ ^^^  " S S[         5      nU" 5       nT R                  US5        T R                  US5         " S S[         5      nU" 5       nT R                  US5        T R                  US5        SUl        T R                  UR                  S5        S Ul        T R                  UR                  S 5        U?T R                  US5         " S	 S
[         5      nU" 5       nT R                  US5        T R                  US5        T R                  US5        T R                  US5        SUl        SUl        SUl        T R                  UR                  S5        T R                  UR                  S5        T R                  UR
                  S5         " S S[         5      nU" S5      nT R                  US5        T R                  US5        T R                  UR                  5       S5         SUl        T R                  S5          " S S[         5      nT R                  S5          " S S[         5      nT R                  S5          " S S[         5      nT R                  S5          " S S[         5      nT R                  S5          " S S[         5      nT R                  S5         " S  S![         5      n " S" S[         5      nU" 5       nSUl        T R                  UR                  S5         " S# S[         5      nU" 5       nSUl        T R                  UR                  S5        S$m " U4S% jS[         5      nU" 5       nSUl        T R                  UR                  S5        T R                  [        TS&   5      [        5          " S' S[         5      nT R                  S(5         " U4S) jS*[         5      m " S+ S[         5      nU" 5       nT" 5       Ul        T" 5       Ul        T" 5       Ul        T R                  TR"                  S5        A[$        R&                  " 5         T R                  TR"                  S&5         " S, S-U5      n	U	" 5       nT" 5       Ul        T" 5       Ul        T R                  TR"                  S5        A[$        R&                  " 5         T R                  TR"                  S&5         " S. S/U	5      n
U
" 5       nT" 5       Ul        T" 5       Ul        T" 5       Ul        T R                  TR"                  S5        A[$        R&                  " 5         T R                  TR"                  S&5         " S0 S1[         5      nU" 5       nT" 5       U/Ul        T R                  TR"                  S5        S n[$        R&                  " 5         T R                  TR"                  S&5        [-        [.        S25      (       az   " S3 S4[         5      nU" 5       n[1        [.        R2                  " 5       5      n[5        S55       H  nX:H    M	     [1        [.        R2                  " 5       5      nT R                  UU5         " U 4S6 jS7[         5      n[$        R6                  " S85       nU" 5       nAS S S 5        T R                  UR9                  5       S95         " S: S;[         5      nT R;                  [        5         U" 5       ?S S S 5         " S< S;[         5      nT R=                  [        S=5         U" 5       R                    S S S 5         " S> S?[        5      m " U4S@ jS;[         5      nSU" 5       l        T R=                  [        SA5         U" 5       R                    S S S 5        g ! [         a     GNvf = f! [         a     GNff = f! [         a     GNVf = f! [         a     GNFf = f! [         a     GN6f = f! [         a     GN&f = f! [        [         4 a     GN;f = f! , (       d  f       GN}= f! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       g = f)BNc                       \ rS rSr/ rSrg)0ClassPropertiesAndMethods.test_slots.<locals>.C0iS  r   Nr@  r   rC   rA   C0r_  S  rB  rC   r`  rL   r   c                       \ rS rSrS/rSrg)0ClassPropertiesAndMethods.test_slots.<locals>.C1iY  rE   r   Nr@  r   rC   rA   C1rb  Y  	    IrC   rc  rE   ro   c                       \ rS rSr/ SQrSrg)0ClassPropertiesAndMethods.test_slots.<locals>.C3ie  r\   r   Nr@  r   rC   rA   C3rf  e      'IrC   rg  rX   r]   rp   rt   c                   *    \ rS rSrSrS/rS rS rSrg)0ClassPropertiesAndMethods.test_slots.<locals>.C4is  zValidate name mangling__ac                     Xl         g r   _C4__ar<   r)  s     rA   r6   9ClassPropertiesAndMethods.test_slots.<locals>.C4.__init__v       rC   c                     U R                   $ r   rm  r   s    rA   r   4ClassPropertiesAndMethods.test_slots.<locals>.C4.getx      xxrC   )rk  N)	r   r   r   r   __doc__r   r6   r   r   r   rC   rA   C4rj  s  s    (I! rC   rv  r   rk  r   z$Double underscored names not mangledc                       \ rS rSrS/rSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Ci  Nr   r@  r   rC   rA   r   rx    s	    !F	rC   r   z[None] slots not caughtc                       \ rS rSrS/rSrg)rx  i  zfoo barr   Nr@  r   rC   rA   r   rx    s	    &K	rC   z['foo bar'] slots not caughtc                       \ rS rSrS/rSrg)rx  i  zfoo barr   Nr@  r   rC   rA   r   rx    s	    'L	rC   z['foo\0bar'] slots not caughtc                       \ rS rSrS/rSrg)rx  i  1r   Nr@  r   rC   rA   r   rx    s	     E	rC   z['1'] slots not caughtc                       \ rS rSrS/rSrg)rx  i  r   r   Nr@  r   rC   rA   r   rx    s	    D	rC   z[''] slots not caughtc                       \ rS rSr/ SQrSrg)BClassPropertiesAndMethods.test_slots.<locals>.WithValidIdentifiersi  )rE   a_b_aA0123456789Zr   Nr@  r   rC   rA   WithValidIdentifiersr    s    :IrC   r  c                       \ rS rSrSrSrg)rx  i  abcr   Nr@  r   rC   rA   r   rx        IrC   c                       \ rS rSrSrSrg)rx  i  r  r   Nr@  r   rC   rA   r   rx    r  rC   r	  c                      > \ rS rSr Y rSrg)rx  i  r   Nr@  )slotss   rA   r   rx    s    IrC   r   c                   &    \ rS rSr\" S5      /rSrg)rx  i     r   N)r   r   r   r   chrr   r   r   rC   rA   r   rx    s     XJ	rC   z[chr(128)] slots not caughtc                   2   > \ rS rSrSrU 4S jrU 4S jrSrg)5ClassPropertiesAndMethods.test_slots.<locals>.Countedi  r   c                 0   > T=R                   S-  sl         g r   r  r<   Counteds    rA   r6   >ClassPropertiesAndMethods.test_slots.<locals>.Counted.__init__      1$rC   c                 0   > T=R                   S-  sl         g r   r  r  s    rA   __del__=ClassPropertiesAndMethods.test_slots.<locals>.Counted.__del__  r  rC   r   N)r   r   r   r   r  r6   r  r   )r  s   rA   r  r    s    G%% %rC   r  c                       \ rS rSr/ SQrSrg)rx  i  r\   r   Nr@  r   rC   rA   r   rx    rh  rC   c                       \ rS rSrSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Di  r   Nrp  r   rC   rA   rq  r    rr  rC   rq  c                       \ rS rSrS/rSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Ei  er   Nr@  r   rC   rA   r  r    rd  rC   r  c                       \ rS rSrSS/rSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Fi  rE   rX   r   Nr@  r   rC   rA   rQ  r        c
IrC   rQ  get_objectsc                       \ rS rSrS rSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Gi  c                     g)NFr   r   s     rA   __eq__6ClassPropertiesAndMethods.test_slots.<locals>.G.__eq__  s     rC   r   Nr   r   r   r   r  r   r   rC   rA   r  r    s    !rC   r  r3  c                   0   > \ rS rSrSS/rS rU 4S jrSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Hi  rE   rX   c                      SU l         SU l        g Nro   rp   rW   r   s    rA   r6   8ClassPropertiesAndMethods.test_slots.<locals>.H.__init__
  s    rC   c                 v   > TR                  U R                  S5        TR                  U R                  S5        g r  )rH   rE   rX   )self_r<   s    rA   r  7ClassPropertiesAndMethods.test_slots.<locals>.H.__del__  s+      !,  !,rC   rW   N)r   r   r   r   r   r6   r  r   r   s   rA   Hr    s    c
I- -rC   r  stderrr   c                       \ rS rSrSrSrg)/ClassPropertiesAndMethods.test_slots.<locals>.Xi  rE   r   Nr@  r   rC   rA   r+  r        IrC   r+  c                       \ rS rSrSrSrg)r  i  rE   r   Nr@  r   rC   rA   r+  r    r  rC   z]'test.test_descr.ClassPropertiesAndMethods.test_slots.<locals>.X' object has no attribute 'a'c                       \ rS rSrSrg)4ClassPropertiesAndMethods.test_slots.<locals>.SubStri!  r   Nrp  r   rC   rA   SubStrr  !  rr  rC   r  c                   *   > \ rS rSr Y " S5      4rSrg)r  i#  r  r   Nr@  )r  s   rA   r+  r  #  s    IrC   z'X' object has no attribute 'a') r  rX  rE   rH   rX   r]   r   _ClassPropertiesAndMethods__ar   r6  r   r  r   r8  rJ   r  UnicodeEncodeErrorr  r   
gc_collectzr  r   gcr  r  r  captured_outputgetvaluerZ  assertRaisesRegexr  )r<   r`  r  rc  rg  rv  r   r  r]   rq  r  rQ  sr  gorig_objectsr   new_objectsr  hr+  r  r  r  s   `                    @@@rA   
test_slots$ClassPropertiesAndMethods.test_slotsQ  s   	 	Da,a'	 	Da,a%a d#Ca%	( 	(Da,a%a%a%a a a 	  	  qEa,a'!$	>AE II<=	1#F #
 II/0	6(F (
 II45	8)F )
 II67	0"F "
 II./	/!F !
 II-.	;6 	;	 	C"	 	C" 	 	C"d58nc*	5'F '
 II34	%f 	%	( 	(Ciii!,!,	 	Cii!,!,	 	Ciii!,!,	# 	#Cy!n!,!, 2}%%!F ! Ar~~/0L2Y bnn./K\;7	- 	- $$X.!A / 	r*	 	~. /	 	##N  5T  UCEE U	S 		' 	'##N4UVCEE WVM  		  		  		  		  		  		F -. 		P /. /. U  U WVs   6]7 ^ 0^ ^* 2^; _ _ 5	_4
`?``*7
^^
^^
^'&^'*
^87^8;
_	_	
___10_14
`
`
`'*
`8c                     " S S[         5      nU" 5       nU R                  US5        U R                  US5        SUl        U R	                  UR
                  SS05         " S S[         5      nU" 5       nU R                  US5        U R                  US5         SUl        U R                  S	5         " S
 SX15      nU" 5       nU R                  US5        U R                  US5        SUl        U R	                  UR
                  SS05         " S SX5      nU" 5       nU R                  US5        U R                  US5        SUl        U R	                  UR
                  SS05        g ! [         a     Nf = f)Nc                       \ rS rSrS/rSrg)7ClassPropertiesAndMethods.test_slots_special.<locals>.Di+  rL   r   Nr@  r   rC   rA   rq  r  +  	    #IrC   rq  rL   __weakref__r   r   c                       \ rS rSrS/rSrg)7ClassPropertiesAndMethods.test_slots_special.<locals>.Wi3  r  r   Nr@  r   rC   rA   Wr  3  	    &IrC   r  z!shouldn't be allowed to set a.fooc                       \ rS rSr/ rSrg)8ClassPropertiesAndMethods.test_slots_special.<locals>.C1i?  r   Nr@  r   rC   rA   rc  r  ?  rB  rC   rc  c                       \ rS rSr/ rSrg)8ClassPropertiesAndMethods.test_slots_special.<locals>.C2iG  r   Nr@  r   rC   rA   r"  r  G  rB  rC   r"  )r  assertHasAttrrX  r   rH   rL   r   r6  )r<   rq  rE   r  rc  r"  s         rA   test_slots_special,ClassPropertiesAndMethods.test_slots_special)  sZ   	% 	%C1j)a/eR[1	( 	(C1m,a,	;AE II9:	 	D1j)1m,eR[1	 	D1j)1m,eR[1'  		s   E* *
E76E7c                 ~  ^   " U 4S jS[         5      n " S S5      n " S SX!SS9nT R                  UR                  S   [        R                  5        U" 5       nT R                  UR                  S	5        T R                  US5        S	Ul        T R                  UR                  S	5        T R                  [        5          " S
 S5      nS S S 5         " S SUSS9nT R                  UR                  UR                  S S S-   5        T R                  UR                  S   [        R                  5        U" 5       nT R                  US5        SUl        T R                  UR                  S5        T R                  [        5          " S S5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                   ,   >^  \ rS rSrU U4S jrSrU =r$ );ClassPropertiesAndMethods.test_slots_special2.<locals>.MetaiQ  c                 F   > TR                  XC5        [        TU ]	  XX#5      $ r   )rW  r  r   )r   r?   rx  	namespaceattrr9  r<   s        rA   r   CClassPropertiesAndMethods.test_slots_special2.<locals>.Meta.__new__R  s     d.ws%CCrC   r   r  r9  r<   s   @rA   Metar  Q  s    D DrC   r  c                       \ rS rSrS rSrg)9ClassPropertiesAndMethods.test_slots_special2.<locals>.C1iV  c                     SU l         g r  rX   r   s    rA   r6   BClassPropertiesAndMethods.test_slots_special2.<locals>.C1.__init__W  s	    rC   r  Nr  r   rC   rA   rc  r  V  r  rC   rc  c                   .   ^  \ rS rSrS/rU 4S jrSrU =r$ )9ClassPropertiesAndMethods.test_slots_special2.<locals>.C2iY  r  c                 "   > [         TU ]  5         g r   r  r6   )r<   r9  s    rA   r6   BClassPropertiesAndMethods.test_slots_special2.<locals>.C2.__init__[  s     "rC   r   )r   r   r   r   r   r6   r   r  r9  s   @rA   r"  r  Y  s    ()I# #rC   r"  r  )rf  r  r   c                       \ rS rSrSrS/rSrg)9ClassPropertiesAndMethods.test_slots_special2.<locals>.C3ie  r   r  r   N)r   r   r   r   r  r   r   r   rC   rA   rg  r  e  s     ",-	rC   rg  c                       \ rS rSrS/rSrg)9ClassPropertiesAndMethods.test_slots_special2.<locals>.Q1ii  r   r   Nr@  r   rC   rA   Q1r  i  s
    '(IrC   r  r   qc                   (    \ rS rSr\" 5       rS/rSrg)9ClassPropertiesAndMethods.test_slots_special2.<locals>.Q2is  r   r   N)r   r   r   r   r  r   r   r   rC   rA   Q2r  s  s    %x+,	rC   r  )rJ   r(  rL   r~  MemberDescriptorTyperH   rX   rX  r  rZ  r   r   )	r<   r  rc  r"  r]   rg  r  r  r  s	   `        rA   test_slots_special2-ClassPropertiesAndMethods.test_slots_special2O  sh   	D4 	D
	 		#/ 	# 	bkk/:#88	:Db!a1"-y). . *
	)4n 	)"//#2*>*EFbkk.9#88	:Da0-y)- - *) *) *)s   F	F.
F+.
F<c                     SS K n " S SUR                  S9n " S S[        5      nUR                  U5        U" 5       nU R	                  XB5        U R                  [        UR                  R                  US5        g )Nr   c                       \ rS rSrSrSrg)>ClassPropertiesAndMethods.test_slots_descriptor.<locals>.MyABCi{  rE   r   Nr@  r   rC   rA   MyABCr  {  r  rC   r  re  c                       \ rS rSrSrg)BClassPropertiesAndMethods.test_slots_descriptor.<locals>.Unrelatedi~  r   Nrp  r   rC   rA   	Unrelatedr  ~  rr  rC   r  rt   )	r  ABCMetar  registerr(  rZ  r   rE   __set__)r<   r  r  r  us        rA   test_slots_descriptor/ClassPropertiesAndMethods.test_slots_descriptorw  sb     		ckk 		 	y!Ka' 	)UWW__a;rC   c                     " S S[         5      n " S SU5      n " S SU5      nSUl        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5         " S S	[         5      nU" 5       nU R                  US
5        SUl        U R                  UR                  S5        S Ul        U R                  UR                  5       S5        S Ul        U R                  [        U5      S5        S Ul        U R                  [        U5      S5        U R                  UR                  S5        U R                  US5        S nXdl
        U R                  UR                  S5        SUl        U R                  UR                  S5        S nXtl        U R                  [        5         SUl        S S S 5        U R                  UR                  S5         " S SU5      nU" 5       nSUl        U R                  UR                  S5         " S S[        5      n	U R                  SU	" S5      -  S5        U R                  U	" S5      S-  S5        U R                  SU	" S5      -  S5        U R                  U	" S5      S-  S5        U R                  U	" S5      U	" S5      -  S5         " S S[         5      n
 " S  S!U
S"9nU R#                  U[         5        g ! , (       d  f       GN+= f)#Nc                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_dynamics.<locals>.Di  r   Nrp  r   rC   rA   rq  r    rr  rC   rq  c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_dynamics.<locals>.Ei  r   Nrp  r   rC   rA   r  r
    rr  rC   r  c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_dynamics.<locals>.Fi  r   Nrp  r   rC   rA   rQ  r    rr  rC   rQ  ro   c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_dynamics.<locals>.Ci  r   Nrp  r   rC   rA   r   r    rr  rC   r   foobarrp   c                     gr  r   r   s    rA   <lambda>9ClassPropertiesAndMethods.test_dynamics.<locals>.<lambda>  s    rC   r   c                     g)NC()r   r   s    rA   r  r    s    %rC   r  c                     grD  r   r   s    rA   r  r    s    rC   r   r   c                     US:X  a  g[         eNr   r6  r<   r?   s     rA   	mygetattr:ClassPropertiesAndMethods.test_dynamics.<locals>.mygetattr  s    v~  rC   r   c                 F    US:X  a  [         e[        R                  XU5      $ r  )r6  r  ri  )r<   r?   r)  s      rA   	mysetattr:ClassPropertiesAndMethods.test_dynamics.<locals>.mysetattr  s"    v~$$%%d%88rC   znot spamc                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   rq  r    rr  rC   c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_dynamics.<locals>.Ii  r   Nrp  r   rC   rA   Ir!    rr  rC   r"  rE   aart   r   c                       \ rS rSrSrg)AClassPropertiesAndMethods.test_dynamics.<locals>.dynamicmetaclassi  r   Nrp  r   rC   rA   dynamicmetaclassr%    rr  rC   r&  c                       \ rS rSrSrg):ClassPropertiesAndMethods.test_dynamics.<locals>.someclassi  r   Nrp  r   rC   rA   	someclassr(    rr  rC   r)  re  )r  r   rH   rX  r  methodr   r   r  r/   __getattr__r   newri  rZ  r6  rJ   r5  )r<   rq  r  rQ  r   rE   r  r  rP   r"  r&  r)  s               rA   test_dynamics'ClassPropertiesAndMethods.test_dynamics  s}   	 		 		 	"""	 	Ca*1%"R('
a%($	Q%1%a(	! "(#	9 "~.AF / 	(	 	C"	 	QqT4(1c4(1Q4#1a#1adA&	t 		"2 	Iv.1 /.s   K::
L	c                      " S S[         [        5      nU R                  S5          " S S[        S 5      nU R                  S5         " S S5      n  " S S[        [        5      5      nU R                  S	5          " S
 S[        5      nU R                  S5          " S S[        5      nU R                  S5         " S S[
        5      n " S S[
        5      n " S S[        US9n " S S[        US9n  " S SXV5      nU R                  S5        g ! [         a     Nf = f! [         a     Nf = f! [         a     Nf = f! [         a     Nf = f! [         a     Nf = f! [         a     g f = f)Nc                       \ rS rSrSrg)0ClassPropertiesAndMethods.test_errors.<locals>.Ci  r   Nrp  r   rC   rA   r   r1    rM  rC   r   z5inheritance from both list and dict should be illegalc                       \ rS rSrSrg)r1  i  r   Nrp  r   rC   rA   r   r1    rM  rC   z+inheritance from non-type should be illegalc                       \ rS rSrSrg)6ClassPropertiesAndMethods.test_errors.<locals>.Classici  r   Nrp  r   rC   rA   Classicr4    rr  rC   r5  c                       \ rS rSrSrg)r1  i  r   Nrp  r   rC   rA   r   r1    rM  rC   z,inheritance from CFunction should be illegalc                       \ rS rSrSrSrg)r1  i  ro   r   Nr@  r   rC   rA   r   r1    s    	rC   z__slots__ = 1 should be illegalc                       \ rS rSrS/rSrg)r1  i  ro   r   Nr@  r   rC   rA   r   r1    s	    C	rC   z!__slots__ = [1] should be illegalc                       \ rS rSrSrg)1ClassPropertiesAndMethods.test_errors.<locals>.M1i  r   Nrp  r   rC   rA   r{  r:    rr  rC   r{  c                       \ rS rSrSrg)1ClassPropertiesAndMethods.test_errors.<locals>.M2i  r   Nrp  r   rC   rA   r  r<    rr  rC   r  c                       \ rS rSrSrg)1ClassPropertiesAndMethods.test_errors.<locals>.A1i  r   Nrp  r   rC   rA   A1r>    rr  rC   r?  re  c                       \ rS rSrSrg)1ClassPropertiesAndMethods.test_errors.<locals>.A2i  r   Nrp  r   rC   rA   A2rA    rr  rC   rB  c                       \ rS rSrSrg)0ClassPropertiesAndMethods.test_errors.<locals>.Bi   r   Nrp  r   rC   rA   r  rD     rM  rC   r  z5finding the most derived metaclass should have failed)r8   r   r   r   r  rJ   r  )r<   r   r5  r{  r  r?  rB  r  s           rA   test_errors%ClassPropertiesAndMethods.test_errors  s   	OD$ 
 IIMN	EFD 
 IICD	 		FDI 
 IIDE	9F 
 II78	; F  
 II9:	 		 		2 		2 		OB 
 IIMNk  		  		  		  		  		   		sj   D D' D7 >E E :E' 
D$#D$'
D43D47
EE
EE
E$#E$'
E43E4c                   >  " S S[         5      nU" 5       nU R                  UR                  S5      US45        U R                  UR                  S5      US45        U R                  UR                  S5      US45         " S SU5      nU" 5       nU R                  UR                  S5      US45        U R                  UR                  S5      US45        U R                  UR                  S5      US45        U R                  UR                  US5      US45        S n[	        U5      nU R                  UR                  S[        5      " S5      [        S45        U R                  UR                  S5      " S5      [        S45        U R                  UR                  R                  U5        U R                  UR                  R                  U5        U R                  [        X3]
  R                  U5        U R                  [        X4]
  R                  U5        U R                  [        X3]  5       U45        U R                  [        X4]  5       U45        [	        S5      R                  S5      nU R                  [        U5         [	        USS	9  U R                  S
5        [	        U5      n0 [        R                  (       a  SOS [        SUR                  S.n	U R                  UR                   U	5        SUl        U R                  UR"                  S5        U R                  UR                   SS0U	E5        U?U R%                  US5        g ! [         a     Nf = f)Nc                   *    \ rS rSrS r\" \5      rSrg)6ClassPropertiesAndMethods.test_classmethods.<locals>.Ci	  c                      U $ r   r   rE   s    rA   r   :ClassPropertiesAndMethods.test_classmethods.<locals>.C.foo
      rC   r   Nr   r   r   r   r   r  goor   r   rC   rA   r   rI  	      !c"CrC   r   ro   c                       \ rS rSrSrg)6ClassPropertiesAndMethods.test_classmethods.<locals>.Di  r   Nrp  r   rC   rA   rq  rR    rr  rC   rq  c                     X4$ )f docstringr   )r   args     rA   f6ClassPropertiesAndMethods.test_classmethods.<locals>.f  s
    :rC   r   r   r!  z)classmethod shouldn't accept keyword argsrT  rV  )__annotations__ru  r   r   r   r  )r  rH   rO  r   r  r  r/   __self__r  rZ  r   r   r   HAVE_PY_DOCSTRINGSr   r   rL   r  rX  )r<   r   r]   rq  rP   rV  ffrO   cmcm_dictr9  s             rA   test_classmethods+ClassPropertiesAndMethods.test_classmethods  s   	# 	# CqAq6*qAq6*qAq6*	 	CqAq6*qAq6*qAq6*q!q!f-	 ^As+B/#r;Ar*S"I6 	++q00!4q00!4q)A40q)A40 1~%%a()T*	Ca  IIAB^&( "44 % !)"#$>>3 	g.r"sR&;7&;<Db#&+  		s   
M 
M M c                     [         R                  " [        S5      n[        S 5      nU" 5       n[	        S5       H  nUR                  S 5        M     U R                  U" 5       U-
  SSS9  g Ngettotalrefcountr   r   r3  )delta)r   get_attributer  r  r  r6   assertAlmostEqual)r<   rc  r]  refs_beforer   s        rA   %test_refleaks_in_classmethod___init__?ClassPropertiesAndMethods.test_refleaks_in_classmethod___init__E  s`    "006HI&(sAKK /1K?"MrC   r   Nr   c                 @   SS K nSnSS0nUR                  R                  " U0 UD6u  pEnU R                  XAR                  5        U R                  X%5        U R                  X65        UR                  5       R                  " U0 UD6u  pEnU R                  XAR                  5        U R                  X%5        U R                  X65        UR                  R                  S   nU" UR                  /UQ70 UD6u  pn
U R                  XR                  5        U R                  X5        U R                  X5         " S SUR                  5      nU" U/UQ70 UD6u  pn
U R                  X5        U R                  X5        U R                  X5        U R                  [        5       nU" 5         S S S 5        U R                  [        WR                  5      S5        U R                  [        5       nU" UR                  5       5        S S S 5        U R                  [        UR                  5      S	5        U R                  [        5       nU" [        5        S S S 5        S
nU R                  [        UR                  5      U5        U R                  [        5       nUR                  S [        5        S S S 5        U R                  [        UR                  5      U5        g ! , (       d  f       GN8= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nh= f)Nr   rs   r  {   	classmethc                       \ rS rSrSrg)AClassPropertiesAndMethods.test_classmethods_in_c.<locals>.SubSpamib  r   Nrp  r   rC   rA   SubSpamrn  b  r  rC   ro  zGdescriptor 'classmeth' of 'xxsubtype.spamlist' object needs an argumentzfdescriptor 'classmeth' for type 'xxsubtype.spamlist' needs a type, not a 'xxsubtype.spamlist' as arg 2zUdescriptor 'classmeth' requires a subtype of 'xxsubtype.spamlist' but received 'list')r   r   rl  rH   rL   rZ  r   r  	exceptionr8   r  )r<   r   rE   rP   r  r:  d1spam_cmx2r;  d2ro  r]  expected_errmsgs                 rA   test_classmethods_in_c0ClassPropertiesAndMethods.test_classmethods_in_cN  s{    	!CLMM++Q4!4	rMM*MMO--q6A6	rMM*--((5T]]4Q4!4
]]+  *dmm*W.q.A.
%  y)RI *'	(
 y)RDMMO$ *@	A
 y)RDM *" 	 	R\\*O<y)ROOD$' *R\\*O</ *) *) *) *)s0   "K,K-K>L
K*-
K;>
L
Lc                 V    " S S[         5      nU" 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      US45         " S SU5      nU" 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      US45        U R                  UR                  US5      US45        [	        S 5      nU R                  UR
                  SS R                  05        SUl        U R                  UR                  S5        U R                  UR
                  SS R                  S	.5        U?U R                  US
5        g )Nc                   *    \ rS rSrS r\" \5      rSrg)7ClassPropertiesAndMethods.test_staticmethods.<locals>.Ci  c                      U $ r   r   rK  s    rA   r   ;ClassPropertiesAndMethods.test_staticmethods.<locals>.C.foo  rM  rC   r   N)r   r   r   r   r   r  rO  r   r   rC   rA   r   rz    s    !s#CrC   r   ro   )ro   c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_staticmethods.<locals>.Di  r   Nrp  r   rC   rA   rq  r~    rr  rC   rq  ru  r   )r  ru  r  )	r  rH   rO  r   r  rL   ru  r  rX  )r<   r   r]   rq  rP   sms         rA   test_staticmethods,ClassPropertiesAndMethods.test_staticmethods  sT   	$ 	$ Cq4(q4(qAq7+	 	Cq4(q4(qAq6*q!q!f-$y$,,&?@r"RDLL&IJDb#&rC   c                     [         R                  " [        S5      n[        S 5      nU" 5       n[	        S5       H  nUR                  S 5        M     U R                  U" 5       U-
  SSS9  g rb  )r   re  r  r  r  r6   rf  )r<   rc  r  rg  r   s        rA   &test_refleaks_in_staticmethod___init__@ClassPropertiesAndMethods.test_refleaks_in_staticmethod___init__  s`    "006HI$&(sAKK /1K?"MrC   c                 l   SS K nSnSS0nUR                  R                  " U0 UD6u  pEnU R                  US 5        U R                  X%5        U R                  X65        UR                  5       R                  " U0 UD6u  pEnU R                  US 5        U R                  X%5        U R                  X65        g )Nr   rs   r  rk  )r   r   
staticmethrH   )r<   r   rE   rP   r  r:  rq  rt  s           rA   test_staticmethods_in_c1ClassPropertiesAndMethods.test_staticmethods_in_c  s     	!CLMM,,a515	rD!MMO..7Q7	rD!rC   c                 J  ^  " S S5      mT" 5       nU R                  TR                  S5      TS45        U R                  UR                  S5      TS45        U R                  UR                  S5      US45         " S ST5      nU" 5       nU R                  UR                  S5      US45        U R                  UR                  S5      US45        U R                  UR                  S5      US45        U R                  UR                  US5      US45         " U4S jS5      nU R                  U" 5       R                  R                  TR                  5        U R	                  [        TR                  R                  T" 5       5      5      R                  S5      5        g )	Nc                   *    \ rS rSrS r\" \5      rSrg)1ClassPropertiesAndMethods.test_classic.<locals>.Ci  c                      U $ r   r   rK  s    rA   r   5ClassPropertiesAndMethods.test_classic.<locals>.C.foo  rM  rC   r   NrN  r   rC   rA   r   r    rP  rC   r   ro   c                       \ rS rSrSrg)1ClassPropertiesAndMethods.test_classic.<locals>.Di  r   Nrp  r   rC   rA   rq  r    rr  rC   rq  c                   0   > \ rS rSr Y R                  rSrg)1ClassPropertiesAndMethods.test_classic.<locals>.Ei  r   Nr   r  s   rA   r  r        %%CrC   r  <bound method )rH   rO  r   __func__r6  r   r  r  )r<   r]   rq  rP   r  r   s        @rA   test_classic&ClassPropertiesAndMethods.test_classic  sE   	# 	# CqAq6*qAq6*qAq6*	 	CqAq6*qAq6*qAq6*q!q!f-	 	))1551QUU]]13/0;;<LMNrC   c                 F    " S S[         5      nU" 5       nU R                  UR                  S5        U R                  UR                  S5        SUl        U R                  UR                  S5        U R                  UR                  S5        U?U R                  US5        g )Nc                   V    \ rS rSr " S S\5      rS rS rS rS r	\" \\\	5      r
Srg	)
2ClassPropertiesAndMethods.test_compattr.<locals>.Ci  c                   4    \ rS rSrSS jrS	S jrS rS rSrg)
EClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attributei  Nc                 (    Xl         X l        X0l        g r   )_computed_attribute__get_computed_attribute__set_computed_attribute__delete)r<   r   r  deletes       rA   r6   NClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__init__  s    !$J!$J$*MrC   c                 $    U R                  U5      $ r   )r  )r<   objrJ   s      rA   r  MClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__get__  s    ::c?*rC   c                 $    U R                  X5      $ r   )r  r<   r  r)  s      rA   r  MClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__set__  s    ::c11rC   c                 $    U R                  U5      $ r   )r  r<   r  s     rA   
__delete__PClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__delete__  s    ==--rC   )__delete__get__setr  r   )	r   r   r   r   r6   r  r  r  r   r   rC   rA   computed_attributer    s    ++2.rC   r  c                     SU l         g r   _C__xr   s    rA   r6   ;ClassPropertiesAndMethods.test_compattr.<locals>.C.__init__  s	    rC   c                 2    U R                   nUS-   U l         U$ r   r  r  s     rA   __get_x:ClassPropertiesAndMethods.test_compattr.<locals>.C.__get_x  s    HHQ3rC   c                     Xl         g r   r  r  s     rA   __set_x:ClassPropertiesAndMethods.test_compattr.<locals>.C.__set_x  s    rC   c                     U ? g r   r  r   s    rA   
__delete_x=ClassPropertiesAndMethods.test_compattr.<locals>.C.__delete_x      HrC   r  N)r   r   r   r   r  r  r6   	_C__get_x	_C__set_x_C__delete_xr  r   r   rC   rA   r   r    s0    
.V 
."7GZ@ArC   r   r   ro   r3     r  )r  rH   r  rX  rP  s      rA   test_compattr'ClassPropertiesAndMethods.test_compattr  s    	A 	A. Ca a b!b!Ca%rC   c                 4    " S S[         5      nU" 5       nU R                  UR                  S5        U R                  UR                  U5         " S SU5      nU" 5       nU R                  UR                  S5        U R                  UR                  U5        g )Nc                        \ rS rSrS rS rSrg)2ClassPropertiesAndMethods.test_newslots.<locals>.Ci  c                 >    [         R                  U 5      nSUl        U$ r   )r8   r   r   r   r<   s     rA   r   :ClassPropertiesAndMethods.test_newslots.<locals>.C.__new__  s    ||C(rC   c                 ,    U R                   S-   U l         g Nrp   r   r   s    rA   r6   ;ClassPropertiesAndMethods.test_newslots.<locals>.C.__init__  s    88a<rC   r  Nr   r   r   r   r   r6   r   r   rC   rA   r   r    s    (rC   r   rt   c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_newslots.<locals>.Di  r   Nrp  r   rC   rA   rq  r    rr  rC   rq  )r8   rH   r   r9  )r<   r   rE   rq  rX   s        rA   test_newslots'ClassPropertiesAndMethods.test_newslots  sz    	( 	( C"a(	 	C"a(rC   c                    U R                  [        [        R                  5        U R                  [        [        R                  S5        U R                  [        [        R                  [        5        U R                  [        [        R                  [        5         " S S[        5      nU R                  [        U5         " S S[        5      nU R                  [        U5        g )Nr   c                   ,    \ rS rSr\R
                  rSrg)1ClassPropertiesAndMethods.test_bad_new.<locals>.Ci  r   N)r   r   r   r   r8   r   r   r   rC   rA   r   r    s    llGrC   r   c                   ,    \ rS rSr\R
                  rSrg)r  i  r   N)r   r   r   r   r  r   r   r   rC   rA   r   r    s    nnGrC   )rZ  r   r  r   r8   r   s     rA   test_bad_new&ClassPropertiesAndMethods.test_bad_new  s    )V^^4)V^^R8)T\\6:)V^^T:	# 	#)Q'	% 	%)Q'rC   c                 H    " S S[         5      n[         R                  U5        U R                  [        [         R                  US5        [         R	                  U" 5       5        U R                  [        [         R                  U" 5       S5         " S S[         5      n[         R                  U5        [         R                  US5        [         R	                  U" S5      5        U R                  [        [         R                  U" S5      S5         " S S[         5      n[         R                  U5        U R                  [        [         R                  US5        [         R	                  U" S5      5        [         R	                  U" S5      S5         " S S[         5      n[         R                  U5        U R                  [        [         R                  US5        [         R	                  U" S5      5        U R                  [        [         R                  U" S5      S5        g )Nc                       \ rS rSrSrg)4ClassPropertiesAndMethods.test_object_new.<locals>.Ai	  r   Nrp  r   rC   rA   r  r  	  rr  rC   r  r   c                       \ rS rSrS rSrg)r  i  c                     Xl         g r   r  r<   r   s     rA   r6   =ClassPropertiesAndMethods.test_object_new.<locals>.A.__init__      rC   r  Nr  r   rC   rA   r  r        rC   rt   c                       \ rS rSrS rSrg)r  i  c                 ,    [         R                  U 5      $ r   r  r   r   r   s     rA   r   <ClassPropertiesAndMethods.test_object_new.<locals>.A.__new__      ~~c**rC   r   Nrz  r   rC   rA   r  r    s    +rC   c                        \ rS rSrS rS rSrg)r  i   c                 ,    [         R                  U 5      $ r   r  r  s     rA   r   r  !  r  rC   c                     Xl         g r   r  r  s     rA   r6   r  #  r  rC   r  Nr  r   rC   rA   r  r     s    +rC   )r  r   rZ  r   r6   r<   r  s     rA   test_object_new)ClassPropertiesAndMethods.test_object_new  s`   	 	q)V^^Q:)V__ac1=	 	 	qq!!)V__adA>	+ 	+ 	q)V^^Q:!!a 	 	
 	q)V^^Q:!)V__adA>rC   c                     " S S[         5      nU R                  [        U5         " S SU5      n[        R                  " 5          [        R
                  " S[        5        U" S5      nS S S 5        U R                  WR                  S5        U R                  UR                  U5        U?
U R                  [        U5        U?
[        R                  " 5          [        R
                  " S[        5        U" S5      nS S S 5        U R                  UR                  S5        U R                  UR                  U5        g ! , (       d  f       N= f! , (       d  f       NX= f)Nc                       \ rS rSrS rSrg)=ClassPropertiesAndMethods.test_restored_object_new.<locals>.Ai,  c                     [         er   AssertionError)r   r=   r>   s      rA   r   EClassPropertiesAndMethods.test_restored_object_new.<locals>.A.__new__-  s    $$rC   r   Nrz  r   rC   rA   r  r  ,      %rC   r  c                   2    \ rS rSr\R
                  rS rSrg)=ClassPropertiesAndMethods.test_restored_object_new.<locals>.Bi0  c                     Xl         g r   r  r  s     rA   r6   FClassPropertiesAndMethods.test_restored_object_new.<locals>.B.__init__2  r  rC   r  N)r   r   r   r   r  r   r6   r   r   rC   rA   r  r  0  s    nnGrC   r  errorrt   )r  rZ  r  warningscatch_warningssimplefilterDeprecationWarningrH   r   r9  r   )r<   r  r  rX   s       rA   test_restored_object_new2ClassPropertiesAndMethods.test_restored_object_new*  s   	% 	% 	.!,	 	 $$&!!'+=>!A ' 	"a(I.!,I$$&!!'+=>!A ' 	"a( '& '&s   $D>$E>
E
Ec           
      f    " S S[         5      n " S SU5      n " S SU5      n " S SX#5      nU R                  UR                  5       U[         /5        U R                  UR                  U[         45        U R                  UR                  5       X![         /5        U R                  UR                  X![         45        U R                  UR                  5       X1[         /5        U R                  UR                  X1[         45        U R                  UR                  5       XBX1[         /5        U R                  UR                  XBX1[         45        U R                  U" 5       R	                  5       S5         " S	 S
[
        5      n " S SXBX1US9nU R                  UR                  [         XX$U45        U R                  U" 5       R	                  5       S5          " S S[
        5      n " S S[         US9n[         R                  U5      nSUS'   U R                  S5          " S S[
        5      n " S S[         US9nU R                  S5          " S S[
        5      n " S S[         US9nU R                  S5        g ! [         a     Nkf = f! [         a     NLf = f! [         a     g f = f)Nc                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_altmro.<locals>.AiD  c                     gr  r   r   s    rA   rV  2ClassPropertiesAndMethods.test_altmro.<locals>.A.fE      rC   r   Nr   r   r   r   rV  r   r   rC   rA   r  r  D  r   rC   r  c                       \ rS rSrSrg)0ClassPropertiesAndMethods.test_altmro.<locals>.BiF  r   Nrp  r   rC   rA   r  r	  F  rr  rC   r  c                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_altmro.<locals>.CiH  c                     gr  r   r   s    rA   rV  2ClassPropertiesAndMethods.test_altmro.<locals>.C.fI  r  rC   r   Nr  r   rC   rA   r   r  H  r   rC   r   c                       \ rS rSrSrg)0ClassPropertiesAndMethods.test_altmro.<locals>.DiJ  r   Nrp  r   rC   rA   rq  r  J  rr  rC   rq  c                       \ rS rSrS rSrg)?ClassPropertiesAndMethods.test_altmro.<locals>.PerverseMetaTypeiV  c                 P    [         R                  U 5      nUR                  5         U$ r   )rJ   mroreverse)r   Ls     rA   r  CClassPropertiesAndMethods.test_altmro.<locals>.PerverseMetaType.mroW  s    HHSM		rC   r   Nr   r   r   r   r  r   r   rC   rA   PerverseMetaTyper  V  s    rC   r  c                       \ rS rSrSrg)0ClassPropertiesAndMethods.test_altmro.<locals>.Xi[  r   Nrp  r   rC   rA   r+  r  [  rr  rC   r+  re  c                       \ rS rSrS rSrg)9ClassPropertiesAndMethods.test_altmro.<locals>._metaclassia  c                     U [         [        /$ r   )r   r  r   s    rA   r  =ClassPropertiesAndMethods.test_altmro.<locals>._metaclass.mrob  s     $//rC   r   Nr  r   rC   rA   rm  r  a  s    0rC   rm  c                       \ rS rSrSrg)r  id  r   Nrp  r   rC   rA   r+  r  d  rM  rC   r   r   zdevious mro() return not caughtc                       \ rS rSrS rSrg)r  it  c                     S/$ r   r   r   s    rA   r  r  u  s	    3JrC   r   Nr  r   rC   rA   rm  r  t  s    rC   c                       \ rS rSrSrg)r  iw  r   Nrp  r   rC   rA   r+  r  w  rM  rC   z!non-class mro() return not caughtc                       \ rS rSrS rSrg)r  i  c                     gr   r   r   s    rA   r  r    s    rC   r   Nr  r   rC   rA   rm  r    s    rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r+  r    rM  rC   z$non-sequence mro() return not caught)	r  rH   r  r  rV  rJ   r   r   r   )	r<   r  r  r   rq  r  r+  rm  r  s	            rA   test_altmro%ClassPropertiesAndMethods.test_altmroB  sG   	$ 	$	 		$ 	$	 	1f+.QK01.1Q6N31.1Q6N31v"67Q1$89#&	t 	
	A#3 	VQ1$;<#&	90T 0Fj  q!AAaD II78		;T Fj 
 II9:		>T Fj 
 II<=3  		  		  		s6   7J %J J# 
JJ
J J #
J0/J0c                   ^  " S S[         5      m " U4S jST5      nU" 5       nU R                  UR                  S5        SUl        U R                  UR                  S5        U?U R                  UR                  S5        U R                  US   S	5        S
US'   U R                  UR
                  S5        US	 U R                  UR                  S5        U R                  USS S[        SS5      45        SUSS& U R                  UR
                  [        SS5      S45        USS2	 U R                  UR                  [        SS5      5        g )Nc                       \ rS rSrSrSrg)5ClassPropertiesAndMethods.test_overloading.<locals>.Bi  z<Intermediate class because object doesn't have a __setattr__r   Nr   r   r   r   ru  r   r   rC   rA   r  r*    s    JrC   r  c                   F   > \ rS rSrS rU 4S jrU 4S jrS rS rS r	Sr
g	)
5ClassPropertiesAndMethods.test_overloading.<locals>.Ci  c                 "    US:X  a  SU4$ [         e)Nr   rK   r  r  s     rA   r+  AClassPropertiesAndMethods.test_overloading.<locals>.C.__getattr__  s    5=%t,,((rC   c                 F   > US:X  a	  X4U l         g TR                  XU5      $ Nr   )r  ri  )r<   r?   r)  r  s      rA   ri  AClassPropertiesAndMethods.test_overloading.<locals>.C.__setattr__  s$    5=$(=DL==U;;rC   c                 @   > US:X  a  Xl         g TR                  X5      $ r1  )rl  rm  )r<   r?   r  s     rA   rm  AClassPropertiesAndMethods.test_overloading.<locals>.C.__delattr__  s    5=#'L==44rC   c                 
    SU4$ )Ngetitemr   r$  s     rA   ry   AClassPropertiesAndMethods.test_overloading.<locals>.C.__getitem__  s    !3''rC   c                     X4U l         g r   )setitem)r<   r%  r)  s      rA   r   AClassPropertiesAndMethods.test_overloading.<locals>.C.__setitem__  s     #|rC   c                     Xl         g r   )delitemr$  s     rA   __delitem__AClassPropertiesAndMethods.test_overloading.<locals>.C.__delitem__  s    "rC   )rl  r<  r  r9  N)r   r   r   r   r+  ri  rm  ry   r   r=  r   )r  s   rA   r   r-    s!    )
<
5(,#rC   r   rp  r   )r   r   r   )r6  r      )r   r?  r   r3  r6  )r  rH   r   r  rl  r9  r<  r^   )r<   r   rE   r  s      @rA   test_overloading*ClassPropertiesAndMethods.test_overloading  s+   	K 	K	# 	#0 C 23K0EE*20"H-bEB'1R9eArl";<!BU1b\5$9:adGU1b\3rC   c           	          " S S5      nSR                  S [        S5       5       5      nSU S3n0 n[        X45        US   n[        S	5       H2  nU R                  U" U" 5       5      [	        [        S5      5      5        M4     g )
Nc                       \ rS rSrS rSrg)FClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.Numbersi  c                 6    [        UR                  S5      5      $ Nr  )r/   lstripr<   r  s     rA   r+  RClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.Numbers.__getattr__  s    4;;s+,,rC   r   Nr   r   r   r   r+  r   r   rC   rA   NumbersrD    s    -rC   rK  , c              3   .   #    U  H  nS US 3v   M     g7f)zZ._03dNr   ).0ns     rA   	<genexpr>HClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.<genexpr>  s     <AC#w-s   i  z"def number_attrs(Z):
    return [ z ]number_attrs   )ru  r  rc   rH   r8   )r<   rK  attrscoder
  rS  r  s          rA   test_load_attr_extended_arg5ClassPropertiesAndMethods.test_load_attr_extended_arg  sx    	- 	- 		<s<<4UG2>T.)rA\')4d5:6FG rC   c           	        ^^  " S S[         5      mT" S5      mU R                  TR                  5       S5         " UU4S jST5      nU" S5      nU R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR	                  5       S5         " U4S jS[         5      nU R                  U" 5       R                  R
                  TR                  5        U R                  [        TR                  R                  T" S5      5      5      R                  S	5      5        g )
Nc                        \ rS rSrS rS rSrg)1ClassPropertiesAndMethods.test_methods.<locals>.Ci  c                     Xl         g r   r  r  s     rA   r6   :ClassPropertiesAndMethods.test_methods.<locals>.C.__init__      rC   c                     U R                   $ r   r]  r   s    rA   r   5ClassPropertiesAndMethods.test_methods.<locals>.C.foo  s    vvrC   r]  N)r   r   r   r   r6   r   r   r   rC   rA   r   r[    s    rC   r   ro   c                   J   > \ rS rSr Y R                  r YR                  rSrg)1ClassPropertiesAndMethods.test_methods.<locals>.Di  r   N)r   r   r   r   r   r  rO  r   )r   c1s   rA   rq  rc    s    %%C&&CrC   rq  rp   c                   0   > \ rS rSr Y R                  rSrg)1ClassPropertiesAndMethods.test_methods.<locals>.Ei  r   Nr   r  s   rA   r  rf    r  rC   r  r  )
r  rH   r   r  rO  r  r6  r   r  r  )r<   rq  rt  r  r   rd  s       @@rA   test_methods&ClassPropertiesAndMethods.test_methods  s    	 	
 qT1%	 	 	 qT1%1%1%	 	))1551QUU]]1Q401<<=MNOrC   z)testing error message from implementationc                 |   [         R                  nSnU R                  [        5       nU" 5         S S S 5        U R	                  WR
                  R                  S   U5        SnU R                  [        5       nU" S5        S S S 5        U R	                  UR
                  R                  S   U5        U R                  [        5       nUR                  S5        S S S 5        U R	                  UR
                  R                  S   U5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NZ= f)Nz*unbound method set.add() needs an argumentr   zBdescriptor 'add' for 'set' objects doesn't apply to a 'int' object)r  r   rZ  r   rH   rp  r=   r  )r<   set_addru  r]  s       rA   test_methods_in_c+ClassPropertiesAndMethods.test_methods_in_c  s    
 ''Fy)RI ***1-?^y)RAJ ***1-?y)ROOA ***1-? *) *) *)s#   D8	DD-
D
D*-
D;c                   ^ ^^^ S nS nS nS nS nS nS nS/S jnS	 n	S
 n
U 4S jnU 4S jnS nS nS[         U[        5       0 4S[        U[        5       0 4S[        U[        5       X'S.4S[        R
                  U[        5       0 4SX[        5       0 4SX[        S5      0 4SX[        S5      0 4SX[        5       SU04SX[        5       SU04S[        U[        5       0 4S[        U[        5       0 4S[        R                  U[        5       0 4S[        R                  U[        5       0 4S[        R                  U[        5       0 4S [        U[        5       0 4S![        U[        5       0 4/n " UU 4S" jS#[        5      n " U4S$ jS%[        5      n " S& S'[        5      m " U4S( jS)[        5      nU GH  u  nnnmn " S* S+U5      nUR!                  5        H  u  nn[#        UUU5        M     [#        UUU5        U" U" 5       5        / m " S, S+U5      nUR!                  5        H  u  nn[#        UUU5        M     [#        UUU" U5      5        U" U" 5       5        T R%                  TS-/U5         " S. S+U5      nUR!                  5        H  u  nn[#        UUU5        M     [#        UUU" 5       5        T R'                  TUU" 5       5        GM     g )0Nc                 >    U     S S S 5        g ! , (       d  f       g = fr   r   )managers    rA   run_contextIClassPropertiesAndMethods.test_special_method_lookup.<locals>.run_context  s     s   
c                     U $ r   r   r   s    rA   idenBClassPropertiesAndMethods.test_special_method_lookup.<locals>.iden  s    KrC   c                     g)Ns   hellor   r   s    rA   r  CClassPropertiesAndMethods.test_special_method_lookup.<locals>.hello  s    rC   c                     / $ r   r   r   s    rA   	empty_seqGClassPropertiesAndMethods.test_special_method_lookup.<locals>.empty_seq  s    IrC   c                     gr   r   r   s    rA   zeroBClassPropertiesAndMethods.test_special_method_lookup.<locals>.zero  s    rC   c                     g)N              ?r   r   s    rA   complex_numIClassPropertiesAndMethods.test_special_method_lookup.<locals>.complex_num  s    rC   c                     [         er   )StopIterationr   s    rA   rG  BClassPropertiesAndMethods.test_special_method_lookup.<locals>.stop  s    rC   c                     g)NTr   )r<   things     rA   return_trueIClassPropertiesAndMethods.test_special_method_lookup.<locals>.return_true  s    rC   c                 "    [        [        U 5      $ r   )rE  r/   r  s    rA   do_isinstanceKClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_isinstance	      c3''rC   c                 "    [        [        U 5      $ r   )r7  r/   r  s    rA   do_issubclassKClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_issubclass  r  rC   c                 n   >  " S SU R                   [        5      nTR                  U" 5       S   S5        g )Nc                       \ rS rSrSrg)^ClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_dict_missing.<locals>.DictSubi  r   Nrp  r   rC   rA   DictSubr    rM  rC   r  hirw   )r9  r   rH   )checkerr  r<   s     rA   do_dict_missingMClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_dict_missing  s-    '++T WYt_a0rC   c                 *   > TR                  US5        g)Nr  rw   rH   )r  r%  r<   s     rA   some_numberIClassPropertiesAndMethods.test_special_method_lookup.<locals>.some_number  s    S$'rC   c                      g r   r   r=   s    rA   swallowEClassPropertiesAndMethods.test_special_method_lookup.<locals>.swallow  s    DrC   c                     gNr  r   )r<   specs     rA   format_implIClassPropertiesAndMethods.test_special_method_lookup.<locals>.format_impl  s    rC   	__bytes____reversed____length_hint__)r   __next__
__sizeof____instancecheck____missing__r  __subclasscheck__rM   	__enter____exit____complex__
__format__	__floor__	__trunc____ceil____dir__	__round__c                   8   > \ rS rSr Y4S jr Y4U 4S jjrSrg)EClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checkeri1  c                 D    UR                  SR                  U5      5        g )Nz__getattr__ called with {0})r   format)r<   r  tests      rA   r+  QClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checker.__getattr__2  s    		7>>tDErC   c                 z   > UT;  a   UR                  SR                  U5      5        [        R                  X5      $ )Nz __getattribute__ called with {0})r   r  r  rd  )r<   r  r  oks      rA   rd  VClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checker.__getattribute__4  s3    r>II@GGMN..t::rC   r   Nr   r   r   r   r+  rd  r   )r  r<   s   rA   Checkerr  1  s    -1 F26 ; ;rC   r  c                   (   > \ rS rSrS rU 4S jrSrg)JClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescri8  c                     Xl         g r   impl)r<   r  s     rA   r6   SClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescr.__init__9       	rC   c                 \   > TR                  S5        U R                  R                  X5      $ r   )r   r  r  )r<   r  ownerrecords      rA   r  RClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescr.__get__;  s$    a yy((44rC   r  N)r   r   r   r   r6   r  r   )r  s   rA   SpecialDescrr  8  s    !5 5rC   r  c                       \ rS rSrSrg)IClassPropertiesAndMethods.test_special_method_lookup.<locals>.MyExceptioni>  r   Nrp  r   rC   rA   MyExceptionr  >  rr  rC   r  c                   "   > \ rS rSrU 4S jrSrg)FClassPropertiesAndMethods.test_special_method_lookup.<locals>.ErrDescri@  c                    > Ter   r   )r<   r  r  r  s      rA   r  NClassPropertiesAndMethods.test_special_method_lookup.<locals>.ErrDescr.__get__A  s	    !!rC   r   Nr   r   r   r   r  r   )r  s   rA   ErrDescrr  @      " "rC   r  c                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_special_method_lookup.<locals>.XiE  r   Nrp  r   rC   rA   r+  r  E  rM  rC   r+  c                       \ rS rSrSrg)r  iM  r   Nrp  r   rC   rA   r+  r  M  rM  rC   ro   c                       \ rS rSrSrg)r  iU  r   Nrp  r   rC   rA   r+  r  U  rM  rC   r   )rX  r  reversedr8   r  	getsizeofr   r  mathfloortruncceildirroundr  	Exceptionr9   r  rH   rZ  )r<   rp  rs  r  rx  r{  r  rG  r  r  r  r  r  r  r  specialsr  r  r  r?   runner	meth_implenvr+  r  r  r  r  r  s   `                         @@@rA   test_special_method_lookup4ClassPropertiesAndMethods.test_special_method_lookup  s   							 		(	(	1	 	!	 %r2Xy#%<dCE353==$r: -ceRHO "& - "&+SUZ'4JKsu{T6JKG[#%<6;r:$**dCE26$**dCE26D#%4Yr2%sub1',	; 	;f 	;	56 	5	) 		"v 	" 19,D&)RG  YY[	c4% )AtY'13KFG  YY[	c4% )At\)4513KVaS$/G  YY[	c4% )AtXZ(k6137- 19rC   c                 `    " S S[         5      nU" 5       nU" 5       nU R                  U(       + 5        U R                  [        U5      [        U5      5        [	        U5        [	        U5        U R                  X"5        U R                  X#:g  5        U R                  X":g  5        U R                  X#:H  5        U R                  [        U5      R                  S5      S5        U R                  [        U5      [        U5      5        U R                  SU5        [        S5       H  nU R                  XB5        M     U R                  SU5         " S S[         5      nU" 5       nU" 5       nU R                  U(       + 5        U R                  [        U5      [        U5      5        [	        U5        [	        U5        U R                  Xf5        U R                  Xg5        U R                  Xf:g  5        U R                  Xg:H  5        U R                  [        U5      R                  S	5      S5        U R                  [        U5      [        U5      5        U R                  SU5        [        S5       H  nU R                  XF5        M     U R                  SU5         " S
 S[         5      nU" S5      n	U" S5      n
U" S5      nU R                  U	5        U R                  U
(       + 5        U R                  [	        U	5      [	        S5      5        U R                  X5        U R                  X5        U R                  X:g  5        U R                  U	(       + U
5        U R                  X:  5        U R                  X:*  5        U R                  X:  5        U R                  X:  5        U R                  [        U	5      S5        U R                  [        U	5      S5        U" [        S5      5      nU R                  SU5        [        S5       H  nU R                  XL5        M     U R                  SU5        g )Nc                       \ rS rSrS rSrg)2ClassPropertiesAndMethods.test_specials.<locals>.Cia  c                 :    SUs=::  a  S:  a	  U$   [         e[         eNr   r3  
IndexErrorrH  s     rA   ry   >ClassPropertiesAndMethods.test_specials.<locals>.C.__getitem__b      ;B;q;  j rC   r   NrJ  r   rC   rA   r   r  a      !rC   r   zC object at r   r  r3  c                       \ rS rSrS rSrg)2ClassPropertiesAndMethods.test_specials.<locals>.Dix  c                 :    SUs=::  a  S:  a	  U$   [         e[         er  r  rH  s     rA   ry   >ClassPropertiesAndMethods.test_specials.<locals>.D.__getitem__y  r  rC   r   NrJ  r   rC   rA   rq  r  x  r  rC   rq  zD object at c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)6ClassPropertiesAndMethods.test_specials.<locals>.Proxyi  c                     Xl         g r   r]  r  s     rA   r6   ?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__init__  r_  rC   c                 "    U R                   (       $ r   r]  r   s    rA   r   ?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__bool__  s    #vv:%rC   c                 ,    [        U R                  5      $ r   )hashr  r   s    rA   __hash__?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__hash__  s    DFF|#rC   c                      U R                   U:H  $ r   r]  r   s     rA   r  =ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__eq__      vv&rC   c                      U R                   U:g  $ r   r]  r   s     rA   __ne__=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__ne__  r  rC   c                      U R                   U:  $ r   r]  r   s     rA   __ge__=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__ge__  r  rC   c                      U R                   U:  $ r   r]  r   s     rA   __gt__=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__gt__      vv~%rC   c                      U R                   U:*  $ r   r]  r   s     rA   __le__=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__le__  r  rC   c                      U R                   U:  $ r   r]  r   s     rA   __lt__=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__lt__  r  rC   c                      SU R                   -  $ )NzProxy:%sr]  r   s    rA   r   >ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__str__  s    !DFF**rC   c                      SU R                   -  $ )Nz	Proxy(%r)r]  r   s    rA   r   ?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__repr__  s    "TVV++rC   c                     XR                   ;   $ r   r]  ro  s     rA   rv   CClassPropertiesAndMethods.test_specials.<locals>.Proxy.__contains__  s    &rC   r]  N)r   r   r   r   r6   r   r  r  r  r
  r  r  r  r   r   rv   r   r   rC   rA   Proxyr    s>    &$'''&'&+,'rC   r  ro   zProxy:0zProxy(0))r  rW  r5  idr   rH   r6  assertGreaterEqualr  findr   assertNotInr  rW  )r<   r   rd  c2r   rq  rq  rt  r  p0p1p_1p10s                rA   test_specials'ClassPropertiesAndMethods.test_specials\  sE   
	! 	! SSR BrFBrF+RR !"" 	B^ <a@R$r(+R rAMM!  R 	! 	! SSR BrFBrF+RR B#"" 	B^ <a@R$r(+R rAMM!  R 	'F 	'2 1X1XBiR b47+ B#"R$ ! !R),b:.E"IS!rAMM!! S!rC   c                    SS K n " S S[        5      nU" 5       nUR                  " U5      nU R                  U" 5       U5        A[        R
                  " 5         U R                  U" 5       S 5        A " S S[        5      nU" 5       n UR                  " U5        U R                  S5         " S S	[        5      nU" 5       n	UR                  " U	5      nU R                  U" 5       U	5        A	[        R
                  " 5         U R                  U" 5       S 5        Ag ! [         a%  nU R                  S[        U5      5         S nANS nAff = f)
Nr   c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_weakrefs.<locals>.Ci  r   Nrp  r   rC   rA   r   r*    rr  rC   r   c                       \ rS rSrS/rSrg)7ClassPropertiesAndMethods.test_weakrefs.<locals>.NoWeaki  r   r   Nr@  r   rC   rA   NoWeakr,    s	    IrC   r-  z!weakref.ref(no) should be illegalzweak referencec                       \ rS rSrSS/rSrg)5ClassPropertiesAndMethods.test_weakrefs.<locals>.Weaki  r   r  r   Nr@  r   rC   rA   Weakr/    s    .IrC   r0  )
weakrefr  refrH   r   r  r   r   rW  r  )
r<   r1  r   r]   rr-  nor  r0  yess
             rA   test_weakrefs'ClassPropertiesAndMethods.test_weakrefs  s   	 	CKKNa d#	 V 	 X	;KKO II9:	/6 	/fKKc"d#  	6MM*CH55	6s   	D 
E	$EE	c           
          " S S[         5      nU" 5       nU R                  US5        SUl        U R                  UR                  S5        U R                  UR                  S5        U?U R                  US5        U R                  US5        UR                  R                  US5        U R                  UR                  R                  U5      S5        UR                  R                  U5        U R                  US5        UR                  S   nU R                  U[        5        [        U5      nU R                  SU5        U R                  SU5        U R                  S	U5        U R                  S
U5        U R                  UR                  S5        U R                  UR                  UR                  S   5        U R                  UR                   UR                  S   5        U R                  UR"                  UR                  S   5        S H$  n [%        X5S5        U R'                  SU-  5        M&     SUl        U R                  UR                  S5         " S S[         5      nU" 5       n U H  n	[+        U	5        M     U R'                  S5        g ! [(         aQ  n[+        U5      R-                  S5      S:  a(  U R'                  SU< S[+        U5      < 35         S nAM   S nAM  S nAff = f! [.         a     g f = f)Nc                   8    \ rS rSrS rS rS r\" \\\SS9rSr	g)	4ClassPropertiesAndMethods.test_properties.<locals>.Ci  c                     U R                   $ r   r  r   s    rA   getx9ClassPropertiesAndMethods.test_properties.<locals>.C.getx  rt  rC   c                     Xl         g r   r  ro  s     rA   setx9ClassPropertiesAndMethods.test_properties.<locals>.C.setx  rq  rC   c                     U ? g r   r  r   s    rA   delx9ClassPropertiesAndMethods.test_properties.<locals>.C.delx  r  rC   I'm the x property.docr  N)
r   r   r   r   r<  r?  rB  r  r  r   r   rC   rA   r   r:    s"     !tT/DEArC   r   r  r   r  r   ru  fgetfsetfdelrD  r<  r?  rB  )rG  rH  rI  zIexpected AttributeError from trying to set readonly %r attr on a propertyreadonlyr   zwhen setting readonly attr z2 on a property, got unexpected AttributeError msg c                   &    \ rS rSr\" S 5      rSrg)4ClassPropertiesAndMethods.test_properties.<locals>.Di	  c                     SS-  $ r  r   )r  s    rA   r  =ClassPropertiesAndMethods.test_properties.<locals>.D.<lambda>	  s    QqSrC   r   N)r   r   r   r   r  ry   r   r   rC   rA   rq  rL  	  s    "=1KrC   rq  z,expected ZeroDivisionError from bad property)r  rX  r  rH   r  r  r  r  rL   r(  r  r  rW  ru  r8  rG  rH  rI  r  r   r6  r  r  ZeroDivisionError)
r<   r   rE   rawrU  r  r  rq  rP   r   s
             rA   test_properties)ClassPropertiesAndMethods.test_properties  s   	F 	F Ca%"%b!Ca%a)	AsQ-	qa%jjoc8,Ci'fe$fe$fe$&;<chh

6 23chh

6 23chh

6 23*D72& 		 /156 7 + b)	2 	2 C	FA 
 IIDE+ " Ys8==,q0IIHLcRUhX Y Y 1Y$ ! 		s+   J5K9 
K6%A K11K69
LLrp   z)Docstrings are omitted with -O2 and abovec                 *   ^   " U 4S jS[         5      ng )Nc                      > \ rS rSrS rS r\" \5      r Y R                  \R                  S5        \" \S9r
 Y R                  \
R                  S5        Srg)?ClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.Ei	  c                     g)getter methodr   r   r   s    rA   getterFClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.E.getter 	  s    rC   c                     g)zsetter methodNr   )r  r)  s     rA   setterFClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.E.setter#	      rC   rW  )rH  Nr   )r   r   r   r   rX  r[  r  proprH   ru  prop2r   r   s   rA   r  rU  	  sK     F#DT\\?;&)EU]]D1rC   r  r  )r<   r  s   ` rA   test_properties_doc_attrib4ClassPropertiesAndMethods.test_properties_doc_attrib	  s    
	2 
	2rC   c                 T   ^  SS K m " U4S jS[        5      ng ! [         a     g f = f)Nr   c                   <   > \ rS rSr\"  Y R
                  5      rSrg)>ClassPropertiesAndMethods.test_testcapi_no_segfault.<locals>.Xi3	  r   N)r   r   r   r   r  test_with_docstringpr   )	_testcapis   rA   r+  re  3	  s    Y::;rC   r+  )rh  r  ImportError)r<   r+  rh  s     @rA   test_testcapi_no_segfault3ClassPropertiesAndMethods.test_testcapi_no_segfault+	  s+    	<<F <  		s    
''c                   ^^  " S S[         5      mT" 5       nU R                  TR                  R                  S5        U R	                  US5        SUl        U R                  US5        U R                  UR                  S5        U R                  UR                  S5        U?U R	                  US5        U R	                  US5         " U4S jS	T5      nU" 5       nS
Ul        U R                  UR                  S
5        U?U? " S S[         5      mT" 5       nSUl        U R                  UR                  S5        U? " U4S jST5      nU" 5       nSUl        U R                  UR                  S5        U?g )Nc                       \ rS rSr\" SS9r\R                  S 5       r\R                  S 5       r\R                  S 5       rSr	g)	9ClassPropertiesAndMethods.test_properties_plus.<locals>.Ci7	  r  rE  c                     U R                   $ r   _foor   s    rA   r   =ClassPropertiesAndMethods.test_properties_plus.<locals>.C.foo9	      yy rC   c                 $    [        U5      U l        g r   r-   rq  ro  s     rA   r   rr  <	      J	rC   c                     U ? g r   rp  r   s    rA   r   rr  ?	      IrC   rp  N)
r   r   r   r   r  r   rX  r[  deleterr   r   rC   rA   r   rn  7	  sN    w'CZZ! !ZZ' '[[ rC   r   r  r   irq  r   c                   P   > \ rS rSr Y R                  R
                  S 5       rSrg)9ClassPropertiesAndMethods.test_properties_plus.<locals>.DiM	  c                 *     U ? g ! [         a     g f = fr   )rq  r6  r   s    rA   r   =ClassPropertiesAndMethods.test_properties_plus.<locals>.D.fooN	  s    	% s    
r   N)r   r   r   r   r   ry  r   r  s   rA   rq  r{  M	  s    UU]] rC   rq  r4  c                       \ rS rSr\S 5       r\R                  S 5       r\R                  S 5       r\R                  SS j5       rSrg)	9ClassPropertiesAndMethods.test_properties_plus.<locals>.EiZ	  c                     U R                   $ r   rp  r   s    rA   r   =ClassPropertiesAndMethods.test_properties_plus.<locals>.E.foo[	  rs  rC   c                     [         er   )RuntimeErrorro  s     rA   r   r  ^	  s    ""rC   c                 $    [        U5      U l        g r   ru  ro  s     rA   r   r  a	  rv  rC   Nc                     U ? g r   rp  ro  s     rA   r   r  d	  rx  rC   rp  r   )	r   r   r   r   r  r   r[  ry  r   r   rC   rA   r  r  Z	  sV    ! !ZZ# #ZZ' '[[ rC   r  c                   t   > \ rS rSr Y R                  R
                  S 5       r\R                  S 5       rSrg)9ClassPropertiesAndMethods.test_properties_plus.<locals>.Fim	  c                     U ? g r   rp  r   s    rA   r   =ClassPropertiesAndMethods.test_properties_plus.<locals>.F.foon	  rx  rC   c                 &    [        SU5      U l        g r   )maxrq  ro  s     rA   r   r  q	  s    5M	rC   rp  N)r   r   r   r   r   ry  r[  r   )r  s   rA   rQ  r  m	  s3    UU]] ZZ* *rC   rQ  r   )r  rH   r   ru  rX  r  rq  )	r<   r]   rq  rP   r  rQ  rV  r   r  s	          @@rA   test_properties_plus.ClassPropertiesAndMethods.test_properties_plus6	  sH   
	 
	 C0a'1f%$#Ea(a'	 	 C#EE	 	 C#E	* 	* C"ErC   c                    [        5       nU R                  U0 5        [        0 5      nU R                  U0 5        [        SSS.5      nU R                  USSS.5        U R                  U[        [        UR                  5       5      5      5        U R                  U[        [	        UR                  5       5      5      5        [        SSS.5      nU R                  U[        SSS95        U R                  U[        S"0 UD65        U R                  U[        SS0SS95        U R                  U[        S/SS	95        U R                  U[        S
S/40 UD65        U R                  U[        S"0 UD65        SSSSS/S4 H#  n [        U5        U R                  SU-  5        M%     U R                  [        5         [        0 0 5        S S S 5         " S S5      n [        U" 5       5        U R                  S5        S Ul	        S Ul
        [        U" 5       5      nU R                  XR                   5         " S S5      n[        U" SS5      U" SS5      U" SS5      U" SS5      /5      nU R                  USSS.5        [        [        [        S5      [        SS5      5      5      nU R                  U[        [        S5       Vs/ s H	  oUUS-   4PM     sn5      5        S/S /4 H#  n [        U5        U R                  S!U-  5        M%     g ! [         a     GM  [         a#    US:X  a   GM  U R                  SU-  5         GM  f = f! , (       d  f       GN= f! [         a     GNpf = fs  snf ! [         a     M  f = f)#Nrp   rX   )ro   rE   ro   )onetwor  )r  )r  rp   )r  )r  r   )r  rN  r   y                0r   zno TypeError from dict(%r)c                        \ rS rSrSSSS.rSrg)AClassPropertiesAndMethods.test_dict_constructors.<locals>.Mappingi	  rp   rw   r~  )ro   rt   rE   r   N)r   r   r   r   r   r   r   rC   rA   Mappingr  	  s    1"%DrC   r  z*no TypeError from dict(incomplete mapping)c                 H    [        U R                  R                  5       5      $ r   )r8   r   r   r   s    rA   r  BClassPropertiesAndMethods.test_dict_constructors.<locals>.<lambda>	  s    D)9$:rC   c                      U R                   U   $ r   )r   rH  s     rA   r  r  	  s    diilrC   c                        \ rS rSrS rS rSrg)JClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntryi	  c                     Xl         X l        g r   firstlast)r<   r  r  s      rA   r6   SClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntry.__init__	  s    "
 	rC   c                 D    [        U R                  U R                  /5      $ r   )r   r  r  r   s    rA   r   SClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntry.__iter__	  s    TZZ344rC   r  N)r   r   r   r   r6   r   r   r   rC   rA   AddressBookEntryr  	  s    !5rC   r  TimWarsawBarryPeters)r  r  rw   r   )tooshort)toolongzby 1zno ValueError from dict(%r)r   )r   rH   r8   r9   r   r   r   
ValueErrorrZ  r   ry   zipr  )r<   rP   badargr  r  r   bads          rA   test_dict_constructors0ClassPropertiesAndMethods.test_dict_constructorsy	  s3   FBHBQS!",-Daggi12Daggi12#$DQA./DI1I&D%34D*156D,!=CCDDI1I&BaS$.FAV 		6?@ /  y)RL *	& 	&	DO IIBC::OLL)	5 	5 "5(3"7H5"5(3"7H57 8 	hx@AU1XuQ{+,DE!H!=Hqac(H!=>? "?%<$==C?S	 		7#=> >e   ES= II:VCDDE *)  		2 ">  sT   L9MM M.*M3
MM/MM
M
M+*M+3
N Nc                 |  ^ SnU R                  [        5       SS/5        ASSSSS/SSS	SS0[        U R                  4 H  n[        U5        M     S
 n " S S[        5      nSS/nU R                  U" [        U5      5      U5        U" 5       nU R                  U" [        U5      5      U5        SUl        S Ul        U R                  U" [        U5      5      USS/-   5         " S SU5      nSS/U-   nU R                  U" [        U5      5      U5        U" 5       n	U R                  U" [        U	5      5      U5        SU	l        S U	l        U R                  U" [        U	5      5      USS/-   5         " S S[        [        5      5      n
U
" S5      nSUl
        SUl        / SQn[        U5       Vs/ s H  oU;  d  M
  UPM     nnU R                  USS /5         " S! S"U
5      nU" S#5      nSUl
        SUl        U R                  UR                  S$5        U R                  [        5         [        U5        S S S 5        U R                  [        [	        5       5      [        [        5      5         " U4S% jS&[        5      m " U4S' jS[        5      n[        U" 5       5        g s  snf ! , (       d  f       Nx= f)(Nr   junkr<   rp   y               @g       @2   2)rp   c                 `    U  Vs/ s H  oR                  S5      (       a  M  UPM     sn$ s  snf rF  )r  )stringsr  s     rA   interesting7ClassPropertiesAndMethods.test_dir.<locals>.interesting	  s#    &@w!ll3.?Aw@@@s   ++c                       \ rS rSrSrS rSrg)-ClassPropertiesAndMethods.test_dir.<locals>.Ci	  ro   c                     g r   r   r   s    rA   Cmethod5ClassPropertiesAndMethods.test_dir.<locals>.C.Cmethod	      trC   r   N)r   r   r   r   Cdatar  r   r   rC   rA   r   r  	  
    E#rC   r   r  r  c                     gr   r   r   s    rA   r  4ClassPropertiesAndMethods.test_dir.<locals>.<lambda>	      rC   cdatacmethodc                       \ rS rSrSrS rSrg)-ClassPropertiesAndMethods.test_dir.<locals>.Ai	  ro   c                     g r   r   r   s    rA   Amethod5ClassPropertiesAndMethods.test_dir.<locals>.A.Amethod	  r  rC   r   N)r   r   r   r   Adatar  r   r   rC   rA   r  r  	  r  rC   r  r  r  r   c                     g)Nrt   r   r   s    rA   r  r  	  r  rC   adataamethodc                       \ rS rSrSrg)-ClassPropertiesAndMethods.test_dir.<locals>.Mi	  r   Nrp  r   rC   rA   Mr  	  rr  rC   r  rR   ro   )r   ru  __package__
__loader____spec__rE   rX   c                   *    \ rS rSrS r\" \5      rSrg).ClassPropertiesAndMethods.test_dir.<locals>.M2i 
  c                     g)NNot a dict!r   r   s    rA   getdict6ClassPropertiesAndMethods.test_dir.<locals>.M2.getdict
  s    $rC   r   N)r   r   r   r   r  r  rL   r   r   rC   rA   r  r   
  s    %(HrC   r  m2r  c                   @   > \ rS rSrS rS rU 4S jrS rU 4S jrSr	g)	3ClassPropertiesAndMethods.test_dir.<locals>.Wrapperi
  c                     Xl         g r   _Wrapper__objr  s     rA   r6   <ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__init__
       
rC   c                 2    S[        U R                  5      -  $ )NzWrapper(%s))r   r  r   s    rA   r   <ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__repr__
  s    $tDJJ'777rC   c                 .   > T" U R                   U   5      $ r   r  )r<   r%  Wrappers     rA   ry   ?ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__getitem__
  s    tzz#//rC   c                 ,    [        U R                  5      $ r   )r  r  r   s    rA   r   ;ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__len__
  s    4::&rC   c                 <   > T" [        U R                  U5      5      $ r   )rK   r  )r<   r?   r  s     rA   r+  ?ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__getattr__
  s    wtzz4899rC   __objN)
r   r   r   r   r6   r   ry   r   r+  r   r  s   rA   r  r  
  s!    !80': :rC   r  c                   2   > \ rS rSrU 4S jr\" \5      rSrg)r  i
  c                 &   > T" [        U 5      5      $ r   )rJ   )r<   r  s    rA   
__getclass8ClassPropertiesAndMethods.test_dir.<locals>.C.__getclass
  s    tDz**rC   r   N)r   r   r   r   _C__getclassr  r9  r   r  s   rA   r   r  
  s    + ,IrC   )rH   r  rJ   test_dirr  r  r  r  r  r  rX   rE   rL   rZ  r   Ellipsis)r<   r  rU  r  r   cstuffr]   r  astuffrE   r  	minstancedefault_attributesr  namesr  
m2instancer  s                    @rA   r  "ClassPropertiesAndMethods.test_dir	  sm    01 aS1#sD$1tT]]RCH S
	A	$ 	$ 9%SV,f5CSV,f5 "	SV,f7K.KL	$ 	$ 9%.SV,f5CSV,f5"	SV,f7K.KL	S	 	cF			8	NJNq7I.INJc
+	) 	)
 X


,,m<y)
O *
 	VXH6
	:f 
	:	- 	-
 	ACK K *)s   4	J(J(/J--
J;c                 H  >^^	^
^^  " S S[         5      nU R                  U" 5       R                  S5      S5         " U4S jSU5      mU R                  T" 5       R                  S5      S5         " S	 S
U5      n[        U5      Ul        U R                  U" 5       R                  S5      S5         " U	4S jSUT5      m	U R                  T	" 5       R                  S5      S5         " U4S jS[        5      m " U
U4S jST	5      m
U R                  T
" 5       R                  S5      S5         " S ST
5      nT" U5      Ul        U R                  U" 5       R                  S5      S5         [        T	S5        U R                  S5         [        T	U" 5       5        U R                  S5         [        T	5      R                  S5        U R                  S5         [        T	5      R                  U" 5       5        U R                  S 5         " S! S"[         5      n " S# S$U5      nU" 5       nU R                  UR                  S%5        U R                  [        XV]&  S5         " S& S'[         5      n " U4S( jS)U5      mU R                  TR                  5       UR                  5        U R                  [        5         [        USS*9  S S S 5        g ! [         a     GNSf = f! [         a     GNAf = f! [         a     GN&f = f! [         a     GNf = f! , (       d  f       g = f)+Nc                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_supers.<locals>.Ai'
  c                     SU-  $ )NzA(%r)r   r<   rE   s     rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.A.meth(
  s    {"rC   r   Nr  r   rC   rA   r  r  '
      #rC   r  ro   zA(1)c                   2   >^  \ rS rSrUU 4S jrS rSrU =r$ )0ClassPropertiesAndMethods.test_supers.<locals>.Bi-
  c                 (   > [        TU 5      U l        g r   )r  r  )r<   r  r9  s    rA   r6   9ClassPropertiesAndMethods.test_supers.<locals>.B.__init__.
  s    $Q~rC   c                 D    SU-  U R                   R                  U5      -   $ )NzB(%r)r  r  s     rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.B.meth0
       {T\\%6%6q%999rC   )r  )r   r   r   r   r6   rO   r   r  )r9  r  s   @rA   r  r  -
  s    .: :rC   r  rp   zB(2)A(2)c                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_supers.<locals>.Ci5
  c                 D    SU-  U R                   R                  U5      -   $ )NzC(%r)r  r  s     rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.C.meth6
  r
  rC   r   Nr  r   rC   rA   r   r  5
  s    :rC   r   rt   zC(3)A(3)c                   ,   >^  \ rS rSrUU 4S jrSrU =r$ )0ClassPropertiesAndMethods.test_supers.<locals>.Di<
  c                 .   > SU-  [         TU ]  U5      -   $ )NzD(%r))r  rO   )r<   rE   rq  r9  s     rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.D.meth=
  s    {U1d%8%;;;rC   r   )r   r   r   r   rO   r   r  )r9  rq  s   @rA   rq  r  <
      < <rC   rq  rw   zD(4)C(4)B(4)A(4)c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )6ClassPropertiesAndMethods.test_supers.<locals>.mysuperiD
  c                    > [         TU ]  " U6 $ r   r  )r<   r=   r9  mysupers     rA   r6   ?ClassPropertiesAndMethods.test_supers.<locals>.mysuper.__init__E
  s    Wd4d;;rC   r   )r   r   r   r   r6   r   r  )r9  r  s   @rA   r  r  D
  r  rC   r  c                   $   > \ rS rSrU U4S jrSrg)0ClassPropertiesAndMethods.test_supers.<locals>.EiH
  c                 @   > SU-  T" TU 5      R                  U5      -   $ )NzE(%r))rO   )r<   rE   r  r  s     rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.E.methI
  s$    {WQ%5%:%:1%===rC   r   Nr  )r  r  s   rA   r  r  H
  s    > >rC   r  r   zE(5)D(5)C(5)B(5)A(5)c                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_supers.<locals>.FiN
  c                 |    U R                   nSU< SUR                  R                  < S3UR                  U5      -   $ )NzF(z)[])	_F__superr9  r   rO   )r<   rE   r  s      rA   rO   5ClassPropertiesAndMethods.test_supers.<locals>.F.methO
  s-    LL&')=)=>JJrC   r   Nr  r   rC   rA   rQ  r  N
  s    KrC   rQ  r   z!F(6)[mysuper]E(6)D(6)C(6)B(6)A(6)r   zshouldn't allow super(D, 42)zshouldn't allow super(D, C())r   z$shouldn't allow super(D).__get__(12)z%shouldn't allow super(D).__get__(C())c                   *    \ rS rSrS r\" \5      rSrg)5ClassPropertiesAndMethods.test_supers.<locals>.DDbaseiw
  c                     gr  r   r   s    rA   r<  :ClassPropertiesAndMethods.test_supers.<locals>.DDbase.getxx
  s    2rC   r   Nr   r   r   r   r<  r  r  r   r   rC   rA   DDbaser$  w
  s    %ArC   r(  c                   *    \ rS rSrS r\" \5      rSrg)4ClassPropertiesAndMethods.test_supers.<locals>.DDsubi{
  c                     gr  r   r   s    rA   r<  9ClassPropertiesAndMethods.test_supers.<locals>.DDsub.getx|
  s    7rC   r   Nr'  r   rC   rA   DDsubr*  {
  s    *ArC   r-  r  c                   &    \ rS rSr\" S 5      rSrg)3ClassPropertiesAndMethods.test_supers.<locals>.Basei
  c                     gr1  r   r   s    rA   r  <ClassPropertiesAndMethods.test_supers.<locals>.Base.<lambda>
  s    %rC   r   N)r   r   r   r   r  aPropr   r   rC   rA   Baser/  
  s    /0ErC   r3  c                   6   >^  \ rS rSr\UU 4S j5       rSrU =r$ )2ClassPropertiesAndMethods.test_supers.<locals>.Subi
  c                    > [         TU ]  $ r   )r  r2  )klassSubr9  s    rA   r  7ClassPropertiesAndMethods.test_supers.<locals>.Sub.test
  s    S--rC   r   )r   r   r   r   r  r  r   r  )r9  r8  s   @rA   r8  r5  
  s    . .rC   r8  rX  )r  rH   rO   r  r  r!  r   r   r  r  r  r2  rZ  )r<   r  r   rQ  r(  r-  ddr3  r  rq  r  r8  r  r9  s           @@@@@rA   test_supers%ClassPropertiesAndMethods.test_supers$
  s   	# 	# 	!f-	: 	: 	!j1	: 	: Ah!j1	<1 	< 	!&89	<e 	<	> 	> 	> 	!&<=	K 	K aj!&IJ	6!RL II45	7!QSM II56	>!HR  II<=	?!HQS! II=>
	V 		F 	 Ww'u+R0
	16 	1	.$ 	.
 	TZZ0 y)$1 *)o  		  		  		  		D *)sT   ,K 
K  -K1 L ;L
KK 
K.-K.1
K?>K?
LL
L!c                 4  ^^  " U4S jS[         5      mU R                  [        T" S5      S-   5      S5        U R                  [        T" S5      S-   5      S5        T" S5      nU R                  US5        U R                  [        U5      S5        U R                  [        U5      R                  [         5        U R                  [        U5      [        S5      5        U R                  U7R                  [         5        U R                  US	-	  R                  [         5        U R                  US	-  R                  [         5        U R                  T" S	5      S
-  R                  [         5        U R                  T" S	5      S
-	  R                  [         5         " U4S jS[         5      mU R                  [        T" S5      S-   5      S5        U R                  [        ST" S5      -   5      S5        T" S5      nU R                  US5        U R                  [        U5      S5        U R                  [        U5      [        S5      5        U R                  [        U5      R                  [         5        U R                  U7R                  [         5        U R                  U* R                  [         5        U R                  T" S	5      * R                  [         5        U R                  US	-	  R                  [         5        U R                  US	-  R                  [         5        U R                  US	-
  R                  [         5        U R                  US-  R                  [         5        U R                  US-  R                  [         5        U R                  US-  R                  [         5        U R                  SU-  R                  [         5        U R                  US	-  R                  [         5        U R                  US	-  R                  [         5        U R                  US-  R                  [         5        U R                  T" S	5      S
-  R                  [         5        U R                  T" S	5      S
-	  R                  [         5        U R                  [        T" S	5      5      R                  [         5         " S S[         5      nU" S5      nU R                  US	-   R                  [         5        U R                  S	U-   R                  [         5        U" S5      nU R                  UR                  0 5        U R                  [        U5      S5         " S S[        5      nU R                  [        U" S5      5      S5        U" S5      nU R                  US5        U R                  [        U5      S5        U R                  [        U5      R                  [        5        U R                  [        U5      [        S5      5        U R                  U7R                  [        5         " S S[        5      nU" SS5      nU R                  [        U5      S5        [        SS5      nU R                  UR                  [        5        U R                  X5        U R                  [        U5      U5        U R                  [        U5      R                  [        5        U" U5      nU R                  [        U5      S5        U R                  X5        U R                  [        U5      U5        U R                  [        U5      R                  [        5        U R                  [        U5      [        U5      5        U R                  U7R                  [        5        U R                  US	-   R                  [        5        U R                  US	-   U5        U R                  US	-
  R                  [        5        U R                  US	-
  U5        U R                  US-  R                  [        5        U R                  US-  U5        U R                  US-  R                  [        5        U R                  US-  U5         " S  S![        5      nU" S"5      nU R                  US"5        U R                  UR                  5       U" S#5      5        U R                  UR                  5       R                  5       U" S"5      5        [        S$5       HE  nU" [        U5      5      nUR                  5       n	U	R                  5       n
U R                  X5        MG     U" S%5      nU R                  [        U5      S%5        U R                  [        U5      R                  [        5        U R                  [        U5      [        S%5      5        U R                  US S  R                  [        5        U R                  US-  R                  [        5        U R                  US	-  R                  [        5        U R                  US&-   R                  [        5        U" S&5      nU R                  [        U5      S&5        U R                  [        U5      R                  [        5        U R                  X-   R                  [        5        U R                  US	-  R                  [        5        U R                  US-  R                  [        5        U R                  US'-  R                  [        5        U R                  US S  R                  [        5         " S( S)[        5      nU" S*5      nU R                  US*5        U R                  UR                  5       U" S+5      5        U R                  UR                  5       R                  5       U" S*5      5        [        S,5       Hb  nU" S-R                  [        [         [        U5      5      5      5      nUR                  5       nUR                  5       n	U R                  X5        Md     U" S.5      nU R                  [        U5      S.5        U R                  [        U5      R                  [        5        S/nU" U5      nU R                  X5        U R                  [        U5      U5        U R                  [        U5      R                  [        5        U R                  [        U5      [        U5      5        U R                  US0U   S5        U R                  US0U   S5        U R                  US--   R                  [        5        U R                  US--   U5        U R                  S-U-   R                  [        5        U R                  S-U-   U5        U R                  US	-  R                  [        5        U R                  US	-  S-5        U R                  US-  R                  [        5        U R                  US-  U5        U R                  US'-  R                  [        5        U R                  US'-  XU-   5        U R                  US S  R                  [        5        U R                  US S  U5        U R                  US	S	 R                  [        5        U R                  US	S	 S-5        U R                  UR#                  5       R                  [        5        U R                  UR#                  5       U5        U R                  UR%                  5       R                  [        5        U R                  UR%                  5       U5        U R                  UR'                  5       R                  [        5        U R                  UR'                  5       U5        0 nU R                  UR)                  U5      R                  [        5        U R                  UR)                  U5      U5        U R                  UR+                  S0S05      R                  [        5        U R                  UR+                  S0S05      U5        U R                  UR-                  [/        U5      5      R                  [        5        U R                  UR-                  [/        U5      5      U5        U R                  UR1                  [/        U5      5      R                  [        5        U R                  UR1                  [/        U5      5      U5        U R                  UR3                  [/        U5      5      R                  [        5        U R                  UR3                  [/        U5      5      U5        U R                  UR5                  5       R                  [        5        U R                  UR5                  5       U5         " S1 S2[        5      nU" S35      n	U R                  U	S35        U R                  U	R                  5       U" S45      5        U R                  U	R                  5       R                  5       U" S35      5        S.nU" U5      n	U R                  [        U	5      U5        U R                  [        U	5      R                  [        5        U R                  [        U	5      [        U5      5        U R                  U	S0U   S5        U R                  US0U	   S5        U R                  U	R#                  5       R                  [        5        U R                  U	R#                  5       U5        U R                  U	R%                  5       R                  [        5        U R                  U	R%                  5       U5        U R                  U	R'                  5       R                  [        5        U R                  U	R'                  5       U5        U R                  U	R+                  S0S05      R                  [        5        U R                  U	R+                  S0S05      U5        U R                  U	R+                  S5S55      R                  [        5        U R                  U	R+                  S5S55      U5        U R                  U	R3                  [/        U	5      5      R                  [        5        U R                  U	R3                  [/        U	5      5      U5        U R                  U	R-                  [/        U	5      5      R                  [        5        U R                  U	R-                  [/        U	5      5      U5        U R                  U	R1                  [/        U	5      5      R                  [        5        U R                  U	R1                  [/        U	5      5      U5        U R                  U	R5                  5       R                  [        5        U R                  U	R5                  5       U5        U R                  U	R7                  5       R                  [        5        U R                  U	R7                  5       U5        U R                  U	R9                  5       R                  [        5        U R                  U	R9                  5       U5        U R                  U	R;                  5       R                  [        5        U R                  U	R;                  5       U5        U R                  U	S--   R                  [        5        U R                  U	S--   U5        U R                  S-U	-   R                  [        5        U R                  S-U	-   U5        U R                  U	S	-  R                  [        5        U R                  U	S	-  S-5        U R                  U	S-  R                  [        5        U R                  U	S-  U5        U R                  U	S'-  R                  [        5        U R                  U	S'-  XU-   5        U R                  U	S S  R                  [        5        U R                  U	S S  U5        U R                  U	S	S	 R                  [        5        U R                  U	S	S	 S-5         " S6 S7[<        5      nU" [        S5      5      nU R                  U[=        [        S5      5      5        UR?                  S85        U R                  U[=        [        S5      5      S8/-   5        SUS'   U R                  U[=        [        S95      5      5        URA                  [        S9S:5      5        U R                  U[=        [        S:5      5      5        / US;S & U R                  U[=        [        S<5      5      5        US=S<2	 U R                  [/        U5      S=5        U R                  U[=        [        S=5      5      5        U R                  [=        U5      [=        [        S=5      5      5        U R                  US	   S	5        U R                  US   S5        U R                  US>   S	5        U R                  US   S5        U R                  US S [=        [        S5      5      5        g )?Nc                   (   > \ rS rSrS rU 4S jrSrg)@ClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexinti
  c                     [        U 5      $ r   )hexr   s    rA   r   IClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexint.__repr__
      4y rC   c                 :   > T" [         R                  X5      5      $ r   )r/   rr   )r<   r   hexints     rA   rr   HClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexint.__add__
  s    ckk$677rC   r   N)r   r   r   r   r   rr   r   )rE  s   rA   rE  r?  
  s    !8 8rC   rE     	   0x10r  0x3efi90  r   r   c                   :   >^  \ rS rSr/ rS rU U4S jr\rSrU =r	$ )AClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlongi
  c                     [        U 5      $ r   )octr   s    rA   r   IClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlong.__str__
  rC  rC   c                 @   > U R                  [        TU ]  U5      5      $ r   )r9  r  rr   )r<   r   r9  octlongs     rA   rr   IClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlong.__add__
  s    ~~eGT&B5&IJJrC   r   )
r   r   r   r   r   r   rr   r   r   r  )r9  rQ  s   @rA   rQ  rL  
  s    I!KHrC   rQ  rt   r   0o10i  0o5675ro   r  c                       \ rS rSrSrg)CClassPropertiesAndMethods.test_basic_inheritance.<locals>.longclonei
  r   Nrp  r   rC   rA   	longclonerV  
  rr  rC   rW  c                   *    \ rS rSrS/rSS jrS rSrg)CClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloati
  r   c                 $    [        U5      U l        g r   )r/   r   )r<   r)  r   s      rA   r6   LClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloat.__init__
  s    I	rC   c                 $    SU R                   U 4-  $ )Nr   r   r   s    rA   r   LClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloat.__repr__
  s    D 111rC   r   N)r   r   )r   r   r   r   r   r6   r   r   r   rC   rA   	precfloatrY  
  s    I&2rC   r^  g?z1.1g    @c                       \ rS rSrS rSrg)DClassPropertiesAndMethods.test_basic_inheritance.<locals>.madcomplexi
  c                 8    SU R                   U R                  4-  $ )Nz%.17gj%+.17gr   r   r   s    rA   r   MClassPropertiesAndMethods.test_basic_inheritance.<locals>.madcomplex.__repr__
  s    %DII(>>>rC   r   N)r   r   r   r   r   r   r   rC   rA   
madcomplexr`  
  s    ?rC   rd  rw   z4j-3c                       \ rS rSrSrS rSrg)BClassPropertiesAndMethods.test_basic_inheritance.<locals>.madtuplei  Nc                     U R                   b  U R                   $ [        U 5      nUR                  5         U R                  U5      U l         U R                   $ r   )_revr8   r  r9  r<   r  s     rA   revFClassPropertiesAndMethods.test_basic_inheritance.<locals>.madtuple.rev  sB    99(99$J		 NN1-	yy rC   ri  r   r   r   r   ri  rk  r   r   rC   rA   madtuplerg        D!rC   ro  )
ro   rp   rt   rw   r   r   rG     rH  r   )
r   rH  rq  rG  r   r   rw   rt   rp   ro   i   )ro   rp   rt   rw   r   r   rp   c                       \ rS rSrSrS rSrg)CClassPropertiesAndMethods.test_basic_inheritance.<locals>.madstringi$  Nc                     U R                   b  U R                   $ [        U 5      nUR                  5         U R                  SR	                  U5      5      U l         U R                   $ Nr   ri  r8   r  r9  ru  rj  s     rA   rk  GClassPropertiesAndMethods.test_basic_inheritance.<locals>.madstring.rev&  J    99(99$J		 NN2771:6	yy rC   rm  rn  r   rC   rA   	madstringrs  $  rp  rC   ry  abcdefghijklmnopqrstuvwxyzzyxwvutsrqponmlkjihgfedcba   r   12345z     r  c                       \ rS rSrSrS rSrg)DClassPropertiesAndMethods.test_basic_inheritance.<locals>.madunicodeid  Nc                     U R                   b  U R                   $ [        U 5      nUR                  5         U R                  SR	                  U5      5      U l         U R                   $ ru  rv  rj  s     rA   rk  HClassPropertiesAndMethods.test_basic_inheritance.<locals>.madunicode.revf  rx  rC   rm  rn  r   rC   rA   
madunicoder  d  rp  rC   r  ABCDEFFEDCBAxyc                       \ rS rSrSrg)AClassPropertiesAndMethods.test_basic_inheritance.<locals>.sublisti  r   Nrp  r   rC   rA   sublistr    rr  rC   r  r  r         r3  r  )!r/   rH   r   r8  r9  r   r  r-   rL   r0   r   rY  rk  r  ru  mapr  striprG  rstrip	translatereplaceljustr  rjustcenterlowerupper
capitalizetitler8   r   rO  )r<   rE   rW  r^  rd  basero  r   rQ   r  r  ry  r  identitytabr  r  rE  rQ  s                   @@rA   test_basic_inheritance0ClassPropertiesAndMethods.test_basic_inheritance
  s   	8S 	8 	fQi!m,f5fTlQ./95ME"Q'c!f&&,a$u+.rnnc*qAv((#.qAv((#.vayB1137vayB1137	c 	 	WQZ!^,f5 	Q./:ENE"Q'a$u+.c!f&&,rnnc*rnnc*
{--s3qAv((#.qAv((#.q1u''-q1u''-qAv((#.qAv((#.q1u''-q1u''-q1u''-q2v((#.wqzR'22C8wqzR'22C8c'!*o//5	 	aLq1u''-q1u''- bMR(Q$	2 	2 	in-u5eG$q7+eAh((%0a$w-0rnne,	? 	? r1a&)r1~1!T*--w7qMa&)!T*--w7a$t*-1"1!a%**G4Q%!a%**G4Q%!a%**G4Q%!a%**G4Q%	!u 	! *+12(+@"AB1F(GHsAq"AAAQ"	 
 [!q;/eAh((%0a${"34adnne,q1u''/q1u''/q2v((%0RLq2&eAh((%0qu''/q1u''/q1u''/q1u''/adnne,	! 	! 2389),H"IJ	2N(OPsA"''#c58"456AAAQ"	 
 gQ)c!f&&,dO!Q&c!f&&,a$t*-!Qq)$1q)q2v((#.R&rAv((#.a&q1u''-Q#q1u''-Q%q1u''-Q,adnnc*1t$a!f&&,1Q$aggi))3/D)ahhj**C0T*ahhj**C0T*akk+.88#>[148aiiS)33S93,d3aggc!fo//5Q$/aggc!fo//5Q$/ahhs1v&00#6#a&)40aggi))3/D)	! 	! x H%*X"67
8(<=tQ&c!f&&,a$t*-!Qq)$1q)aggi))3/D)ahhj**C0T*ahhj**C0T*aiiS)33S93,d3aiid+55s;4.5ahhs1v&00#6#a&)40aggc!fo//5Q$/aggc!fo//5Q$/aggi))3/D)aggi))3/D)alln..4.aggi))3/D)q2v((#.R&rAv((#.a&q1u''-Q#q1u''-Q%q1u''-Q,adnnc*1t$a!f&&,1Q$	d 	E!HDqN+	DqNgY67!DqN+	q"DrO,"#DrO,beHQ$DrO,a$uRy/21q!1q!3#2"2AU1X/rC   c                    U R                  [        S5         [        SS9  S S S 5        U R                  [        S5         [        SS9  S S S 5        U R                  [        S5         [	        SS9  S S S 5        U R                  [        SSS9[        SS5      5        U R                  [        SS	9S
5        U R                  [        SSS9S5        U R                  [        S5         [        [        S5      S9  S S S 5        U R                  [        S5         [        SS9  S S S 5        [        [        [        [        [        [        [        [        4 H  n U" SS9  U R                  SU-  5        M      g ! , (       d  f       GN\= f! , (       d  f       GNF= f! , (       d  f       GN0= f! , (       d  f       N= f! , (       d  f       N= f! [         a     M  f = f)Nzkeyword argumentro   r]  rp   r   i  rb  i  r`  500   abcstrict)r  errorsr  rt   )sequencerK  )bogus_keyword_argz4expected TypeError from bogus keyword argument to %r)r  r   r/   r0   boolrH   r   r  rY  r  r8   r   )r<   constructors     rA   test_keywords'ClassPropertiesAndMethods.test_keywords  si   ##I/AB!H C##I/ABAJ C##I/AB1I Cbs3WS"5EFC%0F8<eD##I/AB58$ C##I/AB)$ C  Wc3!4)K+a0 		P)* +) CBBBBB
 CBBB  sL   
E6
F'
F&F,
F=G6
F
F
F),
F:=
G
GGc                    ^  " U4S jS[         5      mU R                  T" S5      S5        U R                  ST" S5      5        U R                  [        T" S5      5      S5        T" S5      ST" S5      S	T" S
5      S0nU R                  UT" S5         S5        U R                  UT" S5         S	5        U R                  UT" S5         S5        U R                  T" S5      U5        U R                  UR                  T" S5      5      S5        g )Nc                   2   > \ rS rSrSrS rU 4S jrS rSrg)FClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistri  zuSubclass of str that computes __eq__ case-insensitively.

Also computes a hash code of the string in canonical form.
c                 b    UR                  5       U l        [        U R                  5      U l        g r   )r  	canonicalr   hashcodero  s     rA   r6   OClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__init__  s    !& $T^^ 4rC   c                 h   > [        UT5      (       d  T" U5      nU R                  UR                  :H  $ r   )rE  r  )r<   r   cistrs     rA   r  MClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__eq__  s,    !%//!%LE~~88rC   c                     U R                   $ r   )r  r   s    rA   r  OClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__hash__  s    }}$rC   )r  r  N)	r   r   r   r   ru  r6   r  r  r   )r  s   rA   r  r    s    
59
%rC   r  ABCr  aBcr  ro   r  rp   tHreert   tWoTHrEEONethrEE)r  rH   rW  r   )r<   rP   r  s     @rA   test_str_subclass_as_dict_key7ClassPropertiesAndMethods.test_str_subclass_as_dict_key  s    	%C 	%$ 	uu-e-U5\*E25\1eElAuW~qA5<!,5<!,5>*A.eElA&uW~.2rC   c                   ^
  " S S5      nU[         [        4 H  n " U
4S jSU5      m
T
" S5      nT
" S5      nT
" S5      nU R                  US5        X4US.nS H  nS H  nS	 H  n	U R                  [        S
U	-  5      [        SU	-  5      SXx4-  5        U R                  [        SU	-  5      [        SU	-  5      SXx4-  5        U R                  [        SU	-  5      [        SU	-  5      SXx4-  5        M     M     M     M     g )Nc                       \ rS rSrSrg)CClassPropertiesAndMethods.test_classic_comparisons.<locals>.classici  r   Nrp  r   rC   rA   classicr    rr  rC   r  c                   d   > \ 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
S	rg
)=ClassPropertiesAndMethods.test_classic_comparisons.<locals>.Ci!  c                 $    [        U5      U l        g r   r/   r)  ro  s     rA   r6   FClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__init__"      !$UDJrC   c                    > [        UT5      (       a  U R                  UR                  :H  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:H  $ [        $ r   rE  r)  r/   r   r<   r   r   s     rA   r  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__eq__$  Q    !%++#zzU[[88!%--E31G1G#zzU22))rC   c                    > [        UT5      (       a  U R                  UR                  :g  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:g  $ [        $ r   r  r  s     rA   r  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__ne__*  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__lt__0  Q    !%++#zzEKK77!%--E31G1G#zzE11))rC   c                    > [        UT5      (       a  U R                  UR                  :*  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:*  $ [        $ r   r  r  s     rA   r  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__le__6  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__gt__<  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r
  DClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__ge__B  r  rC   r)  N)r   r   r   r   r6   r  r  r  r  r  r
  r   r  s   rA   r   r  !  s+    ,****** *rC   r   ro   rp   rt   rs   r"   r$   r&   r'   r(   r)   c[x] %s c[y]x %s y
x=%d, y=%d	c[x] %s y	x %s c[y])r/   r  rH   rI   )r<   r  r  rd  r!  c3r]   r  yopr   s             @rA   test_classic_comparisons2ClassPropertiesAndMethods.test_classic_comparisons  s   	 	 c6*D&*D &*P 1B1B1BR#"%A A>((nr.A)B%)(R-%8%1QF%:< ((kB.>)?%)(R-%8%1QF%:< ((kB.>)?%)(R-%8%1QF%:< ? ! ] +rC   c                   ^ ^  " S S[         5      nU" S5      nT R                  US5        T R                  SU5         " S S[         5      nU" S5      nT R                  US5        T R                  SU5         " S S	5      nU[        [        [        4 H  n " UU 4S
 jSU5      mT" S5      nT" S5      nT" S5      n	T R                  US5        XxU	S.n
S H  nS H  nS H  nT R                  [        SU-  5      [        SU-  5      SX4-  5        T R                  [        SU-  5      [        SU-  5      SX4-  5        T R                  [        SU-  5      [        SU-  5      SX4-  5        M     M     M     M     g )Nc                       \ rS rSrSrg):ClassPropertiesAndMethods.test_rich_comparisons.<locals>.Zi]  r   Nrp  r   rC   rA   r1  r  ]  rr  rC   r1  ro   y      ?        c                       \ rS rSrS rSrg);ClassPropertiesAndMethods.test_rich_comparisons.<locals>.ZZib  c                 >     [        X-
  5      S:*  $ !   [        s $ = f)Ngư>)r-   r   r   s     rA   r  BClassPropertiesAndMethods.test_rich_comparisons.<locals>.ZZ.__eq__c  s&    *t|,44*))s    r   Nr  r   rC   rA   ZZr  b  s    *rC   r  gׇP  ?c                       \ rS rSrSrg)@ClassPropertiesAndMethods.test_rich_comparisons.<locals>.classicil  r   Nrp  r   rC   rA   r  r  l  rr  rC   r  c                   p   > \ 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S
rg):ClassPropertiesAndMethods.test_rich_comparisons.<locals>.Cio  c                 $    [        U5      U l        g r   r  ro  s     rA   r6   CClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__init__p  r  rC   c                 (   > TR                  S5        g )Nzshouldn't call __cmp__)r   )r  r   r<   s     rA   __cmp__BClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__cmp__r  s    II67rC   c                    > [        UT5      (       a  U R                  UR                  :H  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:H  $ [        $ r   r  r  s     rA   r  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__eq__t  r  rC   c                    > [        UT5      (       a  U R                  UR                  :g  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:g  $ [        $ r   r  r  s     rA   r  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__ne__z  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__lt__  r  rC   c                    > [        UT5      (       a  U R                  UR                  :*  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:*  $ [        $ r   r  r  s     rA   r  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__le__  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__gt__  r  rC   c                    > [        UT5      (       a  U R                  UR                  :  $ [        U[        5      (       d  [        U[        5      (       a  U R                  U:  $ [        $ r   r  r  s     rA   r
  AClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__ge__  r  rC   r  N)r   r   r   r   r6   r  r  r  r  r  r  r
  r   )r   r<   s   rA   r   r  o  s0    ,8****** *rC   r   rp   rt   rs   r  r  r  r  r  r  )r   rH   r/   r  r8   rI   )r<   r1  r  r  zzr  r  rd  r!  r  r]   r  r  r  r   s   `             @rA   test_rich_comparisons/ClassPropertiesAndMethods.test_rich_comparisons[  s   	 	aDD!q!	* 	* 	]T"r"	 	c640D(* (*D (*R 1B1B1BR#"%A A>((nr.A)B)-hm)<)5)>@ ((kB.>)?)-hm)<)5)>@ ((kB.>)?)-hm)<)5)>@ ? ! _ 1rC   c                 r   ^  SSK Jn  U 4S jnU" UR                  S5        U" [        R                  S5        g )Nr   )FileIOc                 >   > TR                  U R                  U5        g r   )rH   ru  )descrwhatr<   s     rA   check6ClassPropertiesAndMethods.test_descrdoc.<locals>.check  s    U]]D1rC   zTrue if the file is closedz!the real part of a complex number)_ior  closedr   r   )r<   r  r  s   `  rA   test_descrdoc'ClassPropertiesAndMethods.test_descrdoc  s)    	2fmm9:gll?@rC   c                    ^  " S S[         5      m " U4S jS5      nU R                  UR                  S5        U R                  U" 5       R                  S5        g )Nc                       \ rS rSrS rSrg)?ClassPropertiesAndMethods.test_doc_descriptor.<locals>.DocDescri  c                 |    U(       a  UR                   R                  S-   nU(       a  UR                  nSU< SU< 3$ )Nz	 instancezobject=z; type=)r9  r   )r<   r  otypes      rA   r  GClassPropertiesAndMethods.test_doc_descriptor.<locals>.DocDescr.__get__  s3    #--66DF!NNE/5u==rC   r   Nr  r   rC   rA   DocDescrr    s    >rC   r  c                   &   > \ rS rSr Y " 5       rSrg)?ClassPropertiesAndMethods.test_doc_descriptor.<locals>.NewClassi  r   Nr+  )r  s   rA   NewClassr    s
    jGrC   r  zobject=None; type=NewClassz'object=NewClass instance; type=NewClass)r  rH   ru  )r<   r  r  s     @rA   test_doc_descriptor-ClassPropertiesAndMethods.test_doc_descriptor  sI    	>v 	>	! 	!))+GH++-VWrC   c                 X  ^ ^  " S S[         5      n " S S[         5      n " S S[         5      n " S SX#5      nXX44 HY  nXX44 HN  nU" 5       nXgl        T R                  UR                  U5        XWl        T R                  UR                  U5        MP     M[     U 4S	 jnU" U" 5       [        5        U" [        5       U5        U" U" 5       S
5        U" U" 5       [         5        U" [        5       [        5        U" [        5       [         5         " S S[        5      n	U" S[        5        U" S[
        5        [        5       n
U" U
[        5        U" U
[        S 5      5        A
 " S S[         5      n " S S[         5      n " S S[         5      n " S S[         5      n " S S[         5      n " S SU5      n " S SU5      n " S SU5      n " S S U5      n " S! S"U5      n " S# S$U5      nX4X4X4UU4UU44 H  u  pVU" 5       nS
Ul        Xgl        T R                  UR                  US%U< S&U< S'35        T R                  UR                  S
5        XWl        T R                  UR                  US%U< S&U< S'35        T R                  UR                  S
5        M     XUUUUUU[        U	4
 H-  nXUUUUUU[        U	4
 H  nXVL a  M	  U" U" 5       U5        M     M/      " S( S)[         5      m " U4S* jS+[         5      n[        S,5       Vs/ s H
  nU" 5       PM     nnAg s  snf )-Nc                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ci  r   Nrp  r   rC   rA   r   r    r  rC   r   c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Di  r   Nrp  r   rC   rA   rq  r    r  rC   rq  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ei  r   Nrp  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Fi  r   Nrp  r   rC   rA   rQ  r!    r  rC   rQ  c                    >  Xl         TR                  SU < SU< 35         [        U S5        TR                  SU -  5        g ! [         a     N.f = f! [        [        4 a     g f = f)Nshouldn't allow z.__class__ = r9  z shouldn't allow del %r.__class__)r9  r   r   rl  r6  )r  r   r<   s     rA   cant6ClassPropertiesAndMethods.test_set_class.<locals>.cant  sq    H 		AFGB;' 		<q@A   ~. s"   A A 
AAA'&A'ro   c                       \ rS rSr/ rSrg)5ClassPropertiesAndMethods.test_set_class.<locals>.Inti  r   Nr@  r   rC   rA   Intr'    s    B	rC   r(  Trp   c                       \ rS rSrSS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Gi  rE   rX   r   Nr@  r   rC   rA   r  r*    r  rC   r  c                       \ rS rSrSS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Hi  rX   rE   r   Nr@  r   rC   rA   r  r,    r  rC   r  c                       \ rS rSrSS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ii  rE   rX   r   Nr@  r   rC   rA   r"  r.    r  rC   r"  c                       \ rS rSrSS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ji  r]   rX   r   Nr@  r   rC   rA   Jr0    r  rC   r1  c                       \ rS rSr/ SQrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ki  )rE   rX   rP   r   Nr@  r   rC   rA   Kr3    rh  rC   r4  c                       \ rS rSrS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Li  r  r   Nr@  r   rC   rA   r  r6    rd  rC   r  c                       \ rS rSrS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Mi  r  r   Nr@  r   rC   rA   r  r8    rd  rC   r  c                       \ rS rSrS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ni  r  r   Nr@  r   rC   rA   r<  r:    r  rC   r<  c                       \ rS rSrS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Pi  rL   r   Nr@  r   rC   rA   Pr<    r  rC   r=  c                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Qi  r   Nrp  r   rC   rA   Qr?    rr  rC   r@  c                       \ rS rSrSS/rSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ri  rL   r  r   Nr@  r   rC   rA   RrB    s    #]3IrC   rC  z
assigning z as __class__ for z silently failedc                       \ rS rSrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Oi  r   Nrp  r   rC   rA   OrE    rr  rC   rF  c                   "   > \ rS rSrU 4S jrSrg)3ClassPropertiesAndMethods.test_set_class.<locals>.Ai  c                    > TU l         g r   r  )r<   rF  s    rA   r  ;ClassPropertiesAndMethods.test_set_class.<locals>.A.__del__  s
    !"rC   r  Nr   r   r   r   r  r   )rF  s   rA   r  rH    s    # #rC   r  r   )
r  r9  r8  r8   r/   r  rJ   rE   rH   r  )r<   r   rq  r  rQ  r   cls2r  r$  r(  or  r  r"  r1  r4  r  r  r<  r=  r@  rC  r  r   rF  s   `                       @rA   test_set_class(ClassPropertiesAndMethods.test_set_class  s   :Ca
E"akk40!akk3/ # 	B 	QS$TVQQS!QS&VXtTVV&#&T3QHQQT
	# 	#	# 	#	# 	#	# 	#	( 	(	 		 		( 	(	% 	%	 		4 	4 &1&1&1a&1a&AICAACKMM!++tIMqQSQSS!$KMM!++sILaPRQSS!$ B Aq!Q44CaAq!Qc9;SUD! : 5	 		# 	#  *%*QQS*% &s   L'c                   ^ ^^  " S S[         5      nU" 5       nSS0Ul        T R                  UR                  S5        U 4S jmT" US 5        T" U/ 5        T" US5        U? " S S[         5      mUUU 4S jn " S	 S
[        T5      n " S ST[        5      n " S S[         US9n " S S[         US9nXU4 H1  nU" U5        UR                  n	 SU	S'   T R                  SU-  5        M3      " S S[        R                  T5      n
 " S ST[        R                  5      nX4 H"  nU" S5      nU" U5        SUR                  S'   M$     S n " S S[        T5      n " S ST[        5      n[        UU4 HU  nU" 5       nSS0Ul        T R                  UR                  S5        T R                  U" U5      U" [        5       5      5        MW     g ! [         a     GM&  f = f)Nc                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_set_dict.<locals>.Ci  r   Nrp  r   rC   rA   r   rR    r  rC   r   rX   ro   c                 r   >  Xl         TR                  SU < SU< 35        g ! [        [        4 a     g f = f)Nr#  z.__dict__ = )rL   r   r6  r   )r  r   r<   s     rA   r$  5ClassPropertiesAndMethods.test_set_dict.<locals>.cant   s:    J!
 		4HI #I. s   # 66c                       \ rS rSrSrg)5ClassPropertiesAndMethods.test_set_dict.<locals>.Basei,  r   Nrp  r   rC   rA   r3  rV  ,  rr  rC   r3  c                 
  > T" U 0 5         U ? TR                  SU -  5        TR                   S   n UR	                  U 0 5        TR                  SU -  5        g! [        [        4 a     NIf = f! [        [        4 a     gf = f)z:
x has to be an instance of a class inheriting from Base.
zshouldn't allow del %r.__dict__rL   z&dict_descr allowed access to %r's dictN)rL   r   r6  r   r  )r  
dict_descrr3  r$  r<   s     rA   verify_dict_readonlyEClassPropertiesAndMethods.test_set_dict.<locals>.verify_dict_readonly.  s     BKAJ 		;a?@z2JH""1b) 		BQFG #I.  #I. s"   A A/ A,+A,/BBc                       \ rS rSrSrg)6ClassPropertiesAndMethods.test_set_dict.<locals>.Meta1iB  r   Nrp  r   rC   rA   Meta1r\  B  rr  rC   r]  c                       \ rS rSrSrg)6ClassPropertiesAndMethods.test_set_dict.<locals>.Meta2iD  r   Nrp  r   rC   rA   Meta2r_  D  rr  rC   r`  c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_set_dict.<locals>.DiF  r   Nrp  r   rC   rA   rq  rb  F  rr  rC   rq  re  c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_set_dict.<locals>.EiH  r   Nrp  r   rC   rA   r  rd  H  rr  rC   r  eggsr   z%r's __dict__ can be modifiedc                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_set_dict.<locals>.Module1iU  r   Nrp  r   rC   rA   Module1rg  U  rr  rC   rh  c                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_set_dict.<locals>.Module2iW  r   Nrp  r   rC   rA   Module2rj  W  rr  rC   rk  c                 6     U ? g! [        [        4 a     gf = f)NTF)rL   r   r6  )r  s    rA   can_delete_dict@ClassPropertiesAndMethods.test_set_dict.<locals>.can_delete_dictb  s*    J  ~. s    c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_set_dict.<locals>.Exception1ii  r   Nrp  r   rC   rA   
Exception1rp  i  rr  rC   rq  c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_set_dict.<locals>.Exception2ik  r   Nrp  r   rC   rA   
Exception2rs  k  rr  rC   rt  rE   )r  rL   rH   rX   rJ   r   r   r~  r  r  rE   r  )r<   r   rE   rY  r]  r`  rq  r  r   
class_dictrh  rk  r  r   rm  rq  rt  ExceptionTyper  r3  r$  s   `                  @@rA   test_set_dict'ClassPropertiesAndMethods.test_set_dict  s   C1X
a 	J 	QQQ
J	6 		H(	D$ 		D$ 		% 		% 	7C %JA%+
6" 		9C?@ 	e&& 		dE,, 	!*JV$C %#)CLL  +		D 		y 	&
J>MAqAJQSS!$_Q/1NO	 ?=  s   G
G G c                   ^  " U4S jS[         5      mU R                  [        T" S5      T" S5      -   5      S5        U R                  [        T" S5      S-   5      S5        U R                  [        ST" S5      -   5      S5        U R                  [        T" S5      T" S5      -  5      S5        U R                  [        ST" S5      -  5      S5        U R                  [        T" S5      S-  5      S5        U R                  [        [        T" S5      T" S5      T" S5      5      5      S5         " S	 S
[        5      ng )Nc                   L   > \ rS rSrS rU 4S jr\rSU 4S jjrSU 4S jjrSr	g)	BClassPropertiesAndMethods.test_binary_operator_override.<locals>.Iiu  c                     S[        U 5      -  $ )NzI(%r)r/   r   s    rA   r   KClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__repr__v  s    T**rC   c                 >   > T" [        U 5      [        U5      -   5      $ r   r}  )r<   r   r"  s     rA   rr   JClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__add__x  s    TSZ/00rC   Nc           	         > Uc$  T" [        [        U 5      [        U5      5      5      $ T" [        [        U 5      [        U5      [        U5      5      5      $ r   r   r/   r<   r   r   r"  s      rA   __pow__JClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__pow__{  sB    ;STCJ788STCJCABBrC   c           	         > Uc%  T" [        [        U5      [        U 5      U5      5      $ T" [        [        U5      [        U 5      [        U5      5      5      $ r   r  r  s      rA   __rpow__KClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__rpow__  sD    ;SUSY<==SUSYCABBrC   r   r   )
r   r   r   r   r   rr   r   r  r  r   )r"  s   rA   r"  r{  u  s$    +1HC
C CrC   r"  ro   rp   zI(3)rt   zI(8)r   c                       \ rS rSrS rSrg)BClassPropertiesAndMethods.test_binary_operator_override.<locals>.Si  c                 D    U R                  5       UR                  5       :H  $ r   )r  r   s     rA   r  IClassPropertiesAndMethods.test_binary_operator_override.<locals>.S.__eq__  s    zz|u{{}44rC   r   Nr  r   rC   rA   Sr    r  rC   r  )r/   rH   r   r   r  )r<   r  r"  s     @rA   test_binary_operator_override7ClassPropertiesAndMethods.test_binary_operator_overrides  s    	C 	C" 	adQqTk*F3adQh0a!A$h0adadl+V4a1Q4i&1adai&1c!A$!ad34f=	5 	5rC   c                     " S S[         5      n " S SU5      n " S SU5      n " S SX#5      nU" 5       n[        U5      nS	 Ul        U R                  [        U5      S
5        S Ul        U R                  [        U5      S5        S Ul        U R                  [        U5      S5        S Ul        U R                  [        U5      S5        S Ul        U R	                  [
        [        U5        U?U R                  [        U5      S5        S Ul        U R	                  [
        [        U5        U?U R                  [        U5      S5        S Ul        U R	                  [
        [        U5        U?U R                  [        U5      S
5        S Ul        U R	                  [
        [        U5        U?U R                  [        U5      U5        S
Ul        S
Ul        U R                  UR                  S
5        U R                  UR                  S
5        S nXql        U R                  UR                  S5        U R                  UR                  S
5        S nXl	        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S
5        U?U R                  UR                  S
5        U?U R                  UR                  S5        U R                  UR                  S
5        U?	 UR                    U R                  S5         " S S[         5      n " S SU5      nA[        R                  " 5         S Ul        g ! [         a     NEf = f)Nc                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.Ai  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.Bi  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.Ci  r   Nrp  r   rC   rA   r   r    rr  rC   r   c                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.Di  r   Nrp  r   rC   rA   rq  r    rr  rC   rq  c                     gr  r   r   s    rA   r  EClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>  s    "rC   r   c                     g)N:  r   r   s    rA   r  r    r  rC   r  c                     g)N   r   r   s    rA   r  r    r  rC   r  c                     grD  r   r   s    rA   r  r    r  rC   r   c                 :    US:X  a  g[         R                  X5      $ )Nr   r4  )r  rd  r  s     rA   rd  MClassPropertiesAndMethods.test_subclass_propagation.<locals>.__getattribute__  s    u}**466rC   r4  c                 &    US;   a  g[        U5      e)N)r   r   r  r  r  r  s     rA   r+  HClassPropertiesAndMethods.test_subclass_propagation.<locals>.__getattr__  s    -- &&rC   r  zd.foo should be undefined nowc                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                       \ rS rSrSrg)r  i  r   Nrp  r   rC   rA   r  r    rr  rC   c                      g r   r   rK  s    rA   r  r    s    4rC   )r  r   r  rH   rZ  r   r   r  rd  r+  r   r   r6  r   r  r   )	r<   r  r  r   rq  rP   	orig_hashrd  r+  s	            rA   test_subclass_propagation3ClassPropertiesAndMethods.test_subclass_propagation  s   	 		 		 		 	CG	$
a"%%
a#&%
a#&%
a#&
)T1-Ja#&
)T1-Ja#&
)T1-Ja"%
)T1-Ja),##	7 .##	' $)###E(#M	7EE II56	 		 	'  		s   
M   
M-,M-c                 2   SS K n " S S[        5      nSnU" U5      nU R                  UR                  U5      UR                  U5      5         " S S[        5      nU" S5      n UR                  U5        U R                  S5        g ! [         a     g f = f)	Nr   c                       \ rS rSrSrg)BClassPropertiesAndMethods.test_buffer_inheritance.<locals>.MyBytesi  r   Nrp  r   rC   rA   rO  r    rr  rC   rO  r  c                       \ rS rSrSrg)@ClassPropertiesAndMethods.test_buffer_inheritance.<locals>.MyInti  r   Nrp  r   rC   rA   rA  r    rr  rC   rA  r   z2subclass of int should not have a buffer interface)binasciirX  rH   b2a_hexr/   r   r   )r<   r  rO  r  rR   rA  s         rA   test_buffer_inheritance1ClassPropertiesAndMethods.test_buffer_inheritance  s     		e 	DM 	))!,h.>.>t.DE	C 	"I	QIIJK 		s   &"B	 	
BBc                 :  ^ SS K m " U4S jS[        5      nU" S5      nU R                  [        U5      U5        U R                  [        [        U5      5      [        5        U R                  [        [	        U5      5      [        5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [	        U5      S5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nr   c                   (   > \ rS rSrU 4S jrS rSrg)GClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstringi  c                 b   > TR                  U R                  S5      5      R                  S5      $ )Nascii)r  encodedecode)r<   r  s    rA   r   OClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstring.__str__  s(    ''G(<=DDWMMrC   c                     U S-   $ )Nz reprr   r   s    rA   r   PClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstring.__repr__  s    g~%rC   r   N)r   r   r   r   r   r   r   )r  s   rA   octetstringr    s    N&rC   r  r  A   41zA repr)r  r  rH   rJ   r   ordr   r   )r<   r  rM  r  s      @rA   test_str_of_str_subclass2ClassPropertiesAndMethods.test_str_of_str_subclass  s    	&# 	& a+.c!fs+d1g,Q&Q&a(+d+x0rC   c                      " S S[         5      n " S S5      nU" S5      Ul        U R                  [        U5      [         5        U R                  [        U" 5       5      [         5        g )Nc                       \ rS rSrSrg)LClassPropertiesAndMethods.test_repr_with_module_str_subclass.<locals>.StrSubi  r   Nrp  r   rC   rA   StrSubr    rr  rC   r  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_repr_with_module_str_subclass.<locals>.Somei  r   Nrp  r   rC   rA   Somer    rr  rC   r  example)r  r   r(  r   )r<   r  r  s      rA   "test_repr_with_module_str_subclass<ClassPropertiesAndMethods.test_repr_with_module_str_subclass	  sN    	S 		 	 +d4j#.d46lC0rC   c                     S nU R                  UR                  SS9S5        [        5       n[        R                  USSSS9  U R                  US5        g )	Nc                     U $ r   r   rK  s    rA   rV  ;ClassPropertiesAndMethods.test_keyword_arguments.<locals>.f  s    (rC   r   rK  u   abc½€latin1r  )encodingr  s   abc?)rH   r  	bytearrayr6   )r<   rV  bas      rA   test_keyword_arguments0ClassPropertiesAndMethods.test_keyword_arguments  sT    b)2.[2$,Y 	 	@[)rC   c                      " S S[         5      nU" 5       Ul        U R                  [        5         U" 5       " 5         S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_recursive_call.<locals>.Ai  r   Nrp  r   rC   rA   r  r    rr  rC   r  )r  r  rZ  RecursionErrorr  s     rA   test_recursive_call-ClassPropertiesAndMethods.test_recursive_call  s:    	 	 S
~.CE /..s   A
Ac                 &  ^ / m " U4S jS[         5      nU" 5       nU R                  T/ 5        A[        R                  " 5         U R                  TS/5         " S S[         5      nU" 5       nUS	 U R	                  S5        g ! [
         a     g f = f)Nc                   "   > \ rS rSrU 4S jrSrg)5ClassPropertiesAndMethods.test_delete_hook.<locals>.Ci(  c                 (   > TR                  S5        g r   r;  )r<   rf  s    rA   r  =ClassPropertiesAndMethods.test_delete_hook.<locals>.C.__del__)  s    

1rC   r   NrK  )rf  s   rA   r   r  (  s     rC   r   ro   c                       \ rS rSrSrg)5ClassPropertiesAndMethods.test_delete_hook.<locals>.Di1  r   Nrp  r   rC   rA   rq  r  1  r  rC   rq  r   z$invalid del() didn't raise TypeError)r  rH   r   r  r   r   )r<   r   r]   rq  rP   rf  s        @rA   test_delete_hook*ClassPropertiesAndMethods.test_delete_hook%  s    	 	 Cb!qc"C1ii>? $s   .B 
BBc                     " S S[         5      nU" 5       n [        U5        U R                  S5         " S S[        5      nU" 5       n [        U5        U R                  S5        g ! [         a     N@f = f! [         a     g f = f)Nc                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_hash_inheritance.<locals>.mydicti:  r   Nrp  r   rC   rA   mydictr  :  rr  rC   r  z#hash() of dict subclass should failc                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_hash_inheritance.<locals>.mylistiD  r   Nrp  r   rC   rA   mylistr  D  rr  rC   r  z#hash() of list subclass should fail)r   r   r   r   r8   )r<   r  rP   r  s       rA   test_hash_inheritance/ClassPropertiesAndMethods.test_hash_inheritance7  s    	T 	H	=G II;<	T 	H	=G II;<  		  		s#   A( A8 (
A54A58
BBc                 .   SS-     U R                  S5        SR                  S5        U R                  S5        SR	                  S/5        U R                  S5        SR                  S5        U R                  S	5        S
S -    U R                  S5        S0 -    U R                  S5        SS-    U R                  S5        SS-    U R                  S5        SS-    U R                  S5        SS -    U R                  S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SS-  S5        U R                  SS-  S5        g ! [         a     GNcf = f! [         a     GNRf = f! [         a     GN@f = f! [         a     GN/f = f! [         a     GN*f = f! [         a     GN%f = f! [         a     GN f = f! [         a     GNf = f! [         a     GNf = f! [         a     GNf = f)NrE   r   z'' + 5 doesn't raise TypeErrorr   z%''.split('') doesn't raise ValueErrorr   z$''.join([0]) doesn't raise TypeError5z'''.rindex('5') doesn't raise ValueErrorz%(n)sz&'%(n)s' % None doesn't raise TypeErrorz%(nz&'%(n' % {} '' doesn't raise ValueErrorz%*sr  z''%*s' % ('abc') doesn't raise TypeErrorz%*.*s)r  r   z,'%*.*s' % ('abc', 5) doesn't raise TypeErrorz%sro   rp   z%'%s' % (1, 2) doesn't raise TypeError%z#'%' % None doesn't raise ValueError534253ro   534253xz%c)r   r   splitr  ru  rindexrH   isdigitr   s    rA   test_str_operations-ClassPropertiesAndMethods.test_str_operationsN  s   1Wii89XXb\ii?@WWaS\ii>?YYs^iiABt^ii@ARZii@Ae_iiABz!iiFGF]ii?@4Zii=>))+Q/**,a06*S)U $ 4 $ 4 $ 4 $ $ $ 4s   E- E> F F  >F1 G *G  G$ G5 ,H -
E;:E;>
FF
FF 
F.-F.1
F?>F?
GG
G! G!$
G21G25
HH
HHc                 b     " S S5      nU" 5       nU" 5       nX2l         X#l        [        U5      ng )Nc                       \ rS rSrSrg)?ClassPropertiesAndMethods.test_deepcopy_recursive.<locals>.Nodei~  r   Nrp  r   rC   rA   r  r  ~  rr  rC   r  )rX   rE   r   )r<   r  rE   rX   r  s        rA   test_deepcopy_recursive1ClassPropertiesAndMethods.test_deepcopy_recursive|  s-    	 	FFQKrC   c                 4   SSK Jn  UR                  U5      n[        U5        U R	                  US5        U R	                  US5        U R	                  US5        U R                  UR                  5        SUl        U R                  UR                  SS05        g )Nr   )r  r   __file__r   ro   )	r~  r  r   r  rX  rW  rL   r   rH   )r<   r  rR   s      rA   test_uninitialized_modules4ClassPropertiesAndMethods.test_uninitialized_modules  sz    )IIaLAa,a,a'$eQZ0rC   c                   ^  " U4S jS[         5      n " S SU5      mU R                  U" S5      / SQ5        U R                  T" S5      / SQ5        T" S 5      nU R                  UR                  S 5        U" S5      nU R                  UT5        U R                  UR                  S5        T" S5      nU R                  UT5        U R                  UR                  S5         " S S[         5      nU R                  U" SS	5      USS	45         " S
 SU5      mU R                  T" SS	5      TSS	45         " S S[         5      nU R                  U" SS	5      XSS	45         " S SU5      mU R                  T" SS	5      TTSS	45        g )Nc                   "   > \ rS rSrU 4S jrSrg)3ClassPropertiesAndMethods.test_funny_new.<locals>.Ci  c                    > [        U[        5      (       a  / SQ$ [        U[        5      (       a  [        R	                  T5      $ [        R	                  U 5      $ )Nrs   )rE  r  r/   r  r   )r   rU  rq  s     rA   r   ;ClassPropertiesAndMethods.test_funny_new.<locals>.C.__new__  s?    c3''	)9S))&..2C+C#^^C00rC   r   Nrz  )rq  s   rA   r   r	    s    1 1rC   r   c                       \ rS rSrS rSrg)3ClassPropertiesAndMethods.test_funny_new.<locals>.Di  c                     Xl         g r   r  r<   rU  s     rA   r6   <ClassPropertiesAndMethods.test_funny_new.<locals>.D.__init__  r  rC   r  Nr  r   rC   rA   rq  r		    r  rC   rq  r|  rs   ro   c                   $    \ rS rSr\S 5       rSrg)r	  i  c                      U $ r   r   r  s    rA   r   r	        rC   r   N)r   r   r   r   r  r   r   r   rC   rA   r   r	    s     rC   rp   c                       \ rS rSrSrg)r		  i  r   Nrp  r   rC   rA   rq  r		    rr  rC   c                   $    \ rS rSr\S 5       rSrg)r	  i  c                      U $ r   r   r  s    rA   r   r	    r	  rC   r   N)r   r   r   r   r  r   r   r   rC   rA   r   r	    s     rC   c                       \ rS rSrSrg)r		  i  r   Nrp  r   rC   rA   rq  r		    rr  rC   )r  rH   r   r(  )r<   r   rP   rq  s      @rA   test_funny_new(ClassPropertiesAndMethods.test_funny_new  sb   	1 	1
	 	 	3+3+dG%aDa#"aDa#"	 	 	1a1a),	 	1a1a),	 	 	1a1A,/	 	1a1aA,/rC   c                 h    " S S[         5      nU" 5       nUnUS-  nU R                  X2S45        UnUS-  nU R                  X2S45        UnUS-  nU R                  X2S45        UnUS-  nU R                  X2S45        UnUS -  nU R                  X2S 45        UnUS-  nU R                  X2S45        g )Nc                       \ rS rSrS rSrg)2ClassPropertiesAndMethods.test_imul_bug.<locals>.Ci  c                     X4$ r   r   r   s     rA   r   ;ClassPropertiesAndMethods.test_imul_bug.<locals>.C.__imul__  s
    }$rC   r   N)r   r   r   r   r   r   r   rC   rA   r   r	    r  rC   r   rF  rp   rt   l                r   r  rH   )r<   r   r  r  s       rA   test_imul_bug'ClassPropertiesAndMethods.test_imul_bug  s    	% 	% C	SH%	QF#	QF#	VK(	T	I&	U
J'rC   c                   ^  SS K n " U 4S jS[        5      nU" S5      nUR                  S5        T R                  UR                  S5        T R                  UR                  5       S5        UR                  U5      nT R                  UR                  S5        T R                  UR                  5       S5        UR                  U5      nT R                  UR                  S5        T R                  UR                  5       S5        g )Nr   c                   B   > \ rS rSrS	S jrS	S jrS rS rU 4S jrSr	g)
7ClassPropertiesAndMethods.test_copy_setstate.<locals>.Ci  Nc                     Xl         Xl        g r   )r   _C__foor  s     rA   r6   @ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__init__  s     
rC   c                     Xl         g r   r  r  s     rA   setfoo>ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.setfoo  r  rC   c                     U R                   $ r   )r"	  r   s    rA   getfoo>ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.getfoo  r2  rC   c                     U R                   /$ r   r  r   s    rA   __getstate__DClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__getstate__  s    z!rC   c                 ^   > TR                  [        U5      S5        US   =U l        U l        g r  )rH   r  r"	  r   )r  lstr<   s     rA   __setstate__DClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__setstate__  s)      S1-*-a&0eirC   )__foor   r   )
r   r   r   r   r6   r%	  r(	  r+	  r/	  r   r   s   rA   r   r 	    s!    !""1 1rC   r   r   r4  )r   r  r%	  rH   r   r(	  r   )r<   r   r   rE   rX   s   `    rA   test_copy_setstate,ClassPropertiesAndMethods.test_copy_setstate  s    	1 	1 bE	#R(IIaL#R(MM!#R(rC   c                    U R                  SS S S5        U R                  S[        S5         S5        U R                  [        R                  S[        S5      5      S5         " S S[        5      nU R                  U" S5      S S S5        U R                  U" S5      [        S5         S5        U R                  U" S5      R                  [        S5      5      S5        U R                  SS S S5        U R                  S[        S5         S5        U R                  [        R                  S[        S5      5      S5         " S	 S
[        5      nU R                  U" S5      S S S5        U R                  U" S5      [        S5         S5        U R                  U" S5      R                  [        S5      5      S5        U R                  / SQS S SS/5        U R                  / SQ[        S5         SS/5        U R                  [
        R                  / SQ[        S5      5      SS/5         " S S[
        5      nU R                  U" / SQ5      S S SS/5        U R                  U" / SQ5      [        S5         SS/5        U R                  U" / SQ5      R                  [        S5      5      SS/5        U" / SQ5      nSS/U[        SS5      '   U R                  U/ SQ5        SS/U[        SSS5      '   U R                  U/ SQ5        UR                  [        SS5      SS/5        U R                  U/ SQ5        UR                  [        SSS5      SS/5        U R                  U/ SQ5        g )Nr  rw   hellc                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_slices.<locals>.Si  c                 ,    [         R                  X5      $ r   )r  ry   r  s     rA   ry   <ClassPropertiesAndMethods.test_slices.<locals>.S.__getitem__  s    t//rC   r   NrJ  r   rC   rA   r  r7	    s    0rC   r  rs   rp   r  c                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_slices.<locals>.Ti  c                 ,    [         R                  X5      $ r   )rY  ry   r  s     rA   ry   <ClassPropertiesAndMethods.test_slices.<locals>.T.__getitem__   s    ((11rC   r   NrJ  r   rC   rA   r  r;	        2rC   r  ro   c                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_slices.<locals>.Li	  c                 ,    [         R                  X5      $ r   )r8   ry   r  s     rA   ry   <ClassPropertiesAndMethods.test_slices.<locals>.L.__getitem__
  s    ''00rC   r   NrJ  r   rC   rA   r  r@	  	  r  rC   r  rt   )ro   rt   rp   r   )rt   ro   rp   )rt   rp   ro   )rp   rt   ro   )rH   r^   r  ry   rY  r8   r   )r<   r  r  r  rE   s        rA   test_slices%ClassPropertiesAndMethods.test_slices  s    	!f-q*F3%(;VD	0 	0 	7BQ07E!H-v67//a96B!e,q*E2**7E!H=uE	2 	2 	7BQ/7E!H-u57//a95A!qe,q*QqE2))'58<qeD	1 	1 	7BQ!A/7E!H-!u57//a9Aa5AgJA%1+G$qE%1a.G$	eAqkAa5)G$	eAq!nqe,G$rC   c                    ^  " U4S jS[         5      mT" 5       nSUl        A[        R                  " 5         U R	                  [        TR                  5      S5        T?g )Nc                   &   > \ rS rSr/ rU 4S jrSrg)>ClassPropertiesAndMethods.test_subtype_resurrection.<locals>.Ci  c                 <   > TR                   R                  U 5        g r   )	containerr   r   s    rA   r  FClassPropertiesAndMethods.test_subtype_resurrection.<locals>.C.__del__   s    ""4(rC   r   N)r   r   r   r   rI	  r  r   r  s   rA   r   rG	    s    I) )rC   r   r   ro   )r  r  r   r  rH   r  rI	  r  )r<   r]   r   s     @rA   test_subtype_resurrection3ClassPropertiesAndMethods.test_subtype_resurrection  sP    	) 	) C
 Q[[)1- IrC   c                 \     " S S[         5      nS n[        S5       H  nU" U5      nM     Ag )Nc                        \ rS rSrS/rS rSrg)9ClassPropertiesAndMethods.test_slots_trash.<locals>.trashi6  r  c                     Xl         g r   r]  r  s     rA   r6   BClassPropertiesAndMethods.test_slots_trash.<locals>.trash.__init__8  r_  rC   r]  N)r   r   r   r   r   r6   r   r   rC   rA   trashrO	  6  s    IrC   rR	  iP  )r  r  )r<   rR	  rM  r   s       rA   test_slots_trash*ClassPropertiesAndMethods.test_slots_trash3  s/    	F 	 uAaA rC   c                 6    " S S[         5      n " S S[         5      n " S SX5      n[        R                  " 5       (       a&  U R                  UR                  UR                  5        U R                  US5        U R                  US5        S	U" 5       l        g )
Nc                       \ rS rSrSrSrg)DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.AiA  r   Nr@  r   rC   rA   r  rW	  A      IrC   r  c                       \ rS rSrSrg)DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.BiC  r   Nrp  r   rC   rA   r  rZ	  C  rr  rC   r  c                       \ rS rSrSrSrg)DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.CiE  r   Nr@  r   rC   rA   r   r\	  E  rX	  rC   r   rL   r  rp   )r  r   r  rH   __basicsize__r  r  )r<   r  r  r   s       rA   test_slots_multiple_inheritance9ClassPropertiesAndMethods.test_slots_multiple_inheritance?  sv    	 		 		 	$$&&Q__aoo>1j)1m,rC   c                      " S S[         5      nU" 5       nU R                  US-  S5        U R                  US-  S5        U R                  SU-  S5        U R                  SU-  S5        g )Nc                        \ rS rSrS rS rSrg).ClassPropertiesAndMethods.test_rmul.<locals>.CiP  c                     g)Nr   r   r   s     rA   r   6ClassPropertiesAndMethods.test_rmul.<locals>.C.__mul__Q      rC   c                     g)Nrmulr   r   s     rA   r   7ClassPropertiesAndMethods.test_rmul.<locals>.C.__rmul__S  s    rC   r   N)r   r   r   r   r   r   r   r   rC   rA   r   rb	  P  s    rC   r   rp   r   g@rg	  r	  rP  s      rA   	test_rmul#ClassPropertiesAndMethods.test_rmulM  sg    	 	
 C1e$3&1f%Q'rC   c                 :     " S S[         5      nU" 5       nUS-  ng )Nc                       \ rS rSrS rSrg).ClassPropertiesAndMethods.test_ipow.<locals>.Ci^  c                     g r   r   r   s     rA   __ipow__7ClassPropertiesAndMethods.test_ipow.<locals>.C.__ipow___      rC   r   Nr   r   r   r   ro	  r   r   rC   rA   r   rm	  ^      rC   r   rp   r`  rP  s      rA   	test_ipow#ClassPropertiesAndMethods.test_ipow[  s     	 	 C	arC   c                      " S S5      n " S SU5      n " S SU5      nU" 5       nU" 5       nU" 5       nXE-  nU R                  US5        Xe-  nU R                  US5        g )	Nc                       \ rS rSrS rSrg)FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Aie  c                     [         $ r   r   r   s     rA   ro	  OClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.A.__ipow__f  r   rC   r   Nrr	  r   rC   rA   r  rx	  e  r   rC   r  c                       \ rS rSrS rSrg)FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Bii  c                     gr   r   r   s     rA   r  OClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.B.__rpow__j      rC   r   Nr   r   r   r   r  r   r   rC   rA   r  r|	  i      rC   r  c                       \ rS rSrS rSrg)FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Cim  c                     gr  r   r   s     rA   r  NClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.C.__pow__n  r	  rC   r   Nr   r   r   r   r  r   r   rC   rA   r   r	  m  r	  rC   r   ro   rp   r  )r<   r  r  r   rE   rX   r]   s          rA   !test_ipow_returns_not_implemented;ClassPropertiesAndMethods.test_ipow_returns_not_implementedd  si    	& 	&	 		 	 CCC	A	ArC   c                 f     " S S5      n[        5       nU" 5       nX#-  nU R                  US5        g )Nc                       \ rS rSrS rSrg)1ClassPropertiesAndMethods.test_no_ipow.<locals>.Bi{  c                     gr   r   r   s     rA   r  :ClassPropertiesAndMethods.test_no_ipow.<locals>.B.__rpow__|  r	  rC   r   Nr	  r   rC   rA   r  r	  {  r	  rC   r  ro   r	  )r<   r  rE   rX   s       rA   test_no_ipow&ClassPropertiesAndMethods.test_no_ipowz  s3    	 	 HC	ArC   c                 l   S nU R                  [        5       nUS-  nS S S 5        U R                  S[        WR                  5      5        U R                  [        5       nUS-  nS S S 5        U R                  S[        UR                  5      5        g ! , (       d  f       N|= f! , (       d  f       NE= f)Nrp   z#unsupported operand type(s) for **=z"unsupported operand type(s) for **)rZ  r   rW  r  rp  )r<   r  r]  r  s       rA   test_ipow_exception_text2ClassPropertiesAndMethods.test_ipow_exception_text  s    y)R!GA *;S=NOy)RQA *:C<MN *) *)s   B B%
B"%
B3c                   ^  " S S[         5      n " U4S jS[         5      m " S SU5      n " S SU5      nU" 5       nU" 5       nU4Ul        T4Ul        U R                  UR                  5       S	5        U R                  UR                  5       S	5        U R                  UR                  S
5        U R                  UR                  S
5        U R                  TR                  5       U/5         U?U R                  S5         SUl        U R                  S5         U4Ul        U R                  S5         X4Ul        U R                  S5         U4Ul        U R                  S5        g ! [        [        4 a     Nzf = f! [         a*  n[        U5      S:X  a  U R                  S5         S nANS nAff = f! [         a     Nf = f! [         a     Nf = f! [         a     g f = f)Nc                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_mutable_bases.<locals>.Ci  r   Nrp  r   rC   rA   r   r	    rr  rC   r   c                   2   >^  \ rS rSrUU 4S jrS rSrU =r$ )8ClassPropertiesAndMethods.test_mutable_bases.<locals>.C2i  c                 0   > US:X  a  g[         TU ]  U5      $ )NrE   rp   )r  rd  )r<   r  r"  r9  s     rA   rd  IClassPropertiesAndMethods.test_mutable_bases.<locals>.C2.__getattribute__  s    3; T;DAArC   c                     gr   r   r   s    rA   rO   =ClassPropertiesAndMethods.test_mutable_bases.<locals>.C2.meth  r	  rC   r   )r   r   r   r   rd  rO   r   r  )r9  r"  s   @rA   r"  r	    s    B
 rC   r"  c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_mutable_bases.<locals>.Di  r   Nrp  r   rC   rA   rq  r	    rr  rC   rq  c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_mutable_bases.<locals>.Ei  r   Nrp  r   rC   rA   r  r	    rr  rC   r  ro   rp   z&shouldn't be able to delete .__bases__r   z)shouldn't be able to set .__bases__ to ()z/a new-style class can't have only classic basesz'wrong error message for .__bases__ = ()z.shouldn't be able to create inheritance cyclesz#didn't detect repeated base classes)
r  rM   rH   rO   rE   r  r   r   r6  r  )r<   r   rq  r  rP   r  r  r"  s          @rA   test_mutable_bases,ClassPropertiesAndMethods.test_mutable_bases  s   	 		 		 		 	CCde1%1%a a **,qc2	@ II>?	CAK
 IIAB	H$AK
 IIFG	=&AK II;<	H$AK IIFGC >* 		  	E3xLL		CD	E  		  		  		s`   1E, F F9 8G	 G ,E?>E?
F6 F11F69
GG	
GG
G&%G&c                    [         R                  R                  5        Vs/ s H  n[        U[        5      (       d  M  UPM     nnU HW  n[
        R                  US5        U[
        Ld  M$  U[        L a  SnOSnU R                  [        UR                  5      X15        MY      " S S[        5      n " S S[
        5      n " S S	U5      n [        4Ul
        U R                  S
5         [        4[        l
        U R                  S5         U[        4Ul
        U R                  S5        g s  snf ! [         a     NSf = f! [         a     NAf = f! [         a     g f = f)NrM   rp   ro   c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_builtin_bases.<locals>.Li  r   Nrp  r   rC   rA   r  r	    rr  rC   r  c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_builtin_bases.<locals>.Ci  r   Nrp  r   rC   rA   r   r	    rr  rC   r   c                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_builtin_bases.<locals>.Di  r   Nrp  r   rC   rA   rq  r	    rr  rC   rq  z/shouldn't turn list subclass into dict subclassz-shouldn't be able to assign to list.__bases__z#best_base calculation found wanting)builtinsrL   valuesrE  rJ   r  rd  ExceptionGrouprH   r  rM   r8   r   r   r   )r<   tpbuiltin_types	num_basesr  r   rq  s          rA   test_builtin_bases,ClassPropertiesAndMethods.test_builtin_bases  sF    '/&7&7&>&>&@ 2&@&r40 &@ 2B##B4' !I !I  R\\!2IB  	 		 		 		I'AK IIGH	G"WDN IIEF	=d)AK II;<O2,  		  		  		s@   D,D,D1 +E E 1
D>=D>
EE
EEc           	         U R                  [        5          " S S[        S 5      5      nS S S 5        U R                  [        5          " S S[        [        S 5      5      nS S S 5        U R                  [        5          " S S[        S 5      [        5      nS S S 5         " S S[        5      nU R                  [        5          " S SU[        S 5      5      nS S S 5        U R                  [        5          " S S[        S 5      U5      nS S S 5         " S	 S[        5      nU R                  [        5         [        S 5      4Ul        S S S 5        U R                  [        5         [        [        S 5      4Ul        S S S 5        U R                  [        5         [        S 5      [        4Ul        S S S 5        U R                  [        5         U[        S 5      4Ul        S S S 5        U R                  [        5         [        S 5      U4Ul        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN^= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
Nc                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Xi  r   Nrp  r   rC   rA   r+  r	    rM  rC   r+  c                       \ rS rSrSrg)r	  i   r   Nrp  r   rC   rA   r+  r	     rM  rC   c                       \ rS rSrSrg)r	  i  r   Nrp  r   rC   rA   r+  r	    rM  rC   c                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Oi  r   Nrp  r   rC   rA   rF  r	    rr  rC   rF  c                       \ rS rSrSrg)r	  i  r   Nrp  r   rC   rA   r+  r	    rM  rC   c                       \ rS rSrSrg)r	  i  r   Nrp  r   rC   rA   r+  r	    rM  rC   c                       \ rS rSrSrg)r	  i  r   Nrp  r   rC   rA   r+  r	    rr  rC   )rZ  r   rJ   r  rM   )r<   r+  rF  s      rA   test_unsubclassable_types3ClassPropertiesAndMethods.test_unsubclassable_types  s   y)DJ  * y)FDJ  * y)DJ  *	 	y)AtDz  * y)DJ  *	 	y)t*+AK *y) $t*,AK *y)t*f,AK *y)T$Z-AK *y)t*a-AK *)9 *) *) *)
 *) *) *)))))))))sw   HH/?II8I%:I7)J	JJ,J=
H,/
H>
I
I"%
I47
J	
J
J),
J:=
Kc                   ^
  " U
4S jS[         5      m
 " S S[         5      n " S S[        5      n " S S[        5      n " S	 S
U5      n " S SU5      n " S SUT
S9n " S SXAS9nUR                  nUR                  n	 U4Ul        U R	                  S5        g ! [
         a;    U R                  UR                  U5        U R                  UR                  U	5         g f = f)Nc                   2   >^  \ rS rSrUU 4S jrS rSrU =r$ )OClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOncei  c                 4   > SU l         [        TU ]  TXU5      $ r   )flagr  r   )r<   r?   rx  r
  WorkOncer9  s       rA   r   WClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOnce.__new__  s     	Xt4XtBOOrC   c                     U R                   S:  a  [        S5      eU =R                   S-  sl         [        R                  U 5      $ )Nr   bozoro   )r	  r  rJ   r  r   s    rA   r  SClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOnce.mro!  s3    99q=&v..IINI88D>)rC   )r	  )r   r   r   r   r   r  r   r  )r9  r	  s   @rA   r	  r	    s    P* *rC   r	  c                       \ rS rSrS rSrg)QClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkAlwaysi(  c                 ,    [         R                  U 5      $ r   )rJ   r  r   s    rA   r  UClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkAlways.mro)  s    
 xx~%rC   r   Nr  r   rC   rA   
WorkAlwaysr	  (  s    &rC   r	  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.Ci0  r   Nrp  r   rC   rA   r   r	  0  rr  rC   r   c                       \ rS rSrSrg)IClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.C2i3  r   Nrp  r   rC   rA   r"  r	  3  rr  rC   r"  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.Di6  r   Nrp  r   rC   rA   rq  r	  6  rr  rC   rq  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.Ei9  r   Nrp  r   rC   rA   r  r	  9  rr  rC   r  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.Fi<  r   Nrp  r   rC   rA   rQ  r	  <  rr  rC   rQ  re  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.Gi?  r   Nrp  r   rC   rA   r  r	  ?  rr  rC   r  zexception not propagated)rJ   r  r  rM   r   r  rH   )r<   r	  r   r"  rq  r  rQ  r  E_mro_beforeD_mro_beforer	  s             @rA   #test_mutable_bases_with_failing_mro=ClassPropertiesAndMethods.test_mutable_bases_with_failing_mro  s    		*t 		*	& 	&	 		 		 		 		X 		 	 yyyy	2%AK
 II01	  	6QYY5QYY5	6s   B AC"!C"c                      " S S[         5      n " S S[         5      n " S SX5      n " S SX5      n " S	 S
X45      n X!4Ul        U R                  S5        g ! [         a     g f = f)Nc                       \ rS rSrSrg)JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.AiS  r   Nrp  r   rC   rA   r  r	  S  rr  rC   r  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.BiV  r   Nrp  r   rC   rA   r  r	  V  rr  rC   r  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.CiY  r   Nrp  r   rC   rA   r   r	  Y  rr  rC   r   c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.Di\  r   Nrp  r   rC   rA   rq  r	  \  rr  rC   rq  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.Ei_  r   Nrp  r   rC   rA   r  r	  _  rr  rC   r  zdidn't catch MRO conflict)r  rM   r   r   )r<   r  r  r   rq  r  s         rA   %test_mutable_bases_catch_mro_conflict?ClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflictQ  so    	 		 		 		 		 		3&AK II12  		s   A 
A('A(c                      " S S[         5      nUR                  nSUl        U R                  UR                  UR                  4US45        SUl        U R                  UR                  UR                  4US45        g )Nc                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_mutable_names.<locals>.Cik  r   Nrp  r   rC   rA   r   r	  k  rr  rC   r   rq  zD.E)r  r   r   rH   )r<   r   r   s      rA   test_mutable_names,ClassPropertiesAndMethods.test_mutable_namesi  si    	 	 ll
!,,

3c3Z@
!,,

3c5\BrC   c                 f   ^  " U4S jS[         5      n " S S5      mU" S5      Tl        STl        g )Nc                   "   > \ rS rSrU 4S jrSrg)<ClassPropertiesAndMethods.test_evil_type_name.<locals>.Nastyi{  c                    > STl         g )Nr   )r   r   s    rA   r  DClassPropertiesAndMethods.test_evil_type_name.<locals>.Nasty.__del__|  s
    $
rC   r   NrK  r  s   rA   Nastyr	  {  s    % %rC   r	  c                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_evil_type_name.<locals>.Ci  r   Nrp  r   rC   rA   r   r	    rr  rC   r   r  normal)r  r   )r<   r	  r   s     @rA   test_evil_type_name-ClassPropertiesAndMethods.test_evil_type_namew  s-    	%C 	%	 	 5\

rC   c                     " S S[         5      nU R                  U" S5      S-  S5        U R                  SU" S5      -  S5         " S S[        5      nU R                  U" 5       S-  S5        U R                  SU" 5       -  S	5         " S
 SU5      nU R                  U" 5       U" 5       -  S5        U R                  U" 5       U" 5       -  S5         " S SU5      nU R                  UR                  UR                  5        U R                  U" 5       S-  S5        U R                  SU" 5       -  S	5        U R                  U" 5       U" 5       -  S5        U R                  U" 5       U" 5       -  S5        g )Nc                        \ rS rSrS rS rSrg);ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Bi  c                     g)NB.__floordiv__r   r   s     rA   __floordiv__HClassPropertiesAndMethods.test_subclass_right_op.<locals>.B.__floordiv__      'rC   c                     g)NB.__rfloordiv__r   r   s     rA   __rfloordiv__IClassPropertiesAndMethods.test_subclass_right_op.<locals>.B.__rfloordiv__      (rC   r   Nr   r   r   r   r	  r
  r   r   rC   rA   r  r	        ()rC   r  ro   r	  r
  c                        \ rS rSrS rS rSrg);ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Ci  c                     g)NC.__floordiv__r   r   s     rA   r	  HClassPropertiesAndMethods.test_subclass_right_op.<locals>.C.__floordiv__  r 
  rC   c                     g)NC.__rfloordiv__r   r   s     rA   r
  IClassPropertiesAndMethods.test_subclass_right_op.<locals>.C.__rfloordiv__  r
  rC   r   Nr
  r   rC   rA   r   r	
    r
  rC   r   r
  r
  c                        \ rS rSrS rS rSrg);ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Di  c                     g)ND.__floordiv__r   r   s     rA   r	  HClassPropertiesAndMethods.test_subclass_right_op.<locals>.D.__floordiv__  r 
  rC   c                     g)ND.__rfloordiv__r   r   s     rA   r
  IClassPropertiesAndMethods.test_subclass_right_op.<locals>.D.__rfloordiv__  r
  rC   r   Nr
  r   rC   rA   rq  r
    r
  rC   rq  r
  r
  c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Ei  r   Nrp  r   rC   rA   r  r
    rr  rC   r  )r/   rH   r  r
  )r<   r  r   rq  r  s        rA   test_subclass_right_op0ClassPropertiesAndMethods.test_subclass_right_op  sD   	) 	) 	1$45ad$56	) 	) 	#34ac#45	) 	) 	%56%67	 	 	!//:#34ac#45%56%56rC   z)testing an internal kind of method objectc                    / SQnS S S S.nU R                  [        R                  U5      U5        U R                  0 R                  U5      U5        [        R                  S   nU R                  UR	                  S [        5      " U5      U5        U R                  UR	                  0 5      " U5      U5         UR	                  S S 5        U R                  S5         UR	                  S5        U R                  S5         UR	                  S S5        U R                  S5         UR	                  S [        5        U R                  S5        g ! [         a     N|f = f! [         a     Nif = f! [         a     NUf = f! [         a     g f = f)Nrs   fromkeysz0shouldn't have allowed descr.__get__(None, None)r   z(shouldn't have allowed descr.__get__(42)z.shouldn't have allowed descr.__get__(None, 42)z/shouldn't have allowed descr.__get__(None, int))rH   r   r
  rL   r  r   r   r/   )r<   rU  rN   r  s       rA   test_meth_class_get-ClassPropertiesAndMethods.test_meth_class_get  sn    4D)s+S1S)3/ j) 	tT237=r*3/5	JMM$% IIHI	BMM" II@A	HMM$# IIFG	IMM$$ IIGH+  		  		  		  		sH   8E E ?E+ #E; 
EE
E('E(+
E87E8;
FFc                     " S S[         5      n " S S5      nU" 5       nU" U5      nU R                  X25        U R                  XB5         " S SU5      nU" 5       nU" U5      nU R                  X25        U R                  XB5         " S S[         5      nU" 5       nU" U5      nU R                  X25        U R                  XB5         " S SU5      nU" 5       nU" U5      nU R                  X25        U R                  XB5        g )	Nc                        \ rS rSrS rS rSrg)<ClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxyi  c                     Xl         g r   _Proxy__objr  s     rA   r6   EClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxy.__init__  r  rC   c                     UR                  S5      (       a  [        R                  X5      $ [        U R                  U5      $ N_Proxy__r  r  rd  rK   r%
  r  s     rA   rd  MClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxy.__getattribute__  3    ??:..!224>>"4::t44rC   r  Nr   r   r   r   r6   rd  r   r   rC   rA   r  r"
        !5rC   r  c                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.Ci  r   Nrp  r   rC   rA   r   r0
    rr  rC   r   c                       \ rS rSrSrg)8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.Di  r   Nrp  r   rC   rA   rq  r2
    rr  rC   rq  c                       \ rS rSrSrg)r0
  i  r   Nrp  r   rC   rA   r   r0
    rr  rC   c                       \ rS rSrSrg)r2
  i  r   Nrp  r   rC   rA   rq  r2
    rr  rC   )r  r(  )r<   r  r   rE   parq  s         rA   test_isinst_isclass-ClassPropertiesAndMethods.test_isinst_isclass  s    	5F 	5	 	C1Xa#b$	 	C1Xa#b$	 	C1Xa#b$	 	C1Xa#b$rC   c                    ^  " S S[         5      n " S S[         5      n " U4S jSU5      mT" 5       nU" U5      nU R                  TR                  S   " U5      S5        g )	Nc                        \ rS rSrS rS rSrg)9ClassPropertiesAndMethods.test_proxy_super.<locals>.Proxyi  c                     Xl         g r   r$
  r  s     rA   r6   BClassPropertiesAndMethods.test_proxy_super.<locals>.Proxy.__init__  r  rC   c                     UR                  S5      (       a  [        R                  X5      $ [        U R                  U5      $ r(
  r*
  r  s     rA   rd  JClassPropertiesAndMethods.test_proxy_super.<locals>.Proxy.__getattribute__  r,
  rC   r  Nr-
  r   rC   rA   r  r:
    r.
  rC   r  c                       \ rS rSrS rSrg)5ClassPropertiesAndMethods.test_proxy_super.<locals>.Bi  c                     g)NzB.fr   r   s    rA   rV  7ClassPropertiesAndMethods.test_proxy_super.<locals>.B.f  re	  rC   r   Nr  r   rC   rA   r  r@
    s    rC   r  c                   ,   >^  \ rS rSrUU 4S jrSrU =r$ )5ClassPropertiesAndMethods.test_proxy_super.<locals>.Ci  c                 &   > [         TU ]  5       S-   $ )Nz->C.f)r  rV  )r<   r   r9  s    rA   rV  7ClassPropertiesAndMethods.test_proxy_super.<locals>.C.f  s    Q')G33rC   r   )r   r   r   r   rV  r   r  )r9  r   s   @rA   r   rD
    s    4 4rC   r   rV  zB.f->C.f)r  rH   rL   )r<   r  r  r  rg  r   s        @rA   test_proxy_super*ClassPropertiesAndMethods.test_proxy_super  sV    	5F 	5	 		4 	4 c#JC+Z8rC   c                      [         R                  [        SS5        U R                  S5         [         R                  [        S5        U R                  S5        g ! [         a     N9f = f! [         a     g f = f)Nr   r   z"Carlo Verre __setattr__ succeeded!r  z"Carlo Verre __delattr__ succeeded!)r  ri  r  r   r   rm  r   s    rA   test_carloverre)ClassPropertiesAndMethods.test_carloverre"  ss    	<sE2. II:;	<sG, II:;  		  		s"   A A+ 
A('A(+
A87A8c                      " S S[         5      n " S S5      n " S SX!5      nU" S[        40 5      n SUl        g ! [         a    U R	                  S	5         g f = f)
Nc                       \ rS rSrS rSrg)HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.Ai2  c                 0    [         R                  XU5        g r   )rJ   ri  r   r%  r)  s      rA   ri  TClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.A.__setattr__3  s      51rC   r   Nr   r   r   r   ri  r   r   rC   rA   r  rN
  2  r>	  rC   r  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.Bi6  r   Nrp  r   rC   rA   r  rT
  6  rr  rC   r  c                       \ rS rSrSrg)HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.Ci9  r   Nrp  r   rC   rA   r   rV
  9  rr  rC   r   rq  Tz1setattr through direct base types should be legal)rJ   r  r  r   r   r<   r  r  r   r  s        rA   #test_carloverre_multi_inherit_valid=ClassPropertiesAndMethods.test_carloverre_multi_inherit_valid1  sa    	2 	2	 		 	 fY#	KCH 	KIIIJ	Ks   = AAc                      " S S[         5      n " S S5      n " S SX!5      nU" S[        40 5      n SUl        U R                  S	5        g ! [         a     g f = f)
Nc                       \ rS rSrS rSrg)JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.AiC  c                 0    [         R                  XU5        g r   )r  ri  rP
  s      rA   ri  VClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.A.__setattr__D  s    ""3U3rC   r   NrR
  r   rC   rA   r  r\
  C  s    4rC   r  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.BiG  r   Nrp  r   rC   rA   r  r`
  G  rr  rC   r  c                       \ rS rSrSrg)JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.CiJ  r   Nrp  r   rC   rA   r   rb
  J  rr  rC   r   rq  Tz6setattr through indirect base types should be rejected)rJ   r  r  r   r   rW
  s        rA   %test_carloverre_multi_inherit_invalid?ClassPropertiesAndMethods.test_carloverre_multi_inherit_invalidB  sf    	4 	4	 		 	 fY#	PCH IINO  		s   A 
AAc                 p   ^ SS K m " U4S jS5      n " S S[        5      nU" 5       nU" U5      Ul        Ag )Nr   c                   (   > \ rS rSrU 4S jrS rSrg)AClassPropertiesAndMethods.test_weakref_segfault.<locals>.ProvokeriZ  c                 4   > TR                   " U5      U l         g r   r2  )r<   	referrentr1  s     rA   r6   JClassPropertiesAndMethods.test_weakref_segfault.<locals>.Provoker.__init__[  s    ";;y1rC   c                 $    U R                  5       ng r   ri
  r  s     rA   r  IClassPropertiesAndMethods.test_weakref_segfault.<locals>.Provoker.__del__^  s    HHJrC   ri
  N)r   r   r   r   r6   r  r   )r1  s   rA   Provokerrg
  Z  s    2rC   rn
  c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_weakref_segfault.<locals>.Oopsia  r   Nrp  r   rC   rA   Oopsrp
  a  rr  rC   rq
  )r1  r  whatever)r<   rn
  rq
  rM  r1  s       @rA   test_weakref_segfault/ClassPropertiesAndMethods.test_weakref_segfaultU  s5     		 		6 	 Fa[
rC   cpuc                 J    S n[        S5       H  nUR                  nM     S ng )Nc                      g r   r   r   rC   rA   r  AClassPropertiesAndMethods.test_wrapper_segfault.<locals>.<lambda>k  s    4rC   i@B )r  r  )r<   rV  r   s      rA   test_wrapper_segfault/ClassPropertiesAndMethods.test_wrapper_segfaulth  s%     wA

A  rC   c                      " S S5      n[        U" 5       5         U R                  [        5         [        S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)>ClassPropertiesAndMethods.test_file_fault.<locals>.StdoutGuardir  c                 P    [         R                  [         l        [        SU 35      e)NzPremature access to sys.stdout.)r  
__stdout__stdoutr  rH  s     rA   r+  JClassPropertiesAndMethods.test_file_fault.<locals>.StdoutGuard.__getattr__s  s      ^^
"%DTF#KLLrC   r   NrJ  r   rC   rA   StdoutGuardr}
  r  s    MrC   r
  zOops!)r   rZ  r  print)r<   r
  s     rA   test_file_fault)ClassPropertiesAndMethods.test_file_faultp  sL    	M 	M
 []+""<0g 1 ,+00 ,+s!   AAA
A	A
A-c                 *  ^^  " U4S jS[         5      n " S S[         5      m " U4S jS[         5      mT" 5       nSUR                  U" 5       '   U R                  UR                  S5        [        R
                  " 5         U R                  US	5        g )
Nc                   (   > \ rS rSrS rU 4S jrSrg)HClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evili  c                     [        S5      $ )Nr  r   r   s    rA   r  QClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evil.__hash__  s    F|#rC   c                 ,   >  T? g! [         a     gf = fr   )r  r6  r  s     rA   r  OClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evil.__eq__  s)      & s    
r   Nr   r   r   r   r  r  r   r  s   rA   Evilr
    s    $ rC   r
  c                       \ rS rSrSS jrSrg)IClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Descri  Nc                     gr   r   )r<   obrJ   s      rA   r  QClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Descr.__get__  r	  rC   r   r   r  r   rC   rA   Descrr
    s    rC   r
  c                   &   > \ rS rSr Y " 5       rSrg)EClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Ci  r   N)r   r   r   r   r  r   r
  s   rA   r   r
    s
    7DrC   r   r   ro   r  )r  rL   rH   r  r   r  rX  )r<   r
  r]   r   r
  s      @@rA    test_vicious_descriptor_nonsense:ClassPropertiesAndMethods.test_vicious_descriptor_nonsense{  sp    		6 			F 		 	 C

46#a(rC   c                 t     " S S[         5      n U" 5         U R                  S5        g ! [         a     g f = f)Nc                       \ rS rSrS rSrg)0ClassPropertiesAndMethods.test_init.<locals>.Fooi  c                     g)Nr3  r   r   s    rA   r6   9ClassPropertiesAndMethods.test_init.<locals>.Foo.__init__  r  rC   r   Nr  r   rC   rA   Foor
    r  rC   r
  z'did not test __init__() for None return)r  r   r   )r<   r
  s     rA   	test_init#ClassPropertiesAndMethods.test_init  s<    	& 		AE II?@  		s   * 
77c                    U R                  [        5         X:    S S S 5        U R                  [        5         X:    S S S 5        U R                  [        5         X:*    S S S 5        U R                  [        5         X:    S S S 5        g ! , (       d  f       Nu= f! , (       d  f       Nd= f! , (       d  f       NS= f! , (       d  f       g = fr   rZ  r   r<   rE   rX   s      rA   assertNotOrderable,ClassPropertiesAndMethods.assertNotOrderable  s    y)E *y)E *y)F *y)F *) *)))))))s.   B
BB,<B=

B
B),
B:=
Cc                    / nU R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  / R                  :H  5        U R                  UR                  / R                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R	                  UR                  UR                  5        U R                  UR                  R                  S5        U R                  UR                  R                  U5        U R                  UR                  R                  [        5        U R                  UR                  R                  [        R                  R                  5        [        UR                  5        g )Nrr   )r6  rr   rW  r   r
  rH   r   r8  rZ  __objclass__r8   ru  r   r<   r   s     rA   test_method_wrapper-ClassPropertiesAndMethods.test_method_wrapper  s6    		QYY./aii/0bjj01		RZZ/0aii/0		QYY./		1995++Y7aii((!,aii,,d3**DLL,@,@AQYYrC   c                 r   / nU R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  / R                  :H  5        U R                  UR                  / R                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R	                  UR                  UR                  5        U R                  UR                  R                  S5        U R                  UR                  R                  U5        U R                  UR                  R                  [        R                  R                  5        [        UR                  5        g )Nr   )r6  r   rW  popr
  rH   r   r8  rZ  ru  r8   r   r
  s     rA   test_builtin_function_or_method9ClassPropertiesAndMethods.test_builtin_function_or_method  s    AHH,-QXX-.RYY./BII-.QUU*+AEE)*!((3**H5ahh''+))4;;+>+>?QXXrC   c                    U R                  [        R                  [        R                  :H  5        U R                  [        R                  [        R                  :g  5        U R                  [        R                  [        R                  :H  5        U R                  [        R                  [        R                  :g  5        U R                  [        R                  [        R                  5        U R                  [        R                  R                  S5        U R                  [        R                  R                  [        5        U R                  [        R                  [        R                  :H  5        U R                  [        R                  [        R                  :g  5        U R                  [        R                  [        R                  :H  5        U R                  [        R                  [        R                  :g  5        U R                  [        R                  [        R                  5        U R                  [        R                  R                  S5        U R                  [        R                  R                  [        5        g )Nrr   r   )r6  r8   rr   rW  r   r
  rH   r   r8  r
  r   r
  r   s    rA   !test_special_unbound_method_types;ClassPropertiesAndMethods.test_special_unbound_method_types  sh   45565645dll;..	:dll//6 	t{{233401txx/0T[[9--x8dkk..5rC   c                 F  ^  S nU 4S jn[         R                  S-   n[         R                  nS H  u  pVn[        SSXQ05      nU" 5       n	U" XiU	5        U" XiU5        U" XiU5        SUSS  -   n
[        S	SX05      nU" 5       nU" XlU5        U" XiU5        U" XlU	5        U" XlU5        U" XlU5        U" XcU5        U" XdU5        U(       d  M  U" XyU	5        U" XyU5        U" XyU5        S
USS  -   n[        SSX05      nU" 5       nU" XU	5        U" XU5        U" XU5        M     g )Nc                     [         $ r   r   r   s     rA   specialmethodEClassPropertiesAndMethods.test_not_implemented.<locals>.specialmethod  s    !!rC   c                    > TR                  XUS9   TR                  [        5         [        XUS.5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)r@   r  r  )r  r  )subTestrZ  r   rc   )r@   r  r  r<   s      rA   r  =ClassPropertiesAndMethods.test_not_implemented.<locals>.check  sK    $q1!!),T+, - 21,, 21s!   AAA
A	A
A'ro   ))rr   zx + yzx += y)__sub__zx - yzx -= y)r   zx * yzx *= y)
__matmul__zx @ yzx @= y)__truediv__zx / yzx /= y)r	  zx // yzx //= y)__mod__zx % yzx %= y)
__divmod__zdivmod(x, y)N)r  zx ** yzx **= y)
__lshift__zx << yzx <<= y)
__rshift__zx >> yzx >>= y)__and__zx & yzx &= y)__or__zx | yzx |= y)__xor__zx ^ yzx ^= yr  r   __rrp   r  __ir   )r  r  rJ   )r<   r
  r  N1N2r?   r@   iexprr  rE   rnamer  rX   inamer   r]   s   `               rA   test_not_implemented.ClassPropertiesAndMethods.test_not_implemented  sH   	"	- [[1_[["GD  S"t34AA$1$2$2DH$ES"u45AA$1$1$1$2$2$A$Aue"e#e#QR(b5"89Ce"e#e#S"GrC   c                 r     " S S[         5      nU" 5       nSUSS& U R                  UR                  S5        g )Nc                       \ rS rSrS rSrg)6ClassPropertiesAndMethods.test_assign_slice.<locals>.Ci,  c                     X l         g r   r  )r<   idxr)  s      rA   r   BClassPropertiesAndMethods.test_assign_slice.<locals>.C.__setitem__-  r/  rC   r  N)r   r   r   r   r   r   r   rC   rA   r   r
  ,  r  rC   r   rt   ro   rp   )r  rH   r)  )r<   r   r]   s      rA   test_assign_slice+ClassPropertiesAndMethods.test_assign_slice'  s6    
	# 	# C!A!$rC   c                 t  ^  " S S[         5      nU" S5      m " U4S jS[         5      nU" 5       nU R                  UR                  T5        SUl        U R                  UR                  S5         " S S[        5      n " S	 SUS
9nSUl        U" S5      Ul        U R                  UR                  S5        g )Nc                        \ rS rSrS rS rSrg)<ClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descri7  c                     Xl         g r   r?   r  s     rA   r6   EClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descr.__init__9  r  rC   c                 4    X!R                   U R                  '   g r   )rL   r?   r  s      rA   r  DClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descr.__set__<  s    */TYY'rC   r
  N)r   r   r   r   r6   r  r   r   rC   rA   r
  r
  7  s    !0rC   r
  rE   c                      > \ rS rSr Y rSrg)8ClassPropertiesAndMethods.test_set_and_no_get.<locals>.Xi@  r   Nr<  r  s   rA   r+  r
  @  s    ArC   r+  r   c                       \ rS rSrSrg);ClassPropertiesAndMethods.test_set_and_no_get.<locals>.MetaiI  r   Nrp  r   rC   rA   r  r
  I  rr  rC   r  c                       \ rS rSrSrg)r
  iK  r   Nrp  r   rC   rA   r+  r
  K  rr  rC   re  )r  r8  rE   rH   rJ   )r<   r
  r+  r  r  r  s        @rA   test_set_and_no_get-ClassPropertiesAndMethods.test_set_and_no_get4  s    	0F 	0 c
	 	 Cacc5!b!	4 		$ 	sb!rC   c                 t  ^^  " S S[         5      nU" 5       m " U4S jS[         5      n " U4S jS[         5      n " U4S jS[         5      nU R                  [        [        U" 5       S	5        U R	                  TR
                  S
5        U R                  [        [        U" 5       S	5        U R	                  TR
                  S5        U R                  [        [        U" 5       S	5        U R	                  TR
                  S5         " U4S jS[         5      mU R                  [        [        T" 5       S	5        g )Nc                   "    \ rS rSrSrSS jrSrg)@ClassPropertiesAndMethods.test_getattr_hooks.<locals>.DescriptoriT  r   Nc                    ^  U 4S jnU$ )Nc                 D   > T=R                   S-  sl         [        U 5      er   )r  r6  )r?   r<   s    rA   rX  XClassPropertiesAndMethods.test_getattr_hooks.<locals>.Descriptor.__get__.<locals>.getterW  s    LLA%L(..rC   r   )r<   r  objtyperX  s   `   rA   r  HClassPropertiesAndMethods.test_getattr_hooks.<locals>.Descriptor.__get__V  s    / rC   r   r   )r   r   r   r   r  r  r   r   rC   rA   
Descriptorr
  T  s    GrC   r
  c                      > \ rS rSr Y rSrg)7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.Ai]  r   N)r   r   r   r   rd  r   r
  s   rA   r  r
  ]  s	    $rC   r  c                      > \ rS rSr Y rSrg)7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.Bi_  r   NrJ  r
  s   rA   r  r
  _  s    KrC   r  c                   "   > \ rS rSr Y r Y rSrg)7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.Cia  r   N)r   r   r   r   rd  r+  r   r
  s   rA   r   r
  a  s    $KrC   r   r  ro   rp   rw   c                   (   > \ rS rSrS rU 4S jrSrg)FClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattributeil  c                     [        U5      er   r  r  s     rA   r+  RClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattribute.__getattr__n  s    $T**rC   c                 l   > T? [        S5       H  n[        R                  " 5         M     [	        U5      e)Nr   )r+  r  r  collectr6  )r<   r?   r   EvilGetattributes      rA   rd  WClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattribute.__getattribute__p  s+    $0qAJJL "$T**rC   r   Nr  )r
  s   rA   r
  r
  l  s    ++ +rC   r
  )r  rZ  r6  rK   rH   r  )r<   r
  r  r  r   r
  r  s        @@rA   test_getattr_hooks,ClassPropertiesAndMethods.test_getattr_hooksQ  s    	 	 	% 	%	  	 	  	  	.'13?*.'13?*.'13?*	+v 	+ 	.'3C3EvNrC   c                 `    U R                  [        [        R                  [        [        5        g r   )rZ  r   rJ   rd  r8   r   s    rA   test_type___getattribute__4ClassPropertiesAndMethods.test_type___getattribute__x  s    )T%:%:D$GrC   c                    U R                  [        [        [        S5         " S S[        5      nU R                  [        [        US5         " S S[        5      nU R                  [        5         U?S S S 5        g ! , (       d  f       g = f)N__abstractmethods__c                       \ rS rSrSrg)<ClassPropertiesAndMethods.test_abstractmethods.<locals>.metai~  r   Nrp  r   rC   rA   metar  ~  rr  rC   r  c                       \ rS rSrSrg)9ClassPropertiesAndMethods.test_abstractmethods.<locals>.Xi  r   Nrp  r   rC   rA   r+  r    rr  rC   r+  )rZ  r6  rK   rJ   r  r  )r<   r  r+  s      rA   test_abstractmethods.ClassPropertiesAndMethods.test_abstractmethods{  sd    .'49NO	4 	.'49NO	 	~.% /..s   0A<<
B
c                    U R                  [        S5         [        SSSS05      nS S S 5         " S S[        5      nU R                  [        S5         U" SS0 5      nS S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)NMyClassr   ro   rp   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )4ClassPropertiesAndMethods.test_gh55664.<locals>.metai  c                 .   > SUS'   [         TU ]  XX#5      $ )Nrp   ro   )r  r   r  s       rA   r   <ClassPropertiesAndMethods.test_gh55664.<locals>.meta.__new__  s    1wt5==rC   r   r  r  s   @rA   r  r    s    > >rC   r  )assertWarnsRegexRuntimeWarningrJ   )r<   r  r  s      rA   test_gh55664&ClassPropertiesAndMethods.test_gh55664  sq     "">9=9b1a&1G >	>4 	>
 "">9=9b"-G >= >= >=s   A(A9(
A69
Bc                 d    " S S5      nU" 5       nU R                  U[        5        U R                  [        5         [        R	                  U5        S S S 5        U R                  [        5         [        R                  US5        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nc                       \ rS rSr\rSrg):ClassPropertiesAndMethods.test_proxy_call.<locals>.FakeStri  r   N)r   r   r   r   r  r9  r   r   rC   rA   FakeStrr    r  rC   r  r  )r(  r  rZ  r   r  rr   )r<   r  fake_strs      rA   test_proxy_call)ClassPropertiesAndMethods.test_proxy_call  s~    	 	 9h, y)IIh * y)KK%( *)	 *) *)s   B0B!
B!
B/c                     " S S5      nU" 5       n[        S5       H6  nU R                  [        5         [        R	                  U5        S S S 5        M8     [        S5       H6  nU R                  [        5         [
        R                  U5        S S S 5        M8     [        S5       H6  nU R                  [        5         [
        R                  U5        S S S 5        M8     [        S5       H6  nU R                  [        5         [
        R                  U5        S S S 5        M8     SSK	J
n  [        S5       H2  nU R                  [        5         UR                  X"5        S S S 5        M4     g ! , (       d  f       GMa  = f! , (       d  f       GM/  = f! , (       d  f       M  = f! , (       d  f       M  = f! , (       d  f       M  = f)Nc                       \ rS rSrSrg)RClassPropertiesAndMethods.test_specialized_method_calls_check_types.<locals>.Thingi  r   Nrp  r   rC   rA   Thingr    rr  rC   r  r  r   )deque)r  rZ  r   r8   sortr  r  r  r  collectionsr   r   )r<   r  r  r   r   s        rA   )test_specialized_method_calls_check_typesCClassPropertiesAndMethods.test_specialized_method_calls_check_types  s;   	 	rA""9-		%  .-  rA""9-		%  .-  rA""9-		%  .-  rA""9-		%  .-  	&rA""9-U* .- ! .- .- .- .-
 .-s;   E.:F?FF&F8.
E>	
F	
F#	&
F5	8
G	c                      " S S5      nUR                   Ul        U" 5       nU R                  [        [        U5        U R                  [        [
        U5        g )Nc                       \ rS rSrSrg)7ClassPropertiesAndMethods.test_repr_as_str.<locals>.Fooi  r   Nrp  r   rC   rA   r
  r'    rr  rC   r
  )r   r   rZ  r  r  r   )r<   r
  r   s      rA   test_repr_as_str*ClassPropertiesAndMethods.test_repr_as_str  sB    	 	{{e.#s3.$4rC   c                      " S S[         5      nU" 5       nSUl        U R                  US   S5        U R                  X"* 5        g )Nc                   D    \ rS rSr\R
                  r\R                  rSr	g)>ClassPropertiesAndMethods.test_mixing_slot_wrappers.<locals>.Xi  r   N)
r   r   r   r   r   r   ri  r   __neg__r   r   rC   rA   r+  r,    s    **KiiGrC   r+  r   r  )r   r  rH   )r<   r+  r  s      rA   test_mixing_slot_wrappers3ClassPropertiesAndMethods.test_mixing_slot_wrappers  sB    	  	  C3$BrC   c                      " S S[         5      nU" 5       nU R                  [        5         X":H    S S S 5        U R                  [        5         X"-     S S S 5        g ! , (       d  f       N1= f! , (       d  f       g = f)Nc                   D    \ rS rSr\R
                  r\R                  rSrg)BClassPropertiesAndMethods.test_wrong_class_slot_wrapper.<locals>.Ai  r   N)r   r   r   r   r  r  rr   r   r   rC   rA   r  r2    s    ZZFkkGrC   r  )r/   rZ  r   )r<   r  rE   s      rA   test_wrong_class_slot_wrapper7ClassPropertiesAndMethods.test_wrong_class_slot_wrapper  sZ    	" 	" Cy)F *y)E *) *)))s   AA-
A*-
A;c                     U R                  [        5       n " S S5      nS S S 5        [        WR                  5      nU R	                  SU5        g ! , (       d  f       N6= f)Nc                       \ rS rSrS/rSrSrg)EClassPropertiesAndMethods.test_slot_shadows_class_variable.<locals>.Xi  r   Nr   )r   r   r   r   r   r   r   r   rC   rA   r+  r7    s    "G	rC   r+  z0'foo' in __slots__ conflicts with class variable)rZ  r  r  rp  rH   )r<   r]  r+  rR   s       rA    test_slot_shadows_class_variable:ClassPropertiesAndMethods.test_slot_shadows_class_variable  sK    z*b  + KQO +*s   A
Ac                     " S S5      nSUl         U R                  UR                   S5        U R                  [        5       n[	        [
        5      R                  S   R                  [
        S5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       n[	        U5      R                  S   R                  U5        S S S 5        U R                  S[        UR                  5      5        U R                  UR                   S5        g ! , (       d  f       N= f! , (       d  f       Na= f)Nc                       \ rS rSrSrSrg)1ClassPropertiesAndMethods.test_set_doc.<locals>.Xi  elephantr   Nr+  r   rC   rA   r+  r<    s    rC   r+  bananaru  blahz7cannot set '__doc__' attribute of immutable type 'list'z7cannot delete '__doc__' attribute of immutable type 'X')ru  rH   rZ  r   rJ   r8   rL   r  rW  r  rp  r  )r<   r+  r]  s      rA   test_set_doc&ClassPropertiesAndMethods.test_set_doc  s    	 		H-y)RJ	*224@ *OQTUWUaUaQbcy)RGY'2215 *OQTUWUaUaQbcH- *) *)s   1D(6(D9(
D69
Ec                 r   [         R                  [        R                  [        R                  [
        R                  /n/ SQn[        X5       H-  u  p4U R                  [        U5      R                  US-   5        M/     U HE  nUR                  R                  S-   UR                  -   nU R                  UR                  U5        MG     U R                  [         R                  R                  S5        U R                  [        R                  R                  S5        U R                  [        R                  R                  S5        U R                  [
        R                  R                  S5         " S S	5      nU R                  [        5         U?S S S 5        U R                  [        [        R                  S
   R                   [         S5         " S S5      qU R                  ["        R                  S5        U R                  ["        R$                  R                  S5        g ! , (       d  f       N= f)N)r*  membergetsetwrapper_descriptor.z	str.lowerzcomplex.realz
float.realzint.__add__c                       \ rS rSrSrg)2ClassPropertiesAndMethods.test_qualname.<locals>.Xi  r   Nrp  r   rC   rA   r+  rI    rr  rC   r+  r   Oinkc                   (    \ rS rSr " S S5      rSrg)r.  i  c                       \ rS rSrSrg)Y.Insidei  r   Nrp  r   rC   rA   InsiderM    rM  rC   rN  r   N)r   r   r   r   rN  r   r   rC   rA   r.  r.    s     rC   r.  rM  )r  r  r   r   r0   r/   rr   r  rH   rJ   r   r
  r   rZ  r   rL   r  r.  rN  )r<   descriptorsr~  rP   rP  qualnamer+  s          rA   test_qualname'ClassPropertiesAndMethods.test_qualname  s   yy',,

CKKH9 +DAT!W--q=/@A , A~~22S81::EHQ^^X6  	//=22NC00,?11=A	 	y) * 	)T]]>%B%J%Jv	'	 	 	-..
; *)s   H((
H6c                     SS0n[        SSU5      nU R                  UR                  S5        U R                  SUR                  5        U R                  USS05        SS0nU R                  [        [         SSU5        g )Nr   z	some.namer
  r   ro   )rJ   rH   r   r   rL   rZ  r   )r<   r
  r	  s      rA   test_qualname_dict,ClassPropertiesAndMethods.test_qualname_dict  sw    k*%R +65nk:;a )T5"b9rC   c                 0    " S S[         5      nU" 5       nSUl        [        R                  " U5      nA[        R
                  " 5         U R                  U" 5       5        [        R                  " 5        H  nU R                  [        U5      U5        M      g )Nc                       \ rS rSrS rSrg)<ClassPropertiesAndMethods.test_cycle_through_dict.<locals>.Xi!  c                 :    [         R                  U 5        X l        g r   )r   r6   rL   r   s    rA   r6   EClassPropertiesAndMethods.test_cycle_through_dict.<locals>.X.__init__"  s    d# $rC   )rL   Nr  r   rC   rA   r+  rX  !  s    %rC   r+  r   )r   r  r1  r2  r   r  assertIsNoner  r  assertIsNotrJ   )r<   r+  r  wrrM  s        rA   test_cycle_through_dict1ClassPropertiesAndMethods.test_cycle_through_dict  so    	% 	% C[[^"$!AT!Wa( "rC   c           	      B    " S S5      nU R                  [        US5        U R                  [        USS9   " S S5      n " S S5      n " S	 S
X#5      nX#U4 HB  nU" S5        U" SSS9  U R                  [        USSS5        U R                  [        USSSS9  MD     g )Nc                       \ rS rSrSrg)[ClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNeitheri0  r   Nrp  r   rC   rA   OverrideNeitherrb  0  rr  rC   rc  ro   rX  c                       \ rS rSrSS jrSrg)WClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNewi4  c                 6    [         R                  " U /UQ70 UD6$ r   r  )r   r   r!  r=   r   s        rA   r   _ClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNew.__new__5  s    ~~c9D9D99rC   r   Nr  rz  r   rC   rA   OverrideNewre  4  s    :rC   rh  c                       \ rS rSrSS jrSrg)XClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideIniti7  c                 6    [         R                  " U /UQ70 UD6$ r   )r  r6   )r<   r   r!  r=   r>   s        rA   r6   aClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideInit.__init__8  s    t=d=f==rC   r   Nr  r  r   rC   rA   OverrideInitrj  7  s    >rC   rm  c                       \ rS rSrSrg)XClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideBothi:  r   Nrp  r   rC   rA   OverrideBothro  :  rr  rC   rp  rp   rt   r  r
  )r<   rc  rh  rm  rp  cases         rA   (test_object_new_and_init_with_parametersBClassPropertiesAndMethods.test_object_new_and_init_with_parameters.  s    	 	)_a8)_;	: 	:	> 	>	; 	|;DGqMiq!Q7iq!;	 <rC   c                      " S S5      n " S SU5      nU R                  SUR                  5        U R                  SUR                  5        g )Nc                       \ rS rSrSrg)\ClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptors.<locals>.BaseiC  r   Nrp  r   rC   rA   r3  rv  C  rr  rC   r3  c                       \ rS rSrSrg)[ClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptors.<locals>.SubiE  r   Nrp  r   rC   rA   r8  rx  E  rr  rC   r8  rL   )rW  rL   r   )r<   r3  r8  s      rA   4test_subclassing_does_not_duplicate_dict_descriptorsNClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptorsB  s>    	 		$ 	j$--0S\\2rC   c                   >  " S S5      nU R                  [        U" 5       R                  5      S5         " S S5      n " S SU5      n " S S	U5      nU" 5       nU" 5       nU" 5       n[        XG5      nU R                  [        UR                  5      S
5        U R                  [        UR                  5      S5        U R                  [        UR                  5      S5        U R                  [        UR                  5      S5         " S S5      nU" 5       n	U R                  [        U	R                  5      S5        U R                  [        UR                  5      S5         " S S5      n
U
" 5       n[	        5       n[
        R                  " X5      nU R                  [        U5      S5        SUl        U R                  [        U5      S5        SUl        U R                  [        U5      S5        g )Nc                       \ rS rSrS rSrg)=ClassPropertiesAndMethods.test_bound_method_repr.<locals>.FooiK  c                     g r   r   r   s    rA   r*  DClassPropertiesAndMethods.test_bound_method_repr.<locals>.Foo.methodL  rq	  rC   r   Nr   r   r   r   r*  r   r   rC   rA   r
  r}  K  rs	  rC   r
  z4<bound method .*Foo\.method of <.*Foo object at .*>>c                       \ rS rSrS rSrg)>ClassPropertiesAndMethods.test_bound_method_repr.<locals>.BaseiR  c                     g r   r   r   s    rA   r*  EClassPropertiesAndMethods.test_bound_method_repr.<locals>.Base.methodS  rq	  rC   r   Nr  r   rC   rA   r3  r  R  rs	  rC   r3  c                       \ rS rSrSrg)BClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived1iU  r   Nrp  r   rC   rA   Derived1r  U  rr  rC   r  c                       \ rS rSrS rSrg)BClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived2iW  c                     g r   r   r   s    rA   r*  IClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived2.methodX  rq	  rC   r   Nr  r   rC   rA   Derived2r  W  rs	  rC   r  z6<bound method .*Base\.method of <.*Base object at .*>>z:<bound method .*Base\.method of <.*Derived1 object at .*>>z><bound method .*Derived2\.method of <.*Derived2 object at .*>>z:<bound method .*Base\.method of <.*Derived2 object at .*>>c                   $    \ rS rSr\S 5       rSrg)r}  ig  c                     g r   r   rj  s    rA   r*  r  h  r]  rC   r   N)r   r   r   r   r  r*  r   r   rC   rA   r
  r}  g  s     rC   z/<bound method .*Foo\.method of <class '.*Foo'>>c                       \ rS rSrS rSrg)DClassPropertiesAndMethods.test_bound_method_repr.<locals>.MyCallableir  c                     g r   r   r	  s     rA   r  MClassPropertiesAndMethods.test_bound_method_repr.<locals>.MyCallable.__call__s  rq	  rC   r   N)r   r   r   r   r  r   r   rC   rA   
MyCallabler  r  rs	  rC   r  z*<bound method \? of <object object at .*>>r?   z,<bound method name of <object object at .*>>rP  z0<bound method qualname of <object object at .*>>)	assertRegexr   r*  r  r  r~  
MethodTyper   r   )r<   r
  r3  r  r  r  derived1derived2super_d2r   r  r'  instancer*  r9  s                 rA   test_bound_method_repr0ClassPropertiesAndMethods.test_bound_method_reprJ  s   	 	 	cell+C	E	 		t 		t 	 v::,dkk*E	Ghoo.I	Khoo.M	Ohoo.I	K	 	 ecjj)>	@cjj)>	@	 	 |8!!$1f9	;f;	=&f?	ArC   zneed the _testcapi modulec                 L   ^  " S S5      m " U4S jS5      nUR                     g )Nc                   ,    \ rS rSr\R
                  rSrg)6ClassPropertiesAndMethods.test_bpo25750.<locals>.Descri  r   N)r   r   r   r   rh  bad_getr  r   r   rC   rA   r
  r    s    ''GrC   r
  c                   ,   > \ rS rSr Y " 5       rS rSrg)2ClassPropertiesAndMethods.test_bpo25750.<locals>.Xi  c                 d    S U l         [        S5       Vs/ s H  nSU-  PM
     snU l        g s  snf )Ni'  rp   )r  r  r.	  )r   r   s     rA   r   :ClassPropertiesAndMethods.test_bpo25750.<locals>.X.__new__  s*     	).u6A1a466s   -r   N)r   r   r   r   r  r   r   r
  s   rA   r+  r    s    GE7rC   r+  r
  )r<   r+  r
  s     @rA   test_bpo25750'ClassPropertiesAndMethods.test_bpo25750  s     
	( 	(	7 	7 	
rC   c                     " S S5      nU R                  UR                  5       / 5         " S SU5      nU R                  UR                  5       U/5        A[        R                  " 5         U R                  UR                  5       / 5        g )Nc                       \ rS rSrSrg)>ClassPropertiesAndMethods.test_remove_subclass.<locals>.Parenti  r   Nrp  r   rC   rA   Parentr    rr  rC   r  c                       \ rS rSrSrg)=ClassPropertiesAndMethods.test_remove_subclass.<locals>.Childi  r   Nrp  r   rC   rA   Childr    rr  rC   r  )rH   r  r  r
  )r<   r  r  s      rA   test_remove_subclass.ClassPropertiesAndMethods.test_remove_subclass  sq    	 	..0"5	F 	..05':


..0"5rC   c                      " S S5      n " S S5      nU" 5       nU" 5       nUR                   R                  XB5      Ul         U R                  UR                  5       U5        g )Nc                       \ rS rSrS rSrg)FClassPropertiesAndMethods.test_instance_method_get_behavior.<locals>.Ai  c                     U $ r   r   r   s    rA   rO   KClassPropertiesAndMethods.test_instance_method_get_behavior.<locals>.A.meth  s    rC   r   Nr  r   rC   rA   r  r    r  rC   r  c                       \ rS rSrSrg)FClassPropertiesAndMethods.test_instance_method_get_behavior.<locals>.Bi  r   Nrp  r   rC   rA   r  r    rr  rC   r  )rO   r  rH   )r<   r  r  rE   rX   s        rA   !test_instance_method_get_behavior;ClassPropertiesAndMethods.test_instance_method_get_behavior  sP    	 		 	 CC%1%rC   c                 0    " S S5      nU R                  [        S5         U" 5       R                    S S S 5         " S S5      nU R                  [        S5         U" 5       R                    S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nc                   *    \ rS rSrS r\S 5       rSrg)EClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.Ai  c                     [        S5      eNFOOr  r  s     rA   r+  QClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.A.__getattr__  s     ''rC   c                 $    U R                  S5      $ )Nasdf)r+  r   s    rA   r   IClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.A.foo  s    ''//rC   r   N)r   r   r   r   r+  r  r   r   r   rC   rA   r  r    s    ( 0 0rC   r  r  c                   4    \ rS rSr\S 5       r\S 5       rSrg)EClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.Bi  c                     [        S5      er  r  r  s     rA   r+  QClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.B.__getattr__  s     ''rC   c                     [        S5      e)NBAR)NotImplementedErrorr   s    rA   r   IClassPropertiesAndMethods.test_attr_raise_through_property.<locals>.B.foo  s    )%00rC   r   N)r   r   r   r   r  r+  r   r   r   rC   rA   r  r    s(    ( ( 1 1rC   r  r  )r  r  r   r  )r<   r  r  s      rA    test_attr_raise_through_property:ClassPropertiesAndMethods.test_attr_raise_through_property  sn    	0 	0 ##J6CGG 7	1 	1 ##$7?CGG @? 76 @?s   A6B6
B
Br   )r   r   r   r   r>  rQ  r[  r  r  r  r  r  r  r/  r7  r[  r  r  r  r  r-  rE  r_  r   refcount_testrh  r  r4   r  r   rv  r  r  r  r  r  r  expectedFailurer  r  r  r&  r@  rW  rg  rk  r  r&  r6  rQ  r  flagsoptimizera  cpython_onlyrj  r  r  r  r;  r  r  r  r  r   r  r  rN  rw  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r2	  rC	  rK	  rS	  r^	  ri	  rt	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r6
  rG
  rJ
  rX
  rc
  rs
  requires_resourcery
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   r	  r  r  r#  r(  r.  r3  r8  r@  rQ  rT  r^  rr  ry  r  rh  r  suppress_immortalizationr  r  r  r   r  r  s   @rA   r  r    sa   2/h0Tl
(9T'*R"=J@B*7#;J10;0zVp$2L&-P<"A/F:Ox<'| N N =>__Y$&(CD/= E ?/=b'0 N N =>__Y$&(CD  E ? O* &D)$ 
( 
( ?D ) ).E>N/4bHP* DE@ F@,f8P`"D>=F~ __SYY''1,@B2B2 < <AFM?^Zxn`_0X
+63@><@M@^AXWrWPr5<K(Z.1(1*@$=.,*\
1%0N(4)6*%X2
(,O?HB*=X(@42l30C17f DE)I F)IV%%N9.<K"P&& u% &	)B
A$&6&;$z%":%ONH	&.) +65 
P.<@:)<(35An __Y$&(CD E %%'6 (6"& rC   r  c                   v   \ rS rSrS r\R                  " \" \S5      =(       a    \R                  " 5       S5      S 5       r
\R                  " \" \S5      =(       a    \R                  " 5       S5      S 5       r\R                  " \" \S5      =(       a    \R                  " 5       S5      S 5       rS rS	 rS
rg)DictProxyTestsi  c                 .     " S S[         5      nXl        g )Nc                       \ rS rSrS rSrg)DictProxyTests.setUp.<locals>.Ci  c                     g r   r   r   s    rA   rO   $DictProxyTests.setUp.<locals>.C.meth  rq	  rC   r   Nr  r   rC   rA   r   r    rs	  rC   r   )r  r   r   s     rA   setUpDictProxyTests.setUp  s    	 	 rC   gettracez#trace function introduces __local__c                     U R                   R                  R                  5       nU R                  U[        5        [	        U5      nUR                  5         U R                  U/ SQ5        g )NrL   ru  r   r   r   r  rO   )r   rL   r   assertNotIsInstancer8   r!  rH   )r<   r  r   s      rA   test_iter_keysDictProxyTests.test_iter_keys  sQ     VV__!!#  T*Bx		  ( 	)rC   c                     U R                   R                  R                  5       nU R                  U[        5        [	        U5      nU R                  [        U5      S5        g )NrG  )r   rL   r	  r  r8   rH   r  )r<   r  r	  s      rA   test_iter_valuesDictProxyTests.test_iter_values  sG     VV__##%  T*bVa(rC   c                     U R                   R                  R                  5       nU R                  U[        5        U Vs/ s H  o"S   PM	     nnUR                  5         U R                  U/ SQ5        g s  snf )Nr   r  )r   rL   r9   r  r8   r!  rH   )r<   r  itemr   s       rA   test_iter_itemsDictProxyTests.test_iter_items  sc     VV__""$  T*$&'BDQB'		  ( 	) (s   A4c                      " S S[         5      n " S S[        5      n " S SUS9nU R                  [        UR                  5      [        UR                  5      5        g )Nc                       \ rS rSrSrg)7DictProxyTests.test_dict_type_with_metaclass.<locals>.Bi  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                       \ rS rSrSrg)7DictProxyTests.test_dict_type_with_metaclass.<locals>.Mi  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                       \ rS rSrSrg)7DictProxyTests.test_dict_type_with_metaclass.<locals>.Ci  r   Nrp  r   rC   rA   r   r    r  rC   r   re  )r  rJ   rH   rL   )r<   r  r  r   s       rA   test_dict_type_with_metaclass,DictProxyTests.test_dict_type_with_metaclass  sJ    	 		 		! 	 	ajj)4

+;<rC   c                 b   [        U R                  R                  5      nU R                  UR	                  S5      U5        U R                  UR                  S5      U5        U R                  R                  R                  5        H&  u  p#U R                  SR                  X#5      U5        M(     g )Nzmappingproxy()z
{!r}: {!r})	r   r   rL   r6  r  endswithr9   rW  r  )r<   r3  r  r  s       rA   	test_reprDictProxyTests.test_repr  sy     !_5q9

3+FFOO))+DAMM,--a3Q7 ,rC   r  N)r   r   r   r   r  r4   r  r   r  r  r  r  r  r  r  r   r   rC   rA   r  r    s     __WS*-@#,,.=?	)?	) __WS*-@#,,.=?)?) __WS*-@#,,.=?	)?	)	=8rC   r  c                       \ rS rSrS rSrg)AAAPTypesLongInitTesti  c                      " S S[         5      n [        SU" 5       S5        [        R                  [        5        g !    N= f)Nc                       \ rS rSrS rSrg)>AAAPTypesLongInitTest.test_pytype_long_ready.<locals>.UserLongi  c                     g r   r   r<   r=   s     rA   r  FAAAPTypesLongInitTest.test_pytype_long_ready.<locals>.UserLong.__pow__  rq	  rC   r   Nr	  r   rC   rA   UserLongr    rs	  rC   r   r   )r  r   rJ   r  rY  )r<   r   s     rA   test_pytype_long_ready,AAAPTypesLongInitTest.test_pytype_long_ready  s8    	v 		8:q! 		s	   = Ar   N)r   r   r   r   r  r   r   rC   rA   r  r    s    
rC   r  c                       \ rS rSrS rSrg)	MiscTestsi&  c                 d  ^^  " UU4S jS[         5      n " S S[         5      n " S S[         5      mU R                  [        S5         [        SU4U" 5       S05      mS S S 5        U R	                  [        TS	5      S
5        U R	                  [        TS5      S5        g ! , (       d  f       NG= f)Nc                   *   > \ rS rSrS rU U4S jrSrg)7MiscTests.test_type_lookup_mro_reference.<locals>.MyKeyi+  c                     [        S5      $ )Nmykeyr
  r   s    rA   r  @MiscTests.test_type_lookup_mro_reference.<locals>.MyKey.__hash__,  s    G}$rC   c                    > T4Tl         g r   r  )r<   r   Base2r+  s     rA   r  >MiscTests.test_type_lookup_mro_reference.<locals>.MyKey.__eq__/  s    $hrC   r   Nr
  )r  r+  s   rA   MyKeyr  +  s    %' 'rC   r  c                       \ rS rSrSrSrSrg)6MiscTests.test_type_lookup_mro_reference.<locals>.Basei2  	from Baser   Nr   r   r   r   r	  mykey2r   r   rC   rA   r3  r  2  s    E FrC   r3  c                       \ rS rSrSrSrSrg)7MiscTests.test_type_lookup_mro_reference.<locals>.Base2i6  
from Base2r   Nr  r   rC   rA   r  r  6  s     E!FrC   r  r+  r   r	  r  r  r  )r  r  r  rJ   rH   rK   )r<   r  r3  r  r+  s      @@rA   test_type_lookup_mro_reference(MiscTests.test_type_lookup_mro_reference'  s    	' 	'F 	'	!6 	!	"F 	" "">37S4'EGQ<0A 8 	G,k:H-|< 87s   
B!!
B/r   N)r   r   r   r   r  r   r   rC   rA   r  r  &  s    =rC   r  c                   f    \ rS rSrS0 SSS4S jrS rS rSS jr\S 5       r	S	 r
S
 rS rS rSrg)PicklingTestsiG  r   Nc                 r   US:  Ga#  UR                  U5      nU(       aD  U R                  US   [        R                  5        U R                  US   [	        U5      X445        OEU R                  US   [        R
                  5        U R                  US   [	        U5      4U-   5        U R                  US   U5        Ub  U R                  [        US   5      U5        OU R                  US   5        Ub  U R                  [        US   5      U5        g U R                  US   5        g [	        U5      R                  n	[        R                  [	        U5      U	U	[        L a  S OU	" U5      44nUb  X4-  nU R                  UR                  U5      U5        U R                  UR                  5       U5        g )Nrp   r   ro   rt   rw   )__reduce_ex__rH   copyreg__newobj_ex__rJ   
__newobj__assertListEqualr8   r[  assertDictEqualr   __base___reconstructorr  
__reduce__)
r<   protor  r=   r>   r  	listitems	dictitemsreduce_value	base_types
             rA   _check_reducePicklingTests._check_reduceI  s   A:,,U3L  a'2G2GH  a49d2KL  a'2D2DE  a49,2EF\!_e4$$$T,q/%:IF!!,q/2$$$T,q/%:IF!!,q/2S	**I#22!#Y&%.&%8TinNOL  (S..u5|DS^^-|<rC   c                 	  ^^^ [        [        R                  S-   5      nSmSSS.mSS0m " U4S jS	5      nU" 5       nU H  nU R                  XCT5        M     TR	                  5        H  u  pV[        X5U5        M     U H  nU R                  XCTTS
9  M      " S S5      nU" 5       nU H:  nUS:  d  M  U R                  [        5         UR                  U5        S S S 5        M<      " UU4S jS5      nU" 5       nU H  nUS:  d  M  U R                  XCTT5        M       " U4S jS5      n	 " U4S jS5      n
 " S S5      n " S S5      nU HR  nXX4 HG  nU" 5       nUS:  d  M  U R                  [        [        45         UR                  U5        S S S 5        MI     MT      " U4S jS5      nU" 5       nU H  nU R                  XCT5        M      " S S5      nU" 5       nU H:  nUS:  d  M  U R                  [        5         UR                  U5        S S S 5        M<      " U4S jS5      nU" 5       nU H  nU R                  XCTS
9  M      " S S5      nU" 5       nU H  nU R                  XCS S
9  M      " S! S"5      nU" 5       nU Hh  nU R                  [        5         UR                  U5        S S S 5        US:  d  M:  U R                  [        5         UR                  5         S S S 5        Mj      " U4S# jS$5      nU" 5       nU Hz  nUS:  a  U R                  XCS T4S
9  M  U R                  [        5         UR                  U5        S S S 5        U R                  [        5         UR                  5         S S S 5        M|      " S% S&[        5      nU" S'S(05      nU H  nU R                  XC[        U5      S)9  M      " S* S+[        5      nU" S,/5      nU H  nU R                  XC[        U5      S-9  M     g ! , (       d  f       GMm  = f! , (       d  f       GM  = f! , (       d  f       GMT  = f! , (       d  f       GN= f! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GMt  = f).Nro   )ir   i7i)baconfishcheeseioc                   "   > \ rS rSrU 4S jrSrg)%PicklingTests.test_reduce.<locals>.C1im  c                    > T$ r   r   r  s    rA   __getnewargs__4PicklingTests.test_reduce.<locals>.C1.__getnewargs__n  s    rC   r   Nr   r   r   r   r3  r   r  s   rA   rc  r1  m  s     rC   rc  r,  c                       \ rS rSrS rSrg)%PicklingTests.test_reduce.<locals>.C2iy  c                     gNzbad argsr   r   s    rA   r3  4PicklingTests.test_reduce.<locals>.C2.__getnewargs__z      !rC   r   Nr5  r   rC   rA   r"  r7  y      "rC   r"  rp   c                   $   > \ rS rSrU U4S jrSrg)%PicklingTests.test_reduce.<locals>.C3i  c                    > TT4$ r   r   )r<   r=   r>   s    rA   __getnewargs_ex__7PicklingTests.test_reduce.<locals>.C3.__getnewargs_ex__  s    f~%rC   r   Nr   r   r   r   r@  r   r  s   rA   rg  r>    s    & &rC   rg  c                   "   > \ rS rSrU 4S jrSrg)%PicklingTests.test_reduce.<locals>.C4i  c                    > TS4$ )Nzbad dictr   r  s    rA   r@  7PicklingTests.test_reduce.<locals>.C4.__getnewargs_ex__  s    j))rC   r   NrB  r  s   rA   rv  rD    s    * *rC   rv  c                   "   > \ rS rSrU 4S jrSrg)%PicklingTests.test_reduce.<locals>.C5i  c                    > ST4$ )Nz	bad tupler   )r<   r>   s    rA   r@  7PicklingTests.test_reduce.<locals>.C5.__getnewargs_ex__  s    #V,,rC   r   NrB  )r>   s   rA   C5rH    s    - -rC   rK  c                       \ rS rSrS rSrg)%PicklingTests.test_reduce.<locals>.C6i  c                     g)Nr   r   r   s    rA   r@  7PicklingTests.test_reduce.<locals>.C6.__getnewargs_ex__  r  rC   r   NrB  r   rC   rA   C6rM    r  rC   rP  c                       \ rS rSrS rSrg)%PicklingTests.test_reduce.<locals>.C7i  c                     gr9  r   r   s    rA   r@  7PicklingTests.test_reduce.<locals>.C7.__getnewargs_ex__  r;  rC   r   NrB  r   rC   rA   C7rR    r<  rC   rU  c                   "   > \ rS rSrU 4S jrSrg)%PicklingTests.test_reduce.<locals>.C9i  c                    > T0 4$ r   r   r  s    rA   r@  7PicklingTests.test_reduce.<locals>.C9.__getnewargs_ex__  s    bz!rC   r   NrB  r  s   rA   C9rW    r  rC   rZ  c                       \ rS rSrS rSrg)&PicklingTests.test_reduce.<locals>.C10i  c                     [         er   r  r   s    rA   r@  8PicklingTests.test_reduce.<locals>.C10.__getnewargs_ex__        rC   r   NrB  r   rC   rA   C10r\        !rC   r`  c                   "   > \ rS rSrU 4S jrSrg)&PicklingTests.test_reduce.<locals>.C11i  c                    > T$ r   r   r-  s    rA   r+	  3PicklingTests.test_reduce.<locals>.C11.__getstate__  s    rC   r   Nr   r   r   r   r+	  r   r,  s   rA   C11rc    s     rC   rg  c                       \ rS rSrS rSrg)&PicklingTests.test_reduce.<locals>.C12i  c                     g)Nnot dictr   r   s    rA   r+	  3PicklingTests.test_reduce.<locals>.C12.__getstate__  r;  rC   r   Nrf  r   rC   rA   C12ri    r<  rC   rm  rk  c                       \ rS rSrS rSrg)&PicklingTests.test_reduce.<locals>.C13i  c                     [         er   r  r   s    rA   r+	  3PicklingTests.test_reduce.<locals>.C13.__getstate__  r_  rC   r   Nrf  r   rC   rA   C13ro    ra  rC   rr  c                   4   > \ rS rSr\"  Y 5      rU 4S jrSrg)&PicklingTests.test_reduce.<locals>.C14i  c                 P   > TR                  5        H  u  p[        XU5        M     g r   r9   r  )r<   r?   r)  r  s      rA   r6   /PicklingTests.test_reduce.<locals>.C14.__init__  s    #(;;=KDD. $1rC   r   N)r   r   r   r   rY  r   r6   r   r,  s   rA   C14rt    s    eI/ /rC   rx  c                       \ rS rSrSrg)&PicklingTests.test_reduce.<locals>.C15i  r   Nrp  r   rC   rA   C15rz    rr  rC   r{  quebeci)r'  c                       \ rS rSrSrg)&PicklingTests.test_reduce.<locals>.C16i  r   Nrp  r   rC   rA   C16r~    rr  rC   r  yukon)r&  )r  pickleHIGHEST_PROTOCOLr*  r9   r  rZ  r   r  r  r  r$  r   r8   )r<   	protocolsrc  r  r%  r?   r)  r"  rg  rv  rK  rP  rU  r   rZ  r`  rg  rm  rr  rx  r{  r  r=   r>   r  s                         @@@rA   test_reducePicklingTests.test_reduceg  s   &11A56	.4 	 	 dEu40  !;;=KDCu% )Eu4u= 	" 	" dEz&&y1%%e, 21 
	& 	& dEz""5tV< 	* 	*	- 	-	 		" 	" Er~eA:**Iz+BC))%0 DC & 	" 	" dEu40 	! 	! eEz&&z2%%e, 32 
	 	 eEu7 	" 	" eEu< 	! 	! eE"":.!!%( /qy&&z2NN$ 32	 	/ 	/ eEz""5dE]"C&&y1%%e, 2&&y1NN$ 21 	$ 	8T"#EuT#Y? 	$ 	7)nEuT#Y? A 216 DC  32, /. 32 2111sT   P	PP/+Q"QQ'6Q9	
P	
P,/
P?	
Q	
Q$	'
Q6	9
R		c                     [        [        R                  S-   5      n " S S5      nU H"  nUS:  a  0 OS nU R                  X2" 5       US9  M$     g )Nro   c                        \ rS rSrS rS rSrg)7PicklingTests.test_special_method_lookup.<locals>.Pickyi  c                     0 $ r   r   r   s    rA   r+	  DPicklingTests.test_special_method_lookup.<locals>.Picky.__getstate__  s    	rC   c                 &    US;   a  [        U5      eg )N)r3  r@  r  rH  s     rA   r+  CPicklingTests.test_special_method_lookup.<locals>.Picky.__getattr__  s    BB(..rC   r   N)r   r   r   r   r+	  r+  r   r   rC   rA   Pickyr    s    rC   r  rp   r,  )r  r  r  r*  )r<   r  r  protocolr  s        rA   r  (PicklingTests.test_special_method_lookup  sQ    &11A56		 	 "H"a-BTEx> "rC   c           	         Uc  SR                  X5      n[        U5      R                  [        R                  L a  [	        S5      eU R                  XUS9  U R                  [        U5      [        U5      US9  [        US5      (       aJ  U R                  UR                  UR                  US9  U R                  UR                  UR                  US9  [        US5      (       a  U R                  UR                  UR                  US9  UR                   HK  nU R                  [        X5      [        X$5      US9  U R                  [        XS5      [        X$S5      US9  MM     U R                  [        U5      [        U5      US9  g)zKUtility method to verify if two objects are copies of each others.
        Nz{!r} is not a copy of {!r}zCobject passed to _assert_is_copy must override the __repr__ method.)r  rL   r   )r  rJ   r   r  r  r\  r8  r   r!  rL   r   r   rH   rK   r   )r<   r  objcopyr  slots        rA   _assert_is_copyPicklingTests._assert_is_copy  sb    ;.55cCC90
  = > >3/d3igC83
##  w/?/?S IS\\7+;+;E3$$  0A0As K  C&(>C ! I  D!9!(!=3 ! H &
 	cDMs;rC   c                    ^   " S S5      m U 4S j[         R                  " [        [        R                  S-   5      [        R
                  [        R                  1[        R                  [        R                  15       5       $ )zLUtility method to generate the many possible pickle configurations.
        c                   *    \ rS rSrSrS rS rS rSrg)<PicklingTests._generate_pickle_copiers.<locals>.PickleCopieri  z&This class copies object using pickle.c                 (    Xl         X l        X0l        g r   )r%  dumpsloads)r<   r%  r  r  s       rA   r6   EPicklingTests._generate_pickle_copiers.<locals>.PickleCopier.__init__  s    "
"
"
rC   c                 V    U R                  U R                  XR                  5      5      $ r   )r  r  r%  r  s     rA   r   APicklingTests._generate_pickle_copiers.<locals>.PickleCopier.copy  s    zz$**S**"=>>rC   c                     SR                  U R                  U R                  R                  U R                  R                  U R
                  R                  U R
                  R                  5      $ )Nz0PickleCopier(proto={}, dumps={}.{}, loads={}.{}))r  r%  r  r   r   r  r   s    rA   r   EPicklingTests._generate_pickle_copiers.<locals>.PickleCopier.__repr__  sQ     K

 $

 5 5tzz7N7N $

 5 5tzz7N7NPQrC   )r  r  r%  N)	r   r   r   r   ru  r6   r   r   r   r   rC   rA   PickleCopierr    s    4#?QrC   r  c              3   .   >#    U  H
  nT" U6 v   M     g 7fr   r   )rO  r=   r  s     rA   rQ  9PicklingTests._generate_pickle_copiers.<locals>.<genexpr>  s$      ED )-d#Ds   ro   )		itertoolsproductr  r  r  r  _dumpsr  _loads)r  s   @rA   _generate_pickle_copiers&PicklingTests._generate_pickle_copiers
  sb    	Q 	Q E$$U6+B+BQ+F%G&,llFMM%B&,llFMM%BDE 	ErC   c                     " S S5      q U R                  [        5         [        R                  " [        5       S5        S S S 5         " S S[         5      qU R                  [        5         [        R                  " [        5       S5        S S S 5         " S S5      q  " S S[         5      q " S S	[         5      qU R                  5        H  nU R                  US
9   [        5       nUR                  U5      nU R                  X#5        SUl        UR                  U5      nU R                  X#5        [        5       nSUl        SUl        UR                  U5      nU R                  X#5        [        5       nSUl        SUl        UR                  U5      nU R                  X#5        S S S 5        M     g ! , (       d  f       GN|= f! , (       d  f       GNB= f! , (       d  f       GM  = f)Nc                       \ rS rSrS/rSrg)r   i)  rE   r   Nr@  r   rC   rA   r   r   )  rd  rC   r   r   c                       \ rS rSrSrg)rq  i/  r   Nrp  r   rC   rA   rq  rq  /  rr  rC   rq  c                   0    \ rS rSrSrS/rS rS rS rSr	g)	r   i4  z7A class with __getstate__ and __setstate__ implemented.rE   c                     [        U S0 5      R                  5       n[        U 5      R                   H4  nUR                  R                  SS5       H  n [        X5      X'   M     M6     U$ ! [         a     M(  f = f)NrL   r   r   )rK   r   rJ   r  rL   r   r6  )r<   r  r   r  s       rA   r+	  C.__getstate__7  su    j"5::<:--C # 0 0b A!*1$*=EK !B .   . ! !s   A++
A98A9c                 N    UR                  5        H  u  p#[        XU5        M     g r   rv  )r<   r  r  r  s       rA   r/	  C.__setstate__@  s    !KKMDADQ' *rC   c                 X    [        U 5      R                  < SU R                  5       < S3$ )Nz()<r(   )rJ   r   r+	  r   s    rA   r   
C.__repr__C  s     %)$Z%8%8$:K:K:MNNrC   r   N)
r   r   r   r   ru  r   r+	  r/	  r   r   r   rC   rA   r   r   4  s    EI(OrC   c                       \ rS rSrSrSrg)rq  iF  z!A subclass of a class with slots.r   Nr+  r   rC   rA   rq  rq  F  s    /rC   c                       \ rS rSrSrS/rSrg)r  iK  zA subclass with an extra slot.rX   r   N)r   r   r   r   ru  r   r   r   rC   rA   r  r  K  s    ,IrC   r  )pickle_copierr   r   r   )r   rZ  r   r  r  rq  r  r  r
  r   r  rE   rX   )r<   r  r  r  s       rA   test_pickle_slotsPicklingTests.test_pickle_slots#  sz   	 	y)LLa  *	 	y)LLa  *	O 	O$	 	
	 	
 "::<MM:C!&&q)$$Q*!&&q)$$Q*C!&&q)$$Q*C!&&q)$$Q*' ;: =K *) *)@ ;:s$    F5, GC
G5
G
G
G)	c                 $    " S S5      q  " S S[        5      q " S S[        5      q " S S[        5      q " S	 S
[        5      q[         [        [        [
        [        4nU R                  5       n[        R                  " X5       H  u  p4U R                  X4S9   [        US0 5      nU" UR                  0 UD6nUR                  nUR                  U5      nU R                  Xh5        US:  aM  UR                   (       d<  UR"                  R%                  5         UR                  U5      n	U R                  Xi5        S S S 5        M     U H  nU R                  US9   [        US0 5      nU" UR                  0 UD6n['        U5      nU R                  Xh5        UR                   (       d6  UR"                  R%                  5         ['        U5      n	U R                  Xi5        S S S 5        M     g ! , (       d  f       GMu  = f! , (       d  f       M  = f)Nc                   :   ^  \ rS rSrSrSrSrU 4S jrS rSr	U =r
$ )rc  ii  z:The state of this class is copyable via its instance dict.r  Tc                 :   > [         TU ]  5         Xl        X l        g r   )r  r6   rE   rX   )r<   rE   rX   r9  s      rA   r6   C1.__init__m  s     "rC   c                 @    SU R                   < SU R                  < S3$ )NzC1(rL  r  rW   r   s    rA   r   C1.__repr__q  s    '+vvtvv66rC   rW   )r   r   r   r   ru  ARGSNEED_DICT_COPYINGr6   r   r   r  r  s   @rA   rc  rc  i  s     HD $7 7rC   rc  c                   V   ^  \ rS rSrSrSrSrU 4S jrU 4S jr\	S 5       r
S rS	rU =r$ )
r"  iu  z,A list subclass copyable via __getnewargs__.r  Fc                 >   > [         TU ]  U 5      nXl        X#l        U$ r   r  r   rE   rX   )r   rE   rX   r<   r9  s       rA   r   
C2.__new__y  s     ws+rC   c                 D   > [         TU ]  5         U R                  S5        g Nr/  )r  r6   r   )r<   r=   r9  s     rA   r6   C2.__init__~  s     " H%rC   c                     U R                   $ r   r  rj  s    rA   r3  C2.__getnewargs__      xxrC   c                 Z    SU R                   < SU R                  < S[        U 5      < S3$ )NzC2(rL  )<r(   rE   rX   r8   r   s    rA   r   C2.__repr__      +/664664:FFrC   rW   )r   r   r   r   ru  r  r  r   r6   r  r3  r   r   r  r  s   @rA   r"  r"  u  s;    :D %
&
    G GrC   r"  c                   B    \ rS rSrSrSrSrS r\S 5       r	S r
S rS	rg
)rg  i  z*A list subclass copyable via __getstate__.r  Fc                 >    Xl         X l        U R                  S5        g r  )rE   rX   r   r
  s      rA   r6   C3.__init__  s     H%rC   c                     U R                   $ r   r  rj  s    rA   r+	  C3.__getstate__  r  rC   c                 $    Uu  p#X l         X0l        g r   rW   )r<   r  rE   rX   s       rA   r/	  C3.__setstate__  s    rC   c                 Z    SU R                   < SU R                  < S[        U 5      < S3$ )NzC3(rL  r  r(   r  r   s    rA   r   C3.__repr__  r  rC   rW   N)r   r   r   r   ru  r  r  r6   r  r+	  r/	  r   r   r   rC   rA   rg  rg    s4    8D %&    GrC   rg  c                   J   ^  \ rS rSrSrSrSrU 4S jr\S 5       r	S r
SrU =r$ )	rv  i  z,An int subclass copyable via __getnewargs__.)r  r  ro   Fc                 >   > [         TU ]  X5      nXl        X$l        U$ r   r  r   rE   rX   r)  r<   r9  s        rA   r   
C4.__new__       ws2rC   c                     U R                   $ r   r  rj  s    rA   r3  C4.__getnewargs__  r  rC   c                 Z    SU R                   < SU R                  < S[        U 5      < S3$ )NzC4(rL  r  r(   rE   rX   r/   r   s    rA   r   C4.__repr__      +/664663t9EErC   rW   )r   r   r   r   ru  r  r  r   r  r3  r   r   r  r  s   @rA   rv  rv    s6    :(D %
    F FrC   rv  c                   Z   ^  \ rS rSrSrSrSS0rSrSS.U 4S	 jjr\	S
 5       r
S rSrU =r$ )rK  i  z/An int subclass copyable via __getnewargs_ex__.r  r)  rt   Fr   r  c                >   > [         TU ]  X5      nXl        X$l        U$ r   r  r  s        rA   r   
C5.__new__  r  rC   c                 2    U R                   U R                  4$ r   )r  KWARGSrj  s    rA   r@  C5.__getnewargs_ex__  s    #**--rC   c                 Z    SU R                   < SU R                  < S[        U 5      < S3$ )NzC5(rL  r  r(   r  r   s    rA   r   C5.__repr__  r  rC   rW   )r   r   r   r   ru  r  r  r  r   r  r@  r   r   r  r  s   @rA   rK  rK    sG    =Dq\F %,-  
 . .F FrC   rK  )r   r  r  rp   rj  )rc  r8   r"  rg  r/   rv  rK  r  r  r  r
  rK   r  r%  r   r  r  rL   rY  r   )
r<   test_classespickle_copiersr   r  r>   r  r%  r  objcopy2s
             rA   test_reduce_copying!PicklingTests.test_reduce_copyingf  s   		7 		7	G 	G*	G 	G*	F 	F 	F 	F  BB+668"+"3"3L"QC#C h3388.v.%++',,S1$$S2
 A:c&;&;$$**,,11':H((7 DC #R"  C#& h3388.v."3-$$S2
 ,,$$**,'0H((7 '&  ! DC" '&s   B!G-BH -
G=	 
H	c                    ^^  " S S[         5      m " UU4S jS5      mSS KnUR                  T4S SS04S S 4nU R                  T" 5       R	                  S5      U5        g )	Nc                       \ rS rSrSrg)(PicklingTests.test_issue24097.<locals>.Si  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                   8   > \ rS rSr Y" S5      /rU U4S jrSrg)(PicklingTests.test_issue24097.<locals>.Ai  r   c                 J   > US:X  a  T" S5      /TR                   S S & g[        e)Nr   r   )__slotnames__r6  )r<   r  r  r  s     rA   r+  4PicklingTests.test_issue24097.<locals>.A.__getattr__  s'    6>*+F)AOOA&((rC   r   N)r   r   r   r   r  r+  r   )r  r  s   rA   r  r    s    vYKM) )rC   r  r   r   r   rp   )r  r  r  rH   r  )r<   r  r  r  r  s      @@rA   test_issue24097PicklingTests.test_issue24097  s\    	 		) 	) 	&&tfb\.BD$O**1-x8rC   c                    [        5       R                  5         U R                  [        5         [        5       R                  S5        S S S 5        [        5       R	                  S5        U R                  [        5         [        5       R	                  5         S S S 5        U R                  [        5         [        5       R	                  S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       g = fr   )r  r$  rZ  r   r  r   s    rA   test_object_reduce PicklingTests.test_object_reduce  s     	y)H" * 	q!y)H""$ *y)H""4( *) *) *)))s#   C>C(4C9
C%(
C69
Dr   )r   r   r   r   r*  r  r  r  r  r  r  r  r  r  r   r   rC   rA   r  r  G  sS    -/$ $=<y@v?<4 E E0A+Fz8x9")rC   r  c                   8    \ rS rSr\R
                  S 5       rSrg)SharedKeyTestsi  c                 r    " S S5      n " S SU5      n[        S5       Vs/ s H  o1" 5       U" 5       4PM       nU" 5       U" 5       pTU R                  [        R                  " [	        U5      5      [        R                  " [	        U5      5      5        U R                  [        R                  " [	        U5      5      [        R                  " SS05      5        [        S5      u  Ul        Ul        Ul        Ul	        Ul
        Ul        U R                  [        R                  " [	        U5      5      [        R                  " [	        U5      5      5        U" 5       nU R                  [        R                  " [	        U5      5      [        R                  " [	        U5      5      5        U R                  [        R                  " [	        U5      5      [        R                  " SS05      5        U R                  [        R                  " [	        U5      5      [        R                  " SS05      5        g s  snf )	Nc                       \ rS rSrSrg))SharedKeyTests.test_subclasses.<locals>.Ai  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                       \ rS rSrSrg))SharedKeyTests.test_subclasses.<locals>.Bi  r   Nrp  r   rC   rA   r  r    rr  rC   r  rT  rE   ro   r   )r  rH   r  r  vars
assertLessr  r  r  wr  r  r5  assertGreater)r<   r  r  r  rE   rX   r;  s          rA   test_subclassesSharedKeyTests.test_subclasses  si   	 		 	 #2Y'Y!#qsY'sAC1tAw/tAw1GHd1g.s1g0FG (-Qx$QS!#qsACCMM$q'2CMM$q'4JKS3==a13==b3JKd2h/Aw1GHd1g.s1g0FG 	(s   H4r   N)r   r   r   r   r   r  r	  r   r   rC   rA   r  r    s    H HrC   r  c                   $    \ rS rSrSrS rS rSrg)DebugHelperMetai  z4
Sets default __doc__ and simplifies repr() output.
c                 Z    UR                  S5      c  XS'   [        R                  XX#5      $ )Nru  )r   rJ   r   )r	  r?   rx  rU  s       rA   r   DebugHelperMeta.__new__  s*    99Y'#)||D55rC   c                 ,    [        U R                  5      $ r   )r   r   rj  s    rA   r   DebugHelperMeta.__repr__#  s    CLL!!rC   r   N)r   r   r   r   ru  r   r   r   r   rC   rA   r  r    s    6"rC   r  c                   Z    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)MroTesti'  z
Regressions for some bugs revealed through
mcsl.mro() customization (typeobject.c: mro_internal()) and
cls.__bases__ assignment (typeobject.c: type_set_bases()).
c                      SU l         SU l        g )Nr   F)stepreadyr   s    rA   r  MroTest.setUp.  s    	
rC   c                 \    U R                   U:  nU(       a  U =R                   S-  sl         U$ r   )r  )r<   limitrets      rA   
step_untilMroTest.step_until2  s%    yy5 IINI
rC   c                 <   ^   " U 4S jS[         5      n " S SUS9ng)z=
type_set_bases must be aware that type->tp_mro can be NULL.
c                   "   > \ rS rSrU 4S jrSrg)4MroTest.test_incomplete_set_bases_on_self.<locals>.Mi<  c                    > TR                  S5      (       a$  U R                  b   eU =R                  S-  sl        [        R	                  U 5      $ )Nro   r   )r  r  rM   rJ   r  r  s    rA   r  8MroTest.test_incomplete_set_bases_on_self.<locals>.M.mro=  s>    ??1%%;;...MMR'Mxx}$rC   r   Nr  r   s   rA   r  r  <  s    % %rC   r  c                       \ rS rSrSrg)4MroTest.test_incomplete_set_bases_on_self.<locals>.AiD  r   Nrp  r   rC   rA   r  r"  D  rr  rC   r  re  Nr  r<   r  r  s   `  rA   !test_incomplete_set_bases_on_self)MroTest.test_incomplete_set_bases_on_self8  s    	% 	%	! 	rC   c                    ^ ^  " UU 4S jS[         5      n " S SUS9m " S ST5      nU=R                  S-  sl        g	)
z/
Deep reentrancy must not over-decref old_mro.
c                   $   > \ rS rSrU U4S jrSrg)/MroTest.test_reent_set_bases_on_base.<locals>.MiK  c                    > U R                   b;  U R                  S:X  a+  TR                  S5      (       a  T=R                  S-  sl        [        R                  U 5      $ )Nr  r3  r   )r  r   r  rM   rJ   r  )r   r  r<   s    rA   r  3MroTest.test_reent_set_bases_on_base.<locals>.M.mroL  sC    ;;*s||s/Br**r)xx}$rC   r   Nr  )r  r<   s   rA   r  r)  K  s    % %rC   r  c                       \ rS rSrSrg)/MroTest.test_reent_set_bases_on_base.<locals>.AiT  r   Nrp  r   rC   rA   r  r-  T  rr  rC   r  re  c                       \ rS rSrSrg)/MroTest.test_reent_set_bases_on_base.<locals>.BiV  r   Nrp  r   rC   rA   r  r/  V  rr  rC   r  r   N)r  rM   )r<   r  r  r  s   `  @rA   test_reent_set_bases_on_base$MroTest.test_reent_set_bases_on_baseG  s:    	% 	% 	%	! 		 		rrC   c                 h   ^   " U 4S jS[         5      n " S SUS9n " S SU5      n " S S	U5      ng
)zE
Similar to test_reent_set_bases_on_base, but may crash differently.
c                   "   > \ rS rSrU 4S jrSrg)6MroTest.test_reent_set_bases_on_direct_base.<locals>.Mi^  c                    > U R                   S   nU[        La+  TR                  S5      (       a  U=R                   S-  sl         [        R	                  U 5      $ )Nr   r   r   )rM   r  r  rJ   r  )r   r  r<   s     rA   r  :MroTest.test_reent_set_bases_on_direct_base.<locals>.M.mro_  sD    }}Q'v%q))",xx}$rC   r   Nr  r   s   rA   r  r4  ^      % %rC   r  c                       \ rS rSrSrg)6MroTest.test_reent_set_bases_on_direct_base.<locals>.Aig  r   Nrp  r   rC   rA   r  r9  g  rr  rC   r  re  c                       \ rS rSrSrg)6MroTest.test_reent_set_bases_on_direct_base.<locals>.Bii  r   Nrp  r   rC   rA   r  r;  i  rr  rC   r  c                       \ rS rSrSrg)6MroTest.test_reent_set_bases_on_direct_base.<locals>.Cik  r   Nrp  r   rC   rA   r   r=  k  rr  rC   r   Nr#  )r<   r  r  r  r   s   `    rA   #test_reent_set_bases_on_direct_base+MroTest.test_reent_set_bases_on_direct_baseZ  s3    	% 	%	! 		 		 	rC   c                   ^ ^^  " UUU 4S jS[         5      n " S SUS9n " S SU5      m " S S	U5      mS
T l        T R                  [        5         T=R                  S-  sl        SSS5        g! , (       d  f       g= f)a  
type_set_bases must check for an inheritance cycle not only through
MRO of the type, which may be not yet updated in case of reentrance,
but also through tp_base chain, which is assigned before diving into
inner calls to mro().

Otherwise, the following snippet can loop forever:
    do {
        // ...
        type = type->tp_base;
    } while (type != NULL);

Functions that rely on tp_base (like solid_base and PyType_IsSubtype)
would not be happy in that case, causing a stack overflow.
c                   &   > \ rS rSrU UU4S jrSrg)5MroTest.test_reent_set_bases_tp_base_cycle.<locals>.Mi~  c                    > TR                   (       a0  U R                  S:X  a  T4Tl        U R                  S:X  a  T4Tl        [        R	                  U 5      $ )NB1B2r  r   rM   rJ   r  )r   rD  rE  r<   s    rA   r  9MroTest.test_reent_set_bases_tp_base_cycle.<locals>.M.mro  sB    ::||t+(*u||t+(*uxx}$rC   r   Nr  )rD  rE  r<   s   rA   r  rB  ~  s    % %rC   r  c                       \ rS rSrSrg)5MroTest.test_reent_set_bases_tp_base_cycle.<locals>.Ai  r   Nrp  r   rC   rA   r  rI    rr  rC   r  re  c                       \ rS rSrSrg)6MroTest.test_reent_set_bases_tp_base_cycle.<locals>.B1i  r   Nrp  r   rC   rA   rD  rK    rr  rC   rD  c                       \ rS rSrSrg)6MroTest.test_reent_set_bases_tp_base_cycle.<locals>.B2i  r   Nrp  r   rC   rA   rE  rM    rr  rC   rE  Tr   N)r  r  rZ  r   rM   )r<   r  r  rD  rE  s   `  @@rA   "test_reent_set_bases_tp_base_cycle*MroTest.test_reent_set_bases_tp_base_cyclen  si     	% 	% 	%	! 		 		 	 
y)LLBL *))s   A22
B c                   ^ ^^  " UUU 4S jS[         5      n " S SUS9n " S SU5      n " S S	U5      m " S
 SU5      mST l        U4Tl        T4Ul        T R                  TR                  T45        T R                  TR	                  5       T/5        T R                  UR	                  5       / 5        T R                  UR                  T45        T R                  TR	                  5       U/5        g)aL  
type_set_bases must check for reentrancy upon finishing its job
by updating tp_subclasses of old/new bases of the type.
Otherwise, an implicit inheritance cycle through tp_subclasses
can break functions that recurse on elements of that field
(like recurse_down_subclasses and mro_hierarchy) eventually
leading to a stack overflow.
c                   &   > \ rS rSrU UU4S jrSrg);MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.Mi  c                    > TR                   (       a  U R                  S:X  a  STl         T4Tl        [        R	                  U 5      $ Nr   FrF  )r   rE  r   r<   s    rA   r  ?MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.M.mro  s3    ::#,,#"5!&DJ#%%AKxx}$rC   r  Nr  )rE  r   r<   s   rA   r  rR    s    % %rC   r  c                       \ rS rSrSrg);MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.Ai  r   Nrp  r   rC   rA   r  rX    rr  rC   r  re  c                       \ rS rSrSrg)<MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.B1i  r   Nrp  r   rC   rA   rD  rZ    rr  rC   rD  c                       \ rS rSrSrg)<MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.B2i  r   Nrp  r   rC   rA   rE  r\    rr  rC   rE  c                       \ rS rSrSrg);MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.Ci  r   Nrp  r   rC   rA   r   r^    rr  rC   r   TN)r  r  rM   rH   r  )r<   r  r  rD  rE  r   s   `   @@rA   (test_tp_subclasses_cycle_in_update_slots0MroTest.test_tp_subclasses_cycle_in_update_slots  s    	% 	% 	%	! 		 		 		 	 
etre,**,qc2**,b1t,))+bT2rC   c                   ^ ^^^  " S S[         5      m " UUUU 4S jS[        5      n " S SUS9n " S S	U5      n " S
 SU5      m " S SU5      mST l        T R                  T5         U4Tl        SSS5        T4Ul        T R                  TR                  T45        T R                  TR                  [        [        R                  T5      5      5        g! , (       d  f       Nl= f)zl
The same as test_tp_subclasses_cycle_in_update_slots, but tests
a code path executed on error (goto bail).
c                       \ rS rSrSrg)=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.Ei  r   Nrp  r   rC   rA   r  rc    rr  rC   r  c                   (   > \ rS rSrU UUU4S jrSrg)=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.Mi  c                    > TR                   (       a3  U R                  S:X  a#  TR                  T4:X  a  STl         O
T4Tl        Te[        R	                  U 5      $ rT  rF  )r   rE  r   r  r<   s    rA   r  AMroTest.test_tp_subclasses_cycle_error_return_path.<locals>.M.mro  sF    ::#,,#"5{{re+%*
')exx}$rC   rV  Nr  )rE  r   r  r<   s   rA   r  re    s    % %rC   r  c                       \ rS rSrSrg)=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.Ai  r   Nrp  r   rC   rA   r  ri    rr  rC   r  re  c                       \ rS rSrSrg)>MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.B1i  r   Nrp  r   rC   rA   rD  rk    rr  rC   rD  c                       \ rS rSrSrg)>MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.B2i  r   Nrp  r   rC   rA   rE  rm    rr  rC   rE  c                       \ rS rSrSrg)=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.Ci  r   Nrp  r   rC   rA   r   ro    rr  rC   r   TN)
r  r  r  rZ  rM   rH   r  rY  rJ   r  )r<   r  r  rD  rE  r   r  s   `   @@@rA   *test_tp_subclasses_cycle_error_return_path2MroTest.test_tp_subclasses_cycle_error_return_path  s    
		 		% 	% 	%	! 		 		 		 	 
q!%AK "tre,E$((1+$67 "!s   +	C
C(c                 <   ^   " U 4S jS[         5      n " S SUS9ng)z
Extending an uninitialized type with type->tp_mro == NULL must
throw a reasonable TypeError exception, instead of failing
with PyErr_BadInternalCall.
c                   "   > \ rS rSrU 4S jrSrg))MroTest.test_incomplete_extend.<locals>.Mi  c                    > U R                   c9  U R                  S:w  a)  TR                  [        5          " S SU 5      nS S S 5        [        R                  U 5      $ ! , (       d  f       N#= f)Nr+  c                       \ rS rSrSrg)8MroTest.test_incomplete_extend.<locals>.M.mro.<locals>.Xi  r   Nrp  r   rC   rA   r+  rw    s     rC   )r  r   rZ  r   rJ   r  )r   r+  r<   s     rA   r  -MroTest.test_incomplete_extend.<locals>.M.mro  sP    ;;&3<<3+>**95! ! 6 xx}$	 65s   A
A+r   Nr  r   s   rA   r  rt    r7  rC   r  c                       \ rS rSrSrg))MroTest.test_incomplete_extend.<locals>.Ai  r   Nrp  r   rC   rA   r  rz    rr  rC   r  re  Nr#  r$  s   `  rA   test_incomplete_extendMroTest.test_incomplete_extend  s    	% 	%	! 	rC   c                 <   ^   " U 4S jS[         5      n " S SUS9ng)zt
Attribute lookup on a super object must be aware that
its target type can be uninitialized (type->tp_mro == NULL).
c                   ,   >^  \ rS rSrU U4S jrSrU =r$ )(MroTest.test_incomplete_super.<locals>.Mi  c                    > U R                   c'  TR                  [        5         [        X ]    S S S 5        [
        R                  U 5      $ ! , (       d  f       N#= fr   )r  rZ  r6  r  xxxrJ   r  )r   r9  r<   s    rA   r  ,MroTest.test_incomplete_super.<locals>.M.mro  sA    ;;&**>:c+ ; xx}$ ;:s   
A
Ar   )r   r   r   r   r  r   r  r  s   @rA   r  r    s    % %rC   r  c                       \ rS rSrSrg)(MroTest.test_incomplete_super.<locals>.Ai  r   Nrp  r   rC   rA   r  r    rr  rC   r  re  Nr#  r$  s   `  rA   test_incomplete_superMroTest.test_incomplete_super  s    
	% 	%	! 	rC   c                    ^^  " S S5      m " UU4S jS[         5      mU R                  [        5          " S STS9nSSS5        g! , (       d  f       g= f)	zr
gh-92112: A custom mro() returning a result conflicting with
__bases__ and deleting itself caused a double free.
c                       \ rS rSrSrg)/MroTest.test_disappearing_custom_mro.<locals>.Bi  r   Nrp  r   rC   rA   r  r    rr  rC   r  c                   $   > \ rS rSrU U4S jrSrg)/MroTest.test_disappearing_custom_mro.<locals>.Mi  c                    > T? T4$ r   )r  )r   r  r  s    rA   r  3MroTest.test_disappearing_custom_mro.<locals>.M.mro  s    EtrC   r   Nr  )r  r  s   rA   r  r    s     rC   r  c                       \ rS rSrSrg)/MroTest.test_disappearing_custom_mro.<locals>.Ai  r   Nrp  r   rC   rA   r  r    rM  rC   r  re  N)r  rZ  r   )r<   r  r  r  s     @@rA   test_disappearing_custom_mro$MroTest.test_disappearing_custom_mro  sF    
	 		 	 	
 y)a  *))s   
A
A)r  r  N)r   r   r   r   ru  r  r  r%  r0  r>  rN  r_  rp  r{  r  r  r   r   rC   rA   r  r  '  sA    &("H"3H 8D$ rC   r  __main__)%r	  r  r  r  r  r  rv  rx  r  r~  r4   r  r1  r   r   
contextlibr   r  r   test.support.testcaser   rh  ri  r   r5   r   r  r  r  r  r  r  rJ   r  r  r   mainr   rC   rA   <module>r     s@     	      
      &  1
uDH%% uDpsH 1 1? sHlQ=8X&& =8@H-- 2=!! =Bw)H%% w)tHX&& H4	"d 	"bh bJ zMMO mw  I
  Is$   D$ D2 $D/.D/2D=<D=