• __all__ = ['BaseRule', 'JsonSchemaRule', 'Rule', 'Ruleset'] module-attribute

Bases:

ABC, [`SerializableMixin`](../mixins/serializable_mixin.md#griptape.mixins.serializable_mixin.SerializableMixin "SerializableMixin (griptape.mixins.serializable_mixin.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-attribute

  • value = 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: BaseRule

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-attribute

  • value = 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: BaseRule

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-attribute

  • meta = field(factory=dict, kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

  • name = field(default=Factory(lambda self: self.id, takes_self=True), metadata={'serializable': True}) class-attribute instance-attribute

  • rules = field(factory=list, metadata={'serializable': True}) class-attribute instance-attribute

  • ruleset_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}

Could this page be better? Report a problem or suggest an addition!