§
    ×Ž’j2  ã                  ó  — 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dS )"zASubmit failure or test session information to a pastebin service.é    )Úannotations)ÚStringION)ÚIO)ÚConfig)Úcreate_terminal_writer)ÚParser)ÚPASTEBIN)ÚStashKey)ÚTerminalReporterÚparserr   ÚreturnÚNonec           	     ól   — |                       d¦  «        }|                     ddddd ddgd¬	¦  «         d S )
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)r   Úgroups     ú>C:\Projects\DSCons\.venv\Lib\site-packages\_pytest\pastebin.pyÚpytest_addoptionr      sS   € Ø�OŠOÐ0Ñ1Ô1€EØ	‡O‚OØØØØØØ˜5Ð!ØBð ñ ô ð ð ð ó    T)ÚtrylastÚconfigr   c                ó6  ‡ ‡— ‰ j         j        r‰                      t          d¦  «         ‰ j         j        dk    r]‰ j                             d¦  «        }|�Ct          j        d¦  «        ‰ j        t          <   |j
        j        Šˆ ˆfd„}||j
        _        d S d S d S )Né   r   Úterminalreporterzw+bc                ó¸   •—  ‰| fi |¤Ž t          | t          ¦  «        r|                      d¦  «        } ‰j        t                                        | ¦  «         d S )Núutf-8)Ú
isinstanceÚstrÚencodeÚstashÚpastebinfile_keyÚwrite)ÚsÚkwargsr"   Úoldwrites     €€r   Ú	tee_writez#pytest_configure.<locals>.tee_write2   s`   ø€ Ø�˜Ð%Ð%˜fÐ%Ð%Ð%Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AØ”Õ-Ô.×4Ò4°QÑ7Ô7Ð7Ð7Ð7r    )Úoptionr   Úissue_config_time_warningr	   ÚpluginmanagerÚ	getpluginÚtempfileÚTemporaryFiler+   r,   Ú_twr-   )r"   Útrr1   r0   s   `  @r   Úpytest_configurer:   #   s²   øø€ à„}Ôð 6Ø×(Ò(­°1Ñ5Ô5Ð5à„}Ô Ò&Ð&ØÔ!×+Ò+Ð,>Ñ?Ô?ˆð ˆ>å-5Ô-CÀEÑ-JÔ-JˆFŒLÕ)Ñ*Ø”v”|ˆHð8ð 8ð 8ð 8ð 8ð 8ð %ˆBŒFŒLˆLˆLð! 'Ð&ð
 ˆ>r    c                ó¨  — t           | j        v rÃ| j        t                    }|                     d¦  «         |                     ¦   «         }|                     ¦   «          | j        t           = | j                             d¦  «        }|j        j        d= | 	                    dd¦  «         t          |¦  «        }|                     d|› d�¦  «         d S d S )Nr   r%   r-   ú=ú$Sending information to Paste Servicezpastebin session-log: ú
)r,   r+   ÚseekÚreadÚcloser4   r5   r8   Ú__dict__Ú	write_sepÚcreate_new_pasteÚ
write_line)r"   ÚpastebinfileÚ
sessionlogr9   Úpastebinurls        r   Úpytest_unconfigurerI   ;   sÏ   € Ý˜6œ<Ð'Ð'Ø”|Õ$4Ô5ˆà×Ò˜!ÑÔÐØ!×&Ò&Ñ(Ô(ˆ
Ø×ÒÑÔÐØŒLÕ)Ð*àÔ!×+Ò+Ð,>Ñ?Ô?ˆØŒFŒO˜GÐ$à
�Š�SÐ@ÑAÔAÐAÝ& zÑ2Ô2ˆØ
�ŠÐ>¨{Ð>Ð>Ð>Ñ?Ô?Ð?Ð?Ð?ð (Ð'r    Úcontentsústr | bytesr)   c                óì  — ddl }ddlm} ddlm} ddlm} | dddœ}d	}	  || ||¦  «                             d
¦  «        ¬¦  «                             ¦   «          	                    d¦  «        }nM# |$ r.}|5  d|› �cddd¦  «         cY d}~S # 1 swxY w Y   Y d}~nd}~wt          $ r}d|› �cY d}~S d}~ww xY w|                     d|¦  «        }	|	r|› d|	                     d¦  «        › �S d|z   dz   S )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.errorrM   Úurllib.parserN   Úurllib.requestrO   r*   r@   ÚdecodeÚOSErrorÚsearchr   )
rJ   rX   rM   rN   rO   ÚparamsÚurlÚresponseÚeÚms
             r   rD   rD   L   sã  € ð €I€I€IØ&Ð&Ð&Ð&Ð&Ð&Ø&Ð&Ð&Ð&Ð&Ð&Ø&Ð&Ð&Ð&Ð&Ð&à¨¸7ÐCÐC€FØ
€Cð$àˆG�C˜i˜i¨Ñ/Ô/×6Ò6°wÑ?Ô?Ð@Ñ@Ô@×EÒEÑGÔG×NÒNÈwÑWÔWð 	ˆøð ð (ð (ð (Øð 	(ð 	(Ø' AÐ'Ð'ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøøåð $ð $ð $Ø# Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#øøøøð$øøøà
�	Š	Ð&¨Ñ1Ô1€AØð CØÐ)Ð)˜QŸWšW Q™ZœZÐ)Ð)Ð)à0°8Ñ;¸dÑBÐBsT    AA/ Á/B9Á4BÁ6BÁ;BÂB9ÂB	ÂBÂB	ÂBÂB9Â*B4Â.B9Â4B9r%   r   c                ó(  — | j         j        j        dk    rd S d| j        v rï|                      dd¦  «         | j        d         D ]Í}	 |j        j        j        d         j        }n%# t          $ r |  
                    |¦  «        }Y nw xY wt          ¦   «         }t          | j         |¦  «        }|                     |¦  «         |                     ¦   «         }t          |¦  «        sJ ‚t!          |¦  «        }|                      |› d|› �¦  «         ŒÌd S d S )Nr   r<   r=   éÿÿÿÿz --> )r"   r2   r   ÚstatsrC   ÚlongreprÚreprtracebackÚreprentriesÚreprfilelocÚAttributeErrorÚ_getfailureheadliner   r   Ú
toterminalÚgetvalueÚlenrD   rE   )r%   ÚrepÚmsgÚfileÚtwr.   rH   s          r   Úpytest_terminal_summaryrt   i   s=  € ØÔÔ%Ô.°(Ò:Ð:ØˆØÐ#Ô)Ð)Ð)Ø×"Ò" 3Ð(NÑOÔOÐOØ#Ô)¨(Ô3ð 	Dð 	DˆCð@Ø”lÔ0Ô<¸RÔ@ÔL��øÝ!ð @ð @ð @Ø&×:Ò:¸3Ñ?Ô?���ð@øøøå‘:”:ˆDÝ'Ð(8Ô(?ÀÑFÔFˆBØ�NŠN˜2ÑÔÐØ—’‘”ˆAÝ�q‘6”6ˆMˆM�6Ý*¨1Ñ-Ô-ˆKØ×'Ò'¨3Ð(BÐ(B°[Ð(BÐ(BÑCÔCÐCÐCð *Ð)ð	Dð 	Ds   ÁA$Á$BÂB)r   r   r   r   )r"   r   r   r   )rJ   rK   r   r)   )r%   r   r   r   )Ú__doc__Ú
__future__r   Úior   r6   Útypingr   Ú_pytest.configr   r   Ú_pytest.config.argparsingr   Ú_pytest.deprecatedr	   Ú_pytest.stashr
   Ú_pytest.terminalr   ÚpytestÚbytesr,   r   Úhookimplr:   rI   rD   rt   © r    r   ú<module>r‚      sp  ðà GÐ Gà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -Ø €€€ð '�8˜B˜uœIÔ&Ñ(Ô(Ð ð
ð 
ð 
ð 
ð €„˜ÐÑÔð%ð %ð %ñ Ôð%ð.@ð @ð @ð @ð"Cð Cð Cð Cð:Dð Dð Dð Dð Dð Dr    