
    \j                        d dl mZ d dlmZmZmZ d dlmZ d dl  G d d      Z	 G d de	      Z
 G d	 d
e	      Z G d de	      Z G d de	      ZddZddZddZddZddZddZddZddZd dZy)!    )annotations)AnyListOptional)Context)*c                  0    e Zd Zd ZddZddZd	dZd Zy)
BaseBuilderc                    || _         y Ndata)selfr   s     :/root/env/lib/python3.12/site-packages/testing/builders.py__init__zBaseBuilder.__init__	   s	    	    c                $    || j                   |<   | S r   r   )r   keyvalues      r   _setzBaseBuilder._set   s    		#r   c                B    | j                   |   j                  |       | S r   )r   append)r   r   items      r   _appendzBaseBuilder._append   s    		#d#r   c                B    | j                   |   j                  |       | S r   )r   extend)r   r   itemss      r   _append_allzBaseBuilder._append_all   s    		#e$r   c                6    | j                   j                         S r   )r   copyr   s    r   buildzBaseBuilder.build   s    yy~~r   N)r   strr   r   )r   r#   r   dict)r   r#   r   z	List[Any])__name__
__module____qualname__r   r   r   r   r"    r   r   r
   r
      s     r   r
   c                       e Zd Z fdZd ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZddZddZddZddZ xZS )FlagBuilderc                <    t         |   |ddg d i g g g g dd       y )N   F )r   versionon
variationsoffVariationfallthroughprerequisitestargetscontextTargetsrulessaltsuperr   r   r   	__class__s     r   r   zFlagBuilder.__init__   s6      
 	r   c                H    t        | j                  j                               S r   )FeatureFlagr   r    r!   s    r   r"   zFlagBuilder.build,   s    499>>+,,r   c                &    | j                  d|      S Nr   r   r   r   s     r   r   zFlagBuilder.key/       yy$$r   c                &    | j                  d|      S Nr.   r@   r   r.   s     r   r.   zFlagBuilder.version2       yyG,,r   c                &    | j                  d|      S )Nr/   r@   )r   r/   s     r   r/   zFlagBuilder.on5   s    yyr""r   c                8    | j                  dt        |            S )Nr0   )r   list)r   r0   s     r   r0   zFlagBuilder.variations8   s    yytJ'788r   c                &    | j                  d|      S )Nr1   r@   r   r   s     r   off_variationzFlagBuilder.off_variation;   s    yy//r   c                *    | j                  dd|i      S )Nr2   	variationr@   )r   indexs     r   fallthrough_variationz!FlagBuilder.fallthrough_variation>   s    yye(<==r   c                *    | j                  dd|i      S )Nr2   rolloutr@   r   rR   s     r   fallthrough_rolloutzFlagBuilder.fallthrough_rolloutA   s    yyG(<==r   c                ,    | j                  d||d      S )Nr3   )r   rN   )r   )r   r   rN   s      r   prerequisitezFlagBuilder.prerequisiteD   s    ||OSy-QRRr   c                >    | j                  d|t        |      d      S )Nr4   )rN   valuesr   rI   )r   rN   keyss      r   targetzFlagBuilder.targetG   s    ||IY$t*'UVVr   c                @    | j                  d||t        |      d      S )Nr5   )contextKindrN   rX   rY   )r   context_kindrN   rZ   s       r   context_targetzFlagBuilder.context_targetJ   s'    ||,(yDQUJWY 	Yr   c                8    | j                  dt        |            S Nr6   r   rI   r   r6   s     r   r6   zFlagBuilder.rulesN       e55r   c                &    | j                  d|      S Nr7   r@   rK   s     r   r7   zFlagBuilder.saltQ   s    yy''r   c                &    | j                  d|      S NtrackEventsr@   rK   s     r   track_eventszFlagBuilder.track_eventsT       yy..r   c                &    | j                  d|      S )NtrackEventsFallthroughr@   rK   s     r   track_events_fallthroughz$FlagBuilder.track_events_fallthroughW   s    yy1599r   c                &    | j                  d|      S )NdebugEventsUntilDater@   rK   s     r   debug_events_until_datez#FlagBuilder.debug_events_until_dateZ       yy/77r   )r   r#   returnr*   )r.   intrs   r*   )r/   boolrs   r*   )r0   r   rs   r*   )r   Optional[int]rs   r*   )rO   rt   rs   r*   )rR   r$   rs   r*   )r   r#   rN   rt   rs   r*   )rN   rt   rZ   r#   rs   r*   )r^   r#   rN   rt   rZ   r#   rs   r*   )r6   r$   rs   r*   )r   r#   rs   r*   )r   ru   rs   r*   )r%   r&   r'   r   r"   r   r.   r/   r0   rL   rP   rT   rV   r[   r_   r6   r7   rj   rn   rq   __classcell__r;   s   @r   r*   r*      s[    -%-#90>>SWY6(/:8r   r*   c                  F     e Zd Z fdZddZddZd	dZd
dZddZ xZ	S )FlagRuleBuilderc                (    t         |   dg i       y Nclausesr8   r   r;   s    r   r   zFlagRuleBuilder.__init___       )R)r   c                8    | j                  dt        |            S r|   rb   r   r}   s     r   r}   zFlagRuleBuilder.clausesb       	4=99r   c                &    | j                  d|      S )Nidr@   rK   s     r   r   zFlagRuleBuilder.ide   s    yyu%%r   c                &    | j                  d|      S )NrR   r@   rS   s     r   rR   zFlagRuleBuilder.rollouth   rF   r   c                &    | j                  d|      S rh   r@   rK   s     r   rj   zFlagRuleBuilder.track_eventsk   rk   r   c                &    | j                  d|      S )NrN   r@   )r   rN   s     r   rN   zFlagRuleBuilder.variationn   s    yyi00r   )r}   r$   rs   rz   )r   r#   rs   rz   )rR   zOptional[dict]rs   rz   )r   ru   rs   rz   )rN   rt   rs   rz   )
r%   r&   r'   r   r}   r   rR   rj   rN   rw   rx   s   @r   rz   rz   ^   s!    *:&-/1r   rz   c                  |     e Zd Z fdZd ZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZ xZS )SegmentBuilderc                8    t         |   |dg g g g g ddd	       y )Nr,   Fr-   )	r   r.   includedexcludedincludedContextsexcludedContextsr6   	unboundedr7   r8   r:   s     r   r   zSegmentBuilder.__init__s   s0     " "

 
	r   c                H    t        | j                  j                               S r   )Segmentr   r    r!   s    r   r"   zSegmentBuilder.build   s    tyy~~'((r   c                &    | j                  d|      S r?   r@   rA   s     r   r   zSegmentBuilder.key   rB   r   c                &    | j                  d|      S rD   r@   rE   s     r   r.   zSegmentBuilder.version   rF   r   c                8    | j                  dt        |            S )Nr   rb   r   rZ   s     r   r   zSegmentBuilder.excluded       
DJ77r   c                >    | j                  d|t        |      d      S )Nr   r]   rX   rY   r   r^   rZ   s      r   excluded_contextsz SegmentBuilder.excluded_contexts        ||.X\]aXb0cddr   c                8    | j                  dt        |            S )Nr   rb   r   s     r   r   zSegmentBuilder.included   r   r   c                >    | j                  d|t        |      d      S )Nr   r   rY   r   s      r   included_contextsz SegmentBuilder.included_contexts   r   r   c                &    | j                  d|      S rf   r@   )r   r7   s     r   r7   zSegmentBuilder.salt   s    yy&&r   c                8    | j                  dt        |            S ra   rb   rc   s     r   r6   zSegmentBuilder.rules   rd   r   c                &    | j                  d|      S )Nr   r@   rK   s     r   r   zSegmentBuilder.unbounded   s    yye,,r   c                &    | j                  d|      S )NunboundedContextKindr@   rK   s     r   unbounded_context_kindz%SegmentBuilder.unbounded_context_kind   rr   r   c                &    | j                  d|      S )N
generationr@   rK   s     r   r   zSegmentBuilder.generation   s    yyu--r   )r   r#   rs   r   )r.   rt   rs   r   )rZ   r#   rs   r   )r^   r#   rZ   r#   rs   r   )r7   r#   rs   r   )r6   r$   rs   r   )r   ru   rs   r   )r   Optional[str]rs   r   )r   rv   rs   r   )r%   r&   r'   r   r"   r   r.   r   r   r   r   r7   r6   r   r   r   rw   rx   s   @r   r   r   r   sF    )%-8e8e'6-8.r   r   c                  >     e Zd Z fdZddZddZddZddZ xZS )	SegmentRuleBuilderc                (    t         |   dg i       y r|   r8   r~   s    r   r   zSegmentRuleBuilder.__init__   r   r   c                &    | j                  d|      S )NbucketByr@   rK   s     r   	bucket_byzSegmentRuleBuilder.bucket_by   s    yyU++r   c                8    | j                  dt        |            S r|   rb   r   s     r   r}   zSegmentRuleBuilder.clauses   r   r   c                &    | j                  d|      S )NrolloutContextKindr@   rK   s     r   rollout_context_kindz'SegmentRuleBuilder.rollout_context_kind   s    yy-u55r   c                &    | j                  d|      S )Nweightr@   rK   s     r   r   zSegmentRuleBuilder.weight   s    yy5))r   )r   r   rs   r   )r}   r$   rs   r   )r   rv   rs   r   )	r%   r&   r'   r   r   r}   r   r   rw   rx   s   @r   r   r      s    *,:6*r   r   c                    t        |       j                  d      j                  d      j                  |      j	                  d      S )Nd   Fr   )r*   r.   r/   r0   rL   )r   r   s     r   build_off_flag_with_valuer      s:    s##C(++E2==eDRRSTUUr   c                >    t        t        | j                              S r   )make_boolean_flag_with_clauses make_clause_matching_segment_keyr   )segments    r   "make_boolean_flag_matching_segmentr      s    )*J7;;*WXXr   c                 |    t         t               j                  |  j                  d      j	                               S )Nr   )make_boolean_flag_with_rulesrz   r}   rN   r"   )r}   s    r   r   r      s3    '(A(9(A(A7(K(U(UVW(X(^(^(`aar   c                      t        d      j                  d      j                  dd      j                  d      j                  |  j                         S )NflagkeyTFr,   )r*   r/   r0   rP   r6   r"   )r6   s    r   r   r      sH    a;y!$$T*55dEBXXYZ[aachiooqqr   c                2    ||t        |      d}| | |d<   |S )N	attributeoprX   r]   rI   )r^   attrr   rX   rets        r   make_clauser      s'    B$v,
?C)MJr   c                :    | j                   dd| j                  gdS )Nr   in)r]   r   r   rX   )kindr   contexts    r   make_clause_matching_contextr      s    "<<e4T[T_T_S`aar   c                      ddt        |       dS )Nr-   segmentMatchr   r   )segment_keyss    r   r   r      s    >T,=OPPr   c                b    t               j                  t        |             j                         S r   )r   r}   r   r"   r   s    r   "make_segment_rule_matching_contextr      s%    ''(DW(MNTTVVr   c                P    | j                         }|j                  d       |d<   |S )Nnegate)r    get)clausecs     r   negate_clauser      s&    AeeHo%AhKHr   N)r   r#   r   r   rs   r*   )r   r   rs   r=   )r}   r$   rs   r=   )r6   r$   rs   r=   )
r^   r   r   r#   r   r#   rX   r   rs   r$   )r   r   rs   r$   )r   r#   rs   r$   )r   r$   rs   r$   )
__future__r   typingr   r   r   ldclient.contextr   ldclient.impl.modelr
   r*   rz   r   r   r   r   r   r   r   r   r   r   r   r(   r   r   <module>r      s    " & & $ !   (?8+ ?8D1k 1(0.[ 0.f* *"VYbrbQWr   