plesty.lib.sim.data_generator

Random data generator utilities for Plesty simulation and testing.

Classes

DataGenerator

Generate synthetic values from parameter metadata.

Module Contents

class plesty.lib.sim.data_generator.DataGenerator(seed: int | None = None)

Generate synthetic values from parameter metadata.

The generator inspects each parameter’s dtype and optional metadata (range, options, shape, headers) to produce representative random test values for simulation and development.

Initialize the generator.

Parameters:

seed (int | None) – Optional seed used by the internal Python random generator.

_rng
__call__(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs)

Generate a synthetic value for one schema parameter.

Parameters:
Returns:

A generated value matching the parameter dtype, a PlestyArray, a PlestyTable2D, or a fallback default value when unsupported.

rand_default(param: Any, **kwargs: Any) Any

Return the parameter default value for unsupported dtypes.

Parameters:
  • param (Any)

  • kwargs (Any)

Return type:

Any

_cast_or_original(value: Any, dtype: type) Any

Cast value to dtype when possible, otherwise return original.

Parameters:
  • value (Any)

  • dtype (type)

Return type:

Any

_get_options(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput) list[Any] | None

Extract a non-empty options list from parameter metadata.

Parameters:

param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)

Return type:

list[Any] | None

_get_numeric_bounds(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, default_min: float, default_max: float, **kwargs) tuple[float, float]

Resolve numeric bounds from kwargs, parameter metadata, or defaults.

Priority order: 1. Explicit kwargs min_value and max_value 2. Range metadata from ConfigParameter or FuncParam/FuncOutput 3. Provided default_min and default_max

Parameters:
Return type:

tuple[float, float]

rand_int(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) int

Generate a random integer within resolved bounds.

Parameters:
Return type:

int

rand_float(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) float

Generate a random float within resolved bounds.

Parameters:
Return type:

float

rand_bool(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) bool

Generate a random boolean value.

Parameters:
Return type:

bool

rand_str(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) str

Generate an alphanumeric string.

The output length is controlled by kwargs length and defaults to 10.

Parameters:
Return type:

str

rand_list(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) list[Any]

Generate a list for scalar dtypes or a None-filled fallback list.

For item dtypes int, float, bool, and str, values are generated via the corresponding rand_* method. Other dtypes produce a list of None.

Parameters:
Return type:

list[Any]

rand_dict(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) dict[str, Any]

Generate a simple dictionary payload with numeric and status fields.

Parameters:
Return type:

dict[str, Any]

rand_tuple(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) tuple[Any, Ellipsis]

Generate a tuple of random float values.

Parameters:
Return type:

tuple[Any, Ellipsis]

rand_plesty_array(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) plesty.lib.data.PlestyArray

Generate a PlestyArray with shape and dtype inferred from metadata.

Supports integer, boolean, and floating NumPy dtypes. If the dtype is unsupported, a float array filled with one sampled value is returned.

Parameters:
Return type:

plesty.lib.data.PlestyArray

rand_plesty_table2d(param: plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput, **kwargs: Any) plesty.lib.data.PlestyTable2D

Generate a PlestyTable2D from table header metadata.

Column values are produced per header dtype. If no headers are provided, one float column named value is generated.

Parameters:
Return type:

plesty.lib.data.PlestyTable2D