Bases: SerializableMixin
, ABC
Source code in griptape/artifacts/base_artifact.py
| @define()
class BaseArtifact(SerializableMixin, ABC):
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), kw_only=True, metadata={"serializable": True}
)
value: Any = field()
@classmethod
def value_to_bytes(cls, value: Any) -> bytes:
if isinstance(value, bytes):
return value
else:
return str(value).encode()
@classmethod
def value_to_dict(cls, value: Any) -> dict:
if isinstance(value, dict):
dict_value = value
else:
dict_value = json.loads(value)
return {k: v for k, v in dict_value.items()}
def to_text(self) -> str:
return str(self.value)
def __str__(self) -> str:
return self.to_text()
def __bool__(self) -> bool:
return bool(self.value)
def __len__(self) -> int:
return len(self.value)
@abstractmethod
def __add__(self, other: BaseArtifact) -> BaseArtifact:
...
|
id: str = field(default=Factory(lambda: uuid.uuid4().hex), kw_only=True, metadata={'serializable': True})
class-attribute
instance-attribute
name: str = field(default=Factory(lambda self: self.id, takes_self=True), kw_only=True, metadata={'serializable': True})
class-attribute
instance-attribute
value: Any = field()
class-attribute
instance-attribute
__add__(other)
abstractmethod
Source code in griptape/artifacts/base_artifact.py
| @abstractmethod
def __add__(self, other: BaseArtifact) -> BaseArtifact:
...
|
__bool__()
Source code in griptape/artifacts/base_artifact.py
| def __bool__(self) -> bool:
return bool(self.value)
|
__len__()
Source code in griptape/artifacts/base_artifact.py
| def __len__(self) -> int:
return len(self.value)
|
__str__()
Source code in griptape/artifacts/base_artifact.py
| def __str__(self) -> str:
return self.to_text()
|
to_text()
Source code in griptape/artifacts/base_artifact.py
| def to_text(self) -> str:
return str(self.value)
|
value_to_bytes(value)
classmethod
Source code in griptape/artifacts/base_artifact.py
| @classmethod
def value_to_bytes(cls, value: Any) -> bytes:
if isinstance(value, bytes):
return value
else:
return str(value).encode()
|
value_to_dict(value)
classmethod
Source code in griptape/artifacts/base_artifact.py
| @classmethod
def value_to_dict(cls, value: Any) -> dict:
if isinstance(value, dict):
dict_value = value
else:
dict_value = json.loads(value)
return {k: v for k, v in dict_value.items()}
|