
    g                     `    d dl Z d dlZd dlmZ  G d de j                        Z G d de      Zy)    N)tracec                   `    e Zd Zej                  defd       Zej                  defd       Zy)IdGeneratorreturnc                      y)z[Get a new span ID.

        Returns:
            A 64-bit int for use as a span ID
        N selfs    Y/var/www/openai/venv/lib/python3.12/site-packages/opentelemetry/sdk/trace/id_generator.pygenerate_span_idzIdGenerator.generate_span_id           c                      y)a  Get a new trace ID.

        Implementations should at least make the 64 least significant bits
        uniformly random. Samplers like the `TraceIdRatioBased` sampler rely on
        this randomness to make sampling decisions.

        See `the specification on TraceIdRatioBased <https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#traceidratiobased>`_.

        Returns:
            A 128-bit int for use as a trace ID
        Nr   r	   s    r   generate_trace_idzIdGenerator.generate_trace_id   r   r   N)__name__
__module____qualname__abcabstractmethodintr   r   r   r   r   r   r      sB    #   	3  r   r   c                   (    e Zd ZdZdefdZdefdZy)RandomIdGeneratorzkThe default ID generator for TracerProvider which randomly generates all
    bits when generating IDs.
    r   c                     t        j                  d      }|t        j                  k(  r)t        j                  d      }|t        j                  k(  r)|S )N@   )randomgetrandbitsr   INVALID_SPAN_ID)r
   span_ids     r   r   z"RandomIdGenerator.generate_span_id2   sE    $$R(...((,G ...r   c                     t        j                  d      }|t        j                  k(  r)t        j                  d      }|t        j                  k(  r)|S )N   )r   r   r   INVALID_TRACE_ID)r
   trace_ids     r   r   z#RandomIdGenerator.generate_trace_id8   sE    %%c*%000))#.H %000r   N)r   r   r   __doc__r   r   r   r   r   r   r   r   -   s    # 3 r   r   )r   r   opentelemetryr   ABCr   r   r   r   r   <module>r&      s,      #'' 0 r   