blob: fdd36010032aac647d659eea7d2e01797e32bd3f [file] [log] [blame]
"""Functions related to CEL language operations.
"""
def _merge(*expressions):
"""Merge CEL expressions together with && clause.
Args:
*expressions: expressions to merge
Returns:
merged expression or None if there's no args
"""
clauses = []
for exp in expressions:
if exp not in clauses:
clauses.append(exp)
if not clauses:
return None
clause_expr = "({})"
return " && ".join(
[
clause_expr.format(clause)
for clause in clauses
],
)
cel = struct(
merge = _merge,
)