
    .Ph                    P    d dl mZ d dlmZ er
d dlZd dlmZ  G d d          ZdS )    )annotations)TYPE_CHECKINGN)	FrameTypec                      e Zd ZU i Zded<   ddZedd	            Zedd            Zedd            Z	edd            Z
edd            Zedd            ZddZddZddZdS )Framezdict[str, str]_content_cache
frame_infoinspect.FrameInforeturnNonec                    |j         | _        || _        |j        | _        |j        | _        |j        | _        d | _	        d | _
        d S N)frame_frame_frame_infolineno_linenofilename	_filenamefunction	_function_lines_file_content)selfr	   s     O/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/crashtest/frame.py__init__zFrame.__init__   sG     &%!(#,#,)-    r   c                    | j         S r   )r   r   s    r   r   zFrame.frame   s
    {r   intc                    | j         S r   )r   r   s    r   r   zFrame.lineno   s
    |r   strc                    | j         S r   )r   r   s    r   r   zFrame.filename    
    ~r   c                    | j         S r   )r   r   s    r   r   zFrame.function$   r$   r   c                B    | j         j        sdS | j         j        d         S )N r   )r   code_contextr   s    r   linez
Frame.line(   s&    , 	2,Q//r   c                h   | j         | j        sd}n| j        | j        j        vrj	 t	          | j        d          5 }|                                }d d d            n# 1 swxY w Y   n# t          $ r d}Y nw xY w|| j        j        | j        <   | j        j        | j                 }|| _         | j         S )Nr'   zutf-8)encoding)r   r   	__class__r   openreadOSError)r   file_contentfs      r   r0   zFrame.file_content/   s   %> M!>)FFF*!$.7CCC 4q+,6688L4 4 4 4 4 4 4 4 4 4 4 4 4 4 4" * * *')* EQDN1$.A#~<T^L!-D!!s4   A) AA) A!!A) $A!%A) )A87A8c                ~    t          | j                  t          | j                  z  t          | j                  z  S r   )hashr   r   r   r   s    r   __hash__zFrame.__hash__D   s0    DN##d4>&:&::T$,=O=OOOr   otherobjectboolc                    t          |t                    st          | j        |j        k    o| j        |j        k    o| j        |j        k    S r   )	
isinstancer   NotImplementedErrorr   r   r   r   r   r   )r   r5   s     r   __eq__zFrame.__eq__G   sM    %'' 	&%%Nen, -%.0-,	
r   c                8    d| j          d| j         d| j         dS )Nz<Frame z, >)r   r   r   r   s    r   __repr__zFrame.__repr__P   s)    LLL4>LLT\LLLLr   N)r	   r
   r   r   )r   r   )r   r    )r   r"   )r5   r6   r   r7   )__name__
__module____qualname__r   __annotations__r   propertyr   r   r   r   r)   r0   r4   r;   r>    r   r   r   r      sA        %'N''''. . . .    X    X    X    X 0 0 0 X0 " " " X"(P P P P
 
 
 
M M M M M Mr   r   )
__future__r   typingr   inspecttypesr   r   rD   r   r   <module>rI      s    " " " " " "               NNNEM EM EM EM EM EM EM EM EM EMr   