Ë
    äØjjß%  ã                   óD  — d dl mZ d dlZd dlmZmZmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddl m!Z!m"Z" de#de#fd„Z$ G d„ de«      Z%dee&ee
   f   dee'df   fd„Z(de&dee#   fd„Z)de&dee#   de*fd„Z+y)é    )Úabsolute_importN)ÚcleandocÚgetdocÚgetfileÚisclassÚismoduleÚ	signature)ÚAnyÚ
CollectionÚIterableÚOptionalÚTupleÚTypeÚUnioné   )ÚGroupÚRenderableType)Úescape_control_codes)ÚReprHighlighter)ÚJupyterMixin)ÚPanel)ÚPretty)ÚTable)ÚTextÚTextTypeÚdocÚreturnc                 ó0   — | j                  d«      \  }}}|S )z)Get the first paragraph from a docstring.z

)Ú	partition)r   Ú	paragraphÚ_s      ú[/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.pyÚ_first_paragraphr#      s   € à—m‘m FÓ+�O€Iˆq�!ØÐó    c                   ó¾   — e Zd ZdZddddddddddœ	dedee   ded	ed
ededededededdfd„Zdede	fd„Z
defd„Zdededee	   fd„Zdee   fd„Zdedee   fd„Zy)ÚInspecta‰  A renderable to inspect any Python Object.

    Args:
        obj (Any): An object to inspect.
        title (str, optional): Title to display over inspect result, or None use type. Defaults to None.
        help (bool, optional): Show full help text rather than just first paragraph. Defaults to False.
        methods (bool, optional): Enable inspection of callables. Defaults to False.
        docs (bool, optional): Also render doc strings. Defaults to True.
        private (bool, optional): Show private attributes (beginning with underscore). Defaults to False.
        dunder (bool, optional): Show attributes starting with double underscore. Defaults to False.
        sort (bool, optional): Sort attributes alphabetically. Defaults to True.
        all (bool, optional): Show all attributes. Defaults to False.
        value (bool, optional): Pretty print value of object. Defaults to True.
    NFT)	ÚtitleÚhelpÚmethodsÚdocsÚprivateÚdunderÚsortÚallÚvalueÚobjr'   r(   r)   r*   r+   r,   r-   r.   r/   r   c       	         óæ   — t        «       | _        || _        |xs | j                  |«      | _        |	rdx}x}}|| _        || _        |xs || _        |xs || _        || _	        || _
        |
| _        y )NT)r   Úhighlighterr0   Ú_make_titler'   r(   r)   r*   r+   r,   r-   r/   )Úselfr0   r'   r(   r)   r*   r+   r,   r-   r.   r/   s              r"   Ú__init__zInspect.__init__'   sy   € ô +Ó,ˆÔØˆŒØÒ3˜d×.Ñ.¨sÓ3ˆŒ
ÙØ)-Ð-ˆGÐ-�g ØˆŒ	ØˆŒØ’L˜DˆŒ	ØÒ( &ˆŒØˆŒØˆŒ	Øˆ�
r$   c                 ó¨   — t        |«      st        |«      st        |«      rt        |«      nt        t	        |«      «      }| j                  |«      }|S )zMake a default title.)r   Úcallabler   ÚstrÚtyper2   )r4   r0   Ú	title_strÚ
title_texts       r"   r3   zInspect._make_titleB   sH   € ô ˜”¤¨¤´¸#´ô �ŒHä”T˜#“Y“ð 	ð
 ×%Ñ% iÓ0ˆ
ØÐr$   c                 óp   — t        j                  t        | j                  «       Ž | j                  dd¬«      S )Nzscope.border©r   r   )r'   Úborder_styleÚpadding)r   Úfitr   Ú_renderr'   )r4   s    r"   Ú__rich__zInspect.__rich__L   s.   € Ü�y‰yÜ�4—<‘<“>Ð"Ø—*‘*Ø'Øô	
ð 	
r$   Únamec                 ó  — 	 t        t        |«      «      dz   }d}	 t	        |«      }t        |d¬«      }|r|j                  d|› �«       | j                  |«      }|xs t        |d|«      }t        j                  |«      rd}nt        j                  |«      rd	}nd
}t        j                  |› d�d|j                  dd«      › �f|df|«      }	|	S # t        $ r d}Y ŒÅt        $ r Y yw xY w# t
        t        f$ r Y ŒÖw xY w)zGet a signature for a callable.ú:z(...)Nzinspect.callable©Ústylezlink file://Ú__qualname__Úclassz	async defÚdefú zinspect.r!   )r8   r	   Ú
ValueErrorÚ	TypeErrorr   ÚOSErrorr   Ústylizer2   ÚgetattrÚinspectr   ÚiscoroutinefunctionÚassembleÚreplace)
r4   rC   r0   Ú
_signatureÚsource_filenameÚcallable_nameÚsignature_textÚqualnameÚprefixÚqual_signatures
             r"   Ú_get_signaturezInspect._get_signatureT   s"  € ð	ÜœY s›^Ó,¨sÑ2ˆJð *.ˆð	Ü% c›lˆOô
 ˜TÐ);Ô<ˆÙØ×!Ñ! L°Ð0AÐ"BÔCØ×)Ñ)¨*Ó5ˆàÒ=œ7 3¨¸Ó=ˆô �?‰?˜3ÔØ‰FÜ×(Ñ(¨Ô-Ø ‰FàˆFäŸ™Øˆx�qˆ\˜X f§n¡n°S¸#Ó&>Ð%?Ð@ÐAØÐ)Ð*Øó
ˆð ÐøôC ò 	!Ø ŠJÜò 	Ùð	ûô œÐ#ò 	áð	ús(   ‚C œC, ÃC)ÃC)Ã(C)Ã,C>Ã=C>c           	   #   óè  ‡K  — dt         t        t        f   dt         t        t        f   fd„}dt        dt         t        t        f   fˆfd„}| j                  Št        ‰«      }t        |«      }| j                  s!|D �cg c]  }|j                  d«      rŒ|‘Œ }}| j                  s!|D �cg c]  }|j                  d«      rŒ|‘Œ }}|t        |«      z
  }|D �cg c]  }| ||«      f‘Œ }}| j                  r|j                  |¬«       t        j                  d	d
¬«      }|j                  d¬«       |j                  }	| j                  }
t!        ‰«      r| j#                  d‰«      }|�|–— d–— | j$                  r0| j'                  ‰«      }|�t)        |d¬«      } |
|«      }|–— d–— | j*                  rAt-        ‰«      s6t!        ‰«      s+t/        ‰«      s t1        t3        ‰ddd¬«      d¬«      –— d–— |D �]0  \  }\  }}t)        j4                  ||j                  d«      rdndfd«      }|�:|j7                  «       }|j9                  d«        |	| |
t;        |«      «      «       Œqt!        |«      r¡| j<                  sŒ‰| j#                  ||«      }|€ |	|t3        ||
¬«      «       Œ²| j$                  rT| j'                  |«      }|�A|j?                  d|v rdnd«        |
|«      }|j9                  d«       |j?                  |«        |	||«       �Œ |	|t3        ||
¬«      «       �Œ3 |j@                  r|–— y|rt)        jB                  d |› d!�«      –— yyc c}w c c}w c c}w ­w)"zRender object.Úitemr   c                 óf   — | \  }\  }}t        |«      |j                  d«      j                  «       fS )Nr!   )r7   ÚstripÚlower)r^   ÚkeyÚ_errorr/   s       r"   Ú
sort_itemsz#Inspect._render.<locals>.sort_items~   s0   € Ø#'Ñ ˆC‘�&˜%Ü˜U“O S§Y¡Y¨s£^×%9Ñ%9Ó%;Ð<Ð<r$   Ú	attr_namec                 óV   •— 	 dt        ‰| «      fS # t        $ r}|dfcY d}~S d}~ww xY w)zGet attribute or any exception.N)rP   Ú	Exception)re   Úerrorr0   s     €r"   Úsafe_getattrz%Inspect._render.<locals>.safe_getattr‚   s4   ø€ ð%Øœg c¨9Ó5Ð6Ð6øÜò %Ø˜t�}Õ$ûð%ús   ƒ ‘	(š#�(£(Ú__r!   )rb   r=   F)r?   ÚexpandÚright)ÚjustifyÚ Nzinspect.helprF   Té
   é<   )Úindent_guidesÚ
max_lengthÚ
max_stringzinspect.value.border)r>   zinspect.attr.dunderzinspect.attr)z =zinspect.equalszinspect.error)r2   ú
rK   zinspect.docz[b cyan]za[/][i] attribute(s) not shown.[/i] Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options.)"r   r8   r
   Úboolr0   ÚdirÚlenr,   Ú
startswithr+   r-   r   ÚgridÚ
add_columnÚadd_rowr2   r7   r\   r*   Ú_get_formatted_docr   r/   r   r   r   r   rS   ÚcopyrO   Úreprr)   ÚappendÚ	row_countÚfrom_markup)r4   rd   ri   ÚkeysÚtotal_itemsrb   Únot_shown_countÚitemsÚitems_tabler{   r2   r	   Ú_docÚdoc_textrh   r/   Úkey_textÚwarningÚ_signature_textr*   r   r0   s                        @r"   rA   zInspect._render{   s>  øè ø€ ð	=œU¤3¬ 8™_ð 	=´´t¼S°yÑ1Aó 	=ð	%¤Cð 	%¬E´#´s°(©Oõ 	%ð �h‰hˆÜ�3‹xˆÜ˜$“iˆØ�{Š{Ø#'ÖD˜C¨s¯~©~¸dÕ/C’CÐDˆDÐDØ�|Š|Ø#'ÖC˜C¨s¯~©~¸cÕ/B’CÐCˆDÐCØ%¬¨D«	Ñ1ˆØ59Ö:¨c�#‘| CÓ(Ò)Ð:ˆÐ:Ø�9Š9Ø�J‰J˜:ˆJÔ&ä—j‘j¨¸Ô>ˆØ×Ñ wÐÔ/Ø×%Ñ%ˆØ×&Ñ&ˆä�CŒ=Ø×+Ñ+¨B°Ó4ˆIØÐ$Ø’Ø’à�9Š9Ø×*Ñ*¨3Ó/ˆDØÐÜ ¨NÔ;�Ù& xÓ0�Ø’Ø’à�:Š:œw sœ|¬x¸¬}ÄÈÄÜÜ�s¨$¸2È"ÔMØ3ôò ð ŠHà#(ó  	JÑˆC‘�%˜Ü—}‘}àØ-0¯^©^¸DÔ-AÑ)À~ðð )óˆHð Ð Ø"Ÿ-™-›/�Ø—‘ Ô0Ù˜¡¬T°%«[Ó!9Ô:Øä˜ŒØ—|’|Øà"&×"5Ñ"5°c¸5Ó"A�Ø"Ð*Ù˜H¤f¨UÀÔ&LÕMà—y’yØ#×6Ñ6°uÓ=˜ØÐ+Ø+×2Ñ2¸4À4¹<±4ÈSÔQÙ"-¨dÓ"3˜CØŸK™K¨Ô6Ø+×2Ñ2°3Ô7á˜H oÖ6á˜¤&¨¸KÔ"HÖIðA 	JðB × Ò ØÓÙÜ×"Ñ"Ø˜?Ð+ð ,Qð Róó ð ùòK EùâCùâ:ùs7   ƒA<M2Á?M#ÂM#ÂM2Â,M(ÃM(ÃM2ÃM-Ã,JM2Úobject_c                 ó”   — t        |«      }|€yt        |«      j                  «       }| j                  st	        |«      }t        |«      S )a¼  
        Extract the docstring of an object, process it and returns it.
        The processing consists in cleaning up the doctring's indentation,
        taking only its 1st paragraph if `self.help` is not True,
        and escape its control codes.

        Args:
            object_ (Any): the object to get the docstring from.

        Returns:
            Optional[str]: the processed docstring, or None if no docstring was found.
        N)r   r   r`   r(   r#   r   )r4   rŒ   r*   s      r"   r|   zInspect._get_formatted_docØ   sC   € ô �g‹ˆØˆ<ØÜ˜‹~×#Ñ#Ó%ˆØ�yŠyÜ# DÓ)ˆDÜ# DÓ)Ð)r$   )Ú__name__Ú
__module__rH   Ú__doc__r
   r   r   ru   r5   r   r3   r   rB   r8   r\   r   r   rA   r|   © r$   r"   r&   r&      s  „ ñð& %)ØØØØØØØØòàðð ˜Ñ!ð	ð
 ðð ðð ðð ðð ðð ðð ðð ðð 
óð6˜sð  tó ð
˜%ó 
ð% 3ð %¨Sð %°X¸d±^ó %ðN[˜ .Ñ1ó [ðz*¨#ð *°(¸3±-ô *r$   r&   r0   .c                 óJ   — t        | d«      st        | «      } t        | dd«      S )zNReturns the MRO of an object's class, or of the object itself if it's a class.Ú__mro__r‘   )Úhasattrr9   rP   )r0   s    r"   Úget_object_types_mror•   î   s&   € ä�3˜	Ô"ô �3‹iˆÜ�3˜	 2Ó&Ð&r$   c           
      ót   — t        | «      D �cg c]  }t        |dd«      › dt        |dd«      › �‘Œ! c}S c c}w )zð
    Returns the MRO of an object's class as full qualified names, or of the object itself if it's a class.

    Examples:
        `object_types_mro_as_strings(JSONDecoder)` will return `['json.decoder.JSONDecoder', 'builtins.object']`
    r�   rn   ú.rH   )r•   rP   )r0   Útype_s     r"   Úget_object_types_mro_as_stringsr™   ÷   sH   € ô *¨#Ó.öàô �5˜,¨Ó+Ð
,¨A¬g°e¸^ÈRÓ.PÐ-QÒRòð ùò s   Ž$5Úfully_qualified_types_namesc                 ó0   — t        | «      D ]  }||v sŒ y y)z‘
    Returns `True` if the given object's class (or the object itself, if it's a class) has one of the
    fully qualified names in its MRO.
    TF)r™   )r0   rš   Ú	type_names      r"   Úis_object_one_of_typesr�     s)   € ô 5°SÓ9ò ˆ	ØÐ3Ò3Ùðð r$   ),Ú
__future__r   rQ   r   r   r   r   r   r	   Útypingr
   r   r   r   r   r   r   Úconsoler   r   Úcontrolr   r2   r   Újupyterr   Úpanelr   Úprettyr   Útabler   Útextr   r   r8   r#   r&   Úobjectr9   r•   r™   ru   r�   r‘   r$   r"   ú<module>r¨      s¶   ðÝ &ã ß K× Kß J× JÑ Jç *Ý )Ý (Ý !Ý Ý Ý ß  ð˜#ð  #ó ôT*ˆlô T*ðn'˜e F¨D°©IÐ$5Ñ6ð '¸5ÀÀsÀÑ;Kó 'ð
¨ð 
°J¸s±Oó 
ð
Ø	ð
Ø.8¸©oð
à	ô
r$   