plesty.lib.sim.data_generator
Random data generator utilities for Plesty simulation and testing.
Classes
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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput) – Parameter descriptor containing dtype and optional metadata.
**kwargs – Optional runtime overrides such as min_value, max_value, length, shape, and rows depending on target type.
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
default_min (float)
default_max (float)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- Return type:
- 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:
param (plesty.lib.device.params.ConfigParameter | plesty.lib.device.funcs.FuncParam | plesty.lib.device.funcs.FuncOutput)
kwargs (Any)
- Return type: