
    ?g[                       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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SS jr\        SS j5       rSS jr\R.                  " SSS9SS j5       r\R.                  " SSS9SS j5       r\R.                  " SS9    SS j5       r\R.                  " SS9SS j5       r\R.                  " SS9    SS j5       rg)    )annotations)contextmanagerN)	Generator)Literal)apply_warning_filters)Config)parse_warning_filter)Session)Item)TerminalReporterc                (    U R                  SS5        g )Nmarkerszfilterwarnings(warning): add a warning filter to the given test. see https://docs.pytest.org/en/stable/how-to/capture-warnings.html#pytest-mark-filterwarnings )addinivalue_line)configs    2/usr/lib/python3/dist-packages/_pytest/warnings.pypytest_configurer      s    
	i    c              #    #    U R                  S5      nU R                  R                  =(       d    / n[        R                  " SS9 nUc   e[
        R                  (       d2  [        R                  " S[        S9  [        R                  " S[        S9  [        XE5        Uc  SOUR                  nUbD  UR                  SS9 H1  nUR                   H  n	[        R                  " [        U	S	S
96   M      M3      Sv   U H&  n
UR                  R!                  [#        U
UUSS9S9  M(      SSS5        g! U H&  n
UR                  R!                  [#        U
UUSS9S9  M(     f = f! , (       d  f       g= f7f)zContext manager that catches warnings generated in the contained execution block.

``item`` can be None if we are not in the context of an item execution.

Each warning captured triggers the ``pytest_warning_recorded`` hook.
filterwarningsT)recordNalways)category )nameF)escape)warning_messagenodeidwhenlocation)kwargs)getiniknown_args_namespacepythonwarningswarningscatch_warningssyswarnoptionsr   DeprecationWarningPendingDeprecationWarningr   r   iter_markersargsr	   pytest_warning_recordedcall_historicdict)r   ihookr   itemconfig_filterscmdline_filterslogr   markargr   s              r   catch_warnings_for_itemr6      sX     ]]#34N11@@FBO		 	 	-##H7IJ##H7PQ
 	n> |))/?)@99C++-A#e-TU % A	#&--;;(7%!!%	 <  $'1 
.	-0 $'--;;(7%!!%	 <  $'1 
.	-s7   AE4B0E#8D2<,E#)	E42.E  E##
E1-E4c                   U R                   n[        R                  " [        U5      U R                  U R
                  U R                  U R                  5      nU R                  b_   SSK	nUR                  U R                  5      nUb)  SR                  UR                  5       5      nUSU 3-  nU$ SnUS-  nUSU S3-  n U$ U$ ! [         a     U$ f = f)	z.Convert a warnings.WarningMessage to a string.Nr   
z
Object allocated at:
zPhttps://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warningszDEnable tracemalloc to get traceback where the object was allocated.
zSee z for more info.)messager$   formatwarningstrr   filenamelinenolinesourcetracemallocget_object_tracebackjoinformatImportError)r   warn_msgmsgr@   tbformatted_tburls          r   warning_record_to_strrJ   M   s    &&H

 
 H    C )	3 11/2H2HIB~#yy5 1,@@ J i^^cU/22J3J  	 J	s   &C 
CCT)wrappertryfirstc              #     #    [        U R                  U R                  SU S9   S v sS S S 5        $ ! , (       d  f       g = f7f)Nruntestr   r/   r   r0   )r6   r   r/   )r0   s    r   pytest_runtest_protocolrP   k   s2     	 {{$**94
 
 
 
s   !A1
A
?Ac              #     #    U R                   n[        XR                  SS S9   S v sS S S 5        $ ! , (       d  f       g = f7f)NcollectrO   r   r6   hooksessionr   s     r   pytest_collectionrW   s   s5     ^^F	 [[yt
 
 
 
   "A2
A
A A)rK   c              #     #    U R                   n[        XR                  SS S9   S v sS S S 5        $ ! , (       d  f       g = f7fNr   rO   rS   )terminalreporterr   s     r   pytest_terminal_summaryr\   |   s9      $$F	 [[xd
 
 
 
rX   c              #     #    U R                   n[        XR                  SS S9   S v sS S S 5        $ ! , (       d  f       g = f7frZ   rS   rU   s     r   pytest_sessionfinishr^      s5     ^^F	 [[xd
 
 
 
rX   c              #  r   #    [        X R                  SS S9   S v sS S S 5        $ ! , (       d  f       g = f7frZ   )r6   rT   )early_configs    r   pytest_load_initial_conftestsra      s0      
!#4#48$
 
 
 
s   7&
7
47)r   r   returnNone)r   r   r   z'Literal['config', 'collect', 'runtest']r0   zItem | Nonerb   Generator[None])r   zwarnings.WarningMessagerb   r;   )r0   r   rb   Generator[None, object, object])rV   r
   rb   re   )r[   r   rb   rd   )rV   r
   rb   rd   )r`   r   rb   rd   )
__future__r   
contextlibr   r&   typingr   r   r$   _pytest.configr   r   r	   _pytest.mainr
   _pytest.nodesr   _pytest.terminalr   pytestr   r6   rJ   hookimplrP   rW   r\   r^   ra    r   r   <module>rp      s&   " % 
    0 ! /    -  .. 2. 	.
 . .b< - . - . &     r   