§
    xÅj§  ã                   ó^  — d dl Z d dlm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 erd dlmZ d dlmZmZmZmZmZ d d	lmZmZ 	 d d
lmZ n# e$ r  ed¦  «        ‚w xY w	 d dlm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)ÚTYPE_CHECKING)Ú
serializer)ÚDidNotEnableÚIntegration©Úadd_global_event_processor)Úiter_stacksÚwalk_exception_chain)Ú	FrameType)ÚAnyÚDictÚListÚOptionalÚTuple)Ú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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     úRC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/pure_eval.pyú
<listcomp>zNPureEvalIntegration.setup_once.<locals>.add_executing_info.<locals>.<listcomp>B   s:   € ð !ð !ð !àØ—y’y Ñ,Ô,ð!Øð!ð !ð !ó    Ú
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Ò6Õ7JÑKÔKÐSØ�àˆ|Ø�à—x’x 
¨DÑ1Ô1ˆHàÐØ�àŸ	š	 +¨tÑ4Ô4ˆIàÐ Ø�à—]’] 8¨TÑ2Ô2ˆFàˆ~Ø�å>AÝ˜Ñ Ô Õ"6°xÑ"@Ô"@ñ?ô ?ð ð Ñ:�	Ñ:˜I z°6ð!ð !à!*§¢¨|¸RÑ!@Ô!@×!DÒ!DÀXÈrÑ!RÔ!Rð!ñ !ô !�õ
 �; vÑ.Ô.Ñ/Ô/�Ý�}Ñ%Ô%­¨S©¬Ò1Ð1Øå(+¨M¸3Ñ(?Ô(?ð ð Ñ$�L "å'¨¬Ñ4Ô4ÐL¸ÀVÔ8Lð ! Ñ(Ð(ðð ˆ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                 ó@  ‡‡	— 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   rI   c                 ó   — | j         | j        fS ©N)ÚlinenoÚ
col_offset)rK   s    r'   Ústartz1pure_eval_frame.<locals>.closeness.<locals>.startn   s   € Ø”H˜aœlÐ+Ð+r)   c                 óF   •— g | ]} ‰|¦  «        ‰j         j        k     ¯|‘ŒS rD   )Ú
last_tokenÚend)r%   ÚnoderQ   Ústmts     €€r'   r(   z6pure_eval_frame.<locals>.closeness.<locals>.<listcomp>q   s7   ø€ ð 
ð 
ð 
Ø e e¨D¡k¤k°D´OÔ4GÒ&GÐ&GˆDÐ&GÐ&GÐ&Gr)   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S rN   rD   ©r%   rU   rQ   s     €r'   ú	<genexpr>z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>v   s+   øè è € ÐAÐA t�u�u˜T‘{”{ÐAÐAÐAÐAÐAÐAr)   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S rN   rD   rX   s     €r'   rY   z5pure_eval_frame.<locals>.closeness.<locals>.<genexpr>{   s+   øè è € Ð$CÐ$C°T U U¨4¡[¤[Ð$CÐ$CÐ$CÐ$CÐ$CÐ$Cr)   )rK   rL   r   rI   )ÚmaxÚmin)rG   ÚnodesÚ_valueÚnodes_before_stmtrO   rP   rQ   rV   s         @€r'   Ú	closenessz"pure_eval_frame.<locals>.closenessg   s·   øø€ ð
 #‰ˆˆvð	,ð 	,ð 	,ð 	,ð
ð 
ð 
ð 
ð 
Ø"ð
ñ 
ô 
Ðð ð 	*åÐAÐAÐAÐAÐ/@ÐAÑAÔAÑAÔAÐAõ
 "%Ð$CÐ$CÐ$CÐ$C¸UÐ$CÑ$CÔ$CÑ!CÔ!CÑˆF�JØ�G˜j˜[Ð)Ð)r)   )ÚkeyÚreversec                 óN   •— i | ]!\  }}‰                      |d          ¦  «        |“Œ"S )r   )Úget_text)r%   r]   ÚvalueÚatoks      €r'   ú
<dictcomp>z#pure_eval_frame.<locals>.<dictcomp>‚   s?   ø€ ð ð ð áˆE�5ð 	�Š�e˜A”hÑÔ ðð ð r)   )Úis_vars)rG   rH   r   rI   )r   Ú	for_frameÚtreeÚstatements_at_lineÚf_linenor2   ÚparentÚ
isinstanceÚastÚFunctionDefÚClassDefÚModuler   Ú
from_frameÚinteresting_expressions_groupedÚ	asttokensÚsortr   ÚMAX_DATABAG_BREADTHÚ	serialize)
r&   ÚsourceÚ
statementsÚscopeÚ	evaluatorÚexpressionsr`   r,   rf   rV   s
           @@r'   r4   r4   R   sN  øø€ ÝÔ˜eÑ$Ô$€FØŒ;ð Øˆ	à×*Ò*¨5¬>Ñ:Ô:€JØð Øˆ	å˜
Ñ#Ô# AÔ&Ð&€EˆDðð ”ˆÝ�e�cœo­s¬|½S¼ZÐHÑIÔIð 	Øðõ Ô$ UÑ+Ô+€IØ×;Ò;¸EÑBÔB€Kð*ð *ð *ð *ð *ð *ð0 ×ÒÑÔ€Dà×Ò˜¨DÐÑ1Ô1Ð1ðð ð ð à'Ð(H­*Ô*HÐ(HÔIðñ ô €Dõ Ô ¨dÐ3Ñ3Ô3Ð3r)   )r&   r   r   rE   )ro   Útypingr   r-   r   Úsentry_sdk.integrationsr   r   Úsentry_sdk.scoper   Úsentry_sdk.utilsr	   r
   Útypesr   r   r   r   r   r   Úsentry_sdk._typesr   r   Ú	executingr   ÚImportErrorr   r   ru   r   r4   rD   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44ð 44ð 44ð 44ð 44ð 44s$   Á
A ÁA"Á&A- Á-A>ÂB ÂB