Ë
    æØjj¹  ã                  óò   — d Z ddlmZ ddlmZ ddl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 ddlZ eee      «       Zdd„Z ej.                  d¬«      dd„«       Zdd„Zdd„Zdd„Zy)zASubmit failure or test session information to a pastebin service.é    )Úannotations)ÚStringION)ÚIO)ÚConfig)Úcreate_terminal_writer)ÚParser)ÚPASTEBIN)ÚStashKey)ÚTerminalReporterc           	     óZ   — | j                  d«      }|j                  ddddd ddgd¬	«       y )
Nzterminal reportingz
--pastebinÚmodeÚstoreÚpastebinÚfailedÚallz3Send failed|all info to bpaste.net pastebin service)ÚmetavarÚactionÚdestÚdefaultÚchoicesÚhelp)ÚgetgroupÚ	addoption)ÚparserÚgroups     úR/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/pastebin.pyÚpytest_addoptionr      s<   € Ø�O‰OÐ0Ó1€EØ	‡O�OØØØØØØ˜5Ð!ØBð õ ó    T)Útrylastc                óv  ‡ ‡— ‰ j                   j                  r‰ j                  t        d«       ‰ j                   j                  dk(  rr‰ j                  j                  d«      }|�Tt        j                  d«      ‰ j                  t        <   |j                  j                  Šˆ ˆfd„}||j                  _        y y y )Né   r   Úterminalreporterzw+bc                óž   •—  ‰| fi |¤Ž t        | t        «      r| j                  d«      } ‰j                  t           j                  | «       y )Núutf-8)Ú
isinstanceÚstrÚencodeÚstashÚpastebinfile_keyÚwrite)ÚsÚkwargsÚconfigÚoldwrites     €€r   Ú	tee_writez#pytest_configure.<locals>.tee_write2   s@   ø€ Ù˜Ñ%˜fÒ%Ü˜a¤Ô%ØŸ™ Ó)�AØ—‘Ô-Ñ.×4Ñ4°QÕ7r   )Úoptionr   Úissue_config_time_warningr	   ÚpluginmanagerÚ	getpluginÚtempfileÚTemporaryFiler(   r)   Ú_twr*   )r-   Útrr/   r.   s   `  @r   Úpytest_configurer8   #   s“   ù€ à‡}�}×ÒØ×(Ñ(¬°1Ô5à‡}�}×Ñ Ò&Ø×!Ñ!×+Ñ+Ð,>Ó?ˆð ˆ>ä-5×-CÑ-CÀEÓ-JˆF�L‰LÔ)Ñ*Ø—v‘v—|‘|ˆHõ8ð %ˆB�F‰F�Lð ð 'r   c                óœ  — t         | j                  v rº| j                  t            }|j                  d«       |j                  «       }|j	                  «        | j                  t         = | j
                  j                  d«      }|j                  j                  d= |j                  dd«       t        |«      }|j                  d|› d�«       y y )Nr   r"   r*   ú=ú$Sending information to Paste Servicezpastebin session-log: ú
)r)   r(   ÚseekÚreadÚcloser2   r3   r6   Ú__dict__Ú	write_sepÚcreate_new_pasteÚ
write_line)r-   ÚpastebinfileÚ
sessionlogr7   Úpastebinurls        r   Úpytest_unconfigurerG   ;   s­   € Ü˜6Ÿ<™<Ñ'Ø—|‘|Ô$4Ñ5ˆà×Ñ˜!ÔØ!×&Ñ&Ó(ˆ
Ø×ÑÔØ�L‰LÔ)Ð*à×!Ñ!×+Ñ+Ð,>Ó?ˆØ�F‰F�O‰O˜GÐ$à
�‰�SÐ@ÔAÜ& zÓ2ˆØ
�‰Ð.¨{¨m¸2Ð>Õ?ð (r   c                ó°  — ddl }ddlm} ddlm} ddlm} | dddœ}d	}	  || ||«      j                  d
«      ¬«      j                  «       j                  d«      }|j                  d«      }	|	r|› d|	j                  d«      › �S d|z   dz   S # |$ r,}|5  d|› �cddd«       cY d}~S # 1 sw Y   nxY wY d}~Œ^d}~wt        $ r}d|› �cY d}~S d}~ww xY w)z›Create a new paste using the bpaste.net service.

    :contents: Paste contents string.
    :returns: URL to the pasted contents, or an error message.
    r   N)Ú	HTTPError)Ú	urlencode)ÚurlopenÚtextÚ1week)ÚcodeÚlexerÚexpiryzhttps://bpa.stÚascii)Údatar$   zbad response: zhref="/raw/(\w+)"z/show/é   zbad response: invalid format ('z'))ÚreÚurllib.errorrI   Úurllib.parserJ   Úurllib.requestrK   r'   r>   ÚdecodeÚOSErrorÚsearchr   )
ÚcontentsrT   rI   rJ   rK   ÚparamsÚurlÚresponseÚeÚms
             r   rB   rB   L   sç   € ó Ý&Ý&Ý&à¨¸7ÑC€FØ
€Cð$á�C™i¨Ó/×6Ñ6°wÓ?Ô@×EÑEÓG×NÑNÈwÓWð 	ð 	�	‰	Ð&¨Ó1€AÙØ��f˜QŸW™W Q›Z˜LÐ)Ð)à0°8Ñ;¸dÑBÐBøð ò (Øñ 	(Ø# A 3Ð'÷	(÷ 	(÷ 	(úô 	(ûäò $Ø ˜sÐ#Õ#ûð$úsG    <B ÂCÂB:ÂB)Â	B:Â#CÂ)B2	Â.B:Â:CÃCÃ
CÃCc                ó0  — | j                   j                  j                  dk7  ry d| j                  v rÄ| j	                  dd«       | j                  d   D ]Ÿ  }	 |j
                  j                  j                  d   j                  }t        «       }t        | j                   |«      }|j                  |«       |j                  «       }t        |«      sJ ‚t!        |«      }| j#                  |› d|› �«       Œ¡ y y # t        $ r | j                  |«      }Y Œ�w xY w)Nr   r:   r;   éÿÿÿÿz --> )r-   r0   r   ÚstatsrA   ÚlongreprÚreprtracebackÚreprentriesÚreprfilelocÚAttributeErrorÚ_getfailureheadliner   r   Ú
toterminalÚgetvalueÚlenrB   rC   )r"   ÚrepÚmsgÚfileÚtwr+   rF   s          r   Úpytest_terminal_summaryrq   i   s
  € Ø×Ñ×%Ñ%×.Ñ.°(Ò:ØØÐ#×)Ñ)Ñ)Ø×"Ñ" 3Ð(NÔOØ#×)Ñ)¨(Ñ3ò 	DˆCð@Ø—l‘l×0Ñ0×<Ñ<¸RÑ@×LÑL�ô “:ˆDÜ'Ð(8×(?Ñ(?ÀÓFˆBØ�N‰N˜2ÔØ—‘“ˆAÜ�q”6ˆM�6Ü*¨1Ó-ˆKØ×'Ñ'¨3¨%¨u°[°MÐ(BÕCñ	Dð *øô
 "ò @Ø&×:Ñ:¸3Ó?’ð@ús   Á-C8Ã8DÄD)r   r   ÚreturnÚNone)r-   r   rr   rs   )r[   zstr | bytesrr   r&   )r"   r   rr   rs   )Ú__doc__Ú
__future__r   Úior   r4   Útypingr   Ú_pytest.configr   r   Ú_pytest.config.argparsingr   Ú_pytest.deprecatedr	   Ú_pytest.stashr
   Ú_pytest.terminalr   ÚpytestÚbytesr)   r   Úhookimplr8   rG   rB   rq   © r   r   ú<module>r�      su   ðá Gå "å Û Ý å !Ý 1Ý ,Ý 'Ý "Ý -Û ð '�8˜B˜u™IÑ&Ó(Ð ó
ð €‡�˜Ôò%ó ð%ó.@ó"Cô:Dr   