list_artifact
Adapted from the Griptape AI Framework documentation.
T_co = TypeVar('T_co', bound=BaseArtifact, covariant=True)
module-attribute
Bases:
BaseArtifact
, Generic[T_co]
Source Code in griptape/artifacts/list_artifact.py
@define class ListArtifact(BaseArtifact, Generic[T_co]): value: Sequence[T_co] = field(factory=list, metadata={"serializable": True}) item_separator: str = field(default="\n\n", kw_only=True, metadata={"serializable": True}) validate_uniform_types: bool = field(default=False, kw_only=True, metadata={"serializable": True}) @value.validator # pyright: ignore[reportAttributeAccessIssue] def validate_value(self, _: Attribute, value: list[T_co]) -> None: if self.validate_uniform_types and len(value) > 0: first_type = type(value[0]) if not all(isinstance(v, first_type) for v in value): raise ValueError("list elements in 'value' are not the same type") @property def child_type(self) -> Optional[type]: if self.value: return type(self.value[0]) return None def __getitem__(self, key: int) -> T_co: return self.value[key] def __bool__(self) -> bool: return len(self) > 0 def __add__(self, other: BaseArtifact) -> ListArtifact[T_co]: return ListArtifact(self.value + other.value) def __iter__(self) -> Iterator[T_co]: return iter(self.value) def to_text(self) -> str: return self.item_separator.join([v.to_text() for v in self.value]) def is_type(self, target_type: type) -> bool: if self.value: return isinstance(self.value[0], target_type) return False def has_items(self) -> bool: return len(self) > 0
child_type
propertyitem_separator = field(default='\n\n', kw_only=True, metadata={'serializable': True})
class-attribute instance-attributevalidate_uniform_types = field(default=False, kw_only=True, metadata={'serializable': True})
class-attribute instance-attributevalue = field(factory=list, metadata={'serializable': True})
class-attribute instance-attribute
add(other)
Source Code in griptape/artifacts/list_artifact.py
def __add__(self, other: BaseArtifact) -> ListArtifact[T_co]: return ListArtifact(self.value + other.value)
bool()
Source Code in griptape/artifacts/list_artifact.py
def __bool__(self) -> bool: return len(self) > 0
getitem(key)
Source Code in griptape/artifacts/list_artifact.py
def __getitem__(self, key: int) -> T_co: return self.value[key]
iter()
Source Code in griptape/artifacts/list_artifact.py
def __iter__(self) -> Iterator[T_co]: return iter(self.value)
has_items()
Source Code in griptape/artifacts/list_artifact.py
def has_items(self) -> bool: return len(self) > 0
is_type(target_type)
Source Code in griptape/artifacts/list_artifact.py
def is_type(self, target_type: type) -> bool: if self.value: return isinstance(self.value[0], target_type) return False
to_text()
Source Code in griptape/artifacts/list_artifact.py
def to_text(self) -> str: return self.item_separator.join([v.to_text() for v in self.value])
validatevalue(, value)
Source Code in griptape/artifacts/list_artifact.py
@value.validator # pyright: ignore[reportAttributeAccessIssue] def validate_value(self, _: Attribute, value: list[T_co]) -> None: if self.validate_uniform_types and len(value) > 0: first_type = type(value[0]) if not all(isinstance(v, first_type) for v in value): raise ValueError("list elements in 'value' are not the same type")
Could this page be better? Report a problem or suggest an addition!