o
    hL                  	   @  s   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	 d	Zd
d ZG dd dZeeeeeeeedehZdddZdddZ dS )    )annotationsN)Callable)Iterator)StringIO)Any)IOc                   @  s&   e Zd ZdZdgZdd Zd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                 C  s
   || _ d S N)r	   )selfr	    r   S/var/www/html/openai_agents/venv/lib/python3.10/site-packages/_pytest/_io/pprint.py__init__)   s   
z_safe_key.__init__c                 C  sR   z| j |j k W S  ty(   tt| j t| j ftt|j t|j fk  Y S w r
   )r	   	TypeErrorstrtypeid)r   otherr   r   r   __lt__,   s   
z_safe_key.__lt__N)__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r   r      s
    	r   c                 C  s   t | d t | d fS )z&Helper function for comparing 2-tuplesr      )r   )tr   r   r   _safe_tuple6   s   r   c                   @  s  e Zd ZU 			dNdOddZdPddZdQddZdQddZi Zded< dQddZ	e	ee
j< dQd d!Zeeejj< dQd"d#Zeeej< dQd$d%Zeeej< dQd&d'Zeeej< eeej< dQd(d)Zeeej< dQd*d+Zeeej< dQd,d-Zeeej< dQd.d/Zeeejj< dQd0d1Zeeej j< dRd4d5Z!dRd6d7Z"dSd9d:Z#dTd;d<Z$dQd=d>Z%e%eej&j< dQd?d@Z'e'eej(j< dQdAdBZ)e)eej*j< dQdCdDZ+e+eej,j< dQdEdFZ-e-eej.j< dQdGdHZ/e/eej0j< dQdIdJZ1e1eej2j< dUdLdMZ3dS )VPrettyPrinter   P   Nindentintwidthdepth
int | NonereturnNonec                 C  sJ   |dk rt d|dur|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#   r   r   r   r   <   s   
zPrettyPrinter.__init__objectr   r   c                 C  s$   t  }| ||ddt d | S )Nr   )	_StringIO_formatsetgetvalue)r   r+   sior   r   r   pformatY   s   zPrettyPrinter.pformatstreamIO[str]	allowancecontextset[int]levelc           	   	   C  s   t |}||v r|t| d S | jt|jd }|d ur7|| || ||||||d  || d S t	
|rjt|tsj|jjrjt|jdrjd|jjjv rj|| | ||||||d  || d S || ||| d S )Nr   __wrapped____create_fn__)r   write
_recursion	_dispatchgetr   __repr__addremove_dataclassesis_dataclass
isinstance__dataclass_params__reprhasattrr8   r   _pprint_dataclass_repr)	r   r+   r2   r    r4   r5   r7   objidpr   r   r   r-   ^   s0   	


zPrettyPrinter._formatc           	        sP    j j} fddt D }||d  | |||||| |d d S )Nc                   s$   g | ]}|j r|jt |jfqS r   )rE   namegetattr).0fr+   r   r   
<listcomp>   s    z3PrettyPrinter._pprint_dataclass.<locals>.<listcomp>())	__class__r   rA   fieldsr:   _format_namespace_items	r   r+   r2   r    r4   r5   r7   cls_nameitemsr   rO   r   rG      s   	
zPrettyPrinter._pprint_dataclassz`dict[Callable[..., str], Callable[[PrettyPrinter, Any, IO[str], int, int, set[int], int], None]]r<   c           	      C  s>   |j }|d t| td}| |||||| |d d S )N{key})r:   sortedrX   r   _format_dict_items)	r   r+   r2   r    r4   r5   r7   r:   rX   r   r   r   _pprint_dict   s
   	zPrettyPrinter._pprint_dictc                 C  sR   t |s|t| d S |j}||jd  | |||||| |d d S NrQ   rR   )lenr:   rE   rS   r   r_   )r   r+   r2   r    r4   r5   r7   clsr   r   r   _pprint_ordered_dict   s   	z"PrettyPrinter._pprint_ordered_dictc                 C  ,   | d | |||||| | d d S )N[]r:   _format_itemsr   r+   r2   r    r4   r5   r7   r   r   r   _pprint_list      
	zPrettyPrinter._pprint_listc                 C  rd   r`   rg   ri   r   r   r   _pprint_tuple   rk   zPrettyPrinter._pprint_tuplec           	      C  sz   t |s|t| d S |j}|tu r|d d}n
||jd  d}t|td}| |||||| || d S )NrY   r\   z({z})rZ   )	ra   r:   rE   rS   r.   r   r]   r   rh   )	r   r+   r2   r    r4   r5   r7   typendcharr   r   r   _pprint_set   s   	
zPrettyPrinter._pprint_setc                 C  s  |j }t|s|t| d S g }|d}	|dkr"|d7 }|d7 }| j|  }
}t|	D ]x\}}t|}|t|	d krA|
|8 }
t||
krM|| q-td|}|sWJ |d r]J |	  |}d}t|D ]2\}}|| }|t|d kr|t|	d kr||8 }tt||kr|r|t| |}qi|}qi|r|t| q-t|dkr|| d S |dkr|d t|D ]\}}|dkr|dd	|   || q|dkr|d
 d S d S )NTr   z\S*\s* rQ   r   
 rR   )
r:   ra   rE   
splitlinesr*   	enumerateappendrefindallpop)r   r+   r2   r    r4   r5   r7   r:   chunkslines
max_width1	max_widthilinerepparts
max_width2currentjpart	candidater   r   r   _pprint_str   s\   	
 
zPrettyPrinter._pprint_strc                 C  s   |j }t|dkr|t| d S |dk}|r#|d7 }|d7 }|d d}	t|| j| |D ]}
||	 ||
 |	s@dd|  }	q.|rI|d d S d S )Nr   r   rQ   rq   rr   rs   rR   )r:   ra   rE   _wrap_bytes_reprr*   )r   r+   r2   r    r4   r5   r7   r:   parensdelimr   r   r   r   _pprint_bytes1  s&   	zPrettyPrinter._pprint_bytesc              	   C  s>   |j }|d | t|||d |d ||d  |d d S )Nz
bytearray(
   r   rR   )r:   r   bytes)r   r+   r2   r    r4   r5   r7   r:   r   r   r   _pprint_bytearrayN  s   	zPrettyPrinter._pprint_bytearrayc                 C  s0   | d | | ||||| | d d S )Nzmappingproxy(rR   )r:   r-   copyri   r   r   r   _pprint_mappingproxy`  s   
	z"PrettyPrinter._pprint_mappingproxyc           	      C  sV   t |tju r
d}n|jj}|j }||d  | |||||| |d d S )N	namespacerQ   rR   )	r   _typesSimpleNamespacerS   r   __dict__rX   r:   rU   rV   r   r   r   _pprint_simplenamespaceo  s   	
z%PrettyPrinter._pprint_simplenamespacerX   list[tuple[Any, Any]]c              	   C  s   |sd S |j }|| j }dd|  }	|D ]#\}
}||	 || |
|| |d | |||d|| |d q|dd|   d S )Nrr   rs   : r   ,)r:   r)   rH   r-   r   rX   r2   r    r4   r5   r7   r:   item_indentdelimnlr[   entr   r   r   r^     s   	

z PrettyPrinter._format_dict_itemsc              	   C  s   |sd S |j }|| j }dd|  }	|D ]/\}
}||	 ||
 |d t||v r/|d n| |||t|
 d d|| |d q|dd|   d S )Nrr   rs   =...r   r   )r:   r)   r   r-   ra   r   r   r   r   rU     s*   	


	z%PrettyPrinter._format_namespace_items	list[Any]c              	   C  sf   |sd S |j }|| j }dd|  }	|D ]}
||	 | |
||d|| |d q|dd|   d S )Nrr   rs   r   r   )r:   r)   r-   )r   rX   r2   r    r4   r5   r7   r:   r   r   itemr   r   r   rh     s   	

zPrettyPrinter._format_itemsc                 C  s   |  || | j|S r
   )
_safe_reprr   r(   )r   r+   r5   r7   r   r   r   rH     s   zPrettyPrinter._reprc                 C  sL   |  |j||}||jj d| d | |||||| |d d S )NrQ   , rR   )rH   default_factoryr:   rS   r   r_   )r   r+   r2   r    r4   r5   r7   rdfr   r   r   _pprint_default_dict  s   	z"PrettyPrinter._pprint_default_dictc                 C  sT   | |jjd  |r#| d | }| |||||| | d | d d S )NrQ   rY   r\   rR   )r:   rS   r   most_commonr^   )r   r+   r2   r    r4   r5   r7   rX   r   r   r   _pprint_counter  s   	

zPrettyPrinter._pprint_counterc                 C  sn   t |jrt |jdkrt |jd s|t| d S ||jjd  | |j||||| |d d S )Nr   r   rQ   rR   )ra   mapsr:   rE   rS   r   rh   ri   r   r   r   _pprint_chain_map  s   &	zPrettyPrinter._pprint_chain_mapc                 C  s`   | |jjd  |jd ur| d|j d | d | ||||d || | d d S )NrQ   zmaxlen=r   re   r   z]))r:   rS   r   maxlenrh   ri   r   r   r   _pprint_deque  s   	

zPrettyPrinter._pprint_dequec              	   C     |  |j|||||d  d S Nr   r-   datari   r   r   r   _pprint_user_dict'     	zPrettyPrinter._pprint_user_dictc              	   C  r   r   r   ri   r   r   r   _pprint_user_list4  r   zPrettyPrinter._pprint_user_listc              	   C  r   r   r   ri   r   r   r   _pprint_user_stringA  r   z!PrettyPrinter._pprint_user_string	maxlevelsc                 C  s  t |}|tv rt|S t|dd }t|tru|tju ru|s dS t|}|r,||kr,dS ||v r4t|S |	| g }|j
}	|d7 }t| tdD ]\}
}| |
|||}| ||||}|	| d|  qJ|| dd|S t|tr|tju st|tr|tju rt|tr|sd	S d
}nt|dkrd}n|sdS d}t|}|r||kr|d S ||v rt|S |	| g }|j
}	|d7 }|D ]}| ||||}|	| q|| |d| S t|S )Nr>   z{}z{...}r   rZ   r   z{{{}}}r   z[]z[%s]z(%s,)z()z(%s)r   )r   _builtin_scalarsrE   rL   
issubclassdictr>   r   r;   r?   rv   r]   rX   r   r   r@   formatjoinlisttuplera   )r   r+   r5   r   r7   rm   rrI   
componentsrv   kvkreprvreprr   ooreprr   r   r   r   N  sd   






zPrettyPrinter._safe_repr)r   r   N)r    r!   r"   r!   r#   r$   r%   r&   r+   r   r%   r   )r+   r   r2   r3   r    r!   r4   r!   r5   r6   r7   r!   r%   r&   )rX   r   r2   r3   r    r!   r4   r!   r5   r6   r7   r!   r%   r&   )rX   r   r2   r3   r    r!   r4   r!   r5   r6   r7   r!   r%   r&   )r+   r   r5   r6   r7   r!   r%   r   )
r+   r   r5   r6   r   r$   r7   r!   r%   r   )4r   r   r   r   r1   r-   rG   r<   __annotations__r_   r   r>   rc   _collectionsOrderedDictrj   r   rl   r   ro   r.   	frozensetr   r   r   r   r   	bytearrayr   r   MappingProxyTyper   r   r^   rU   rh   rH   r   defaultdictr   Counterr   ChainMapr   dequer   UserDictr   UserListr   
UserStringr   r   r   r   r   r   ;   sd   
 


$












9








%







r   r+   r   r%   r   c                 C  s   dt | j dt|  dS )Nz<Recursion on z	 with id=>)r   r   r   rO   r   r   r   r;     s   r;   r"   r!   r4   Iterator[str]c                 c  s    d}t | d d }tdt | dD ]*}| ||d  }|| }||kr)||8 }t t||kr;|r8t|V  |}q|}q|rGt|V  d S d S )N    r   r   )ra   rangerE   )r+   r"   r4   r   lastr~   r   r   r   r   r   r     s    
r   r   )r+   r   r"   r!   r4   r!   r%   r   )!
__future__r   collectionsr   collections.abcr   r   dataclassesrA   ior   r,   rw   typesr   typingr   r   r   r   r   r   r   r   r   floatcomplexboolr   r!   r   r;   r   r   r   r   r   <module>   s,       R
