
    zi;                       U d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl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Zer	 ej        d
k     rd dlmZ  ee                     Zd(dZ G d de
          Z e            Zded<   d)dZd*dZ d+dZ!d)d Z" ej#        d!"          d,d%            Z$ ej#        d!"          d,d&            Z% ej#        d!"          d,d'            Z&dS )-    )annotationsN)Callable)
NamedTuple)TYPE_CHECKING)Config)Item)StashKey)tracemalloc_message)      )ExceptionGroup
iterationsintreturnNonec                P    t          |           D ]}t          j                     d S N)rangegccollect)r   _s     ^/root/projects/openclaw-proxy/venv/lib/python3.11/site-packages/_pytest/unraisableexception.pygc_collect_harderr      s0    :  

     c                  .    e Zd ZU ded<   ded<   ded<   dS )UnraisableMetastrmsg	cause_msgzBaseException | None	exc_valueN)__name__
__module____qualname____annotations__ r   r   r   r   $   s0         HHHNNN######r   r   z;StashKey[collections.deque[UnraisableMeta | BaseException]]unraisable_exceptionsconfigr   c                r   | j         t                   j        }g }d }d }	 	 	  |            }n# t          $ r Y nw xY wt	          |t
                    r,t          d          }||_        |                    |           ^|j	        }	 t          j        t          j        |                     nQ# t          j        $ r?}|j        |j        f|_        |j        |_        |                    |           Y d }~nd }~ww xY wt#          |          dk    r|d         |rt%          d|          	 ~~~d S # ~~~w xY w)NTz&Failed to process unraisable exception   r   z&multiple unraisable exception warnings)stashr&   pop
IndexError
isinstanceBaseExceptionRuntimeError	__cause__appendr   warningswarnpytest PytestUnraisableExceptionWarningr    r   argslenr   )r'   pop_unraisableerrorsmeta
hook_errorr   es          r   collect_unraisabler=   /   s   \"78<NKMFDJ%	!%~''    $.. )*RSS
'+
$j)))(C
!fEcJJKKKK: ! ! !>- #n.AF"&.AKa        !	!2 v;;!)O 	S !I6RRR	S D***FD*$$$$sQ   D1 
, D1 
9D1 9AD1 &B, +D1 ,C:;5C50D1 5C::1D1 1D6	prev_hook*Callable[[sys.UnraisableHookArgs], object]c                   | j                             t          d          }	 	 t          |           t	          |            |t
          _        n# |t
          _        w xY w	 | j         t          = d S # | j         t          = w xY w)N   )r*   getgc_collect_iterations_keyr   r=   sysunraisablehookr&   )r'   r>   gc_collect_iterationss      r   cleanuprG   V   s    
 #L,,-FJJ0	+3444v&&&!*CC****L.///FL./////s   A A/ AA/ /A>
unraisablesys.UnraisableHookArgsr1   2Callable[[UnraisableMeta | BaseException], object]c              z   	 | j         dn| j         }| d| j        }dd                    t          j        | j        | j        | j                            z   }dt          | j                  z   }||z   |z   }||z   } |t          ||| j                             d S # t          $ r} ||            d }~ww xY w)NzException ignored inz: z

 
)r   r   r    )err_msgobjectjoin	tracebackformat_exceptionexc_typer    exc_tracebackr
   r   r.   )	rH   r1   rN   summarytraceback_messagetracemalloc_tbr   r   r<   s	            r   unraisable_hookrX   f   s    
 '1&8&@""jFX 	 55
 155"RWW&#$( &
 &
 
  3J4E F FF))N:n,	#$.  	
 	
 	
 	
 	
    q			
 	s   BB 
B:)B55B:c                   t           j        }t          j                    }|| j        t
          <   |                     t          j        t          | |                     t          j        t          |j                  t           _        d S )N)r'   r>   )r1   )rD   rE   collectionsdequer*   r&   add_cleanup	functoolspartialrG   rX   r1   )r'   r>   r[   s      r   pytest_configurer_      sk    "I?J?P?R?RE*/FL&'
y(9UUUVVV"*?5<PPPCr   T)trylastitemr   c                .    t          | j                   d S r   r=   r'   ra   s    r   pytest_runtest_setupre          t{#####r   c                .    t          | j                   d S r   rc   rd   s    r   pytest_runtest_callrh      rf   r   c                .    t          | j                   d S r   rc   rd   s    r   pytest_runtest_teardownrj      rf   r   )r   r   r   r   )r'   r   r   r   )r'   r   r>   r?   r   r   )rH   rI   r1   rJ   r   r   )ra   r   r   r   )'
__future__r   rZ   collections.abcr   r]   r   rD   rQ   typingr   r   r2   _pytest.configr   _pytest.nodesr   _pytest.stashr	   _pytest.tracemallocr
   r4   version_infoexceptiongroupr   r   rC   r   r   r&   r$   r=   rG   rX   r_   hookimplre   rh   rj   r%   r   r   <module>ru      sq   " " " " " " "     $ $ $ $ $ $     				 



                        ! ! ! ! ! !       " " " " " " 3 3 3 3 3 3   	g------ *HSMOO    
$ $ $ $ $Z $ $ $ HJJ     
$% $% $% $%N0 0 0 0 & & & &RQ Q Q Q $ $ $ $ $ $ $ $ $ $ $ $ $ $r   