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

ParameterTypeDescription
table_generatorCallable[[], Table]

The table generator function. This function must return a table.

source_tables optionalUnion[Table, List[Table]]

The source tables to be used by the generator function.

Either this parameter or refresh_interval_ms must be specified, but not both.

refresh_interval_ms optionalint

The interval (in milliseconds) at which the table_generator function is re-run.

Either this parameter or source_tables must be specified, but not both.

exec_ctx optionalExecutionContext

A custom execution context to use for this operation. If not specified, the default execution context will be used.

args optionalTuple

A Tuple of positional arguments to pass to table_generator. Defaults to ().

kwargs optionalDict

Dictionary of keyword arguments to pass to table_generator. Defaults 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.