
    tni                     V   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Zn# e$ r  ed
          w xY w	 d dlZn# e$ r  ed          w xY w	 d dlZn# e$ r  ed          w xY w G d de          ZddZdS )    N)
serializer)IntegrationDidNotEnableadd_global_event_processor)walk_exception_chainiter_stacks)TYPE_CHECKING)OptionalDictAnyTupleList)	FrameType)EventHintzexecuting is not installedzpure_eval is not installedzasttokens is not installedc                   *    e Zd ZdZedd            ZdS )PureEvalIntegration	pure_evalreturnNc                  4    t           	 	 	 	 	 	 dd            } d S )	Neventr   hintOptional[Hint]r   Optional[Event]c                    t          j                                        t                    | S || S |                    dd           }|| S |                     dd           }|| S |                    dd           }|| S t          t          |          t          |                    D ]\  }\  }}}d |                    di                               dg           D             }t          t          |                    }	t          |          t          |	          k    rzt          ||	          D ]$\  }
}t          |j                  p|
d         |
d<   %| S )Nexc_info	exceptionvaluesc                 <    g | ]}|                     d           |S )function)get).0frames     ^/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/pure_eval.py
<listcomp>zNPureEvalIntegration.setup_once.<locals>.add_executing_info.<locals>.<listcomp>C   s:     ! ! !yy,,!! ! !    
stacktraceframesvars)
sentry_sdk
get_clientget_integrationr   r"   zipreversedr   listr	   lenpure_eval_frametb_frame)r   r   r   r   r   	_exc_type
_exc_valueexc_tbsentry_framestbssentry_frametbs               r%   add_executing_infoz:PureEvalIntegration.setup_once.<locals>.add_executing_info'   s    $&&667JKKS|xx
D11H		+t44I ]]8T22F~>A  "6x"@"@? ?  :	:Iz6! !!*|R!@!@!D!DXr!R!R! ! !
 ;v..//}%%S11(+M3(?(?  $L"'44LV8L !(( Lr'   )r   r   r   r   r   r   r   )r;   s    r%   
setup_oncezPureEvalIntegration.setup_once%   sC    	#(	(	"2(	(	 (	 (	 
$	#(	 (	 (	r'   )r   N)__name__
__module____qualname__
identifierstaticmethodr<    r'   r%   r   r   "   s7        J* * * \* * *r'   r   r$   r   r   Dict[str, Any]c                 l  	 t           j                            |           }|j        si S |                    | j                  }|si S t          |          d         x}		 |j        }t          |t          j
        t          j        t          j        f          rn:t          j                            |           }|                    |          }d	fd}|                                |                    |d           fd	|d t&          j                 D             }t'          j        |d
          S )Nr   T
expressionTuple[List[Any], Any]r   Tuple[int, int]c                     | \  }}d	dfd|D             }|rt          fd|D                       S t          fd|D                       \  }}| | fS )
Nnast.exprr   rG   c                     | j         | j        fS N)lineno
col_offset)rI   s    r%   startz1pure_eval_frame.<locals>.closeness.<locals>.starto   s    Hal++r'   c                 F    g | ]} |          j         j        k     |S rB   )
last_tokenend)r#   noderO   stmts     r%   r&   z6pure_eval_frame.<locals>.closeness.<locals>.<listcomp>r   s;     
 
 
uT{{T_000 000r'   c              3   .   K   | ]} |          V  d S rL   rB   r#   rS   rO   s     r%   	<genexpr>z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>y   s+      AAtuuT{{AAAAAAr'   c              3   .   K   | ]} |          V  d S rL   rB   rV   s     r%   rW   z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>~   s+      $C$CTUU4[[$C$C$C$C$C$Cr'   )rI   rJ   r   rG   )maxmin)rE   nodes_valuenodes_before_stmtrM   rN   rO   rT   s         @r%   	closenessz"pure_eval_frame.<locals>.closenessh   s    
 #v	, 	, 	, 	,
 
 
 
 

 
 

  	*AAAA/@AAAAAA
 "%$C$C$C$CU$C$C$C!C!CFJGj[))r'   )keyreversec                 N    i | ]!\  }}                     |d                    |"S )r   )get_text)r#   r[   valueatoks      r%   
<dictcomp>z#pure_eval_frame.<locals>.<dictcomp>   s?       E5 	eAh  r'   )is_vars)rE   rF   r   rG   )	executingSource	for_frametreestatements_at_linef_linenor0   parent
isinstanceastFunctionDefClassDefModuler   	Evaluator
from_frameinteresting_expressions_grouped	asttokenssortr   MAX_DATABAG_BREADTH	serialize)
r$   source
statementsscope	evaluatorexpressionsr^   r*   rd   rT   s
           @@r%   r2   r2   S   sZ   ''..F; 	**5>::J 	
##A&&ED ecos|SZHII 	 #..u55I;;EBBK* * * * * *4 DD111   '(H**H(HI  D d3333r'   )r$   r   r   rC   )ro   r+   r   sentry_sdk.integrationsr   r   sentry_sdk.scoper   sentry_sdk.utilsr   r	   typingr
   r   r   r   r   r   typesr   sentry_sdk._typesr   r   rg   ImportErrorr   rv   r   r2   rB   r'   r%   <module>r      s   



     ! ! ! ! ! ! = = = = = = = = 7 7 7 7 7 7 > > > > > > > >             .77777777777777--------5 5 5 5
,3
4
4455 5 5 5
,3
4
4455 5 5 5
,3
4
445. . . . .+ . . .b64 64 64 64 64 64s$   
A A $A) )A:>B B