+
    Bih{                        R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt R t ! R R	]P(                  4      tR
 t ! R R]P(                  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8X  d   ]P>                  ! 4        R# R# )z/
Test cases for the repr module
Nick Mathewson
N)verboseEqualToForwardRef)create_empty_file)repr)Repr)recursive_reprc                 4    Rp\        V 4       F  pV3pK  	  V# )N )range)nestingtis   &  (/usr/lib/python3.14/test/test_reprlib.pynestedTupler      s!    
A7^D H    c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )	ReprTestsc                   R ^eR^fR^gR^hR^iR^jR^kR^lR^mR	^nR
^oRRRR/p\        4       pVP                  4        F  w  r4\        W#V4       K  	  \        R/ VB pV F)  pV P                  \	        W#4      \	        WS4      VR7       K+  	  R# )maxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxother	fillvalueindent)msgNpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr	   )r   itemssetattrassertEqualgetattr)selfexample_kwargsr1attrvalr2s   &     r   test_init_kwargsReprTests.test_init_kwargs   s    sscCsi
 V'--/IDBc" 0#N#"DWR.0AtL #r   c                   V P                   pV! \        R 4      R4       V! \        R4      R4       Rp\        V4      R,          R,           \        V4      R	R ,           pV! \        V4      V4       V! \        R4      \        R4      4       R
p\        V4      R,          R,           \        V4      R	R ,           pV! \        V4      V4       R# )abcz'abc'abcdefghijklmnopz'abcdefghijklmnop'N   N...Nz"'<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbz""""""""""""""""""""""""""""""'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')r&   rr   )r(   eqsexpecteds   &   r   test_stringReprTests.test_string5   s    
1U8W
1 !5673<%'$q'#$-7
1Q4
1U8T%[!73<%'$q'#$-7
1Q4r   c                p   V P                   pV! \        R4      R4       RpV! \        V4      R4       \        4       p^Vn        \	        V4      RR	 R,           pV! VP	                  V4      V4       \        4       pRVn        ^Vn        \	        V4      RR	 R,           pV! VP	                  V4      V4       R# )
   (1,)	(1, 2, 3)Nz...)+++z+++)r?   r?         )r&   r8   r   r   r   r   )r(   r9   t3r-   r;   r3s   &     r   
test_tupleReprTests.test_tupleC   s    
1T7F
1R5+V8CR=6)
2772;! V8CR=6)
2772;!r   c           	        ^ RI H p ^ RIHp V P                  pV! \	        R)4      R4       V! \	        R*4      R4       V! \	        R+4      R4       V! \	        R,4      R4       V! \	        R-4      R4       V! \	        . 4      R4       V! \	        ^.4      R	4       V! \	        . R+O4      R
4       V! \	        . R,O4      R4       V! \	        . R-O4      R4       V! \	        \        . 4      4      R4       V! \	        \        ^.4      4      R4       V! \	        \        . R+O4      4      R4       V! \	        \        . R,O4      4      R4       V! \	        \        . R-O4      4      R4       V! \	        \        . 4      4      R4       V! \	        \        ^.4      4      R4       V! \	        \        . R+O4      4      R4       V! \	        \        . R,O4      4      R4       V! \	        \        . R-O4      4      R4       V! \	        V! . R-O4      4      R4       V! \	        / 4      R4       R^R^R^R^/pV! \	        V4      R4       ^VR&   V! \	        V4      R4       V! \	        V! R 4      4      R!4       V! \	        V! R ^.4      4      R"4       V! \	        V! R ^^.4      4      R#4       V! \	        V! R . R+O4      4      R$4       V! \	        V! R . R.O4      4      R%4       V! \	        V! R . R/O4      4      R&4       V! \	        V! R . R,O4      4      R'4       R(# )0    )array)deque()r@   rA   z(1, 2, 3, 4, 5, 6)z(1, 2, 3, 4, 5, 6, ...)z[]z[1]z	[1, 2, 3]z[1, 2, 3, 4, 5, 6]z[1, 2, 3, 4, 5, 6, ...]zset(){1}	{1, 2, 3}{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6, ...}zfrozenset()frozenset({1})frozenset({1, 2, 3})frozenset({1, 2, 3, 4, 5, 6})"frozenset({1, 2, 3, 4, 5, 6, ...})zdeque([1, 2, 3, 4, 5, 6, ...])z{}alicebobcharlesdavez/{'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}arthurz6{'alice': 1, 'arthur': 1, 'bob': 2, 'charles': 3, ...}r   z
array('i')zarray('i', [1])zarray('i', [1, 2])zarray('i', [1, 2, 3])zarray('i', [1, 2, 3, 4])zarray('i', [1, 2, 3, 4, 5])z array('i', [1, 2, 3, 4, 5, ...])Nr	   rC   rD   )r?   rE   rF            )r?   rE   rF   r^   r_   r`      )r?   rE   rF   r^   )r?   rE   rF   r^   r_   )rN   collectionsrO   r&   r8   set	frozenset)r(   rN   rO   r9   ds   &    r   test_containerReprTests.test_containerV   s   %
1R5$
1T7F
1Y<%
1 "67
1"#%>? 	1R5$
1aS65
1Y<%
1 "67
1"#%>? 	1SW:w
1S!X;
1S^k*
1S#$%';<
1S&'(*CD 	1Yr]]+
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TU 	1U()*,LM 	1R5$a9a;
1Q4BC(
1Q4IJ 	1U3Z=,'
1U3_01
1U3A "67
1U3	"#%<=
1U3%&(BC
1U3()+HI
1U3*+,5	7r   c                    V P                   pV! \        ^04      R4       V! \        0 Rm4      R4       V! \        0 Rm4      R4       V! \        0 Rm4      R4       R# )	r?   rQ   rR   rS   rT   N   r?   rE   rF      r?   rE   rF   r^   r_   r`      r?   rE   rF   r^   r_   r`   ra   r&   r8   r(   r9   s   & r   test_set_literalReprTests.test_set_literal   sM    
1aS65
1Y<%
1 "67
1"#%>?r   c                   V P                   pV! \        \        ^04      4      R4       V! \        \        0 Rm4      4      R4       V! \        \        0 Rm4      4      R4       V! \        \        0 Rm4      4      R4       R# )	r?   rU   rV   rW   rX   Nri   rj   rk   )r&   r8   rd   rm   s   & r   test_frozensetReprTests.test_frozenset   sd    
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TUr   c                l  a R F'  pV P                  \        V4      \        V4      4       K)  	  \        P                  ! 4       o^dS^,
          3 Fz  pV P                  RV 2VR7      ;_uu_ 4        ^
V,          p\        V4      R,          R,           \        V4      R	R ,           pV P                  \        V4      V4       RRR4       K|  	  V3R lpSpV P                  RV 2VR7      ;_uu_ 4        ^
V,          pV P                  \        \        V4       V P                  \        V4      V! W2^,           4      4       RRR4       S^,           ^S,          3 EF  pV P                  V^d4       V P                  RV 2VR7      ;_uu_ 4        ^
V,          pV P                  \        \        V4       V P                  \        V4      V! W2^,           4      4       RRR4       V P                  RV R2VR7      ;_uu_ 4        ^
V,          ^,
          pV P                  \        \        V4       V P                  \        V4      V! W2^,           4      4       RRR4       EK  	  R#   + '       g   i     EK(  ; i  + '       g   i     ELC; i  + '       g   i     L; i  + '       g   i     EKY  ; i)
{   z10 ** )k:N   Nr5   Nc                 D   < R V P                   P                   RV RS R2# )<z instance with roughly z digits \(limit at z\) at 0x[a-f0-9]+>)	__class____name__)nre   
max_digitss   &&r   re_msg&ReprTests.test_numbers.<locals>.re_msg   s6    --..EaS I**45GI Jr   z - 1)rt   gUUUUUU?i)
r&   r8   r   sysget_int_max_str_digitssubTestassertRaises
ValueErrorassertRegexassertGreater)r(   xru   r{   r;   r}   r|   s   &     @r   test_numbersReprTests.test_numbers   s   AQqT47+   //1
zA~&Aqcla00!G73<%/$q'#$-?  1x0 10 '	J \\F1#,!\,,aAj$2QqT6!U#34 -
 q.!j.1Aq#&qcla00!G!!*dA6  1vaQ'78 1 qc.!44!GaK !!*dA6  1vaQ'78 54 2 100 -,, 10 544s4   0AI%3AI:AJAJ!%I7:J	J!J3c                    V P                   p\        R 4      pV! \        V4      \        V4      4       \        R4      p\        V4      R,          R,           \        V4      RR ,           pV! \        V4      V4       \	        4       pV! \        V4      R\        V4      ,          4       \        \        4      pV P                  VR4       V P                  VR4       V P                  VP                  R4      ^^.4       R# )	ar3   r5   Nz&<ClassWithFailingRepr instance at %#x>z<class >  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr7   )
r&   ClassWithReprr8   r   ClassWithFailingRepridassertStartsWithassertEndsWithassertInfind)r(   r9   i1i2r;   i3r:   s   &      r   test_instanceReprTests.test_instance   s    3
1R5$r(8$8C=5(48CD>9
1R5(!#
1R5;BrFBD"#a+As#affUmb"X.r   c                B    \        R  4      pV P                  VR4       R# )c                     V # Nr	   r   s   &r   <lambda>'ReprTests.test_lambda.<locals>.<lambda>   s    1r   z0<function ReprTests.test_lambda.<locals>.<lambdaN)r   r   )r(   r8   s   & r   test_lambdaReprTests.test_lambda   s    a!STr   c                    V P                   pV! \        \        4      R 4       V P                  \        RP                  4      R4       R# )z<built-in function hash> z*<built-in method split of str object at 0xN)r&   r   hashr   splitrm   s   & r   test_builtin_functionReprTests.test_builtin_function   s7    
4:12d288n8	:r   c           	         V P                   pV! \        \        ^4      4      R4       V! \        \        ^^4      4      R4       V! \        \        ^^^4      4      R4       R# )r?   zrange(0, 1)zrange(1, 2)zrange(1, 4, 3)N)r&   r   r
   rm   s   & r   
test_rangeReprTests.test_range   sL    
4a>=)
4am,
4aA!12r   c                   V P                   pV! \        . ......4      R 4       V! \        . .......4      R4       V! \        \        ^4      4      R4       V! \        \        ^4      4      R4       V! \        \        ^4      \        ^4      /4      R4       V! \        \        ^4      \        ^4      /4      R4       V! \        / ......4      R4       V! \        / .......4      R4       R# )z[[[[[[[]]]]]]]z[[[[[[[...]]]]]]]z(((((((),),),),),),)z(((((((...),),),),),),)z&{((((((),),),),),): ((((((),),),),),)}z,{((((((...),),),),),): ((((((...),),),),),)}z[[[[[[{}]]]]]]N)r&   r8   r   rm   s   & r   test_nestingReprTests.test_nesting   s    
12$zl^./
1B4&
|n 34
1[^45
1[^78
1{1~A013	5
1{1~A019	; 	12$zl^./
1B4&
|n 34r   c                    R  pV! 4       P                   ^ ,          pV P                  \        V4      R4       V P                  \        V4      R4       R# )c                     a ^*oV3R lp V # )*   c                     < S # r   r	   r   s   r   inner4ReprTests.test_cell.<locals>.get_cell.<locals>.inner   s    r   r	   )r   r   s    @r   get_cell%ReprTests.test_cell.<locals>.get_cell   s    ALr   z6<cell at 0x[0-9A-Fa-f]+: int object at 0x[0-9A-Fa-f]+>z<cell at 0x.*\.\.\..*>N)__closure__r   r   r8   )r(   r   r   s   &  r   	test_cellReprTests.test_cell   sK    	
 J""1%a #C 	D189r   c                n   V P                   pV! \        \        P                  4      R 4        ! R R4      p\	        VP
                  4      pV P                  \        V4      RVP
                  : R24       \        VP
                  4      pV P                  \        V4      RVP
                  : R24       R# )z"<method 'items' of 'dict' objects>c                   &   a  ] tR tRt o R tRtV tR# )%ReprTests.test_descriptors.<locals>.Ci  c                    R # r   r	   )clss   &r   foo)ReprTests.test_descriptors.<locals>.C.foo  s    $r   r	   N)rz   
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   Cr     s     r   r   z<staticmethod(z)>z<classmethod(N)r&   r   dictr$   staticmethodr   classmethod)r(   r9   r   r   s   &   r   test_descriptorsReprTests.test_descriptors   s    
4

AB
	 	aN155)2">?aM!%%""=>r   c                    \        . RO4      p\        V4      pR ^R^/p\        V4       \        V4       \        V4       R# )              ?               @N)r   r   y              @)rc   rd   r8   )r(   r   yzs   &   r   test_unsortableReprTests.test_unsortable
  s9     aLBN	!	!	!r   c                   R R R\        RR7      R3\        RR7      R3\        RR7      R3\        ^ R7      R3\        ^R7      R3\        ^R7      R3\        ^^R7      R3\        RR7      R3\        R	R7      R3\        R
R7      R33
/R RR\        RR7      R3\        RR7      R3\        RR7      R3\        ^ R7      R3\        ^R7      R3\        ^R7      R3\        ^^R7      R3\        RR7      R3\        R	R7      R3\        R
R7      R33
/R ^RRRR. /.R\        RR7      R3\        RR7      R3\        RR7      R3\        ^ R7      R3\        ^R7      R3\        ^R7      R3\        ^^R7      R3\        RR7      R3\        R	R7      R3\        R
R7      R33
/R ^RRR!\        R"4      \        R#4      ../R\        RR7      R3\        RR7      R3\        RR7      R3\        ^ R7      R3\        ^R7      R3\        ^R7      R3\        ^^R7      R3\        RR7      R3\        R	R7      R3\        R
R7      R33
/.pV F  pV P                  VR ,          R7      ;_uu_ 4        VR,           F  w  r4V P                  VR7      ;_uu_ 4        \	        4       pVP                  4        F  w  rg\        WVV4       K  	  VP                  ! VR ,          4      p\        P                  ! V4      pV P                  W4       RRR4       K  	  RRR4       K  	  R#   + '       g   i     K  ; i  + '       g   i     K  ; i)$objecttestsNr    rP   FT)r    r   r   z-->z....z''spameggshamz>                        [1, 'spam', {'eggs': True, 'ham': []}]z                        [
                        1,
                        'spam',
                        {
                        'eggs': True,
                        'ham': [],
                        },
                        ]z                        [
                         1,
                         'spam',
                         {
                          'eggs': True,
                          'ham': [],
                         },
                        ]a                          [
                            1,
                            'spam',
                            {
                                'eggs': True,
                                'ham': [],
                            },
                        ]a                          [
                        -->1,
                        -->'spam',
                        -->{
                        -->-->'eggs': True,
                        -->-->'ham': [],
                        -->},
                        ]a                          [
                        ....1,
                        ....'spam',
                        ....{
                        ........'eggs': True,
                        ........'ham': [],
                        ....},
                        ]twos   threezZ                        {1: 'two', b'three': [(4.5, 6.25), [{8, 9}, frozenset({10, 11})]]}a                          {
                        1: 'two',
                        b'three': [
                        (
                        4.5,
                        6.25,
                        ),
                        [
                        {
                        8,
                        9,
                        },
                        frozenset({
                        10,
                        11,
                        }),
                        ],
                        ],
                        }aI                          {
                         1: 'two',
                         b'three': [
                          (
                           4.5,
                           6.25,
                          ),
                          [
                           {
                            8,
                            9,
                           },
                           frozenset({
                            10,
                            11,
                           }),
                          ],
                         ],
                        }a                          {
                            1: 'two',
                            b'three': [
                                (
                                    4.5,
                                    6.25,
                                ),
                                [
                                    {
                                        8,
                                        9,
                                    },
                                    frozenset({
                                        10,
                                        11,
                                    }),
                                ],
                            ],
                        }z                        {
                            1: 'two',
                            b'three': [
                                (...),
                                [...],
                            ],
                        }a                          {
                        -->1: 'two',
                        -->b'three': [
                        -->-->(
                        -->-->-->4.5,
                        -->-->-->6.25,
                        -->-->),
                        -->-->[
                        -->-->-->{
                        -->-->-->-->8,
                        -->-->-->-->9,
                        -->-->-->},
                        -->-->-->frozenset({
                        -->-->-->-->10,
                        -->-->-->-->11,
                        -->-->-->}),
                        -->-->],
                        -->],
                        }a                          {
                        ....1: 'two',
                        ....b'three': [
                        ........(
                        ............4.5,
                        ............6.25,
                        ........),
                        ........[
                        ............{
                        ................8,
                        ................9,
                        ............},
                        ............frozenset({
                        ................10,
                        ................11,
                        ............}),
                        ........],
                        ....],
                        })test_object)repr_settingsr	   )g      @g      @)   	   )
      )r   rc   rd   r   r   r$   r%   r   textwrapdedentr&   )	r(   
test_cases	test_caser   expected_reprr8   	attributevalueresulting_reprs	   &        r   test_valid_indentReprTests.test_valid_indent  s    "&-'.&-^T*^T*^T*Q/6_d+'.($/  "&-'.&-^T*^T*^T*Q/6_d+'.($/  1fvtUB&?@& )B C' *  & )  ^ &  ^ &  ^ &  Q/ 2  _ '  ' *  ( + WTWr u#Vi&9: & )^ _' * ( & ) ( ^ & ( ^ & ( ^ & ( Q/ 2  _ ' ( ' * ( ( + oktol

Z	 $I)H*=>>4=g4F4F0MMBB F0=0C0C0E,I#A%8 1F)*	(0C)D(0(F((G CB 5G ?> $ CBB ?>>s%   *)L1A0LL1L.(	L11Mc           
        ^RRRR. /.pR\         R33R	\         R33R
\        R33. \        R33R\        R33^.\        R33\        4       \        R33.pV F  w  pw  rEV P                  VR7      ;_uu_ 4        \	        4       pW6n        T;'       g    \        V4       pV P                  WE4      ;_uu_ 4        VP                  ! V4       RRR4       RRR4       K  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)r?   r   r   Tr   z[Nn]egative|[Pp]ositiveNr   r	   )r^   )	r   	TypeErrorr   r   r   r    typeassertRaisesRegexr   )r(   r   r   r    expected_errorexpected_msgr8   s   &      r   test_invalid_indentReprTests.test_invalid_indentM  s   &64";<*789*789)T"#)T"#It$%TIt$%X	4()

 7A2F2^V,,F!+@@$v,++NIIFF;' J	 -, 7A
 JI	 -,,s%   8A C48C!C4!C1,C44Dc                Z     ! R  R4      pV P                  \        V! 4       4      R4       R# )c                   &   a  ] tR tRt o R tRtV tR# )3ReprTests.test_shadowed_stdlib_array.<locals>.arrayib  c                    R # )not array.arrayr	   r(   s   &r   __repr__<ReprTests.test_shadowed_stdlib_array.<locals>.array.__repr__c  s    (r   r	   Nrz   r   r   r   r   r   r   r   s   @r   rN   r   b  s     ) )r   rN   r   Nrl   )r(   rN   s   & r   test_shadowed_stdlib_array$ReprTests.test_shadowed_stdlib_array`  s%    	) 	) 	57%67r   c                Z     ! R  R4      pV P                  \        V! 4       4      R4       R# )c                   &   a  ] tR tRt o R tRtV tR# )-ReprTests.test_shadowed_builtin.<locals>.listik  c                    R # )not builtins.listr	   r   s   &r   r   6ReprTests.test_shadowed_builtin.<locals>.list.__repr__l  s    *r   r	   Nr   r   s   @r   listr  k  s     + +r   r  r  Nrl   )r(   r  s   & r   test_shadowed_builtinReprTests.test_shadowed_builtinh  s%    	+ 	+ 	46$78r   c                     ! R  R\         4      pV! 4       pV P                  VP                  \        P                  4      R4       R# )c                   &   a  ] tR tRt o R tRtV tR# )*ReprTests.test_custom_repr.<locals>.MyReprir  c                R    VP                   R9   d   VP                   # \        V4      # )<stdin>>   r  <stderr><stdout>)namer   r(   objlevels   &&&r   repr_TextIOWrapper=ReprTests.test_custom_repr.<locals>.MyRepr.repr_TextIOWrappert  s"    88BB88OCy r   r	   N)rz   r   r   r   r  r   r   r   s   @r   MyReprr  r  s     ! !r   r  r  N)r   r&   r   r   stdin)r(   r  aReprs   &  r   test_custom_reprReprTests.test_custom_reprq  s4    	!T 	! CII.	:r   c                     ! R  R4      pV! 4       pR\        V4      n        V P                  \        V4      P                  R4        ! R R\        4      pV! 4       pV P                  VP	                  V4      R4       R# )c                       ] tR tRtRtR# )DReprTests.test_custom_repr_class_with_spaces.<locals>.TypeWithSpacesi}  r	   N)rz   r   r   r   r   r	   r   r   TypeWithSpacesr  }  s    r   r  ztype with spacesc                   &   a  ] tR tRt o R tRtV tR# )<ReprTests.test_custom_repr_class_with_spaces.<locals>.MyRepri  c                    R # )Type With Spacesr	   r  s   &&&r   repr_type_with_spacesRReprTests.test_custom_repr_class_with_spaces.<locals>.MyRepr.repr_type_with_spaces  s    )r   r	   N)rz   r   r   r   r#  r   r   r   s   @r   r  r     s     * *r   r  r"  N)r   rz   r&   r   r   )r(   r  r   r  r  s   &    r   "test_custom_repr_class_with_spaces,ReprTests.test_custom_repr_class_with_spaces|  sk    	 	 -Qa))+=>	*T 	*
 A(:;r   r	   N)rz   r   r   r   r.   r<   rJ   rf   rn   rq   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r%  r   r   r   s   @r   r   r      s|     M."&37j@V 9D/"U
:35"	:?wHr	(&89	;< <r   r   c                     \        V R RR7      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)wASCII)encodingN)openwrite)pathtextfps   && r   
write_filer0    s-    	dC'	*	*b
 
+	*	*	*s	   3A	c                      a  ] tR tRt o RtR tR tR tR tR t	]
P                  ! R4      R	 4       tR
 tR tR t]
P                  ! R4      R 4       tRtV tR# )LongReprTesti  3areallylongpackageandmodulenametotestreprtruncationc                Z   \         P                  P                  V P                  4      V n        \         P                  P                  V P                  V P                  4      V n        \        P                  ! V P                  R R7       \         P                  ! V P                  4       \        \         P                  P                  V P                  R4      4       \        P                  ! V P
                  R R7       \         P                  ! V P
                  4       \        \         P                  P                  V P
                  R4      4       \         P                  ! 4       V n        \        P                  P                  ^ V P                  4       \        P                  ! 4        R# )T)ignore_errorsz__init__.pyN)osr-  joinlongnamepkgname
subpkgnameshutilrmtreemkdirr   getcwdherer   insert	importlibinvalidate_cachesr   s   &r   setUpLongReprTest.setUp  s    ww||DMM2'',,t}}dmmDdll$7
"'',,t||]CDdooT:
!"'',,tFGIIK	499% 	##%r   c                (   . p\         P                  ! V P                  4       FC  w  r#pW4,            F1  pVP                  \         P                  P                  W%4      4       K3  	  KE  	  VP                  V P                  4       VP                  4        VP                  4        V FV  p\         P                  P                  V4      '       d   \         P                  ! V4       K@  \         P                  ! V4       KX  	  \        P                  ^  R# )rM   N)r6  walkr9  appendr-  r7  sortreverseisdirrmdirremover   )r(   actionsdirpathdirnames	filenamesr  ps   &      r   tearDownLongReprTest.tearDown  s    ,.GGDLL,A(Gy ,,rww||G:; - -B 	t||$Aww}}Q		!	 
 HHQKr   c                "   \        V P                  4      pV^\        V P                  4      ^,           ,          ,          pV\        V4      ^,           \        R4      ,           ,          pV\        \        P                  P                  R4      4      ,           \        R4      ,
          p\        P                  R8X  d"   VR8  d   V P                  RV,          4       R# \        P                  R8X  d   \        '       d   \        RV4       R# R# R# )rE   .pyzx.pynti  zDtest paths too long (%d characters) for Windows' 260 character limitzcached_path_len =N)lenr?  r8  rA  utilcache_from_sourcer6  r  skipTestr   print)r(   module_namesource_path_lencached_path_lens   &&  r   _check_path_limitations$LongReprTest._check_path_limitations  s    dii.1DMM 2Q 6773{+a/#e*<<*	0089:<?KH77d?#5 MM`+, -WW_%7 ")_r   c                   R V n         V P                  V P                  4       \        \        P
                  P                  V P                  V P                  R,           4      4       \        P                  ! 4        ^ RI
Hp TpV P                  \        V4      RVP                  : RVP                  : R24       V P                  \        \         4      R4       R # )NrU  )r3  z<module z from r   z<module 'sys' (built-in)>)maxDiffr_  r9  r   r6  r-  r7  r:  rA  rB  gareallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncationr3  r&   r   rz   __file__r   )r(   r3  modules   &  r   test_moduleLongReprTest.test_module  s    $$T\\2"'',,tu8LMN##% 	pDfQWQ`Q`'abc$?@r   c                8   V P                  R 4       V P                  p\        \        P                  P                  V P                  R4      R4       \        P                  ! 4        ^ RI	H
p V! \        VP                  4      RVP                  ,          4       R# )r   zfoo.pyzclass foo(object):
    pass
)r   z<class '%s.foo'>N)r_  r&   r0  r6  r-  r7  r:  rA  rB  rc  r   r   rz   )r(   r9   r   s   &  r   	test_typeLongReprTest.test_type  sl    $$U+277<<: = 	 	##%
4=!CLL0	2r   zneed a suitable objectc                    R # r   r	   r   s   &r   r   LongReprTest.test_object  s     	r   c                2   V P                  R 4       \        \        P                  P	                  V P
                  R4      R4       \        P                  ! 4        ^ RIH	p V P                  \        VP                  4      RVP                  ,          4       R# )barzbar.pyzclass bar:
    pass
)rn  z<class '%s.bar'>N)r_  r0  r6  r-  r7  r:  rA  rB  rc  rn  r&   r   rz   )r(   rn  s   & r   
test_classLongReprTest.test_class  se    $$U+277<<: = 	 	##%cgg(:S\\(IJr   c                >   V P                  R 4       \        \        P                  P	                  V P
                  R4      R4       \        P                  ! 4        ^ RIH	p VP                  4       pV P                  \        V4      RVP                  ,          4       R# )bazzbaz.pyzclass baz:
    pass
)rr  z<%s.baz object at 0xN)r_  r0  r6  r-  r7  r:  rA  rB  rc  rr  r   r   rz   )r(   rr  ibazs   &  r   r   LongReprTest.test_instance  sn    $$U+277<<: = 	 	##%wwyd4j"S\\1	3r   c                   V P                  R 4       V P                  p\        \        P                  P                  V P                  R4      R4       \        P                  ! 4        ^ RI	H
p \        VP                  P                  4      pV P                  VR4       VP                  4       p\        VP                  4      pV P                  VRVP                  : R24       R# )quxzqux.pyzclass aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:
    def amethod(self): pass
)rv  z<function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethodz<bound method aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod of <z.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa object at 0xN)r_  r&   r0  r6  r-  r7  r:  rA  rB  rc  rv  r   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamethodr   rz   )r(   r9   rv  r8   iquxs   &    r   test_methodLongReprTest.test_method  s    $$U+277<<: = 	 	##%  ^  ^  f  f  ga  "~  	  \  \  ^a||	 r   z1needs a built-in function with a really long namec                    R # r   r	   r   s   &r   r   "LongReprTest.test_builtin_function  s     	r   )r?  rb  r9  r:  N)rz   r   r   r   r8  rC  rR  r_  rf  ri  unittestskipr   ro  r   rz  r   r   r   r   s   @r   r2  r2    sq     DH&"8$A
2 ]]+, -
	K
3 & ]]FG Hr   r2  c                   ,   a  ] tR tRt o R tR tRtV tR# )r   i  c                    Wn         R # r   r:   )r(   r:   s   &&r   __init__ClassWithRepr.__init__  s    r   c                (    R V P                   ,          # )zClassWithRepr(%r)r  r   s   &r   r   ClassWithRepr.__repr__  s    "TVV++r   r  N)rz   r   r   r   r  r   r   r   r   s   @r   r   r     s     , ,r   r   c                   &   a  ] tR tRt o R tRtV tR# )r   i  c                    \        R 4      h)z+This should be caught by Repr.repr_instance)	Exceptionr   s   &r   r   ClassWithFailingRepr.__repr__  s    EFFr   r	   Nr   r   s   @r   r   r     s     G Gr   r   c                   J   a  ] tR tRt o RtR tR t]! 4       R 4       tRt	V t
R# )MyContaineri  z"Helper class for TestRecursiveReprc                &    \        V4      V n        R # r   )r  values)r(   r  s   &&r   r  MyContainer.__init__  s    6lr   c                <    V P                   P                  V4       R # r   )r  rG  )r(   r   s   &&r   rG  MyContainer.append  s    5!r   c                p    R RP                  \        \        V P                  4      4      ,           R,           # rx   z, r   r7  mapstrr  r   s   &r   r   MyContainer.__repr__!  &    TYYs3455;;r   )r  N)rz   r   r   r   __doc__r  rG  r   r   r   r   r   s   @r   r  r    s'     (#"< <r   r  c                   <   a  ] tR tRt o ]! R4      R 4       tRtV tR# )MyContainer2i%  rB   c                p    R RP                  \        \        V P                  4      4      ,           R,           # r  r  r   s   &r   r   MyContainer2.__repr__&  r  r   r	   Nrz   r   r   r   r   r   r   r   r   s   @r   r  r  %  s     E< <r   r  c                   D   a  ] tR tRt o R t]t]! 4       ! ]4      tRtV t	R# )MyContainer3i*  c                    R# )zTest document contentNr	   r   s   &r   r   MyContainer3.__repr__+  s    r   r	   N)
rz   r   r   r   r   wrappedr   wrapperr   r   r   s   @r   r  r  *  s      Gw'Gr   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestRecursiveRepri1  c                   \        \        R 4      4      pVP                  V4       VP                  R4       VP                  V4       V P                  \	        V4      R4       \        \        R 4      4      pVP                  V4       VP                  R4       VP                  V4       V P                  \	        V4      R4       R# )abcder   z<a, b, c, d, e, ..., x, ...>z<a, b, c, d, e, +++, x, +++>N)r  r  rG  r&   r   r  )r(   ms   & r   test_recursive_repr%TestRecursiveRepr.test_recursive_repr2  s    W&			a"@Ag'			a"@Ar   c                    ^ RI Hp \        P                  p\        P                  pV F'  pV P                  \        W44      \        W$4      4       K)  	  R# )rM   )WRAPPER_ASSIGNMENTSN)	functoolsr  r  r  r  assertIsr'   )r(   assignedr  r  r  s   &    r   test_assigned_attributes*TestRecursiveRepr.test_assigned_attributes>  s=    =&&&&DMM''0''2HI r   c                z     ! R  R4      pV P                  VP                  VP                  P                  4       R# )c                   D   a  ] tR tRt o R t]t]! 4       ! ]4      tRtV tR# ),TestRecursiveRepr.test__wrapped__.<locals>.XiF  c                    R # )zX()r	   r   s   &r   r   5TestRecursiveRepr.test__wrapped__.<locals>.X.__repr__G  s    r   r	   N)	rz   r   r   r   r   fr   r   r   r   s   @r   Xr  F  s     A%'1Hr   r  N)r  r  r   __wrapped__)r(   r  s   & r   test__wrapped__!TestRecursiveRepr.test__wrapped__E  s*    	2 	2 	acc1::112r   c                    ! R  R4      pV! 4       P                   P                  pV P                  \        V4      ^4       V P                  V^ ,          P                  R4       V P                  V^ ,          P
                  \        4       R# )c                   L   a  ] tR tRt o ]! 4       RV 3R lu4       4       tRtV tR# )1TestRecursiveRepr.test__type_params__.<locals>.MyiO  c                 :   <a R RV3R ll6;o3V VV3R lR llu6# )TrC   c                   < V ^8  d   QhS[ # )rE   r  ).formatr   s   "r   r  3TestRecursiveRepr.test__type_params__.<locals>.My.TQ  s    CCr   c                &   < V ^8  d   QhRSZRS[ /# )rE   defaultreturnr  )formatr  r   s   "r   __annotate__>TestRecursiveRepr.test__type_params__.<locals>.My.__annotate__Q  s       3 r   c                     V# r   r	   r(   r  s   &&r   r   :TestRecursiveRepr.test__type_params__.<locals>.My.__repr__P      r   r	   )	.defaultsr  r   s   &@r    <generic parameters of __repr__>RTestRecursiveRepr.test__type_params__.<locals>.My.<generic parameters of __repr__>P  s    C  r   r	   N)r   r  r   s   @r   Myr  O  s       r   r  r  N)r   __type_params__r&   rW  rz   	__bound__r  )r(   r  type_paramss   &  r   test__type_params__%TestRecursiveRepr.test__type_params__N  sh    	 	
 dmm33[)1-Q00#6Q1137r   c           	          ! R  R4      p\         P                  ! VP                  \         P                  P                  R7      pV P                  VR\        RVP                  R7      /4       R# )c                   J   a  ] tR tRt o ]! 4       RV 3R lR ll4       tRtV tR# ).TestRecursiveRepr.test_annotations.<locals>.MyiZ  c                    < V ^8  d   QhRS[ /# )rE   r  )	undefined)r  r   s   "r   r  ;TestRecursiveRepr.test_annotations.<locals>.My.__annotate__\  s      	 r   c                    V# r   r	   r  s   &&r   r   7TestRecursiveRepr.test_annotations.<locals>.My.__repr__[  r  r   r	   N).r  r   s   @r   r  r  Z  s       r   r  )r  r  r  )ownerN)annotationlibget_annotationsr   Format
FORWARDREFr&   r   )r(   r  annotationss   &  r   test_annotations"TestRecursiveRepr.test_annotationsY  sZ    	 	
 $33KK 4 4 ? ?
 	)+R[[IJ	
r   r	   N)rz   r   r   r   r  r  r  r  r  r   r   r   s   @r   r  r  1  s%     
BJ3	8
 
r   r  __main__) r  r  r   r6  r;  rA  importlib.utilr~  r   test.supportr   r   test.support.os_helperr   reprlibr   r8   r   r   r   TestCaser   r0  r2  r   r   r  r  r  r  rz   mainr	   r   r   <module>r     s   
  
 	      3 4   "n	<!! n	<`~8$$ ~@, ,G G< <<; <
( (4
)) 4
l zMMO r   