
    \j	                         d dl mZmZmZmZ d dlmZmZ d dlm	Z	 d dl
  G d d      Z G d d      Z G d	 d
e      Zy)    )AnyListOptionalSet)AttributeRef"opt_attr_ref_with_opt_context_kindClause)*c                   Z    e Zd ZddgZd	defdZedee   fd       Z	ede
e   fd       Zy)
SegmentTarget_context_kind_valuesNdatac                 Z    t        |d      | _        t        t        |d            | _        y )NcontextKindvalues)opt_strr   setreq_str_listr   )selfr   loggers      E/root/env/lib/python3.12/site-packages/ldclient/impl/model/segment.py__init__zSegmentTarget.__init__   s$    $T=9<h78    returnc                     | j                   S N)r   r   s    r   context_kindzSegmentTarget.context_kind   s    !!!r   c                     | j                   S r   )r   r   s    r   r   zSegmentTarget.values       ||r   r   )__name__
__module____qualname__	__slots__dictr   propertyr   strr    r   r    r   r   r   r      sV     ),I9T 9 "hsm " " C  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e   fd       Zedee   fd       Zy	)
SegmentRule)
_bucket_by_clauses_rollout_context_kind_weightr   c                     t        d t        |d      D              | _        t        |d      | _        t        t        |d      | j                        | _        t        |d      | _        y )Nc              3   2   K   | ]  }t        |        y wr   r	   .0items     r   	<genexpr>z'SegmentRule.__init__.<locals>.<genexpr>   s     UdVD\U   clausesrolloutContextKindbucketByweight)	listreq_dict_listr.   r   r/   r   r-   opt_intr0   )r   r   s     r   r   zSegmentRule.__init__   sU    UmD)6TUU%,T3G%H"<WT:=VX\XrXrstX.r   r   c                     | j                   S r   )r-   r   s    r   	bucket_byzSegmentRule.bucket_by!       r   c                     | j                   S r   )r.   r   s    r   r8   zSegmentRule.clauses%       }}r   c                     | j                   S r   )r/   r   s    r   rollout_context_kindz SegmentRule.rollout_context_kind)   s    )))r   c                     | j                   S r   )r0   r   s    r   r;   zSegmentRule.weight-   r"   r   N)r#   r$   r%   r&   r'   r   r(   r   r   r@   r   r
   r8   r)   rE   intr;   r*   r   r   r,   r,      s    NI/T / 8L1   f   *hsm * *   r   r,   c                   ^    e Zd Zg dZdef fdZedefd       Zede	fd       Z
edefd       Zedee   fd       Zedee   fd	       Zede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fd       Zedee   fd       Zedee	   fd       Z xZS )Segment)_data_key_version_deleted	_included	_excluded_included_contexts_excluded_contexts_rules_salt
_unbounded_unbounded_context_kind_generationr   c                 b   t         |   |       t        |d      | _        t	        |d      | _        t        |d      | _        | j                  ry t        t        |d            | _
        t        t        |d            | _        t        d t        |d      D              | _        t        d t        |d	      D              | _        t        d
 t        |d      D              | _        t#        |d      xs d| _        t        |d      | _        t#        |d      | _        t+        |d      | _        y )Nkeyversiondeletedincludedexcludedc              3   2   K   | ]  }t        |        y wr   r   r3   s     r   r6   z#Segment.__init__.<locals>.<genexpr>D        &ot}T':&or7   includedContextsc              3   2   K   | ]  }t        |        y wr   r^   r3   s     r   r6   z#Segment.__init__.<locals>.<genexpr>E   r_   r7   excludedContextsc              3   2   K   | ]  }t        |        y wr   )r,   r3   s     r   r6   z#Segment.__init__.<locals>.<genexpr>F   s     V;t,Vr7   rulessalt 	unboundedunboundedContextKind
generation)superr   req_strrK   req_intrL   opt_boolrM   r   opt_str_listrN   rO   r<   opt_dict_listrP   rQ   rR   r   rS   rT   rU   r>   rV   )r   r   	__class__s     r   r   zSegment.__init__7   s    
 D%(	i0 y1==\$
;<\$
;<"&&o}UY[mGn&o"o"&&o}UY[mGn&o"oVtW9UVVT6*0b
"45'.t5K'L$"46r   r   c                     | j                   S r   )rK   r   s    r   rX   zSegment.keyL   s    yyr   c                     | j                   S r   )rL   r   s    r   rY   zSegment.versionP   rC   r   c                     | j                   S r   )rM   r   s    r   rZ   zSegment.deletedT   rC   r   c                     | j                   S r   )rN   r   s    r   r[   zSegment.includedX       ~~r   c                     | j                   S r   )rO   r   s    r   r\   zSegment.excluded\   ru   r   c                     | j                   S r   )rP   r   s    r   included_contextszSegment.included_contexts`       &&&r   c                     | j                   S r   )rQ   r   s    r   excluded_contextszSegment.excluded_contextsd   ry   r   c                     | j                   S r   )rR   r   s    r   rd   zSegment.rulesh   s    {{r   c                     | j                   S r   )rS   r   s    r   re   zSegment.saltl   s    zzr   c                     | j                   S r   )rT   r   s    r   rg   zSegment.unboundedp   rA   r   c                     | j                   S r   )rU   r   s    r   unbounded_context_kindzSegment.unbounded_context_kindt   s    +++r   c                     | j                   S r   )rV   r   s    r   ri   zSegment.generationx   s    r   )r#   r$   r%   r&   r'   r   r(   r)   rX   rG   rY   boolrZ   r   r[   r\   r   r   rx   r{   r   rd   re   rg   r   r   ri   __classcell__)rp   s   @r   rI   rI   2   sx   2I7T 7* S         #c(   #c(   '4#6 ' ' '4#6 ' ' tCy   c   4   , , ,  HSM    r   rI   N)typingr   r   r   r   !ldclient.impl.model.attribute_refr   r   ldclient.impl.model.clauser
   ldclient.impl.model.entityr   r,   ModelEntityrI   r*   r   r   <module>r      s6    + + ^ - (   4H k H r   