flat_file_renderers.separated_value module

class flat_file_renderers.separated_value.CsvRenderer(context: dict[str, any])[source]

Bases: FlatDelimitedRenderer

Renders data as CSV (Comma-Separated Values).

Uses comma as delimiter and ‘.csv’ extension.

class flat_file_renderers.separated_value.FlatDelimitedRenderer(context: dict[str, any])[source]

Bases: BaseRenderer

Renders data as delimiter-separated values (CSV or TSV).

This base class exports tabular data into delimiter-separated files, such as CSV (comma) or TSV (tab).

The context must contain the ‘dataset’ key, which can be:
  • A QuerySet-like iterable: columns are inferred from the record fields.

  • A dict: must contain ‘rows’ (list of dicts) and ‘cols’ (list of column names).

  • A list: list of dicts, columns inferred from the first item’s keys.

Usage examples:

renderer = CsvRenderer({‘dataset’: {‘cols’: [“Name”, “Age”], ‘rows’: [{“Name”: “Alice”, “Age”: “30”}]}}) csv_file = renderer.render({‘dataset’: …}) with open(“data.csv”, “wb”) as f:

f.write(csv_file.read_bytes())

renderer = CsvRenderer({}) csv_file = renderer.render({‘dataset’: [{“Name”: “Alice”, “Age”: “30”}, {“Name”: “Bob”, “Age”: “25”}]})

property delimiter

Returns the delimiter used to separate values.

Returns:

Delimiter (comma by default).

Return type:

str

render(context: dict[str, any], *args, **kwargs) → Path[source]

Renders the data as delimiter-separated values and writes it into a temporary zip file on disk.

Parameters:
  • context (dict) – Dict holding the data to render. Must contain the ‘dataset’ key.

  • *args – Extra positional arguments.

  • **kwargs – Extra keyword arguments.

Returns:

Path to the compressed (zip) file containing the delimited file(s).

Return type:

Path

class flat_file_renderers.separated_value.TsvRenderer(context: dict[str, any])[source]

Bases: FlatDelimitedRenderer

Renders data as TSV (Tab-Separated Values).

Uses tab as delimiter and ‘.tsv’ extension.