rules#
__all__ = ['BaseRule', 'JsonSchemaRule', 'Rule', 'Ruleset']module-attribute
Bases:
ABC, SerializableMixin “)
Source Code in griptape/rules/base_rule.py
@define()
class BaseRule(ABC, SerializableMixin):
value: Any = field(metadata={"serializable": True})
meta: dict[str, Any] = field(factory=dict, kw_only=True)
def __str__(self) -> str:
return self.to_text()
@abstractmethod
def to_text(self) -> str: ...
meta = field(factory=dict, kw_only=True)class-attribute instance-attributevalue = field(metadata={'serializable': True})class-attribute instance-attribute
str()#
Source Code in griptape/rules/base_rule.py
def __str__(self) -> str:
return self.to_text()
to_text()abstractmethod#
Source Code in griptape/rules/base_rule.py
@abstractmethod
def to_text(self) -> str: ...
JsonSchemaRule#
Bases: BaseRulesetDriver “)
Source Code in griptape/rules/json_schema_rule.py
@define()
class JsonSchemaRule(BaseRule):
value: dict = field(metadata={"serializable": True})
generate_template: J2 = field(default=Factory(lambda: J2("rules/json_schema.j2")))
def to_text(self) -> str:
return self.generate_template.render(json_schema=json.dumps(self.value))
generate_template = field(default=Factory(lambda: J2('rules/json_schema.j2')))class-attribute instance-attributevalue = field(metadata={'serializable': True})class-attribute instance-attribute
to_text()#
Source Code in griptape/rules/json_schema_rule.py
def to_text(self) -> str:
return self.generate_template.render(json_schema=json.dumps(self.value))
Rule#
Bases: BaseRulesetDriver “)
Source Code in griptape/rules/rule.py
@define()
class Rule(BaseRule):
value: str = field(metadata={"serializable": True})
def to_text(self) -> str:
return self.value
value = field(metadata={'serializable': True})class-attribute instance-attribute
to_text()#
Source Code in griptape/rules/rule.py
def to_text(self) -> str:
return self.value
Ruleset#
Bases: SerializableMixin “)
Source Code in griptape/rules/ruleset.py
@define
class Ruleset(SerializableMixin):
id: str = field(default=Factory(lambda: uuid.uuid4().hex), kw_only=True, metadata={"serializable": True})
name: str = field(
default=Factory(lambda self: self.id, takes_self=True),
metadata={"serializable": True},
)
ruleset_driver: BaseRulesetDriver = field(
default=Factory(lambda: Defaults.drivers_config.ruleset_driver), kw_only=True
)
meta: dict[str, Any] = field(factory=dict, kw_only=True, metadata={"serializable": True})
rules: Sequence[BaseRule] = field(factory=list, metadata={"serializable": True})
def __attrs_post_init__(self) -> None:
rules, meta = self.ruleset_driver.load(self.name)
self.rules = [*rules, *self.rules]
self.meta = {**meta, **self.meta}
id = field(default=Factory(lambda: uuid.uuid4().hex), kw_only=True, metadata={'serializable': True})class-attribute instance-attributemeta = field(factory=dict, kw_only=True, metadata={'serializable': True})class-attribute instance-attributename = field(default=Factory(lambda self: self.id, takes_self=True), metadata={'serializable': True})class-attribute instance-attributerules = field(factory=list, metadata={'serializable': True})class-attribute instance-attributeruleset_driver = field(default=Factory(lambda: Defaults.drivers_config.ruleset_driver), kw_only=True)class-attribute instance-attribute
attrs_post_init()#
Source Code in griptape/rules/ruleset.py
def __attrs_post_init__(self) -> None:
rules, meta = self.ruleset_driver.load(self.name)
self.rules = [*rules, *self.rules]
self.meta = {**meta, **self.meta}