@@ -431,7 +431,7 @@ def evaluate_percent_condition(self, percent_condition,
431
431
True if the condition is met, False otherwise.
432
432
"""
433
433
if not context .get ('randomization_id' ):
434
- logger .warning ("Missing randomization ID for percent condition." )
434
+ logger .warning ("Missing randomization_id in context for evaluating percent condition." )
435
435
return False
436
436
437
437
seed = percent_condition .get ('seed' )
@@ -503,7 +503,7 @@ def evaluate_custom_signal_condition(self, custom_signal_condition,
503
503
actual_custom_signal_value = context .get (custom_signal_key ) or {}
504
504
505
505
if not actual_custom_signal_value :
506
- logger .warning ("Custom signal value not found in context: %s" , custom_signal_key )
506
+ logger .debug ("Custom signal value not found in context: %s" , custom_signal_key )
507
507
return False
508
508
509
509
if custom_signal_operator == CustomSignalOperator .STRING_CONTAINS .value :
@@ -525,53 +525,65 @@ def evaluate_custom_signal_condition(self, custom_signal_condition,
525
525
526
526
# For numeric operators only one target value is allowed.
527
527
if custom_signal_operator == CustomSignalOperator .NUMERIC_LESS_THAN .value :
528
- return self ._compare_numbers (target_custom_signal_values [0 ],
528
+ return self ._compare_numbers (custom_signal_key ,
529
+ target_custom_signal_values [0 ],
529
530
actual_custom_signal_value ,
530
531
lambda r : r < 0 )
531
532
if custom_signal_operator == CustomSignalOperator .NUMERIC_LESS_EQUAL .value :
532
- return self ._compare_numbers (target_custom_signal_values [0 ],
533
+ return self ._compare_numbers (custom_signal_key ,
534
+ target_custom_signal_values [0 ],
533
535
actual_custom_signal_value ,
534
536
lambda r : r <= 0 )
535
537
if custom_signal_operator == CustomSignalOperator .NUMERIC_EQUAL .value :
536
- return self ._compare_numbers (target_custom_signal_values [0 ],
538
+ return self ._compare_numbers (custom_signal_key ,
539
+ target_custom_signal_values [0 ],
537
540
actual_custom_signal_value ,
538
541
lambda r : r == 0 )
539
542
if custom_signal_operator == CustomSignalOperator .NUMERIC_NOT_EQUAL .value :
540
- return self ._compare_numbers (target_custom_signal_values [0 ],
543
+ return self ._compare_numbers (custom_signal_key ,
544
+ target_custom_signal_values [0 ],
541
545
actual_custom_signal_value ,
542
546
lambda r : r != 0 )
543
547
if custom_signal_operator == CustomSignalOperator .NUMERIC_GREATER_THAN .value :
544
- return self ._compare_numbers (target_custom_signal_values [0 ],
548
+ return self ._compare_numbers (custom_signal_key ,
549
+ target_custom_signal_values [0 ],
545
550
actual_custom_signal_value ,
546
551
lambda r : r > 0 )
547
552
if custom_signal_operator == CustomSignalOperator .NUMERIC_GREATER_EQUAL .value :
548
- return self ._compare_numbers (target_custom_signal_values [0 ],
553
+ return self ._compare_numbers (custom_signal_key ,
554
+ target_custom_signal_values [0 ],
549
555
actual_custom_signal_value ,
550
556
lambda r : r >= 0 )
551
557
552
558
# For semantic operators only one target value is allowed.
553
559
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_LESS_THAN .value :
554
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
560
+ return self ._compare_semantic_versions (custom_signal_key ,
561
+ target_custom_signal_values [0 ],
555
562
actual_custom_signal_value ,
556
563
lambda r : r < 0 )
557
564
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_LESS_EQUAL .value :
558
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
565
+ return self ._compare_semantic_versions (custom_signal_key ,
566
+ target_custom_signal_values [0 ],
559
567
actual_custom_signal_value ,
560
568
lambda r : r <= 0 )
561
569
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_EQUAL .value :
562
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
570
+ return self ._compare_semantic_versions (custom_signal_key ,
571
+ target_custom_signal_values [0 ],
563
572
actual_custom_signal_value ,
564
573
lambda r : r == 0 )
565
574
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_NOT_EQUAL .value :
566
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
575
+ return self ._compare_semantic_versions (custom_signal_key ,
576
+ target_custom_signal_values [0 ],
567
577
actual_custom_signal_value ,
568
578
lambda r : r != 0 )
569
579
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_GREATER_THAN .value :
570
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
580
+ return self ._compare_semantic_versions (custom_signal_key ,
581
+ target_custom_signal_values [0 ],
571
582
actual_custom_signal_value ,
572
583
lambda r : r > 0 )
573
584
if custom_signal_operator == CustomSignalOperator .SEMANTIC_VERSION_GREATER_EQUAL .value :
574
- return self ._compare_semantic_versions (target_custom_signal_values [0 ],
585
+ return self ._compare_semantic_versions (custom_signal_key ,
586
+ target_custom_signal_values [0 ],
575
587
actual_custom_signal_value ,
576
588
lambda r : r >= 0 )
577
589
logger .warning ("Unknown custom signal operator: %s" , custom_signal_operator )
@@ -597,17 +609,17 @@ def _compare_strings(self, target_values, actual_value, predicate_fn) -> bool:
597
609
return True
598
610
return False
599
611
600
- def _compare_numbers (self , target_value , actual_value , predicate_fn ) -> bool :
612
+ def _compare_numbers (self , custom_signal_key , target_value , actual_value , predicate_fn ) -> bool :
601
613
try :
602
614
target = float (target_value )
603
615
actual = float (actual_value )
604
616
result = - 1 if actual < target else 1 if actual > target else 0
605
617
return predicate_fn (result )
606
618
except ValueError :
607
- logger .warning ("Invalid numeric value for comparison." )
619
+ logger .warning ("Invalid numeric value for comparison for custom signal key %s." , custom_signal_key )
608
620
return False
609
621
610
- def _compare_semantic_versions (self , target_value , actual_value , predicate_fn ) -> bool :
622
+ def _compare_semantic_versions (self , custom_signal_key , target_value , actual_value , predicate_fn ) -> bool :
611
623
"""Compares the actual semantic version value of a signal against a target value.
612
624
Calls the predicate function with -1, 0, 1 if actual is less than, equal to,
613
625
or greater than target.
@@ -621,10 +633,10 @@ def _compare_semantic_versions(self, target_value, actual_value, predicate_fn) -
621
633
bool: True if the predicate function returns True for the result of the comparison,
622
634
False otherwise.
623
635
"""
624
- return self ._compare_versions (str (actual_value ),
636
+ return self ._compare_versions (custom_signal_key , str (actual_value ),
625
637
str (target_value ), predicate_fn )
626
638
627
- def _compare_versions (self , sem_version_1 , sem_version_2 , predicate_fn ) -> bool :
639
+ def _compare_versions (self , custom_signal_key , sem_version_1 , sem_version_2 , predicate_fn ) -> bool :
628
640
"""Compares two semantic version strings.
629
641
630
642
Args:
@@ -651,7 +663,7 @@ def _compare_versions(self, sem_version_1, sem_version_2, predicate_fn) -> bool:
651
663
return predicate_fn (1 )
652
664
return predicate_fn (0 )
653
665
except ValueError :
654
- logger .warning ("Invalid semantic version format for comparison." )
666
+ logger .warning ("Invalid semantic version format for comparison for custom signal key %s." , custom_signal_key )
655
667
return False
656
668
657
669
async def get_server_template (app : App = None , default_config : Optional [Dict [str , str ]] = None ):
0 commit comments