# Copyright (C) 2005-2024 Splunk Inc. All Rights Reserved. import json try: from types import SimpleNamespace as Namespace except ImportError: # Python 2.x fallback from argparse import Namespace # noqa class FeatureFlaggingState(object): """ This class provides semantics of a feature flagging state object stored in the KV Store. """ def __init__(self, dict): self.suite = None self.__dict__.update(dict) assert self.suite, "Suite name should be set" @classmethod def from_suite(cls, suite): return cls({"suite": suite}) @classmethod def from_dict(cls, dict): """ De-Serializer: Converts dict object into FeatureFlaggingState object """ return FeatureFlaggingState(dict) def get_suite(self): return self.suite def set_suite(self, suite): self.suite = suite def to_json(self): """ Serializer: Converts the FeatureFlaggingState object into dict object """ json_str = json.dumps(self, default=lambda x: x.__dict__) return json.loads(json_str) def to_dict(self): return self.__dict__