
    gh              	          S SK r S SKJr  S SKJr  S SKJr  S SKJr  \(       a  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Jr  \r\\   r\" S\\\   \\\\   S.5      r\" SS\05      r\\\\4   r\\S4   r\\\4   r\\\\\   4   r\\\\4      rSrSr \(       a  S r!OS r!S r"S r#\ 4S jr$g)    N)deque)PY311)filename_for_module)TYPE_CHECKING)LRUCache)	FrameType)Deque)List)Optional)Sequence)Tuple)	TypedDictProcessedFrame)abs_pathfilenamefunctionlinenomoduleProcessedThreadMetadataname.e      c                 .    U R                   R                  $ N)f_codeco_qualname)frames    \/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/profiler/utils.pyget_frame_namer   B   s    ||'''    c                 r   U R                   nUR                  nUR                  n U(       ao  US   S:X  af  SU R                  ;   aV  [	        U R                  S   5      R
                   H0  nX4R                  ;   d  M  SR                  UR                  U5      s  $     U(       af  US   S:X  a]  SU R                  ;   aM  U R                  S   R
                   H0  nX4R                  ;   d  M  SR                  UR                  U5      s  $    U$ ! [        [        4 a     Nf = f! [        [        4 a     U$ f = f)Nr   selfz{}.{}cls)r   co_varnamesco_namef_localstype__mro____dict__format__name__AttributeError
ValueError)r   r   r$   r   r#   s        r   r   r   H   s    (( ~~	 Nf,enn,v 67??C||+&~~cllDAA @	 Ne+U^^+ >>%088C||+&~~cllDAA 9 - 
+ 		  
+ 	
 	s=   AD <D D A	D" *D" D" DD"D65D6c                 Z    U R                   R                  U R                  [        U 5      4$ r   )r   co_filenamef_linenor   )	raw_frames    r   frame_idr2   x   s&    (()*<*<nY>WXXr    c                     UR                   R                  n UR                  S   n[        R
                  R                  X#5      U[        XC5      =(       d    S U S   UR                  S.$ ! [         a    S n NRf = f)Nr+      )r   r   r   r   r   )	r   r/   	f_globals	Exceptionospathjoinr   r0   )fidr1   cwdr   r   s        r   extract_framer<   }   sz    ++H$$Z0  GGLL/'9ATF$$   s   A+ +A:9A:c                 p   [        US9nU b$  U R                  nUR                  U 5        Un U b  M$  [        S U 5       5      n/ n[	        U5       HJ  u  pUR                  U	5      n
U
c   [        XU   U5      n
UR                  X5        UR                  U
5        ML     [        U5      [        U5      4nXU4$ )a)  
Extracts the stack starting the specified frame. The extracted stack
assumes the specified frame is the top of the stack, and works back
to the bottom of the stack.

In the event that the stack is more than `MAX_STACK_DEPTH` frames deep,
only the first `MAX_STACK_DEPTH` frames will be returned.
)maxlenc              3   8   #    U  H  n[        U5      v   M     g 7fr   )r2   ).0r1   s     r   	<genexpr> extract_stack.<locals>.<genexpr>   s     F:ihy)):s   )
r   f_backappendtuple	enumerategetr<   setlenhash)r1   cacher;   max_stack_depth
raw_framesrC   	frame_idsframesir:   r   stack_ids               r   extract_stackrR      s      o.J

!!)$	 

 F:FFIFI&		#=!#!}c:EIIc!e '$ :Y/H&&r    )%r7   collectionsr   sentry_sdk._compatr   sentry_sdk.utilsr   typingr   sentry_sdk._lru_cacher   typesr   r	   r
   r   r   r   typing_extensionsr   strThreadIdintProcessedStackr   r   FrameIdFrameIdsStackIdExtractedStackExtractedSampleDEFAULT_SAMPLING_FREQUENCYMAX_STACK_DEPTHr   r2   r<   rR    r    r   <module>rf      s   	  $ 0  .+H#YN sm	
	N (!	
 	G
 Wc\"H CHoG7Hd>.BBCNuX~%=>?O !   	(-`Y
B $	-'r    