Source code for harp_apps.rules.settings
from harp_apps.rules.models.rulesets import RuleSet
[docs]
class RulesSettings:
[docs]
def __init__(self, /, **sources):
self.ruleset = RuleSet()
self.ruleset.add(sources)
def _asdict(self, /, *, secure=True):
return self.ruleset._asdict(secure=secure)
def __repr__(self):
return f"{self.__class__.__name__}(rules={self.ruleset})"
[docs]
def load(self, /, filename, *, prefix="rules"):
if filename.endswith(".yaml") or filename.endswith(".yml"):
from harp.utils.config import yaml
self.ruleset.add(yaml.load(filename).get(prefix, {}))
elif filename.endswith(".toml"):
from harp.utils.config import toml
self.ruleset.add(toml.load(filename).get(prefix, {}))
else:
raise ValueError(f"Unsupported file format: {filename}")