
    \j^                         d dl mZmZmZmZ d dlmZ d dl d dlm	Z	  G d d      Z
 G d d      Z G d	 d
      Z G d de      Zy)    )AnyListOptionalSetClause)*)VariationOrRolloutc                   L    e Zd ZddgZdefdZedefd       Zede	fd       Z
y)	Prerequisite_key
_variationdatac                 H    t        |d      | _        t        |d      | _        y )Nkey	variation)req_strr   req_intr   selfr   s     J/root/env/lib/python3.12/site-packages/ldclient/impl/model/feature_flag.py__init__zPrerequisite.__init__   s    D%(	!$4    returnc                     | j                   S Nr   r   s    r   r   zPrerequisite.key       yyr   c                     | j                   S r   r   r   s    r   r   zPrerequisite.variation       r   N)__name__
__module____qualname__	__slots__dictr   propertystrr   intr    r   r   r   r      sN    &I5T 5 S   3  r   r   c                   n    e Zd Zg dZdefdZedee   fd       Z	ede
fd       Zedee   fd       Zy)	Target)_context_kindr   _valuesr   c                 |    t        |d      | _        t        |d      | _        t	        t        |d            | _        y )NcontextKindr   values)opt_strr.   r   r   setreq_str_listr/   r   s     r   r   zTarget.__init__   s2    $T=9!$4<h78r   r   c                     | j                   S r   )r.   r   s    r   context_kindzTarget.context_kind        !!!r   c                     | j                   S r   r!   r   s    r   r   zTarget.variation$   r"   r   c                     | j                   S r   )r/   r   s    r   r2   zTarget.values(   s    ||r   N)r#   r$   r%   r&   r'   r   r(   r   r)   r7   r*   r   r   r2   r+   r   r   r-   r-      sl    :I9T 9
 "hsm " " 3   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fd       Zedefd       Zy	)
FlagRule)_id_clauses_track_events_variation_or_rolloutr   c                     t        |d      | _        t        |      | _        t	        d t        |d      D              | _        t        |d      | _        y )Nidc              3   2   K   | ]  }t        |        y wr   r   .0items     r   	<genexpr>z$FlagRule.__init__.<locals>.<genexpr>3        UdVD\U   clausestrackEvents)	r3   r=   r
   r@   listreq_dict_listr>   opt_boolr?   r   s     r   r   zFlagRule.__init__0   sE    4&%7%="UmD)6TUU%dM:r   r   c                     | j                   S r   )r=   r   s    r   rB   zFlagRule.id6       xxr   c                     | j                   S r   )r>   r   s    r   rJ   zFlagRule.clauses:       }}r   c                     | j                   S r   r?   r   s    r   track_eventszFlagRule.track_events>   r8   r   c                     | j                   S r   )r@   r   s    r   variation_or_rolloutzFlagRule.variation_or_rolloutB   s    )))r   N)r#   r$   r%   r&   r'   r   r(   r   r)   rB   r   r   rJ   boolrU   r
   rW   r+   r   r   r<   r<   -   s    MI;T ; HSM   f   "d " " *&8 * *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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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fd       Zedeee	e f      fd       Z! xZ"S )FeatureFlag)_datar   _version_deleted_variations_on_off_variation_fallthrough_prerequisites_targets_context_targets_rules_saltr?   _debug_events_until_dater   c                    t         |   |       t        |d      | _        t	        |d      | _        t        |d      | _        | j                  ry t        |d      | _	        t        |d      | _
        t        |d      | _        t        t        |d            | _        t!        d t#        |d	      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      | _        t5        |d      | _        y )Nr   versiondeleted
variationsonoffVariationfallthroughc              3   2   K   | ]  }t        |        y wr   )r   rD   s     r   rG   z'FeatureFlag.__init__.<locals>.<genexpr>[   s     "g$<#5"grI   prerequisitesc              3   2   K   | ]  }t        |        y wr   )r<   rD   s     r   rG   z'FeatureFlag.__init__.<locals>.<genexpr>\   s     Sd8D>SrI   rulesc              3   2   K   | ]  }t        |        y wr   r-   rD   s     r   rG   z'FeatureFlag.__init__.<locals>.<genexpr>]   rH   rI   targetsc              3   2   K   | ]  }t        |        y wr   rt   rD   s     r   rG   z'FeatureFlag.__init__.<locals>.<genexpr>^   s     $ddVD\$drI   contextTargetssalt rK   trackEventsFallthroughdebugEventsUntilDate)superr   r   r   r   r\   rN   r]   opt_listr^   r_   opt_intr`   r
   opt_dictra   rL   opt_dict_listrb   re   rc   rd   r3   rf   r?   _track_events_fallthrough
opt_numberrg   )r   r   	__class__s     r   r   zFeatureFlag.__init__L   s1   
 D%(	i0 y1==#D,7D$'%dN;.xm/LM""g-PTVeBf"ggSmD'6RSSUmD)6TUU $$dmDRb>c$d dT6*0b
%dM:)1$8P)Q&(249O(P%r   r   c                     | j                   S r   r   r   s    r   r   zFeatureFlag.keyd   r   r   c                     | j                   S r   )r\   r   s    r   ri   zFeatureFlag.versionh   rR   r   c                     | j                   S r   )r]   r   s    r   rj   zFeatureFlag.deletedl   rR   r   c                     | j                   S r   )r^   r   s    r   rk   zFeatureFlag.variationsp   s    r   c                     | j                   S r   )r_   r   s    r   rl   zFeatureFlag.ont   rP   r   c                     | j                   S r   )r`   r   s    r   off_variationzFeatureFlag.off_variationx       """r   c                     | j                   S r   )ra   r   s    r   rn   zFeatureFlag.fallthrough|   s       r   c                     | j                   S r   )rb   r   s    r   rp   zFeatureFlag.prerequisites   r   r   c                     | j                   S r   )rc   r   s    r   ru   zFeatureFlag.targets   rR   r   c                     | j                   S r   )rd   r   s    r   context_targetszFeatureFlag.context_targets   s    $$$r   c                     | j                   S r   )re   r   s    r   rr   zFeatureFlag.rules   s    {{r   c                     | j                   S r   )rf   r   s    r   rx   zFeatureFlag.salt   s    zzr   c                     | j                   S r   rT   r   s    r   rU   zFeatureFlag.track_events   r8   r   c                     | j                   S r   )r   r   s    r   track_events_fallthroughz$FeatureFlag.track_events_fallthrough   s    ---r   c                     | j                   S r   )rg   r   s    r   debug_events_until_datez#FeatureFlag.debug_events_until_date   s    ,,,r   )#r#   r$   r%   r&   r'   r   r(   r)   r   r*   ri   rX   rj   r   r   rk   rl   r   r   r
   rn   r   rp   r-   ru   r   r<   rr   rx   rU   r   Unionfloatr   __classcell__)r   s   @r   rZ   rZ   G   s   >IQT Q0 S          DI     D   #x} # # !/ ! ! #tL1 # # f   %f % % tH~   c   "d " " .$ . . -%U
2C)D - -r   rZ   N)typingr   r   r   r   ldclient.impl.model.clauser   ldclient.impl.model.entity(ldclient.impl.model.variation_or_rolloutr
   r   r-   r<   ModelEntityrZ   r+   r   r   <module>r      s@    + + - ( G   ** *4W-+ W-r   