
    lh              	       t   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ erd dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ eZee   Z edeee   eeee   d      Z eddei      Zeeeef   Zeedf   Zeeef   Zeeeee   f   Zeeeef      ZdZdZ erd Z!nd Z!d Z"d Z#e fdZ$y)    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                 .    | j                   j                  S N)f_codeco_qualname)frames    k/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/profiler/utils.pyget_frame_namer   B   s    ||'''    c                 B   | j                   }|j                  }|j                  }	 |ri|d   dk(  rad| j                  v rSt	        | j                  d         j
                  D ].  }||j                  v sdj                  |j                  |      c S  	 |r`|d   dk(  rXd| j                  v rJ| j                  d   j
                  D ].  }||j                  v sdj                  |j                  |      c S  |S # t        t        f$ r Y vw xY w# t        t        f$ r Y |S w xY w)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?? BCs||+&~~cllDAAB	 Ne+U^^+ >>%088 BCs||+&~~cllDAAB - 
+ 		  
+ 	
 	s=   AC6 2C6 C6 AD D 3D 6DDDDc                 Z    | j                   j                  | j                  t        |       fS r   )r   co_filenamef_linenor   )	raw_frames    r   frame_idr2   x   s&    (()*<*<nY>WXXr    c                     |j                   j                  }	 |j                  d   }t        j
                  j                  ||      |t        ||      xs d | d   |j                  dS # t        $ r d }Y Nw xY w)Nr+      )r   r   r   r   r   )	r   r/   	f_globals	Exceptionospathjoinr   r0   )fidr1   cwdr   r   s        r   extract_framer<   }   s~    ++H$$Z0  GGLLh/'9ATF$$   s   A( (A65A6c                 r   t        |      }| "| j                  }|j                  |        |} | "t        d |D              }g }t	        |      D ]K  \  }}	|j                  |	      }
|
"t        |	||   |      }
|j                  |	|
       |j                  |
       M t        |      t        |      f}|||fS )aA  
    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   2   K   | ]  }t        |        y wr   )r2   ).0r1   s     r   	<genexpr>z extract_stack.<locals>.<genexpr>   s     Fihy)Fs   )
r   f_backappendtuple	enumerategetr<   setlenhash)r1   cacher;   max_stack_depth
raw_framesrB   	frame_idsframesir:   r   stack_ids               r   extract_stackrQ      s      o.J

!!)$	 

 F:FFIFI& 3		#=!#z!}c:EIIc5!e$ :Y/HY&&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<   rQ    r    r   <module>re      s   	  $ 0  .+H#YN sm	
	N (!	
 	G
 Wc\"H CHoG7Hd>.BBCNuX~%=>?O !   	(-`Y
B $	-'r    