plestylib.sim.data_generator
============================

.. py:module:: plestylib.sim.data_generator


Classes
-------

.. autoapisummary::

   plestylib.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: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.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, **kwargs)

      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: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput) -> list[Any] | None

      Extract a non-empty options list from parameter metadata.



   .. py:method:: _get_numeric_bounds(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.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: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate a random integer within resolved bounds.



   .. py:method:: rand_float(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate a random float within resolved bounds.



   .. py:method:: rand_bool(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate a random boolean value.



   .. py:method:: rand_str(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate an alphanumeric string.

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



   .. py:method:: rand_list(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      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: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate a simple dictionary payload with numeric and status fields.



   .. py:method:: rand_tuple(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      Generate a tuple of random float values.



   .. py:method:: rand_plesty_array(param: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      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: plestylib.device.params.ConfigParameter | plestylib.device.funcs.FuncParam | plestylib.device.funcs.FuncOutput, **kwargs)

      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.



