python-sdk/open_feature/evaluation_context/evaluation_context.py

14 lines
535 B
Python

class EvaluationContext:
def __init__(self, targeting_key: str = None, attributes: dict = None):
self.targeting_key = targeting_key
self.attributes = attributes or {}
def merge(self, ctx2: "EvaluationContext") -> "EvaluationContext":
if not (self and ctx2):
return self or ctx2
attributes = {**self.attributes, **ctx2.attributes}
targeting_key = ctx2.targeting_key or self.targeting_key
return EvaluationContext(targeting_key=targeting_key, attributes=attributes)