Skip to content

Comparators

FUNCTION DESCRIPTION
compare_all_in_list

Comparator for ALL_IN_VALUE action

compare_any_in_list

Comparator for ANY_IN_VALUE action

compare_modulo_range

Returns for a given context 'a' and modulo condition 'b' -> b.start <= a % b.base <= b.end

compare_none_in_list

Comparator for NONE_IN_VALUE action

compare_all_in_list

compare_all_in_list(
    context_value: list, condition_value: list
) -> bool

Comparator for ALL_IN_VALUE action

PARAMETER DESCRIPTION
context_value

user-defined context for flag evaluation

TYPE: list

condition_value

schema value available for condition being evaluated

TYPE: list

RETURNS DESCRIPTION
bool

Whether all list items in context_value are available in condition_value

Source code in aws_lambda_powertools/utilities/feature_flags/comparators.py
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
def compare_all_in_list(context_value: list, condition_value: list) -> bool:
    """Comparator for ALL_IN_VALUE action

    Parameters
    ----------
    context_value : list
        user-defined context for flag evaluation
    condition_value : list
        schema value available for condition being evaluated

    Returns
    -------
    bool
        Whether all list items in context_value are available in condition_value
    """
    if not isinstance(context_value, list):
        raise ValueError("Context provided must be a list. Unable to compare ALL_IN_VALUE action.")

    return all(key in condition_value for key in context_value)

compare_any_in_list

compare_any_in_list(
    context_value: list, condition_value: list
) -> bool

Comparator for ANY_IN_VALUE action

PARAMETER DESCRIPTION
context_value

user-defined context for flag evaluation

TYPE: list

condition_value

schema value available for condition being evaluated

TYPE: list

RETURNS DESCRIPTION
bool

Whether any list item in context_value is available in condition_value

Source code in aws_lambda_powertools/utilities/feature_flags/comparators.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
def compare_any_in_list(context_value: list, condition_value: list) -> bool:
    """Comparator for ANY_IN_VALUE action

    Parameters
    ----------
    context_value : list
        user-defined context for flag evaluation
    condition_value : list
        schema value available for condition being evaluated

    Returns
    -------
    bool
        Whether any list item in context_value is available in condition_value
    """
    if not isinstance(context_value, list):
        raise ValueError("Context provided must be a list. Unable to compare ANY_IN_VALUE action.")

    return any(key in condition_value for key in context_value)

compare_modulo_range

compare_modulo_range(
    context_value: int, condition_value: dict
) -> bool

Returns for a given context 'a' and modulo condition 'b' -> b.start <= a % b.base <= b.end

Source code in aws_lambda_powertools/utilities/feature_flags/comparators.py
80
81
82
83
84
85
86
87
88
def compare_modulo_range(context_value: int, condition_value: dict) -> bool:
    """
    Returns for a given context 'a' and modulo condition 'b' -> b.start <= a % b.base <= b.end
    """
    base = condition_value.get(ModuloRangeValues.BASE.value, 1)
    start = condition_value.get(ModuloRangeValues.START.value, 1)
    end = condition_value.get(ModuloRangeValues.END.value, 1)

    return start <= context_value % base <= end

compare_none_in_list

compare_none_in_list(
    context_value: list, condition_value: list
) -> bool

Comparator for NONE_IN_VALUE action

PARAMETER DESCRIPTION
context_value

user-defined context for flag evaluation

TYPE: list

condition_value

schema value available for condition being evaluated

TYPE: list

RETURNS DESCRIPTION
bool

Whether list items in context_value are not available in condition_value

Source code in aws_lambda_powertools/utilities/feature_flags/comparators.py
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
def compare_none_in_list(context_value: list, condition_value: list) -> bool:
    """Comparator for NONE_IN_VALUE action

    Parameters
    ----------
    context_value : list
        user-defined context for flag evaluation
    condition_value : list
        schema value available for condition being evaluated

    Returns
    -------
    bool
        Whether list items in context_value are **not** available in condition_value
    """
    if not isinstance(context_value, list):
        raise ValueError("Context provided must be a list. Unable to compare NONE_IN_VALUE action.")

    return all(key not in condition_value for key in context_value)