
    iY                       % S SK Jr  S SKrS SKJr  S SKrS SKrS SK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r\(       a   \R,                  S
:  a  S SKJr   " S S\
5      r\" 5       rS\S'   SS jr      SS jr      SS jrSS j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)    )annotationsN)Callable)
NamedTuple)TYPE_CHECKING)Config)Item)StashKey)tracemalloc_message)      )ExceptionGroupc                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	ThreadExceptionMeta   strmsg	cause_msgzBaseException | None	exc_value N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       V/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/_pytest/threadexception.pyr   r      s    	HN##r   r   z@StashKey[collections.deque[ThreadExceptionMeta | BaseException]]thread_exceptionsc                   U R                   [           R                  n/ nS nS n   U" 5       n[	        U[
        5      (       a$  [        S5      nX4l        UR                  U5        MB  UR                  n [        R                  " [        R                  " U5      5        Mz  ! [         a     Off = f! [        R                   aK  nUR                  b#  UR                  4Ul        UR                  Ul        UR                  U5         S nANlS nAff = f[#        U5      S:X  a  US   eU(       a  [%        SU5      e AAAg ! AAAf = f)Nz"Failed to process thread exception   r   z"multiple thread exception warnings)stashr   pop
IndexError
isinstanceBaseExceptionRuntimeError	__cause__appendr   warningswarnpytest%PytestUnhandledThreadExceptionWarningr   r   argslenr   )configpop_thread_exceptionerrorsmeta
hook_errorr   es          r   collect_thread_exceptionr5   &   s2   !<<(9:>>PRFDJ%+- $..)*NO
'+$j)((C
!fJJ3OP    ?? !>>- #nn.AF"&..AKa  ! v;!)O !EvNN  D*FD*sY   D> B  AD> 4*B0 D>  
B-*D> ,B--D> 0DAD
D> 
D*D> >Ec                      [        U 5        U[        l         U R                  [        	 g ! U[        l        f = f! U R                  [        	 f = fN)r5   	threading
excepthookr!   r   r/   	prev_hooks     r   cleanupr<   M   sE    	,	- %V,#,I LL*+ $-I LL*+s   , < 9< Ac                  U R                   c  SOU R                   R                  nSU 3nSSR                  [        R                  " U R
                  U R                  U R                  5      5      -   nS[        U R                   5      -   nX4-   U-   nX5-   nU" [        UUU R                  S95        g ! [         a  nU" U5        e S nAff = f)Nz	<unknown>zException in thread z

 
)r   r   r   )threadnamejoin	tracebackformat_exceptionexc_typer   exc_tracebackr
   r   r%   )	r-   r(   thread_namesummarytraceback_messagetracemalloc_tbr   r   r4   s	            r   thread_exception_hookrK   \   s     &*[[%8kdkk>N>N(6"RWW&&""&
 
  3DKK @@)N:,	#..		
  q	
 	s   B0B3 3
C=	CCc                   [         R                  n[        R                  " 5       nX R                  [
        '   U R                  [        R                  " [        XS95        [        R                  " [        UR                  S9[         l        g )Nr:   )r(   )r8   r9   collectionsdequer!   r   add_cleanup	functoolspartialr<   rK   r(   )r/   r;   rN   s      r   pytest_configurerR      s]    $$IDODUDUDWE&+LL"#
y((UV$,,-B5<<XIr   T)trylastc                .    [        U R                  5        g r7   r5   r/   items    r   pytest_runtest_setuprX          T[[)r   c                .    [        U R                  5        g r7   rU   rV   s    r   pytest_runtest_callr[      rY   r   c                .    [        U R                  5        g r7   rU   rV   s    r   pytest_runtest_teardownr]      rY   r   )r/   r   returnNone)r/   r   r;   z,Callable[[threading.ExceptHookArgs], object]r^   r_   )r-   zthreading.ExceptHookArgsr(   z7Callable[[ThreadExceptionMeta | BaseException], object]r^   r_   )rW   r   r^   r_   )$
__future__r   rM   collections.abcr   rP   sysr8   rC   typingr   r   r)   _pytest.configr   _pytest.nodesr   _pytest.stashr	   _pytest.tracemallocr
   r+   version_infoexceptiongroupr   r   r   r   r5   r<   rK   rR   hookimplrX   r[   r]   r   r   r   <module>rk      s   "  $  
       !  " 3  g-$* $ J S 
$%N,,"N,	,%
"% D	%
 
%PY * * * * * *r   