plesty.lib.sim.data_generator ============================= .. py:module:: plesty.lib.sim.data_generator .. autoapi-nested-parse:: Random data generator utilities for Plesty simulation and testing. Classes ------- .. autoapisummary:: plesty.lib.sim.data_generator.DataGenerator Module Contents --------------- .. py:class:: 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. :param seed: Optional seed used by the internal Python random generator. .. py:attribute:: _rng .. py:method:: __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. :param param: Parameter descriptor containing dtype and optional metadata. :param \*\*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. .. py:method:: rand_default(param: Any, **kwargs: Any) -> Any Return the parameter default value for unsupported dtypes. .. py:method:: _cast_or_original(value: Any, dtype: type) -> Any Cast value to dtype when possible, otherwise return original. .. py:method:: _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. .. py:method:: _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 .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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. .. py:method:: 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.