+
    BijP                     4   ^ RI t ^ RIt^ RIHt  ! R R]4      t ! R R]4      t ! R R]4      t ! R	 R
]4      t ! R R]	4      t
 ! R R]
4      t ! R R]	4      t ! R R]4      t ! R R]
4      t ! R R]	4      t ! R R]P                   4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R ]P                   4      t ! R! R"4      t ! R# R$]]P                   4      t ! R% R&]]P                   4      t]R'8X  d   ]P6                  ! 4        R# R# )(    N)supportc                       ] tR t^tRtR# )PropertyBase N__name__
__module____qualname____firstlineno____static_attributes__r       )/usr/lib/python3.14/test/test_property.pyr   r          r   r   c                       ] tR t^tRtR# )PropertyGetr   Nr   r   r   r   r   r      r   r   r   c                       ] tR t^tRtR# )PropertySetr   Nr   r   r   r   r   r      r   r   r   c                       ] tR t^tRtR# )PropertyDelr   Nr   r   r   r   r   r      r   r   r   c                   ~   a  ] tR t^t o R t]R 4       t]P                  R 4       t]P                  R 4       tRt	V t
R# )	BaseClassc                    ^V n         R# )   N_spamselfs   &r   __init__BaseClass.__init__   s	    
r   c                    V P                   # Nr   r   s   &r   spamBaseClass.spam        zzr   c                    Wn         R # r!   r   r   values   &&r   r"   r#      s    
r   c                
    V = R # r!   r   r   s   &r   r"   r#   !   s    Jr   r   N)r   r	   r
   r   r   propertyr"   setterdeleterr   __classdictcell____classdict__s   @r   r   r      sN        
[[  
\\ r   r   c                      a  ] tR t^%t o ]P
                  P                  R 4       t]P                  R 4       t]P                  R 4       tRt	V t
R# )SubClassc                ,    \        V P                  4      hr!   )r   r   r   s   &r   r"   SubClass.spam'   s     $**%%r   c                ,    \        V P                  4      hr!   )r   r   r&   s   &&r   r"   r2   ,       $**%%r   c                ,    \        V P                  4      hr!   )r   r   r   s   &r   r"   r2   0   r4   r   r   N)r   r	   r
   r   r   r"   getterr*   r+   r   r,   r-   s   @r   r0   r0   %   sQ     ^^& & 
[[& & 
\\& &r   r0   c                   >   a  ] tR t^4t o ^tR t]! ]RR7      tRtV t	R# )PropertyDocBasec                    V P                   # r!   r   r   s   &r   	_get_spamPropertyDocBase._get_spam6   s    zzr   spam spam spamdocr   N)
r   r	   r
   r   r   r:   r)   r"   r   r,   r-   s   @r   r8   r8   4   s     EI#34Dr   r8   c                   X   a  ] tR t^:t o ]P
                  P                  R 4       tRtV tR# )PropertyDocSubc                    V P                   # r!   r   r   s   &r   r"   PropertyDocSub.spam;   r$   r   r   N)	r   r	   r
   r   r8   r"   r6   r   r,   r-   s   @r   r@   r@   :   s#        !r   r@   c                   X   a  ] tR t^@t o ]P
                  P                  R 4       tRtV tR# )PropertySubNewGetterc                    ^# )r   r   r   s   &r   r"   PropertySubNewGetter.spamA        r   r   N)	r   r	   r
   r   r   r"   r6   r   r,   r-   s   @r   rD   rD   @   s!     ^^ r   rD   c                   T   a  ] tR t^Ft o ]R 4       t]P                  R 4       tRtV tR# )PropertyNewGetterc                    ^#    r   r   s   &r   r"   PropertyNewGetter.spamG   rG   r   c                    ^# )   r   r   s   &r   r"   rM   K   rG   r   r   N)	r   r	   r
   r   r)   r"   r6   r   r,   r-   s   @r   rI   rI   F   s/       
[[ r   rI   c                   r  a  ] tR t^Pt o R tR t]P                  ! ]P                  P                  ^8  R4      R 4       t]P                  ! ]P                  P                  ^8  R4      R 4       tR t]P                  ! ]P                  P                  ^8  R4      R 4       tR t]P                  ! ]P                  P                  ^8  R4      R	 4       t]P                  ! ]P                  P                  ^8  R4      R
 4       t]P&                  R 4       t]P&                  R 4       tR tR tR tRtV tR# )PropertyTestsc                   \        4       pV P                  VP                  ^4       V P                  VP                  ^4       ^
Vn        V P                  VP                  ^
4       V P                  VP                  ^
4       \	        VR4       V P                  VR4       V P                  VR4       ^Vn        V P                  VP                  ^4       V P                  VP                  ^4       R# )r   r"   r   N)r   assertEqualr"   r   delattrassertNotHasAttrr   bases   & r   !test_property_decorator_baseclass/PropertyTests.test_property_decorator_baseclassQ   s    {A&Q'	B'R(fdF+dG,	B'R(r   c                    \        4       pV P                  \        \        VR 4       V P                  \        \
        VR R4       V P                  \        \        VR 4       R# )r"   N)r0   assertRaisesr   getattrr   setattrr   rT   r   subs   & r    test_property_decorator_subclass.PropertyTests.test_property_decorator_subclass`   sG    j+wV<+wVTB+wV<r   )Docstrings are omitted with -O2 and abovec                z    \        4       pV P                  VP                  P                  P                  R 4       R# )zSubClass.getterN)r0   rS   	__class__r"   __doc__r^   s   & r   $test_property_decorator_subclass_doc2PropertyTests.test_property_decorator_subclass_docg   s,     j++335FGr   c                z    \        4       pV P                  VP                  P                  P                  R 4       R# )zBaseClass.getterN)r   rS   rd   r"   re   rV   s   & r   %test_property_decorator_baseclass_doc3PropertyTests.test_property_decorator_baseclass_docm   s,     {,,446HIr   c                    \        4       p\        4       pV P                  VP                  P                  P
                  R 4       V P                  VP                  P                  P
                  R 4       R# )r<   N)r8   r@   rS   rd   r"   re   )r   rW   r_   s   &  r   test_property_decorator_doc)PropertyTests.test_property_decorator_docs   sT     ,,446FG++335EFr   c                ^   \        4       pV P                  VP                  ^4       V P                  VP                  P                  P                  R4       \        4       pV P                  VP                  ^4       V P                  VP                  P                  P                  R4       R# )r   znew docstringN)rD   rS   r"   rd   re   rI   )r   newgettersub	newgetters   &  r   !test_property_getter_doc_override/PropertyTests.test_property_getter_doc_overridey   s     ,-**A.//44<<oN%'	+,,1199?Kr   c                  aa R R. ^.RR3 FD  o ! V3R lR\         4      pV P                  VP                  P                  \	        S4      4       KF  	   ! R R\         4      oV P                  \        4      ;_uu_ 4         ! V3R lR\         4      pVP                  P                   R	R	R	4       R	#   + '       g   i     R	# ; i)
TF 1c                   H   <a  ] tR t^t o R t Z]n        ]! ]4      tRtV tR# )EPropertyTests.test_property___isabstractmethod__descriptor.<locals>.Cc                    R # r!   r   r   s   &r   fooIPropertyTests.test_property___isabstractmethod__descriptor.<locals>.C.foo       r   r   N	r   r	   r
   r   ry   __isabstractmethod__r)   r   r,   )r.   vals   @r   Crw      s     +.(smr   r   c                   *   a  ] tR t^t o R t]tRtV tR# )KPropertyTests.test_property___isabstractmethod__descriptor.<locals>.NotBoolc                    \        4       hr!   )
ValueErrorr   s   &r   __bool__TPropertyTests.test_property___isabstractmethod__descriptor.<locals>.NotBool.__bool__   s
     l"r   r   N)r   r	   r
   r   r   __len__r   r,   r-   s   @r   NotBoolr      s     #Gr   r   c                   R   <a  ] tR t^t o R t Z! 4       ]n        ]! ]4      tRtV tR# )rw   c                    R # r!   r   r   s   &r   ry   rz      r{   r   r   Nr|   )r.   r   s   @r   r   rw      s     +29(smr   N)objectassertIsry   r}   boolr[   r   )r   r   r   r~   s   & @@r   ,test_property___isabstractmethod__descriptor:PropertyTests.test_property___isabstractmethod__descriptor   s    %aS"c2C$F $
 MM!%%44d3i@ 3	f 	 z**$F $
 EE&& +***s    )B33C	c                    \        R R7      pV P                  VP                  R 4       RVn        V P                  VP                  R4       R# )basicr=   extendedNr)   rS   re   )r   ps   & r   "test_property_builtin_doc_writable0PropertyTests.test_property_builtin_doc_writable   s=     !G,	J/r   c                (    ! R  R\         4      pV! 4       pV P                  VP                  P                  P                  R4       RVP                  P                  n        V P                  VP                  P                  P                  R4       R# )c                   0   a  ] tR t^t o ]R 4       tRtV tR# )OPropertyTests.test_property_decorator_doc_writable.<locals>.PropertyWritableDocc                    R # )eggsr   r   s   &r   r"   TPropertyTests.test_property_decorator_doc_writable.<locals>.PropertyWritableDoc.spam   s     r   r   N)r   r	   r
   r   r)   r"   r   r,   r-   s   @r   PropertyWritableDocr      s      r   r   EggsSpamN)r   rS   rd   r"   re   )r   r   r_   s   &  r   $test_property_decorator_doc_writable2PropertyTests.test_property_decorator_doc_writable   sj    	& 	 "#++33V<%+"++33V<r   c                    \         P                  ! \        R 4      p\        RRRR4      pV! 4       p\	        ^d4       F  pVP                  RRRR4       K  	  V P                  V! 4       V,
          ^ ^
R7       R# )gettotalrefcountfgetfsetfdelr>   deltaN)r   get_attributesysr)   ranger   assertAlmostEqual)r   r   	fake_proprefs_beforeis   &    r   test_refleaks_in___init__'PropertyTests.test_refleaks_in___init__   sn    "006HIVVVU;	&(sAvvvu= /1K?"Mr   c                   \         P                  ! \        R 4      p\        4       pV! 4       p\	        ^d4       F  pVP                  R4      pK  	  V P                  VP                  4       \	        ^d4       F  pVP                  R4      pK  	  V P                  VP                  4       \	        ^d4       F  pVP                  R4      pK  	  V P                  VP                  4       V P                  V! 4       V,
          ^ ^
R7       R# )r   Nr   )r   r   r   r)   r   r6   assertIsNoner   r*   r   r+   r   r   )r   r   propr   r   s   &    r   test_gh_115618PropertyTests.test_gh_115618   s     #006HIz&(sA;;t$D $))$sA;;t$D $))$sA<<%D $))$/1K?"Mr   c                8  aa R  oR o ! VV3R lR4      pV P                  VP                  P                  R4       V P                  VP                  P                  R4       V P                  VP                  P                  R4       V P                  VP
                  P                  R4       \        S4      Vn        V P                  VP                  P                  R4       R	VP                  n        V P                  VP                  P                  R	4       V P                  VP                  P                  R4       R
VP                  n        V P                  VP                  P                  4       V P                  \        R4      ;_uu_ 4        \        R
S4      P                   R
R
R
4       V P                  \        R4      ;_uu_ 4        \        ^4      P                   R
R
R
4        ! R R4      p\        V! 4       4      pV P                  \        R4      ;_uu_ 4        VP                   R
R
R
4       RVn        V P                  VP                  R4       R
#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L[; i)c                     ^*# )*   r   r   s   &r   r6   0PropertyTests.test_property_name.<locals>.getter   s    r   c                     R # r!   r   r&   s   &&r   r*   0PropertyTests.test_property_name.<locals>.setter       r   c                   |   <a  ] tR t^t o ]R 4       t]P                  R 4       t]!  Z4      t]! R Z4      t	Rt
V tR# )+PropertyTests.test_property_name.<locals>.Ac                    ^# rK   r   r   s   &r   ry   /PropertyTests.test_property_name.<locals>.A.foo   s    r   c                    R # r!   r   r&   s   &&r   oof/PropertyTests.test_property_name.<locals>.A.oof   s    r   Nr   )r   r	   r
   r   r)   ry   r*   r   barbazr   r,   )r.   r6   r*   s   @r   Ar      sG       ZZ  6"C4(Cr   r   ry   r   r   r   r6   myquuxNz-'property' object has no attribute '__name__'c                   &   a  ] tR t^t o R tRtV tR# )-PropertyTests.test_property_name.<locals>.Errc                    \        R 4      h)fail)RuntimeError)r   attrs   &&r   __getattr__9PropertyTests.test_property_name.<locals>.Err.__getattr__   s    "6**r   r   N)r   r	   r
   r   r   r   r,   r-   s   @r   Errr      s     + +r   r   r   not_fail)rS   ry   r   r   r   r   r)   quuxr   assertRaisesRegexAttributeErrorr   )r   r   r   r   r6   r*   s   &   @@r   test_property_name PropertyTests.test_property_name   s   		
	) 
	) 	////&!(3"(3/!&&//*##K
 
 T6"++

 ##K
 
 QK  

	+ 	+ SUO##L&99JJ :  
Z0'
 


 
 :9s$   I#I6)J	#I3	6J		J	c                    \        4       pR FF  pV P                  \        RV R24      ;_uu_ 4        VP                  ! ^ .V,          !   RRR4       KH  	  R#   + '       g   i     K]  ; i)r   z3^__set_name__\(\) takes 2 positional arguments but z were given$N)r   rL      )r)   r   	TypeError__set_name__)r   r   r   s   &  r   %test_property_set_name_incorrect_args3PropertyTests.test_property_set_name_incorrect_args  sc    JA''FqcV  !q*	    s   AA*c                     ! R  R\         4      p ! R R4      p\         P                  V4      pVP                  V^4       VP                  R 4      pR# )c                   &   a  ] tR tRt o R tRtV tR# )EPropertyTests.test_property_setname_on_property_subclass.<locals>.proi  c                    R # )abcdefr   )typargskwargss   &*,r   __new__MPropertyTests.test_property_setname_on_property_subclass.<locals>.pro.__new__  s    r   r   N)r   r	   r
   r   r   r   r,   r-   s   @r   pror     s        r   r   c                       ] tR tRtRtR# )CPropertyTests.test_property_setname_on_property_subclass.<locals>.Ai  r   Nr   r   r   r   r   r     s    r   r   c                     ^# rK   r   r   s   &r   <lambda>JPropertyTests.test_property_setname_on_property_subclass.<locals>.<lambda>  s    1r   N)r)   r   r   r6   )r   r   r   r   nps   &    r   *test_property_setname_on_property_subclass8PropertyTests.test_property_setname_on_property_subclass  sF    	 ( 	 	 	 S!	q!XXn%r   r   N)r   r	   r
   r   rX   r`   unittestskipIfr   flagsoptimizerf   ri   rl   rq   r   r   r   r   refcount_testr   r   r   r   r   r   r,   r-   s   @r   rQ   rQ   P   sl    )= __SYY''1,@BHBH __SYY''1,@BJBJG __SYY''1,@BLBL'. __SYY''1,@B0B0 __SYY''1,@B=B= N N N N"31j+& &r   rQ   c                       ] tR tRtRtR# )PropertySubi  r   Nr   r   r   r   r   r     r   r   r   c                       ] tR tRtRtR# )PropertySubWoDoci!  r   Nr   r   r   r   r   r   !  r   r   r   c                       ] tR tRtRtRtR# )PropertySubSlotsi$  r   Nr   r	   r
   r   	__slots__r   r   r   r   r   r   $  s    Ir   r   c                   P  a  ] tR tRt o ]P
                  R 4       tR t]P                  ! ]
P                  P                  ^8  R4      R 4       t]P                  ! ]
P                  P                  ^8  R4      R 4       t]P                  ! ]
P                  P                  ^8  R4      R 4       t]P                  ! ]
P                  P                  ^8  R4      R 4       t]P                  ! ]
P                  P                  ^8  R4      R	 4       t]P                  ! ]
P                  P                  ^8  R4      R
 4       tR t]P                  ! ]
P                  P                  ^8  R4      R 4       t]P                  ! ]
P                  P                  ^8  R4      R 4       tRtV tR# )PropertySubclassTestsi(  c                    V P                  \        4      ;_uu_ 4         ! R  R\        4      pRRR4       R#   + '       g   i     R# ; i)c                   0   a  ] tR tRt o ]R 4       tRtV tR# )FPropertySubclassTests.test_slots_docstring_copy_exception.<locals>.Fooi2  c                    ^# rK   r   r   s   &r   r"   KPropertySubclassTests.test_slots_docstring_copy_exception.<locals>.Foo.spam3  s     r   r   N)r   r	   r
   r   r   r"   r   r,   r-   s   @r   Foor  2  s     ! "r   r  N)r[   r   r   r   r  s   & r   #test_slots_docstring_copy_exception9PropertySubclassTests.test_slots_docstring_copy_exception*  s0     ~..f  /...s	   8A		c                     ! R  R\         4      pV! 4       pV P                  \        VRR4      4       R pV! V4      pV P                  \        VRR4      4       R# )c                       ] tR tRtRtRtR# )QPropertySubclassTests.test_property_with_slots_no_docstring.<locals>.slotted_propi:  r   Nry   r   r   r   r   slotted_propr
  :       Ir   r  re   Nc                      ^#    r   r   r   r   undocumented_getterXPropertySubclassTests.test_property_with_slots_no_docstring.<locals>.undocumented_getter@      r   )r)   r   r\   )r   r  r   r  s   &   r   %test_property_with_slots_no_docstring;PropertySubclassTests.test_property_with_slots_no_docstring8  sW    	!8 	! N'!Y56	 ,-'!Y56r   rb   c                     ! R  R\         4      pV! RR7      pV P                  VP                  4       R pV P                  \        4      ;_uu_ 4        V! V4      pRRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtRtR# )_PropertySubclassTests.test_property_with_slots_docstring_silently_dropped.<locals>.slotted_propiJ  r   Nr  r   r   r   r   r  r  J  r  r   r  	what's upr=   c                      ^# r  r   r   r   r   documented_getterdPropertySubclassTests.test_property_with_slots_docstring_silently_dropped.<locals>.documented_getterP      r   N)r)   r   re   r[   r   r   r  r   r  s   &   r   3test_property_with_slots_docstring_silently_droppedIPropertySubclassTests.test_property_with_slots_docstring_silently_droppedF  s^    	!8 	! [)!))$	 ~.../A /...s   	A''A8	c                     ! R  R\         4      pV! RR7      pV P                  RVP                  4       R pV! V4      pV P                  RVP                  4       R# )c                       ] tR tRtRtRtR# )cPropertySubclassTests.test_property_with_slots_and_doc_slot_docstring_present.<locals>.slotted_propi]  r   N)ry   re   r   r   r   r   r  r#  ]  s    *Ir   r  r  r=   c                      ^# r  r   r   r   r   r  hPropertySubclassTests.test_property_with_slots_and_doc_slot_docstring_present.<locals>.documented_getterc  r  r   zwhat's up getter doc?Nr   r  s   &   r   7test_property_with_slots_and_doc_slot_docstring_presentMPropertySubclassTests.test_property_with_slots_and_doc_slot_docstring_presentY  sU    	+8 	+ [)aii0	 *+0!))<r   c                   V P                  \        P                  R R4       \        RRRR4      P                  pV P                  VRR4       R pR p\        \        \        3 F  pV! VRRR4      P                  pV P                  VRRVP
                  ,          4       V! VRRR4      P                  pV P                  VRR	VP
                  ,          4       V! VRRR4      P                  pV P                  VRRVP
                  ,          4       V! VRRR4      P                  pV P                  VR
VP
                  ,          4       K  	  R# )zThis is a subclass of propertyz+Docstring of `property` subclass is ignoredNzissue 41287 is fixedz;Subclasses of `property` ignores `doc` constructor argumentc                     R # r!   r   xs   &r   r6   5PropertySubclassTests.test_issue41287.<locals>.getteru  r   r   c                     R # r!   r   r*  s   &r   getter_wo_doc<PropertySubclassTests.test_issue41287.<locals>.getter_wo_docx  r   r   z1Getter overrides explicit property docstring (%s)zGetter docstringz&Getter docstring is not picked-up (%s)z3Property class doc appears in instance __doc__ (%s))rS   r   re   r)   r   r   r   )r   r>   r6   r.  pss   &    r   test_issue41287%PropertySubclassTests.test_issue41287j  sP    	,,.NF	H $d,BCKK4V	X	#	 K)99BVT4)?@HHCS"8PSUS^S^^` VT4.66CS"46^acalal6lm]D$0FGOOCS"8PSUS^S^^` ]D$5==Cc#X[][f[f#fg :r   c                p     ! R  R\         4      pV P                  VP                  P                  R4       R# )c                   0   a  ] tR tRt o ]R 4       tRtV tR# )6PropertySubclassTests.test_docstring_copy.<locals>.Fooi  c                    ^# rK   r   r   s   &r   r"   ;PropertySubclassTests.test_docstring_copy.<locals>.Foo.spam       r   r   Nr   r	   r
   r   r   r"   r   r,   r-   s   @r   r  r5          r   r  !spam wrapped in property subclassNr   rS   r"   re   r  s   & r   test_docstring_copy)PropertySubclassTests.test_docstring_copy  s.    	& 	
 	HH/	1r   c                   R  pR pR p\        VRRR4      pVP                  V4      pV P                  VP                  R4       V P                  VP                  R4       \        VRRR4      pVP                  V4      pV P                  VP                  R4       V P                  VP                  R4       \        VRRR4      pVP                  V4      pV P                  VP                  R4       V P                  VP                  R4       \        VRRR4      pRVn        VP                  V4      pV P                  VP                  R4       V P                  VP                  R4       \        VRRR4      pRVn        VP                  V4      pV P                  VP                  R4       V P                  VP                  R4       R# )c                     ^# rK   r   r   s   &r   getter1;PropertySubclassTests.test_docstring_copy2.<locals>.getter1  r  r   c                     ^#    r   r   s   &r   getter2;PropertySubclassTests.test_docstring_copy2.<locals>.getter2  r  r   c                     ^# )r   r   r   s   &r   getter3;PropertySubclassTests.test_docstring_copy2.<locals>.getter3  r  r   Nzdoc-Azdoc 2zdoc 3user)r)   r6   rS   re   )r   rA  rF  rI  r   p2s   &     r   test_docstring_copy2*PropertySubclassTests.test_docstring_copy2  s   			 WdD'2XXgG,W- WdD'2XXgG,W- WdD$/XXgG,W- WdD$/	XXgF+W- WdD$/	XXgF+V,r   c                    V P                  \        R R7      P                  R 4       V P                  \        R R7      P                  R 4        ! R R4      pV P                  VP                  P                  R4       R# )zexplicit docr=   c                   p   a  ] tR tRt o ]! RR7      t]P                  R 4       tR t]! R]R7      tRt	V t
R	# )
;PropertySubclassTests.test_prefer_explicit_doc.<locals>.Fooi  zspam explicit docr=   c                    ^# rK   r   r   s   &r   r"   @PropertySubclassTests.test_prefer_explicit_doc.<locals>.Foo.spam  r8  r   c                    R # r!   r   r   s   &r   _stuff_getterIPropertySubclassTests.test_prefer_explicit_doc.<locals>.Foo._stuff_getter  s    r   stuff doc argument)r>   r   r   N)r   r	   r
   r   r   r"   r6   rU  stuffr   r,   r-   s   @r   r  rQ    s8     #67D[[ 2$8}MEr   r  rW  N)rS   r)   re   r   rX  r  s   & r   test_prefer_explicit_doc.PropertySubclassTests.test_prefer_explicit_doc  sc     	n5==~N8@@.Q
	N 
	N 	**,@Ar   c                     ! R  R4      pV P                  \        V! 4       4      P                  R4       V P                  \        V! 4       4      P                  R4       R# )c                   0   a  ] tR tRt o ]R 4       tRtV tR# )CPropertySubclassTests.test_property_no_doc_on_getter.<locals>.NoDoci  c                    \         hr!   )r   r   s   &r   re   KPropertySubclassTests.test_property_no_doc_on_getter.<locals>.NoDoc.__doc__  s    $$r   r   N)r   r	   r
   r   r)   re   r   r,   r-   s   @r   NoDocr]    s     % %r   r`  N)rS   r)   re   r   )r   r`  s   & r   test_property_no_doc_on_getter4PropertySubclassTests.test_property_no_doc_on_getter  sH    	% 	%
 	%'*22D9UW-55t<r   c                  a  ! R  R\         4      oS! 4       pV P                  VP                  ^4       ^Vn        V P                  VP                  ^4       V P                  SP                  P                  R4        ! V3R lRS4      pV! 4       pV P                  VP                  ^4       ^Vn        V P                  VP                  R4       V P                  VP                  P                  R4       R# )c                   Z   a  ] tR tRt o R t]R 4       t]P                  R 4       tRtV t	R# )OPropertySubclassTests.test_property_setter_copies_getter_docstring.<locals>.Fooi  c                    ^V n         R# )rL   Nr   r   s   &r   r   XPropertySubclassTests.test_property_setter_copies_getter_docstring.<locals>.Foo.__init__  s    Q
r   c                    V P                   # r!   r   r   s   &r   r"   TPropertySubclassTests.test_property_setter_copies_getter_docstring.<locals>.Foo.spam  s     zz!r   c                    Wn         R # r!   r   r&   s   &&r   r"   ri    s	     #
r   r   N)
r   r	   r
   r   r   r   r"   r*   r   r,   r-   s   @r   r  re    s2     ." " [[# #r   r  r;  c                   \   <a  ] tR tRt o  ZP                  P
                  R 4       tRtV tR# )RPropertySubclassTests.test_property_setter_copies_getter_docstring.<locals>.FooSubi  c                    R V n         R# )r   Nr   r&   s   &&r   r"   WPropertySubclassTests.test_property_setter_copies_getter_docstring.<locals>.FooSub.spam	  s     $
r   r   N)r   r	   r
   r   r"   r*   r   r,   )r.   r  s   @r   FooSubrl    s     XX__$ $r   ro  r   Nr<  )r   ry   ro  foosubr  s   &   @r   ,test_property_setter_copies_getter_docstringBPropertySubclassTests.test_property_setter_copies_getter_docstring  s    		#& 		# e1%1%HH/	1	$S 	$
 a(f-KK/	1r   c                   a  ! R  R\         4      pV P                  VP                  P                  R4        ! R R\         4      o ! V3R lRS4      pV P                  VP                  P                  R4       R# )c                   T   a  ] tR tRt o ]R 4       t]P                  R 4       tRtV tR# )IPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.Fooi  c                    ^# rK   r   r   s   &r   r"   NPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.Foo.spam  r8  r   c                    ^# rD  r   r   s   &r   r"   rw    r8  r   r   N)	r   r	   r
   r   r   r"   r6   r   r,   r-   s   @r   r  ru    s/       [[ r   r  za new docstringc                   0   a  ] tR tRt o ]R 4       tRtV tR# )MPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.FooBasei#  c                    ^# rK   r   r   s   &r   r"   RPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.FooBase.spam$  r8  r   r   Nr9  r-   s   @r   FooBaserz  #  r:  r   r}  c                   \   <a  ] tR tRt o  ZP                  P
                  R 4       tRtV tR# )JPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.Foo2i(  c                    ^# rD  r   r   s   &r   r"   OPropertySubclassTests.test_property_new_getter_new_docstring.<locals>.Foo2.spam)  r8  r   r   N)r   r	   r
   r   r"   r6   r   r,   )r.   r}  s   @r   Foo2r  (  s!     \\   !r   r  Nr<  )r   r  r  r}  s   &  @r   &test_property_new_getter_new_docstring<PropertySubclassTests.test_property_new_getter_new_docstring  sa    	& 	 	))+<=	f 	
	7 	
 	))+<=r   r   N)r   r	   r
   r   r   requires_docstringsr  r  r   r   r   r   r   r  r&  r1  r=  rM  rY  ra  rq  r  r   r,   r-   s   @r   r   r   (  s       !7 __SYY''1,@B0B0" __SYY''1,@B=B= __SYY''1,@BhBh< __SYY''1,@B1B1 __SYY''1,@B8-B8-t __SYY''1,@BBBB(
= __SYY''1,@B1B1> __SYY''1,@B>B>r   r   c                   T   a  ] tR tRt o RtRtRtR t]R 4       t	R t
R tR tRtV tR# )	_PropertyUnreachableAttributei0  Nc                8    V P                   P                  V4      # r!   )
msg_formatformat)r   msgs   &&r   _format_exc_msg-_PropertyUnreachableAttribute._format_exc_msg5  s    %%c**r   c                0    V P                  4       V n        R # r!   )clsobj)r  s   &r   
setUpClass(_PropertyUnreachableAttribute.setUpClass8  s    '')r   c                    V P                  \        V P                  R 4      4      ;_uu_ 4        V P                  P                   RRR4       R#   + '       g   i     R# ; i)zhas no getterNr   r   r  r  ry   r   s   &r   test_get_property/_PropertyUnreachableAttribute.test_get_property<  s;    ##ND4H4H4YZZHHLL [ZZZs   AA 	c                    V P                  \        V P                  R 4      4      ;_uu_ 4        RV P                  n        RRR4       R#   + '       g   i     R# ; i)zhas no setterNr  r   s   &r   test_set_property/_PropertyUnreachableAttribute.test_set_property@  s;    ##ND4H4H4YZZDHHL [ZZZs   A

A	c                    V P                  \        V P                  R 4      4      ;_uu_ 4        V P                  =RRR4       R#   + '       g   i     R# ; i)zhas no deleterNr  r   s   &r   test_del_property/_PropertyUnreachableAttribute.test_del_propertyD  s:    ##ND4H4HIY4Z[[ \[[[s   AA	r   )r   r	   r
   r   r  r  r  r  classmethodr  r  r  r  r   r,   r-   s   @r   r  r  0  sA     J
C
C+    r   r  c                   .    ] tR tRtRt ! R R4      tRtR# )$PropertyUnreachableAttributeWithNameiI  zI^property 'foo' of 'PropertyUnreachableAttributeWithName\.cls' object {}$c                   $    ] tR tRt]! 4       tRtR# )(PropertyUnreachableAttributeWithName.clsiL  r   N)r   r	   r
   r   r)   ry   r   r   r   r   r  r  L  s	    jr   r  r   N)r   r	   r
   r   r  r  r   r   r   r   r  r  I  s    ]J r   r  c                   F    ] tR tRtRt ! R R4      t]! 4       ]n        RtR# )"PropertyUnreachableAttributeNoNameiP  zA^property of 'PropertyUnreachableAttributeNoName\.cls' object {}$c                       ] tR tRtRtR# )&PropertyUnreachableAttributeNoName.clsiS  r   Nr   r   r   r   r  r  S  s    r   r  r   N)	r   r	   r
   r   r  r  r)   ry   r   r   r   r   r  r  P  s    UJ  jCGGr   r  __main__)r   r   testr   	Exceptionr   r   r   r   r   r   r0   r8   r@   rD   rI   TestCaserQ   r)   r   r   r   r   r  r  r  r   mainr   r   r   <module>r     s"     	9 		, 		, 		, 	 "&y &5f 5_ 9  K&H%% K&\)( )	x 	x E>H-- E>P 2+H(J[J[ )FHYHY  zMMO r   