
    .h                    8   d dl mZ d dlZd dlZd dlmZmZ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de          Z G d de	          Z G d dej        ee                   Z G d dee                   Z G d dee                   ZdS )    )annotationsN)AnyGenericTypeVar)	TypedDict   )logger   )util)TracingProcessor)Scope)SpanData	TSpanData)boundc                  $    e Zd ZU ded<   ded<   dS )	SpanErrorstrmessagedict[str, Any] | NonedataN)__name__
__module____qualname____annotations__     Q/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/agents/tracing/spans.pyr   r      s'         LLLr   r   c                  :   e Zd Zeej        dd                        Zeej        dd                        Zeej        dd                        Zej        dd d
            Z	ej        dd!d            Z
ej        d"d            Zej        d             Zeej        d#d                        Zej        d$d            Zeej        d%d                        Zej        d&d            Zeej        d#d                        Zeej        d#d                        ZdS )'Spanreturnr   c                    d S Nr   selfs    r   trace_idzSpan.trace_id   	     	r   c                    d S r"   r   r#   s    r   span_idzSpan.span_id   r&   r   r   c                    d S r"   r   r#   s    r   	span_datazSpan.span_data"   r&   r   Fmark_as_currentboolc                    dS )z
        Start the span.

        Args:
            mark_as_current: If true, the span will be marked as the current span.
        Nr   r$   r+   s     r   startz
Span.start'   	     	r   reset_currentNonec                    dS )z
        Finish the span.

        Args:
            reset_current: If true, the span will be reset as the current span.
        Nr   r$   r1   s     r   finishzSpan.finish1   r0   r   Span[TSpanData]c                    d S r"   r   r#   s    r   	__enter__zSpan.__enter__;       r   c                    d S r"   r   )r$   exc_typeexc_valexc_tbs       r   __exit__zSpan.__exit__?   r9   r   
str | Nonec                    d S r"   r   r#   s    r   	parent_idzSpan.parent_idC   r&   r   errorr   c                    d S r"   r   r$   rB   s     r   	set_errorzSpan.set_errorH   r9   r   SpanError | Nonec                    d S r"   r   r#   s    r   rB   z
Span.errorL   r&   r   r   c                    d S r"   r   r#   s    r   exportzSpan.exportQ   r9   r   c                    d S r"   r   r#   s    r   
started_atzSpan.started_atU   r&   r   c                    d S r"   r   r#   s    r   ended_atzSpan.ended_atZ   r&   r   Nr    r   r    r   Fr+   r,   r1   r,   r    r2   r    r6   r    r?   rB   r   r    r2   r    rF   r    r   )r   r   r   propertyabcabstractmethodr%   r(   r*   r/   r5   r8   r>   rA   rE   rB   rI   rK   rM   r   r   r   r   r      s1           X     X     X 	     	     	    	       X 	        X 	        X     X  r   r   c                      e Zd ZdZd dZed!d            Zed!d            Zed"d	            Zed#d            Z	d$d%dZ
d$d&dZd'dZd Zd(dZed)d            Zd*dZed#d            Zed#d            ZdS )+NoOpSpan
_span_data_prev_span_tokenr*   r   c                "    || _         d | _        d S r"   r]   )r$   r*   s     r   __init__zNoOpSpan.__init__c   s    #RVr   r    r   c                    dS Nzno-opr   r#   s    r   r%   zNoOpSpan.trace_idg       wr   c                    dS rc   r   r#   s    r   r(   zNoOpSpan.span_idk   rd   r   c                    | j         S r"   r^   r#   s    r   r*   zNoOpSpan.span_datao   
    r   r?   c                    d S r"   r   r#   s    r   rA   zNoOpSpan.parent_ids       tr   Fr+   r,   c                @    |rt          j        |           | _        d S d S r"   )r   set_current_spanr_   r.   s     r   r/   zNoOpSpan.startw   s0     	A$)$:4$@$@D!!!	A 	Ar   r1   r2   c                `    |r)| j         $t          j        | j                    d | _         d S d S d S r"   )r_   r   reset_current_spanr4   s     r   r5   zNoOpSpan.finish{   sD     	)T2>$T%:;;;$(D!!!	) 	)>>r   r6   c                2    |                      d           | S NT)r+   r/   r#   s    r   r8   zNoOpSpan.__enter__       

4
(((r   c                t    d}|t           u rt          j        d           d}|                     |           d S NTz"GeneratorExit, skipping span resetF)r1   GeneratorExitr	   debugr5   r$   r;   r<   r=   r1   s        r   r>   zNoOpSpan.__exit__   B    }$$L=>>>!M-00000r   rB   r   c                    d S r"   r   rD   s     r   rE   zNoOpSpan.set_error   s    r   rF   c                    d S r"   r   r#   s    r   rB   zNoOpSpan.error   rj   r   r   c                    d S r"   r   r#   s    r   rI   zNoOpSpan.export   s    tr   c                    d S r"   r   r#   s    r   rK   zNoOpSpan.started_at   rj   r   c                    d S r"   r   r#   s    r   rM   zNoOpSpan.ended_at   rj   r   N)r*   r   rN   rO   rT   rP   rQ   rR   rS   rU   rV   rW   )r   r   r   	__slots__ra   rX   r%   r(   r*   rA   r/   r5   r8   r>   rE   rB   rI   rK   rM   r   r   r   r\   r\   `   s       2IW W W W    X    X    X    XA A A A A) ) ) ) )
   1 1 1       X       X    X  r   r\   c                      e Zd ZdZd%dZed&d            Zed&d            Zed'd            Zed(d            Z	d)d*dZ
d)d+dZd,dZd Zd-dZed.d            Zed(d             Zed(d!            Zd/d#Zd$S )0SpanImpl)		_trace_id_span_id
_parent_id_started_at	_ended_at_errorr_   
_processorr^   r%   r   r(   r?   rA   	processorr   r*   r   c                    || _         |pt          j                    | _        || _        d | _        d | _        || _        d | _        d | _	        || _
        d S r"   )r   r   gen_span_idr   r   r   r   r   r   r_   r^   )r$   r%   r(   rA   r   r*   s         r   ra   zSpanImpl.__init__   sW     "54#3#5#5#'+%)#(,RV#r   r    c                    | j         S r"   )r   r#   s    r   r%   zSpanImpl.trace_id   
    ~r   c                    | j         S r"   )r   r#   s    r   r(   zSpanImpl.span_id   s
    }r   c                    | j         S r"   rg   r#   s    r   r*   zSpanImpl.span_data   rh   r   c                    | j         S r"   )r   r#   s    r   rA   zSpanImpl.parent_id   rh   r   Fr+   r,   c                    | j         t          j        d           d S t          j                    | _        | j                            |            |rt          j	        |           | _
        d S d S )NzSpan already started)rK   r	   warningr   time_isor   r   on_span_startr   rl   r_   r.   s     r   r/   zSpanImpl.start   sr    ?&N1222F=??%%d+++ 	A$)$:4$@$@D!!!	A 	Ar   r1   r2   c                    | j         t          j        d           d S t          j                    | _        | j                            |            |r)| j        $t          j
        | j                   d | _        d S d S d S )NzSpan already finished)rM   r	   r   r   r   r   r   on_span_endr_   r   rn   r4   s     r   r5   zSpanImpl.finish   s    =$N2333F##D))) 	)T2>$T%:;;;$(D!!!	) 	)>>r   r6   c                2    |                      d           | S rp   rq   r#   s    r   r8   zSpanImpl.__enter__   rr   r   c                t    d}|t           u rt          j        d           d}|                     |           d S rt   ru   rx   s        r   r>   zSpanImpl.__exit__   ry   r   rB   r   c                    || _         d S r"   r   rD   s     r   rE   zSpanImpl.set_error   s    r   rF   c                    | j         S r"   r   r#   s    r   rB   zSpanImpl.error   s
    {r   c                    | j         S r"   )r   r#   s    r   rK   zSpanImpl.started_at   s    r   c                    | j         S r"   )r   r#   s    r   rM   zSpanImpl.ended_at   r   r   r   c           	         d| j         | j        | j        | j        | j        | j                                        | j        dS )Nz
trace.span)objectidr%   rA   rK   rM   r*   rB   )r(   r%   r   r   r   r*   rI   r   r#   s    r   rI   zSpanImpl.export   sD    ",*..00[	
 	
 		
r   N)
r%   r   r(   r?   rA   r?   r   r   r*   r   rN   rO   rT   rP   rQ   rR   rS   rU   rV   rW   )r   r   r   r   ra   rX   r%   r(   r*   rA   r/   r5   r8   r>   rE   rB   rK   rM   rI   r   r   r   r   r      s       
I$ $ $ $$    X    X    X    XA A A A A	) 	) 	) 	) 	)   1 1 1       X       X     X

 

 

 

 

 

r   r   )
__future__r   rY   contextvarstypingr   r   r   typing_extensionsr   r	    r   processor_interfacer   scoper   r*   r   r   r   ABCr   r\   r   r   r   r   <module>r      s   " " " " " " 



     ( ( ( ( ( ( ( ( ( ( ' ' ' ' ' '             1 1 1 1 1 1            GKx000	         	      
F F F F F37GI& F F FR< < < < <tI < < <~i
 i
 i
 i
 i
tI i
 i
 i
 i
 i
r   