
    F-PhL                        d dl mZ d dlZd dlmZ d dlmZ d dlZd dl	m
Z d dlZd dlZd dlmZ d dlmZ  G d d	          Zd
 Z G d d          Z eeeeeee ed          eh          ZddZddZ dS )    )annotationsN)Callable)Iterator)StringIO)Any)IOc                  $    e Zd ZdZdgZd Zd ZdS )	_safe_keyaU  Helper function for key functions when sorting unorderable objects.

    The wrapped-object will fallback to a Py2.x style comparison for
    unorderable types (sorting first comparing the type name and then by
    the obj ids).  Does not work recursively, so dict.items() must have
    _safe_key applied to both the key and the value.

    objc                    || _         d S N)r   )selfr   s     R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/_pytest/_io/pprint.py__init__z_safe_key.__init__)   s        c                   	 | j         |j         k     S # t          $ ro t          t          | j                             t	          | j                   ft          t          |j                             t	          |j                   fk     cY S w xY wr   )r   	TypeErrorstrtypeid)r   others     r   __lt__z_safe_key.__lt__,   s    	8ei'' 	 	 	TX''DH6DOO$$59:    	s    A6B
BN)__name__
__module____qualname____doc__	__slots__r   r    r   r   r
   r
      sE          I      r   r
   c                V    t          | d                   t          | d                   fS )z&Helper function for comparing 2-tuplesr      )r
   )ts    r   _safe_tupler"   6   s!    QqT??IadOO++r   c                     e Zd ZU 	 	 	 d4d5dZd6dZd7dZd7dZi Zded<   d7dZ	e	ee
j        <   d7dZeeej        j        <   d7dZeeej        <   d7dZeeej        <   d7dZeeej        <   eeej        <   d7dZeeej        <   d7d Zeeej        <   d7d!Zeeej        <   d7d"Zeeej        j        <   d7d#Zeeej         j        <   d8d&Z!d8d'Z"d9d)Z#d:d*Z$d7d+Z%e%eej&        j        <   d7d,Z'e'eej(        j        <   d7d-Z)e)eej*        j        <   d7d.Z+e+eej,        j        <   d7d/Z-e-eej.        j        <   d7d0Z/e/eej0        j        <   d7d1Z1e1eej2        j        <   d;d3Z3dS )<PrettyPrinter   P   Nindentintwidthdepth
int | NonereturnNonec                    |dk     rt          d          ||dk    rt          d          |st          d          || _        || _        || _        dS )aT  Handle pretty printing operations onto a stream using a set of
        configured parameters.

        indent
            Number of spaces to indent for each level of nesting.

        width
            Attempted maximum number of columns in the output.

        depth
            The maximum depth to print out nested structures.

        r   zindent must be >= 0Nzdepth must be > 0zwidth must be != 0)
ValueError_depth_indent_per_level_width)r   r'   r)   r*   s       r   r   zPrettyPrinter.__init__<   sj    & A::2333!0111 	31222!'r   objectr   r   c                    t                      }|                     ||ddt                      d           |                                S )Nr   )	_StringIO_formatsetgetvalue)r   r3   sios      r   pformatzPrettyPrinter.pformatY   s9    kkVS!Qq111||~~r   streamIO[str]	allowancecontextset[int]levelc           
        t          |          }||v r$|                    t          |                     d S | j                            t          |          j        d           }|@|                    |            || ||||||dz              |                    |           d S t          j
        |          rt          |t
                    s}|j        j        rqt          |j        d          r\d|j        j        j        v rI|                    |           |                     ||||||dz              |                    |           d S |                    |                     |||                     d S )Nr    __wrapped____create_fn__)r   write
_recursion	_dispatchgetr   __repr__addremove_dataclassesis_dataclass
isinstance__dataclass_params__reprhasattrrB   r   _pprint_dataclass_repr)	r   r3   r;   r'   r=   r>   r@   objidps	            r   r6   zPrettyPrinter._format^   s    6

GLLF++,,,FNtF||4d;;=KKAdFFFIw	JJJNN5!!!!!%f--	=vt,,	= +0	= FO]33	=  6?#>#KKKKK""	7EAI   NN5!!!!!LLFGU;;<<<<<r   c                    j         j        }fdt          j                  D             }|                    |dz              |                     ||||||           |                    d           d S )Nc                V    g | ]%}|j         	|j        t          |j                  f&S r   )rO   namegetattr).0fr3   s     r   
<listcomp>z3PrettyPrinter._pprint_dataclass.<locals>.<listcomp>   sD     
 
 
v
VWVQV,,-
 
 
r   ())	__class__r   rK   fieldsrD   _format_namespace_items	r   r3   r;   r'   r=   r>   r@   cls_nameitemss	    `       r   rQ   zPrettyPrinter._pprint_dataclass   s     #,
 
 
 
!(00
 
 

 	X^$$$$$UFFIwPUVVVSr   z`dict[Callable[..., str], Callable[[PrettyPrinter, Any, IO[str], int, int, set[int], int], None]]rF   c                    |j         } |d           t          |                                t                    }|                     ||||||            |d           d S )N{key})rD   sortedrc   r"   _format_dict_items)	r   r3   r;   r'   r=   r>   r@   rD   rc   s	            r   _pprint_dictzPrettyPrinter._pprint_dict   sa     c


v||~~;777vvy'5QQQc




r   c                   t          |          s$|                    t          |                     d S |j        }|                    |j        dz              |                     ||||||           |                    d           d S Nr\   r]   )lenrD   rO   r^   r   rk   )r   r3   r;   r'   r=   r>   r@   clss           r   _pprint_ordered_dictz"PrettyPrinter._pprint_ordered_dict   s     6{{ 	LLf&&&FS\C'(((&&&)WeLLLSr   c                    |                     d           |                     ||||||           |                     d           d S )N[]rD   _format_itemsr   r3   r;   r'   r=   r>   r@   s          r   _pprint_listzPrettyPrinter._pprint_list   L     	S6669guMMMSr   c                    |                     d           |                     ||||||           |                     d           d S rm   rt   rv   s          r   _pprint_tuplezPrettyPrinter._pprint_tuple   rx   r   c                   t          |          s$|                    t          |                     d S |j        }|t          u r|                    d           d}n|                    |j        dz              d}t          |t                    }|                     ||||||           |                    |           d S )Nre   rh   z({z})rf   )	rn   rD   rO   r^   r7   r   ri   r
   ru   )	r   r3   r;   r'   r=   r>   r@   typendchars	            r   _pprint_setzPrettyPrinter._pprint_set   s     6{{ 	LLf&&&F#::LLGGLL,---GI...6669guMMMWr   c                |   |j         }t          |          s |t          |                     d S g }|                    d          }	|dk    r
|dz  }|dz  }| j        |z
  x}
}t          |	          D ]L\  }}t          |          }|t          |	          dz
  k    r|
|z  }
t          |          |
k    r|                    |           Yt          j        d|          }|sJ |d         rJ |	                                 |}d}t          |          D ]\  }}||z   }|t          |          dz
  k    r|t          |	          dz
  k    r||z  }t          t          |                    |k    r'|r"|                    t          |                     |}|}|r"|                    t          |                     Nt          |          dk    r ||           d S |dk    r |d           t          |          D ]'\  }}|dk    r |dd	|z  z               ||           (|dk    r |d
           d S d S )NTr    z\S*\s* r\   r   
 r]   )
rD   rn   rO   
splitlinesr2   	enumerateappendrefindallpop)r   r3   r;   r'   r=   r>   r@   rD   chunkslines
max_width1	max_widthilinerepparts
max_width2currentjpart	candidates                        r   _pprint_strzPrettyPrinter._pprint_str   s    6{{ 	E$v,,F!!$''A::aKFNI!%v!55
Y '' 	1 	1GAtt**CCJJN""i'
3xx:%%c"""" 
9d33 9$$$		&
(// 	, 	,GAt '$ICJJN**qCJJN/B/B"i/
4	??++j88" 9"MM$w--888"&"+ 1MM$w--000v;;!E#JJJFA::E#JJJ'' 	 	FAs1uudS6\)***E#JJJJA::E#JJJJJ :r   c                B   |j         }t          |          dk    r |t          |                     d S |dk    }|r|dz  }|dz  } |d           d}	t          || j        |z
  |          D ]"}
 ||	            ||
           |	sdd|z  z   }	#|r |d           d S d S )Nr%   r    r\   r   r   r   r]   )rD   rn   rO   _wrap_bytes_reprr2   )r   r3   r;   r'   r=   r>   r@   rD   parensdelimr   s              r   _pprint_byteszPrettyPrinter._pprint_bytes1  s     v;;!E$v,,F! 	aKFNIE#JJJ#FDK&,@)LL 	, 	,CE%LLLE#JJJ ,sV|+ 	E#JJJJJ	 	r   c           	         |j         } |d           |                     t          |          ||dz   |dz   ||dz               |d           d S )Nz
bytearray(
   r    r]   )rD   r   bytes)r   r3   r;   r'   r=   r>   r@   rD   s           r   _pprint_bytearrayzPrettyPrinter._pprint_bytearrayN  sf     l&MM66B;	AwPQ		
 	
 	
 	c




r   c                    |                     d           |                     |                                |||||           |                     d           d S )Nzmappingproxy(r]   )rD   r6   copyrv   s          r   _pprint_mappingproxyz"PrettyPrinter._pprint_mappingproxy`  sR     	_%%%V[[]]FFIwNNNSr   c                   t          |          t          j        u rd}n|j        j        }|j                                        }|                    |dz              |                     ||||||           |                    d           d S )N	namespacer\   r]   )	r   _typesSimpleNamespacer^   r   __dict__rc   rD   r`   ra   s	            r   _pprint_simplenamespacez%PrettyPrinter._pprint_simplenamespaceo  s     <<6111 #HH'0H%%''X^$$$$$UFFIwPUVVVSr   rc   list[tuple[Any, Any]]c           	     (   |sd S |j         }|| j        z   }dd|z  z   }	|D ]`\  }
} ||	            ||                     |
||                      |d           |                     |||d||            |d           a |dd|z  z              d S )Nr   r   : r    ,)rD   r1   rR   r6   r   rc   r;   r'   r=   r>   r@   rD   item_indentdelimnlrg   ents               r   rj   z PrettyPrinter._format_dict_items  s      	Ft55{** 	 	HCE'NNNE$**S'511222E$KKKLLfk1guEEEE#JJJJdS6\!"""""r   c           	     ^   |sd S |j         }|| j        z   }dd|z  z   }	|D ]{\  }
} ||	            ||
            |d           t          |          |v r |d           n-|                     |||t	          |
          z   dz   d||            |d           | |dd|z  z              d S )Nr   r   =...r    r   )rD   r1   r   r6   rn   r   s               r   r`   z%PrettyPrinter._format_namespace_items  s      	Ft55{** 	 	HCE'NNNE#JJJE#JJJ#ww'!! e#c((*Q.   E#JJJJdS6\!"""""r   	list[Any]c           	         |sd S |j         }|| j        z   }dd|z  z   }	|D ]2}
 ||	           |                     |
||d||            |d           3 |dd|z  z              d S )Nr   r   r    r   )rD   r1   r6   )r   rc   r;   r'   r=   r>   r@   rD   r   r   items              r   ru   zPrettyPrinter._format_items  s      	Ft55{** 	 	DE'NNNLLv{AwFFFE#JJJJdS6\!"""""r   c                `    |                      ||                                | j        |          S r   )
_safe_reprr   r0   )r   r3   r>   r@   s       r   rR   zPrettyPrinter._repr  s$    vw||~~t{EJJJr   c                    |                      |j        ||          }|                    |j        j         d| d           |                     ||||||           |                    d           d S )Nr\   , r]   )rR   default_factoryrD   r^   r   rk   )r   r3   r;   r'   r=   r>   r@   rdfs           r   _pprint_default_dictz"PrettyPrinter._pprint_default_dict  s{     jj/%@@(1;;C;;;<<<&&&)WeLLLSr   c                (   |                     |j        j        dz              |rX|                     d           |                                }|                     ||||||           |                     d           |                     d           d S )Nr\   re   rh   r]   )rD   r^   r   most_commonrj   )r   r3   r;   r'   r=   r>   r@   rc   s           r   _pprint_counterzPrettyPrinter._pprint_counter  s     	V%.4555 	LL&&((E##E669guUUULLSr   c                   t          |j                  r2t          |j                  dk    r>t          |j        d                   s$|                    t          |                     d S |                    |j        j        dz              |                     |j        |||||           |                    d           d S )Nr    r   r\   r]   )rn   mapsrD   rO   r^   r   ru   rv   s          r   _pprint_chain_mapzPrettyPrinter._pprint_chain_map  s     6; 	C$4$4$9$9#fkRSnBUBU$9LLf&&&FV%.45556;	7ERRRSr   c                "   |                     |j        j        dz              |j        |                     d|j         d           |                     d           |                     ||||dz   ||           |                     d           d S )Nr\   zmaxlen=r   rr   r    z]))rD   r^   r   maxlenru   rv   s          r   _pprint_dequezPrettyPrinter._pprint_deque  s     	V%.4555=$LL46=444555S6669q='5QQQTr   c           	     J    |                      |j        |||||dz
             d S Nr    r6   datarv   s          r   _pprint_user_dictzPrettyPrinter._pprint_user_dict'  ,     	V[&&)WeaiPPPPPr   c           	     J    |                      |j        |||||dz
             d S r   r   rv   s          r   _pprint_user_listzPrettyPrinter._pprint_user_list4  r   r   c           	     J    |                      |j        |||||dz
             d S r   r   rv   s          r   _pprint_user_stringz!PrettyPrinter._pprint_user_stringA  r   r   	maxlevelsc                   t          |          }|t          v rt          |          S t          |dd           }t	          |t
                    r|t
          j        u r|sdS t          |          }|r||k    rdS ||v rt          |          S |	                    |           g }|j
        }	|dz  }t          |                                t                    D ]E\  }
}|                     |
|||          }|                     ||||          } |	| d|            F|                    |           d                    d                    |                    S t	          |t$                    r|t$          j        u s#t	          |t&                    r|t&          j        u rt	          |t$                    r|sd	S d
}nt)          |          dk    rd}n|sdS d}t          |          }|r||k    r|dz  S ||v rt          |          S |	                    |           g }|j
        }	|dz  }|D ]%}|                     ||||          } |	|           &|                    |           |d                    |          z  S t          |          S )NrH   z{}z{...}r    rf   r   z{{{}}}r   z[]z[%s]z(%s,)z()z(%s)r   )r   _builtin_scalarsrO   rX   
issubclassdictrH   r   rE   rI   r   ri   rc   r"   r   rJ   formatjoinlisttuplern   )r   r3   r>   r   r@   r|   rrS   
componentsr   kvkreprvreprr   ooreprs                    r   r   zPrettyPrinter._safe_reprN  s    6ll"""<<CT**c4   	:Q$-%7%7 tvJJE Ui//w!&)))KK$&J&FQJEv||~~;??? , ,17IuEE7IuEE%**5**++++NN5!!!??499Z#8#8999sD!! 	2a4=&8&8sE"" '9'(EN':':#t$$ 	   4V!!   4vJJE &Ui//~%!&)))KKJ&FQJE  7IuEEuNN5!!!DIIj1111F||r   )r%   r&   N)r'   r(   r)   r(   r*   r+   r,   r-   r3   r   r,   r   )r3   r   r;   r<   r'   r(   r=   r(   r>   r?   r@   r(   r,   r-   )rc   r   r;   r<   r'   r(   r=   r(   r>   r?   r@   r(   r,   r-   )rc   r   r;   r<   r'   r(   r=   r(   r>   r?   r@   r(   r,   r-   )r3   r   r>   r?   r@   r(   r,   r   )
r3   r   r>   r?   r   r+   r@   r(   r,   r   )4r   r   r   r   r:   r6   rQ   rF   __annotations__rk   r   rH   rp   _collectionsOrderedDictrw   r   rz   r   r~   r7   	frozensetr   r   r   r   r   	bytearrayr   r   MappingProxyTyper   r   rj   r`   ru   rR   r   defaultdictr   Counterr   ChainMapr   dequer   UserDictr   UserListr   
UserStringr   r   r   r   r$   r$   ;   s          	    :   
"= "= "= "=H   , 	     
     ,Idm   " 4HIl&/0     ,Idm    !.Ien   . *Icl$/Ii !7 7 7 7r *Icl   6 !.Ien     %6Ii !    3GIf%./   ( 2IIf$-.# # # #0## ## ## ##J# # # #.K K K K    4HIl&/0   & 0?Il"+,   " 1BIl#,-   " .;Il )*	Q 	Q 	Q 	Q 1BIl#,-	Q 	Q 	Q 	Q 1BIl#,-	Q 	Q 	Q 	Q 3FIl%./8 8 8 8 8 8r   r$   r3   r   r,   r   c                R    dt          |           j         dt          |            dS )Nz<Recursion on z	 with id=>)r   r   r   )r3   s    r   rE   rE     s*    IDLL1IIBvJJIIIIr   r)   r(   r=   Iterator[str]c              #  N  K   d}t          |           dz  dz  }t          dt          |           d          D ]W}| ||dz            }||z   }||k    r||z  }t          t          |                    |k    r|rt          |          V  |}U|}X|rt          |          V  d S d S )Nr   r%   r   )rn   rangerO   )r3   r)   r=   r   lastr   r   r   s           r   r   r     s      Gv;;!aD1c&kk1%% 
  
 a!a%i dN	99YEtI%'' $7mm###GGGG 7mm r   r   )r3   r   r)   r(   r=   r(   r,   r   )!
__future__r   collectionsr   collections.abcr   r   dataclassesrK   ior   r5   r   typesr   typingr   r   r
   r"   r$   r   r   r   r   floatcomplexboolr   r(   r   rE   r   r   r   r   <module>r     sn    # " " " " " " " " " $ $ $ $ $ $ $ $ $ $ $ $ " " " " $ $ $ $ $ $ 				                       2, , ,
K	 K	 K	 K	 K	 K	 K	 K	\ 9%E7D$$t**cB  
J J J J     r   