function_generated_table
The function_generated_table method is useful for creating tables that are dependent on one or more ticking tables, or for creating tables that need to be refreshed at a regular interval. The method creates a table by running the user-defined table_generator function. This function runs once when the table is created, and then again when either the source_tables tick or when refresh_interval_ms milliseconds have elapsed. At most one of source_tables and refresh_interval_ms may be specified; when neither is specified there is no refresh trigger, so the table_generator runs exactly once and the result is a static table.
Note
The table_generator may access data in the source_tables, but should not perform further table operations without careful handling. Table operations may be memoized, and it is possible that a table operation will return a table created by a previous invocation of the same operation. Since that result will not have been included in the source_table’, it is not automatically treated as a dependency for purposes of determining when it is safe to invoke table_generator. This allows race conditions to exist between (1) accessing the operation result and (2) that result’s own update processing.
It is best to include all dependencies directly in source_table or only compute on-demand inputs under a LivenessScope.
Every refresh in which the table_generator produces a table replaces the result in full: the table update removes all previous rows and adds all newly generated rows, with no modified rows and no shifts, even when the generated data is unchanged. A refresh in which the table_generator returns None retains the previous result with no update (or clears a blink result). The copy_data and blink_table parameters refine this behavior independently of one another.
Syntax
Parameters
| Parameter | Type | Description |
|---|---|---|
| table_generator | Callable[..., Optional[Table]] | The table generator function. This function must return a table, or |
| source_tables optional | Union[Table, List[Table]] | The source tables to be used by the generator function. This parameter and |
| refresh_interval_ms optional | int | The interval (in milliseconds) at which the This parameter and |
| exec_ctx optional | ExecutionContext | A custom execution context to use for this operation. If not specified, the default execution context will be used. |
| args optional | tuple | A Tuple of positional arguments to pass to |
| kwargs optional | dict | Dictionary of keyword arguments to pass to |
| copy_data optional | bool | When |
| blink_table optional | bool | When |
| table_definition optional | TableDefinitionLike | When provided, it is authoritative: it defines the result's columns and their order, and every table the |
Returns
A new function-generated table.
Example
In the following example, we create an execution context and a table_generator function, which we then use to generate a table that re-runs the table_generator function every 2000ms.
If the table_generator function depends on one or more ticking tables, the tables must be specified. Adding tt as a source_tables parameter causes the generated table to be recomputed on each tick of the time table.
function_generated_table's args and kwargs parameters allow you to pass positional and keyword arguments to the table_generator function.