rule_mixin#
Bases: SerializableMixin “)
Source Code in griptape/mixins/rule_mixin.py
@define(slots=False)
class RuleMixin(SerializableMixin):
DEFAULT_RULESET_NAME = "Default Ruleset"
_rulesets: list[Ruleset] = field(
factory=list,
kw_only=True,
alias="rulesets",
metadata={"serializable": True, "serialization_key": "_rulesets", "deserialization_key": "rulesets"},
)
rules: list[BaseRule] = field(
factory=list, kw_only=True, metadata={"serializable": True, "deserialization_key": "rules"}
)
_default_ruleset_name: str = field(default=Factory(lambda: RuleMixin.DEFAULT_RULESET_NAME), kw_only=True)
_default_ruleset_id: str = field(default=Factory(lambda: uuid.uuid4().hex), kw_only=True)
@property
def rulesets(self) -> list[Ruleset]:
rulesets = self._rulesets.copy()
if self.rules:
rulesets.append(Ruleset(id=self._default_ruleset_id, name=self._default_ruleset_name, rules=self.rules))
return rulesets
DEFAULT_RULESET_NAME = 'Default Ruleset'class-attribute instance-attribute_default_ruleset_id = field(default=Factory(lambda: uuid.uuid4().hex), kw_only=True)class-attribute instance-attribute_default_ruleset_name = field(default=Factory(lambda: RuleMixin.DEFAULT_RULESET_NAME), kw_only=True)class-attribute instance-attribute_rulesets = field(factory=list, kw_only=True, alias='rulesets', metadata={'serializable': True, 'serialization_key': '_rulesets', 'deserialization_key': 'rulesets'})class-attribute instance-attributerules = field(factory=list, kw_only=True, metadata={'serializable': True, 'deserialization_key': 'rules'})class-attribute instance-attributerulesetsproperty