DynamicTableWriter
DynamicTableWriter creates a DynamicTableWriter for writing data to a real-time, in-memory table.
Syntax
DynamicTableWriter(col_defs: dict) -> DynamicTableWriter
Parameters
| Parameter | Type | Description |
|---|---|---|
| col_defs | dict | The column definitions. Each column name should have a 1-to-1 correspondence with its data type. |
Returns
Methods
DynamicTableWriter supports the following methods:
close()- Closes theDynamicTableWriter.write_row(values...)- Writes a row of values to the table.
Properties
.table- The table that theDynamicTableWriterwill write to.
Examples
In this example, DynamicTableWriter is used to create a table with two columns:
- The first contains the row number.
- The second contains a string.
from deephaven import DynamicTableWriter
import deephaven.dtypes as dht
import time
column_definitions = {"Numbers": dht.int32, "Words": dht.string}
table_writer = DynamicTableWriter(column_definitions)
result = table_writer.table
# The write_row method adds a row to the table
table_writer.write_row(1, "Testing")
time.sleep(3)
table_writer.write_row(2, "Dynamic")
time.sleep(3)
table_writer.write_row(3, "Table")
time.sleep(3)
table_writer.write_row(4, "Writer")

The example above writes data to result from the main thread. As a result, the Deephaven web interface will not display the result table until the script finishes execution.
The example below uses a dedicated thread to write data to the table. The Deephaven web interface immediately updates to display all result table changes.
from deephaven import DynamicTableWriter
import deephaven.dtypes as dht
import threading, time
column_definitions = {"Numbers": dht.int32, "Words": dht.string}
table_writer = DynamicTableWriter(column_definitions)
result = table_writer.table
# Define a function to write data to a table
def thread_func():
strings = ["Testing", "Dynamic", "Table", "Writer"]
for i in range(4):
# The write_row method adds a row to the table
table_writer.write_row(i + 1, strings[i])
time.sleep(3)
# Run the thread that writes to the table
thread = threading.Thread(target=thread_func)
thread.start()