o
    i                     @  s   d dl mZ d dlZd dlZd dlmZ ejrd dlm	Z	 dZ
ddd	Zd ddZd!ddZedZd"ddZG dd dejZG dd deZG dd deZdS )#    )annotationsN
rand64bits)Spantesting_root_spanreturnintc                   C  s   t  S Nr    r
   r
   R/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/testing/internal/utils.py_gen_item_id   s   r   valuet.Union[str, bool, None]boolc                 C  s&   | d u rdS t | tr| S |  dv S )NF)true1)
isinstancer   lower)r   r
   r
   r   asbool   s
   
r   st.Anystrc                 C  s.   t | tr| S t | tr| jdddS t| S )Nzutf-8ignore)errors)r   r   bytesdecode)r   r
   r
   r   ensure_text   s
   

r   z(https?://|ssh://)[^/]*@urlt.Optional[str]c                 C  s   | d ur
t d| S d S )Nz\1)_RE_URLsub)r   r
   r
   r   _filter_sensitive_info*   s   r!   c                   @  s2   e Zd ZU ded< ded< dddZdd	d
ZdS )TestContextr   span_idtrace_idr   dict[str, str]c                 C     d S r	   r
   selfr
   r
   r   get_tags2       zTestContext.get_tagsdict[str, float]c                 C  r&   r	   r
   r'   r
   r
   r   get_metrics4   r*   zTestContext.get_metricsNr   r%   r   r+   )__name__
__module____qualname____annotations__r)   r,   r
   r
   r
   r   r"   .   s
   
 
r"   c                   @  s,   e Zd ZddddZdd	d
ZdddZdS )PlainTestContextNr#   t.Optional[int]r$   c                 C  s   |pt  | _|p
t  | _d S r	   )r   r#   r$   )r(   r#   r$   r
   r
   r   __init__8   s   zPlainTestContext.__init__r   r%   c                 C     i S r	   r
   r'   r
   r
   r   r)   <      zPlainTestContext.get_tagsr+   c                 C  r6   r	   r
   r'   r
   r
   r   r,   ?   r7   zPlainTestContext.get_metrics)NN)r#   r4   r$   r4   r-   r.   r/   r0   r1   r5   r)   r,   r
   r
   r
   r   r3   7   s    
r3   c                   @  s*   e Zd ZdddZdddZdd
dZdS )DDTraceTestContextspanr   c                 C  s"   |j d | _ |jd | _|| _d S )Nl            )r$   r#   _span)r(   r:   r
   r
   r   r5   D   s   
zDDTraceTestContext.__init__r   r%   c                 C     dd | j   D S )Nc                 S     i | ]	\}}t ||qS r
   r   .0kvr
   r
   r   
<dictcomp>K       z/DDTraceTestContext.get_tags.<locals>.<dictcomp>)r;   r)   itemsr'   r
   r
   r   r)   I      zDDTraceTestContext.get_tagsr+   c                 C  r<   )Nc                 S  r=   r
   r>   r?   r
   r
   r   rC   O   rD   z2DDTraceTestContext.get_metrics.<locals>.<dictcomp>)r;   r,   rE   r'   r
   r
   r   r,   M   rF   zDDTraceTestContext.get_metricsN)r:   r   r-   r.   r8   r
   r
   r
   r   r9   C   s    

r9   )r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )
__future__r   retypingt#ddtrace.testing.internal.tracer_apir   TYPE_CHECKINGddtrace.tracer   DDTESTOPT_ROOT_SPAN_RESOURCEr   r   r   compiler   r!   Protocolr"   r3   r9   r
   r
   r
   r   <module>   s    





	