diff --git a/src/flext_cli/_utilities/_files_parts/flextcliutilitiesfiles_part_04.py b/src/flext_cli/_utilities/_files_parts/flextcliutilitiesfiles_part_04.py index a66ddcd4a..86e77c7e7 100644 --- a/src/flext_cli/_utilities/_files_parts/flextcliutilitiesfiles_part_04.py +++ b/src/flext_cli/_utilities/_files_parts/flextcliutilitiesfiles_part_04.py @@ -3,6 +3,7 @@ from __future__ import annotations import csv +import io import shutil import tempfile from collections.abc import Mapping @@ -109,6 +110,13 @@ def csv_loads(text: str, *, delimiter: str = ",") -> p.Result[list[list[str]]]: return r[list[list[str]]].fail(f"csv_loads: {exc}", exception=exc) return r[list[list[str]]].ok(rows) + @staticmethod + def csv_dumps(rows: list[list[str]], *, delimiter: str = ",") -> str: + """Serialize rows into a CSV-encoded string with LF terminators.""" + buffer = io.StringIO() + csv.writer(buffer, delimiter=delimiter, lineterminator="\n").writerows(rows) + return buffer.getvalue() + @staticmethod def files_copy_directory( source_path: t.Cli.TextPath,