
    \j                     >   d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ erd dlmZmZmZmZmZ d dlmZ d d	lmZmZ 	 d d
lmZ 	 d dlmZ 	 d dlZ G d de      ZddZy# e$ r	  ed      w xY w# e$ r	  ed      w xY w# e$ r	  ed      w xY w)    N)
serializer)IntegrationDidNotEnableadd_global_event_processor)walk_exception_chainiter_stacks)TYPE_CHECKING)OptionalDictAnyTupleList)	FrameType)EventHint)Sourcezexecuting is not installed)	Evaluatorzpure_eval is not installedzasttokens is not installedc                   "    e Zd ZdZedd       Zy)PureEvalIntegration	pure_evalNc                  *    t         	 	 	 	 	 	 dd       } y )Nc                    t        j                         j                  t              | S || S |j	                  dd       }|| S | j	                  dd       }|| S |j	                  dd       }|| S t        t        |      t        |            D ]  \  }\  }}}|j	                  di       j	                  dg       D cg c]  }|j	                  d      r| }	}t        t        |            }
t        |	      t        |
      k7  rvt        |	|
      D ]$  \  }}t        |j                        xs |d   |d<   &  | S c c}w )Nexc_info	exceptionvalues
stacktraceframesfunctionvars)
sentry_sdk
get_clientget_integrationr   getzipreversedr   listr	   lenpure_eval_frametb_frame)eventhintr   r   r   	_exc_type
_exc_valueexc_tbframesentry_framestbssentry_frametbs                K/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/pure_eval.pyadd_executing_infoz:PureEvalIntegration.setup_once.<locals>.add_executing_info'   s]    $$&667JKS|xx
D1H		+t4I ]]8T2F~>A "6x"@? :	:Iz6
 "+|R!@!D!DXr!R!yy, ! !
 ;v./}%S1(+M3(? $L"'4LV8L !(  L!s   <D;)r+   r   r,   zOptional[Hint]returnzOptional[Event]r   )r6   s    r5   
setup_oncezPureEvalIntegration.setup_once%   s,    	#(	(	"2(	(	 
$(	    )r7   N)__name__
__module____qualname__
identifierstaticmethodr8    r9   r5   r   r   "   s    J* *r9   r   c                    t        j                  |       }|j                  si S |j                  | j                        }|si S t        |      d   x}	 |j                  }t        |t        j                  t        j                  t        j                  f      rnGt        j                  |       }|j                  |      }dfd}|j                         }|j!                  |d       |d t"        j$                   D 	ci c]  \  }}	|j'                  |d         |	 }
}}	t#        j(                  |
d      S c c}	}w )Nr   Tc                     | \  }}dd|D cg c]#  } |      j                   j                  k  r|% }}|rt        fd|D              S t        fd|D              \  }}| | fS c c}w )Nc                 2    | j                   | j                  fS N)lineno
col_offset)ns    r5   startz1pure_eval_frame.<locals>.closeness.<locals>.starto   s    HHall++r9   c              3   .   K   | ]  } |        y wrC   r?   .0noderG   s     r5   	<genexpr>z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>y   s     AtuT{A   c              3   .   K   | ]  } |        y wrC   r?   rI   s     r5   rL   z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>~   s     $CTU4[$CrM   )rF   zast.exprr7   Tuple[int, int])
last_tokenendmaxmin)	
expressionnodes_valuerK   nodes_before_stmtrD   rE   rG   stmts	          @r5   	closenessz"pure_eval_frame.<locals>.closenessh   s    
 #v	,
 
T{T__000 
 

 A/@AAA
 "%$CU$C!CFJGj[))
s   (A-)keyreverse)is_vars)rT   zTuple[List[Any], Any]r7   rO   )r   	for_frametreestatements_at_linef_linenor'   parent
isinstanceastFunctionDefClassDefModuler   
from_frameinteresting_expressions_grouped	asttokenssortr   MAX_DATABAG_BREADTHget_text	serialize)r0   source
statementsscope	evaluatorexpressionsrY   atokrU   valuer    rX   s              @r5   r)   r)   S   s)   e$F;;	**5>>:J	
#A&&ED
 ecoos||SZZHI  $$U+I;;EBK*4 DD1 ((H**H*HIE5 	eAh&D  d33	s   D:)r0   r   r7   zDict[str, Any])rc   r!   r   sentry_sdk.integrationsr   r   sentry_sdk.scoper   sentry_sdk.utilsr   r	   typingr
   r   r   r   r   r   typesr   sentry_sdk._typesr   r   	executingr   ImportErrorr   r   ri   r   r)   r?   r9   r5   <module>r}      s    
  ! = 7 >  77-5 5#5
.+ .b64A  5
3
445
  5
3
445  5
3
445s$   
A, A= B ,A:=BB