
    f9                     f   d Z ddlmZmZmZmZmZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlmZ ddlmZ  G d de      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Zde_         G d de      Z G d de      Z G d de      Zd Zd Zd Zej@                  jC                  d e" e#        e$        e#dg       e$dg       e#ddg       e$ddg       e#g d      gg d            d         Z%d! Z&d" Z'd# Z(d$ Z)d% Z* G d& d'e+      Z, G d( d)e      Z-d* Z. G d+ d,e      Z/ G d- d.e/      Z0 G d/ d0ejb                        Z2 G d1 d2e3      Z4 e4d3      Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZA G d@ dAee      ZB G dB dCe#      ZCdD ZDy)EzTests for IPython.lib.pretty.    )CounterdefaultdictdequeOrderedDictUserListNpretty)StringIOc                       e Zd Zd Zd Zy)MyListc                     || _         y N)content)selfr   s     X/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/lib/tests/test_pretty.py__init__zMyList.__init__   s	        c                 D   |r|j                  d       y |j                  ddd      5  t        | j                        D ]K  \  }}|r"|j                  d       |j	                          n|j	                  d       |j                  |       M 	 d d d        y # 1 sw Y   y xY w)NzMyList(...)   zMyList(), )textgroup	enumerater   	breakabler	   )r   pcycleichilds        r   _repr_pretty_zMyList._repr_pretty_   s    FF=!Is+ $"+DLL"9 $JQsBHHUO$$ $ $s   A$BBN)__name__
__module____qualname__r   r!    r   r   r   r      s    $r   r   c                       e Zd Zd Zy)MyDictc                 &    |j                  d       y )NMyDict(...)r   r   r   r   s      r   r!   zMyDict._repr_pretty_)       	}r   Nr"   r#   r$   r!   r%   r   r   r'   r'   (       r   r'   c                       e Zd Zd Zy)MyObjc                      y r   r%   r   s    r   
somemethodzMyObj.somemethod-   s    r   N)r"   r#   r$   r3   r%   r   r   r0   r0   ,   s    r   r0   c                       e Zd Zd Zy)Dummy1c                 &    |j                  d       y )NDummy1(...)r*   r+   s      r   r!   zDummy1._repr_pretty_2   r,   r   Nr-   r%   r   r   r5   r5   1   r.   r   r5   c                       e Zd ZdZy)Dummy2Nr-   r%   r   r   r9   r9   5   s    Mr   r9   c                       e Zd Zy)NoModuleNr"   r#   r$   r%   r   r   r;   r;   8       r   r;   c                       e Zd Zd Zy)Breakingc                     |j                  ddd      5  |j                  d       |j                          |j                  d       d d d        y # 1 sw Y   y xY w)N   zTG: :z	Breaking(r   )r   r   break_r+   s      r   r!   zBreaking._repr_pretty_>   sG    WWQvc" 	FF;HHJFF3K	 	 	s   3AANr-   r%   r   r   r?   r?   =   s    r   r?   c                       e Zd Zd Zy)BreakingReprc                      y)NzBreaking(
)r%   r2   s    r   __repr__zBreakingRepr.__repr__E   s    r   Nr"   r#   r$   rG   r%   r   r   rE   rE   D   r.   r   rE   c                       e Zd Zd Zy)BadReprc                     ddz  S )N   r   r%   r2   s    r   rG   zBadRepr.__repr__I   s    s
r   NrH   r%   r   r   rJ   rJ   H   s    r   rJ   c                      d} t        j                   t        t        |                   }ddj                  d t        |       D              z   dz   }||k(  sJ y)z"Test correct indentation in groups(   zMyList(
z,
c              3   &   K   | ]	  }d |z    yw)z   %dNr%   .0r   s     r   	<genexpr>z#test_indentation.<locals>.<genexpr>Q   s     -Pagk-Ps   r   N)r	   r   rangejoin)count	gotoutputexpectedoutputs      r   test_indentationrX   M   sO    EfU5\23I 5::-P5<-P#PPSVVN&&&r   c                  P    t        j                   t                     } d}| |k(  sJ y)z
    Test correct dispatching: The _repr_pretty_ method for MyDict
    must be found before the registered printer for dict.
    r)   N)r	   r'   rV   rW   s     r   test_dispatchr[   V   '    
 fh'I"N&&&r   c                  P    t        j                   t                     } d}| |k(  sJ y)z^
    Test that the _repr_pretty_ method is tested for callability and skipped if
    not.
    r7   N)r	   r9   rZ   s     r   test_callability_checkingr^   a   r\   r   zobj,expected_outputrL      ))zset()zfrozenset()z{1}zfrozenset({1})z{1, 2}zfrozenset({1, 2})z{-3, -2, -1}c                 <    t        j                   |       }||k(  sJ y)z>
    Test that set and frozenset use Python 3 formatting.
    Nr   )objexpected_output
got_outputs      r   	test_setsrg   l   s     6 s#J(((r   c                      t         j                  dk  rdnd} t         j                  dk  rdnd}t        j                  |       }t	        j                  |j
                        }||k(  sJ y)z:
    Test that pprint works for heap allocated types.
    )r   
   	xxlimitedxxlimited_35)r   ri      zxxlimited.Nullzxxlimited_35.NullN)sysversion_infopytestimportorskipr	   Null)module_namere   rj   outputs       r   test_pprint_heap_allocated_typert      sc     "%!1!1G!;+K,,z9?R  ##K0I]]9>>*F_$$$r   c                  D    t        j                   t              } | dk(  sJ y)z@
    Test that pprint works for classes with no __module__.
    r;   N)r	   r;   rs   s    r   test_pprint_nomodrw      s      ]]8$FZr   c                  P    t        j                   t                     } d}| |k(  sJ y)z5
    Test that p.break_ produces expected output
    zTG: Breaking(
    ):N)r	   r?   rs   expecteds     r   test_pprint_breakr{      s'     ]]8:&F&HXr   c                      t        j                   t               gg      } d}| |k(  sJ t        j                   t               gdz  g      } d}| |k(  sJ y)z,
    Test that p.break_ is used in repr
    z[[Breaking(
  )]]r_   z"[[Breaking(
  ),
  Breaking(
  )]]N)r	   rE   ry   s     r   test_pprint_break_reprr}      s[     ]]\^,-.F#HX]]\^,Q./0F6HXr   c                      t        j                  t              5  t        j                  t	                      ddd       y# 1 sw Y   yxY w)zDon't catch bad repr errorsN)ro   raisesZeroDivisionErrorr	   rJ   r%   r   r   test_bad_reprr      s2    	(	) !gi ! ! !   AA
c                       e Zd Zd Zy)BadExceptionc                      y)Nr`   r%   r2   s    r   __str__zBadException.__str__   s    r   N)r"   r#   r$   r   r%   r   r   r   r      s    r   r   c                   &    e Zd ZdZed        Zd Zy)ReallyBadReprrL   c                     t        d      )NzI am horrible)
ValueErrorr2   s    r   	__class__zReallyBadRepr.__class__   s    ))r   c                     t               r   )r   r2   s    r   rG   zReallyBadRepr.__repr__   s
    nr   N)r"   r#   r$   propertyr   rG   r%   r   r   r   r      s    J* *r   r   c                      t        j                  t              5  t        j                  t	                      d d d        y # 1 sw Y   y xY wr   )ro   r   r   r	   r   r%   r   r   test_really_bad_reprr      s1    	|	$ 'mo&' ' 'r   c                       e Zd Zy)SANr<   r%   r   r   r   r      r=   r   r   c                       e Zd Zy)SBNr<   r%   r   r   r   r      r=   r   r   c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )TestsPrettyc                     t        j                   t        t                    }| j                  |d       t	               }t        j                   t        t        |            }| j                  |d       y )Nz<super: \S+.SA, None>z$<super: \S+.SA,\s+<\S+.SB at 0x\S+>>)r	   superr   assertRegexr   )r   rs   sbr   s      r   test_super_reprzTestsPretty.test_super_repr   sT    uRy)!9: TuR}-!HIr   c                     t        t        d            }t        j                  |      }|j                  dd      dd  }| j	                  |ddg       y )N'  
r_   ra    999,z ...])listrS   r	   rsplitassertEqual)r   lisr   last2s       r   test_long_listzTestsPretty.test_long_list   sJ    5< MM#q!"#&' 23r   c                     t        t        d            }t        j                  |      }|j                  dd      dd  }| j	                  |ddg       y )Nr   r   r_   ra   r    ...})setrS   r	   r   r   )r   sr   r   s       r   test_long_setzTestsPretty.test_long_set   sJ    eMM!q!"#&' 23r   c                     t        t        d            }t        j                  |      }|j                  dd      dd  }| j	                  |ddg       y )Nr   r   r_   ra   r   z ...))tuplerS   r	   r   r   )r   tupr   r   s       r   test_long_tuplezTestsPretty.test_long_tuple   sJ    E%L!MM#q!"#&' 23r   c                     t        d      D ci c]  }|| }}t        j                  |      }|j                  dd      dd  }| j                  |ddg       y c c}w )Nr   r   r_   ra   z
 999: 999,r   )rS   r	   r   r   )r   ndr   r   s        r   test_long_dictzTestsPretty.test_long_dict   s\     <)aac))MM!q!"#&w 78 *s   
Ac                 n    t        j                   t        j                        }| j                  d|       y )NzMyObj.somemethod)r	   r0   r3   assertIn)r   rs   s     r   test_unbound_methodzTestsPretty.test_unbound_method   s%    u//0(&1r   )
r"   r#   r$   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s"    J44492r   r   c                       e Zd Zd Zd Zy)	MetaClassc                 @    t         j                  | |t        fd|i      S )Nname)type__new__object)clsr   s     r   r   zMetaClass.__new__   s    ||Cy64.AAr   c                      d| j                   z  S )Nz[CUSTOM REPR FOR CLASS %s])r   r2   s    r   rG   zMetaClass.__repr__   s    +dii77r   N)r"   r#   r$   r   rG   r%   r   r   r   r      s    B8r   r   ClassWithMetac                  D    t        j                   t              } | dk(  sJ y )Nz%[CUSTOM REPR FOR CLASS ClassWithMeta])r	   r   rv   s    r   test_metaclass_reprr     s    ]]=)F<<<<r   c                      d} |  G fddt               } |       }t        j                  |      }|| k(  sJ t        j                  |g      }|d| z  k(  sJ y )Nu
   üniçodéc                       e Zd Z fdZy)test_unicode_repr.<locals>.Cc                     S r   r%   )r   ustrs    r   rG   z%test_unicode_repr.<locals>.C.__repr__  s    Kr   NrH   )r   s   r   Cr     s    	r   r   z[%s])r   r	   )ur   cr   r   s       @r   test_unicode_reprr     s[    ADF  	
AaA6M6qcA
??r   c                  (   fdd_         t               } t        j                  |       }|j                  t
        <   |j                  t               |j                          | j                         }|dt        z  k(  sJ j                   du sJ y )Nc                 P    | t         u rd_        t        j                  | ||      S )NT)r0   calledr	   _type_pprint)rd   r   r   type_pprint_wrappers      r   r   z-test_basic_class.<locals>.type_pprint_wrapper  s(    %<)-&""3511r   Fz%s.MyObjT)
r   r
   r	   RepresentationPrintertype_pprintersr   r0   flushgetvaluer"   )streamprinterrs   r   s      @r   test_basic_classr     s    2 "'ZF**62G#6G4 NN5MMO__FZ(****%%---r   c                      t               } | j                  |        t               dft        d t        dd      D              df| dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )NzUserList([])c              3       K   | ]  }|  y wr   r%   rP   s     r   rR   z,test_collections_userlist.<locals>.<genexpr>4  s     21Q2       a@  UserList([1000,
          1001,
          1002,
          1003,
          1004,
          1005,
          1006,
          1007,
          1008,
          1009,
          1010,
          1011,
          1012,
          1013,
          1014,
          1015,
          1016,
          1017,
          1018,
          1019])zUserList([UserList(...)]))r   appendrS   r	   acasesrd   rz   s       r   test_collections_userlistr   ,  s}    
AHHQK 
^$2dD 122	
. 
'(3E6  .X}}S!X---.r   c                      t               } | | _        t        t              }||d<   t        t              dft        t        ddi      df| df|dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )Nkeyzdefaultdict(list, {})z2--------------------------------------------------z\defaultdict(list,
            {'key': '--------------------------------------------------'})z!defaultdict(defaultdict(...), {})z,defaultdict(list, {'key': defaultdict(...)}))r   default_factoryr   r	   )r   br   rd   rz   s        r   test_collections_defaultdictr   Q  s    AADAAeH 
T	34	TE8,	-
V	W 
/0	
:;E  .X}}S!X---.r   c                      t               } | | d<   t               dft        d t        dd      D              df| dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )Nr   zOrderedDict()c              3   $   K   | ]  }||f 
 y wr   r%   rP   s     r   rR   z/test_collections_ordereddict.<locals>.<genexpr>m  s     7aV7s   r   i  a  OrderedDict([(1000, 1000),
             (1001, 1001),
             (1002, 1002),
             (1003, 1003),
             (1004, 1004),
             (1005, 1005),
             (1006, 1006),
             (1007, 1007),
             (1008, 1008),
             (1009, 1009)])z(OrderedDict([('key', OrderedDict(...))]))r   rS   r	   r   s       r   test_collections_ordereddictr   f  s{    AAeH 
(	7U4%67	7	
'
	( 
67E  .X}}S!X---.r   c                      t               } | j                  |        t               dft        d t        dd      D              df| dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )Nz	deque([])c              3       K   | ]  }|  y wr   r%   rP   s     r   rR   z)test_collections_deque.<locals>.<genexpr>  s     ,Qq,r   r   r   a  deque([1000,
       1001,
       1002,
       1003,
       1004,
       1005,
       1006,
       1007,
       1008,
       1009,
       1010,
       1011,
       1012,
       1013,
       1014,
       1015,
       1016,
       1017,
       1018,
       1019])zdeque([deque(...)]))r   r   rS   r	   r   s       r   test_collections_dequer     s}    AHHQK 
+	,%d+,	,
	* 
!"/E2  .X}}S!X---.r   c                       G d dt               } t               dft        d      df | d      dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )Nc                       e Zd Zy)+test_collections_counter.<locals>.MyCounterNr<   r%   r   r   	MyCounterr     s    r   r   z	Counter()rL   )r   zCounter({'a': 1})zMyCounter({'a': 1}))r   r	   )r   r   rd   rz   s       r   test_collections_counterr     sg    G  
K 	1*+	Q./E
  .X}}S!X---.r   c            
      J   t         j                  } i } | |      }||d<   ||d<    | i       df | d  | i       i      df | t        j                  D ci c]  }||j	                          c}      df|df|dfg}|D ]  \  }}t        j
                  |      |k(  rJ  y c c}w )Nr_   r   zmappingproxy({})z&mappingproxy({None: mappingproxy({})})ap  mappingproxy({'a': 'A',
              'b': 'B',
              'c': 'C',
              'd': 'D',
              'e': 'E',
              'f': 'F',
              'g': 'G',
              'h': 'H',
              'i': 'I',
              'j': 'J',
              'k': 'K',
              'l': 'L',
              'm': 'M',
              'n': 'N',
              'o': 'O',
              'p': 'P',
              'q': 'Q',
              'r': 'R',
              's': 'S',
              't': 'T',
              'u': 'U',
              'v': 'V',
              'w': 'W',
              'x': 'X',
              'y': 'Y',
              'z': 'Z'})z1mappingproxy({2: {...}, 3: {2: {...}, 3: {...}}})z1{2: mappingproxy({2: {...}, 3: {...}}), 3: {...}})typesMappingProxyTypestringascii_lowercaseupperr	   )MPunderlying_dictmp_recursivekr   rd   rz   s          r   test_mappingproxyr     s    			BOo&L%OA(OA 
B#$	T2b6N	EF	6#9#9:aQ	\:	;
$	%6 
JK		<	>?!ED  .X}}S!X---.? ;s   B c                     t         j                  }  |        }||_        ||_         |        df |  |              df |  | t        j
                        gdz  d       df|dfg}|D ]  \  }}t        j                  |      |k(  rJ  y )	Nznamespace())xznamespace(x=namespace()))r   r   )a_long_namea_short_nameznamespace(a_long_name=[namespace(s='abcdefghijklmnopqrstuvwxyz'),
                       namespace(s='abcdefghijklmnopqrstuvwxyz'),
                       namespace(s='abcdefghijklmnopqrstuvwxyz')],
          a_short_name=None)z6namespace(first=namespace(...), second=namespace(...)))r   SimpleNamespacefirstsecondr   r   r	   )SNsn_recursiver   rd   rz   s        r   test_simplenamespacer    s    			B4L%L&L	}	bd/0	f4456q8t	L
(	)
 
OP	E  .X}}S!X---.r   c                      t        j                   t        t        j                              } | j	                  dddt        d      z  z         }t        j                   t        j                        }|d|z   k(  sJ y )Nr    environ)r	   dictosr  replacelen)	dict_reprdict_indentedenv_reprs      r   test_pretty_environr    s^    d2::./I%%dDC#i.4H,IJM}}RZZ(Hy=0000r   c                      ddl } t        j                  | j                        dk(  sJ dd}dt        j                  |      v sJ y)zTest pretty print of functionr   Nz <function posixpath.join(a, *p)>c                 
    | ryy)N*   zDon't panicr%   )questions    r   meaning_of_lifez-test_function_pretty.<locals>.meaning_of_life  s    r   zmeaning_of_life(question=None)r   )	posixpathr	   rT   )r  r  s     r   test_function_prettyr    sA     ==(,NNNN
 ,v}}_/MMMMr   c                       e Zd ZdZd Zd Zy)OrderedCounterz?Counter that remembers the order elements are first encounteredc                 L    | j                   j                  dt        |       dS )N(r   )r   r"   r   r2   s    r   rG   zOrderedCounter.__repr__  s    >>22K4EFFr   c                 2    | j                   t        |       ffS r   )r   r   r2   s    r   
__reduce__zOrderedCounter.__reduce__  s    ~~D 1333r   N)r"   r#   r$   __doc__rG   r  r%   r   r   r  r  	  s    EG4r   r  c                       e Zd Zd Zy)MySetc                      y)Nminer%   r2   s    r   rG   zMySet.__repr__  s    r   NrH   r%   r   r   r   r     s    r   r   c                      t        d      } dt        j                  |       v sJ t        j                  t                     dk(  sJ y)z@A custom repr should override a pretty printer for a parent typeabracadabrazOrderedCounter(OrderedDictr"  N)r  r	   r   )ocs    r   test_custom_reprr&    s<    		&B'6==+<<<<==!V+++r   )Er  collectionsr   r   r   r   r   r
  ro   r   r   rm   unittestIPython.libr	   ior
   r   r   r	  r'   r0   r5   r9   r;   r#   r?   rE   rJ   rX   r[   r^   markparametrizezipr   	frozensetrg   rt   rw   r{   r}   r   	Exceptionr   r   r   r   r   TestCaser   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r&  r%   r   r   <module>r1     s   # K J 	    
    $V $"T F 
V V 	v 	  v 6 f 
''' EKHqcNAKq!f	
	
.)/.)
% 
!
9 F '
	 		 	'2(## '2T8 8 /*=
.$!.J.*.2.F	.*.\.(1N"4Wk 4C ,r   