TOML table writer class

class pytablewriter.TomlTableWriter(**kwargs)[source]

Bases: pytablewriter.writer.text._text_writer.TextTableWriter

A table writer class for TOML data format.



add_style_filter(style_filter: pytablewriter.style._theme.StyleFilterFunc) → None

Add a style filter function.



A function for filtering table cells, the function required to implement the following Protocol:

class StyleFilterFunc(Protocol):
    def __call__(self, cell: Cell, **kwargs: Any) -> Optional[Style]:

clear_theme() → None

Remove all of the style filters.

close() → None

Close the current stream.

property column_styles

Output Style for each column.


Return type

list of Style

property default_style

Default Style of table cells.

dump(output: Union[str, IO], close_after_write: bool = True, **kwargs) → None

Write data to the output with tabular format.

During the executing this method, enable_ansi_escape attribute will be temporarily set to False.

  • output – The value must either an output stream or a path to an output file.

  • close_after_write – Close the output after write. Defaults to True.

dumps(**kwargs) → str

Get rendered tabular text from the table data.

Only available for text format table writers.


**kwargs – Optional arguments that the writer takes.


Rendered tabular text.

Return type


property format_name

Format name for the writer.



from_csv(csv_source: str, delimiter: str = ',') → None

Set tabular attributes to the writer from a character-separated values (CSV) data source. Following attributes are set to the writer by the method:

table_name also be set if the CSV data source is a file. In that case, table_name is as same as the filename.


csv_source (str) – Input CSV data source either can be designated CSV text or CSV file path.


Using CSV as tabular data source

Dependency Packages
from_dataframe(dataframe, add_index_column: bool = False) → None

Set tabular attributes to the writer from pandas.DataFrame. Following attributes are set by the method:

  • dataframe (pandas.DataFrame or str) – Input pandas.DataFrame object or pickle.

  • add_index_column (bool, optional) – If True, add a column of index of the dataframe. Defaults to False.


Using pandas DataFrame as tabular data source

from_series(series, add_index_column: bool = True) → None

Set tabular attributes to the writer from pandas.Series. Following attributes are set by the method:

  • series (pandas.Series) – Input pandas.Series object.

  • add_index_column (bool, optional) – If True, add a column of index of the series. Defaults to True.

from_tabledata(value: tabledata._core.TableData, is_overwrite_table_name: bool = True) → None

Set tabular attributes to the writer from TableData. Following attributes are configured:

TableData can be created from various data formats by pytablereader. More detailed information can be found in https://pytablereader.rtfd.io/en/latest/


value (tabledata.TableData) – Input table data.

from_tablib(tablib_dataset) → None

Set tabular attributes to the writer from tablib.Dataset.

from_writer(writer: pytablewriter.writer._table_writer.AbstractTableWriter, is_overwrite_table_name: bool = True) → None

Set tabular attributes to the writer from an another table writer class incetance.

property headers

Headers of a table to be outputted.

set_style(column: Union[str, int], style: pytablewriter.style._style.Style) → None

Set Style for a specific column.

  • column (int or str) – Column specifier. column index or header name correlated with the column.

  • style (Style) – Style value to be set to the column.


ValueError – If the column specifier is invalid.

set_theme(theme: str, **kwargs) → None

Set style filters for a theme.


theme (str) – Name of the theme. pytablewriter theme plugin must be installed corresponding to the theme name.


RuntimeError – Raised when a theme plugin does not installed.

property support_split_write

Represents the writer class supported iterative table writing (write_table_iter method).


True if the writer supported iterative table writing.

Return type


property table_format

Get the format of the writer.


Return type


property table_name

Name of a table.

property tabledata

Get tabular data of the writer.


Return type


property type_hints

Type hints for each column of the tabular data. Writers convert data for each column using the type hints information before writing tables when you call write_xxx methods.

Acceptable values are as follows:

  • None (automatically detect column type from values in the column)

  • pytablewriter.typehint.Bool

  • pytablewriter.typehint.DateTime

  • pytablewriter.typehint.Dictionary

  • pytablewriter.typehint.Infinity

  • pytablewriter.typehint.Integer

  • pytablewriter.typehint.IpAddress

  • pytablewriter.typehint.List

  • pytablewriter.typehint.Nan

  • pytablewriter.typehint.NoneType

  • pytablewriter.typehint.NullString

  • pytablewriter.typehint.RealNumber

  • pytablewriter.typehint.String

If a type-hint value is not None, the writer tries to convert data for each data in a column to type-hint class. If the type-hint value is None or failed to convert data, the writer automatically detect column data type from the column data.

If type_hints is None, the writer detects data types for all of the columns automatically and writes a table by using detected column types.

Defaults to None.

property value_matrix

Data of a table to be outputted.

write_null_line() → None

Write a null line to the stream.

write_table(**kwargs) → None[source]

Write a table to the stream with TOML format.


pytablewriter.EmptyTableNameError – If the headers is empty.



write_table_iter(**kwargs) → None

Write a table with iteration. “Iteration” means that divide the table writing into multiple processes. This method is useful, especially for large data. The following are premises to execute this method:

  • set iterator to the value_matrix

  • set the number of iterations to the iteration_length attribute

Call back function (Optional): Callback function is called when for each of the iteration of writing a table is completed. To set call back function, set a callback function to the write_callback attribute.


pytablewriter.NotSupportedError – If the class does not support this method.


Following classes do not support this method: HtmlTableWriter, RstGridTableWriter, RstSimpleTableWriter. support_split_write attribute return True if the class is supporting this method.