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 will be run once when the table is created, and then again when either the source_tables tick or when refresh_interval_ms milliseconds have elapsed.
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.
Syntax
Parameters
| Parameter | Type | Description |
|---|---|---|
| table_generator | Callable[[], Table] | The table generator function. This function must return a table. |
| source_tables optional | Union[Table, List[Table]] | The source tables to be used by the generator function. Either this parameter or |
| refresh_interval_ms optional | int | The interval (in milliseconds) at which the Either this parameter or |
| 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 |
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.