
    \jo                     n    d dl mZmZmZ d dlmZmZ d dl  G d d      Z G d d      Z	 G d d	      Z
y
)    )AnyListOptional)AttributeRef"opt_attr_ref_with_opt_context_kind)*c                   b    e Zd Zg dZdefdZedefd       Zedefd       Z	edefd       Z
y)	WeightedVariation)
_variation_weight
_untrackeddatac                 j    t        |d      | _        t        |d      | _        t        |d      | _        y )N	variationweight	untracked)req_intr   r   opt_boolr   selfr   s     R/root/env/lib/python3.12/site-packages/ldclient/impl/model/variation_or_rollout.py__init__zWeightedVariation.__init__
   s,    !$4tX."45    returnc                     | j                   S Nr   r   s    r   r   zWeightedVariation.variation       r   c                     | j                   S r   )r   r   s    r   r   zWeightedVariation.weight   s    ||r   c                     | j                   S r   )r   r   s    r   r   zWeightedVariation.untracked   r   r   N)__name__
__module____qualname__	__slots__dictr   propertyintr   r   r    r   r   r
   r
      sd    7I6T 6
 3      3  r   r
   c                       e Zd Zg dZdefdZedee   fd       Z	edee
   fd       Zedefd       Zedee   fd       Zedee   fd	       Zy
)Rollout)
_bucket_by_context_kind_is_experiment_seed_variationsr   c                     t        |d      | _        t        t        |d      | j                        | _        t        |d      dk(  | _        t        |d      | _        t        d t        |d      D              | _	        y )NcontextKindbucketBykind
experimentseedc              3   2   K   | ]  }t        |        y wr   )r
   ).0items     r   	<genexpr>z#Rollout.__init__.<locals>.<genexpr>$   s     fD 1$ 7fs   
variations)
opt_strr-   r   r,   r.   opt_intr/   listreq_dict_listr0   r   s     r   r   zRollout.__init__   sk    $T=9<WT:=VX\XjXjk%dF3|CT6*
fMRVXdDeffr   r   c                     | j                   S r   )r,   r   s    r   	bucket_byzRollout.bucket_by&   r   r   c                     | j                   S r   )r-   r   s    r   context_kindzRollout.context_kind*   s    !!!r   c                     | j                   S r   )r.   r   s    r   is_experimentzRollout.is_experiment.   s    """r   c                     | j                   S r   )r/   r   s    r   r6   zRollout.seed2   s    zzr   c                     | j                   S r   )r0   r   s    r   r;   zRollout.variations6   s    r   N)r"   r#   r$   r%   r&   r   r'   r   r   rA   strrC   boolrE   r(   r6   r   r
   r;   r)   r   r   r+   r+      s    YIgT g 8L1   "hsm " " #t # # hsm    D!23    r   r+   c                   R    e Zd ZddgZd Zedee   fd       Zedee	   fd       Z
y)VariationOrRolloutr   _rolloutc                 ~    |i n|}t        |d      | _        t        |d      }|d | _        y t        |      | _        y )Nr   rollout)r=   r   opt_dictr+   rL   )r   r   rN   s      r   r   zVariationOrRollout.__init__>   s=    \rt!$44+ 'WW5Er   r   c                     | j                   S r   r   r   s    r   r   zVariationOrRollout.variationD   r   r   c                     | j                   S r   )rL   r   s    r   rN   zVariationOrRollout.rolloutH   s    }}r   N)r"   r#   r$   r%   r   r'   r   r(   r   r+   rN   r)   r   r   rK   rK   ;   sQ    z*IF 8C=   '*  r   rK   N)typingr   r   r   !ldclient.impl.model.attribute_refr   r   ldclient.impl.model.entityr
   r+   rK   r)   r   r   <module>rU      s/    & & ^ ( *   > r   