Skip to content

Csv row artifact

CsvRowArtifact

Bases: TextArtifact

Source code in griptape/artifacts/csv_row_artifact.py
@define
class CsvRowArtifact(TextArtifact):
    value: dict[str, str] = field(converter=BaseArtifact.value_to_dict, metadata={"serializable": True})
    delimiter: str = field(default=",", kw_only=True, metadata={"serializable": True})

    def __add__(self, other: BaseArtifact) -> CsvRowArtifact:
        return CsvRowArtifact(self.value | other.value)

    def to_text(self) -> str:
        with io.StringIO() as csvfile:
            writer = csv.DictWriter(
                csvfile, fieldnames=self.value.keys(), quoting=csv.QUOTE_MINIMAL, delimiter=self.delimiter
            )

            writer.writerow(self.value)

            return csvfile.getvalue().strip()

    def __bool__(self) -> bool:
        return len(self) > 0

delimiter: str = field(default=',', kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

value: dict[str, str] = field(converter=BaseArtifact.value_to_dict, metadata={'serializable': True}) class-attribute instance-attribute

__add__(other)

Source code in griptape/artifacts/csv_row_artifact.py
def __add__(self, other: BaseArtifact) -> CsvRowArtifact:
    return CsvRowArtifact(self.value | other.value)

__bool__()

Source code in griptape/artifacts/csv_row_artifact.py
def __bool__(self) -> bool:
    return len(self) > 0

to_text()

Source code in griptape/artifacts/csv_row_artifact.py
def to_text(self) -> str:
    with io.StringIO() as csvfile:
        writer = csv.DictWriter(
            csvfile, fieldnames=self.value.keys(), quoting=csv.QUOTE_MINIMAL, delimiter=self.delimiter
        )

        writer.writerow(self.value)

        return csvfile.getvalue().strip()