
    ~/j                        S r SSKJr  SSKJr  SSKrSSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKr\\\      " 5       rSS jr\R.                  " SS9SS j5       rSS jrSS jrSS jrg)zASubmit failure or test session information to a pastebin service.    )annotations)StringION)IO)Config)create_terminal_writer)Parser)PASTEBIN)StashKey)TerminalReporterc           
     T    U R                  S5      nUR                  SSSSS SS/SS	9  g )
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     O/root/lseg-credit/backend/venv/lib/python3.13/site-packages/_pytest/pastebin.pypytest_addoptionr      s<    OO01E	OO5!B      T)trylastc                  ^ ^ T R                   R                  (       a  T R                  [        S5        T R                   R                  S:X  at  T R                  R                  S5      nUbU  [        R                  " S5      T R                  [        '   UR                  R                  mU U4S jnX!R                  l        g g g )N   r   terminalreporterzw+bc                   > T" U 40 UD6  [        U [        5      (       a  U R                  S5      n TR                  [           R                  U 5        g )Nutf-8)
isinstancestrencodestashpastebinfile_keywrite)skwargsconfigoldwrites     r   	tee_write#pytest_configure.<locals>.tee_write2   sC    %f%a%%)A-.44Q7r   )optionr   issue_config_time_warningr	   pluginmanager	getplugintempfileTemporaryFiler(   r)   _twr*   )r-   trr/   r.   s   `  @r   pytest_configurer9   #   s    }}((15}}&!!++,>? >-5-C-CE-JFLL)*vv||H8 %FFL  'r   c                   [         U R                  ;   a  U R                  [            nUR                  S5        UR                  5       nUR	                  5         U R                  [         	 U R
                  R                  S5      nUR                  R                  S	 UR                  SS5        [        U5      nUR                  SU S35        g g )Nr   r"   r*   =$Sending information to Paste Servicezpastebin session-log: 
)r)   r(   seekreadcloser3   r4   r7   __dict__	write_sepcreate_new_paste
write_line)r-   pastebinfile
sessionlogr8   pastebinurls        r   pytest_unconfigurerH   ;   s    6<<'||$45!!&&(
LL)*!!++,>?FFOOG$
S@A&z2
.{m2>? (r   c                   SSK nSSKJn  SSKJn  SSKJn  U SSS.nS	n U" Xc" U5      R                  S
5      S9R                  5       R                  S5      nUR                  SW5      n	U	(       a  U SU	R                  S5       3$ SU-   S-   $ ! U a0  nU   SU 3sSSS5        s SnA$ ! , (       d  f        SnANe= fSnAf[         a  nSU 3s SnA$ SnAff = f)zCreate 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.errorrJ   urllib.parserK   urllib.requestrL   r'   r?   decodeOSErrorsearchr   )
contentsrU   rJ   rK   rL   paramsurlresponseems
             r   rC   rC   L   s     &&&7CF
C$Ci/66w?@EEGNNwW 	 			&1AfQWWQZL))08;dBB  (#A3' QQQQ $s##$sM   8B CC B+	C %C+
B=	5C =C  CCCCc                F   U R                   R                  R                  S:w  a  g SU R                  ;   a  U R	                  SS5        U R                  S    H  n UR
                  R                  R                  S   R                  n[        5       n[        U R                   U5      nUR                  U5        UR                  5       n[        U5      (       d   e[!        U5      nU R#                  U SU 35        M     g g ! [         a    U R                  U5      n Nf = f)Nr   r;   r<   z --> )r-   r1   r   statsrB   longreprreprtracebackreprentriesreprfilelocAttributeError_getfailureheadliner   r   
toterminalgetvaluelenrC   rD   )r"   repmsgfiletwr+   rG   s          r   pytest_terminal_summaryrr   i   s   %%..(:#)))""3(NO#))(3C@ll00<<R@LL :D'(8(?(?FBNN2Aq66M6*1-K''3%u[M(BC 4 *
 " @&::3?@s   -DD D )r   r   returnNone)r-   r   rs   rt   )r\   zstr | bytesrs   r&   )r"   r   rs   rt   )__doc__
__future__r   ior   r5   typingr   _pytest.configr   r   _pytest.config.argparsingr   _pytest.deprecatedr	   _pytest.stashr
   _pytest.terminalr   pytestbytesr)   r   hookimplr9   rH   rC   rr    r   r   <module>r      sq    G "    ! 1 , ' " -  BuI&( 
 % %.@"C:Dr   