o
    Á¿i`  ã                   @   sv   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ee
ƒZdedee d	ee d
ee dee	 f
dd„ZdS )z>
Exposure event building for Feature Flag evaluation results.
é    N)ÚOptional)ÚEvaluationContext)Ú
get_logger)ÚExposureEventÚflag_keyÚvariant_keyÚallocation_keyÚevaluation_contextÚreturnc                 C   s~   | s	t  d¡ dS |st  d¡ dS |st  d¡ dS |ptƒ }tt ¡ d ƒd|id| id|i|jp4d|jp8i dœd	œ}|S )
aÁ  
    Build an exposure event that will be batched and sent with context.

    Individual events are collected and sent in batches with shared context
    (service, env, version) to the EVP proxy intake endpoint.

    Args:
        flag_key: The feature flag key
        variant_key: The variant key returned by the evaluation
        allocation_key: The allocation key
        evaluation_context: The evaluation context with subject information
    z1Cannot build exposure event: flag_key is requiredNz4Cannot build exposure event: variant_key is requiredz7Cannot build exposure event: allocation_key is requirediè  ÚkeyÚ )ÚidÚ
attributes)Ú	timestampÚ
allocationÚflagÚvariantÚsubject)ÚloggerÚdebugr   ÚintÚtimeÚtargeting_keyr   )r   r   r   r	   Úexposure_event© r   úZ/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/openfeature/_exposure.pyÚbuild_exposure_event   s&   



þûr   )Ú__doc__r   Útypingr   Úopenfeature.evaluation_contextr   Úddtrace.internal.loggerr   Ú#ddtrace.internal.openfeature.writerr   Ú__name__r   Ústrr   r   r   r   r   Ú<module>   s$    ÿþýüû