palaestrai_mosaik.mosaikpatch package — palaestrAI Mosaik Interface documentation

# palaestrai_mosaik.mosaikpatch package

## Submodules

## palaestrai_mosaik.mosaikpatch.scenario module

This module contains a patch for mosaik’s world object.

Needs to be updated when the mosaik API changes.

Tested with mosaik version 2.6.0.

`palaestrai_mosaik.mosaikpatch.scenario.` `modify_world`(world)

  Modify the world object for the use with palaestrAI.

  A new method `trigger_actuators()` is installed, which is called by the `get_input_data()` function of the modified `scheduler`. Furthermore, the `mosaik.scenario.World.run()` method is overwritten by the modified `run()` version below.

  Parameters

    world (`mosaik.scenario.World`) – The world object to be modified.

`palaestrai_mosaik.mosaikpatch.scenario.` `run`(self, until, rt_factor=None, rt_strict=False, print_progress=True)

  A modified version of the `mosaik.scenario.World.run()` method of mosaik’s world object.

  This `run()` method works exactly like the original one except that a different scheduler is used. Indeed, it is nearly the same code but since a modified scheduler is imported, this specific scheduler is called instead.

  Furthermore, the prints are replaced by logging outputs.

  See the mosaik documentation https://mosaik.readthedocs.io/en/latest/api_reference/mosaik.scenario.html `mosaik.scenario.World.run()` for the regular features of this method.

## palaestrai_mosaik.mosaikpatch.scheduler module

This module contains a modified version of the mosaik scheduler.

Since the scheduler is not a class but a collection of functions, each function of the scheduler needs to be present. For most of them, calls can be directed to the regular scheduler function. However, as soon as the mosaik scheduler changes, these changes need to be reflected here and new functions need a forward call in this module.

The only function with a modification is the `mosaik.scheduler.get_input_data()` function (and there is added only one line of code). But to make use of this modified function, it is required to provide copies of `mosaik.scheduler.run()` and `mosaik.scheduler.sim_process()`, as well. They should be updated on a new mosaik version.

See https://mosaik.readthedocs.io/en/latest/api_reference/mosaik.scheduler.html for the docs of the original functions.

Tested with mosaik version 2.6.0

`palaestrai_mosaik.mosaikpatch.scheduler.` `get_input_data`(world, sim)

  Return a dictionary with the input data for sim.

  The original function `mosaik.scheduler.get_input_data()` is called. Afterwards, the `trigger_actuators()` method of the modified world object is called.

`palaestrai_mosaik.mosaikpatch.scheduler.` `get_keep_running_func`(world, sim, until)

  Return the keep_running_func.

  See `mosaik.scheduler.get_keep_running_func()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `get_outputs`(world, sim)

  Get outputs for a simulator.

  See `mosaik.scheduler.get_outputs()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `get_progress`(sims, until)

  Get simulation progress.

  See `mosaik.scheduler.get_progress()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `rt_check`(rt_factor, rt_start, rt_strict, sim)

  Check the time for real time simulation.

  See `mosaik.scheduler.rt_check()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `rt_sleep`(rt_factor, rt_start, sim, world)

  Sleep for real time simulation.

  See `mosaik.scheduler.rt_sleep()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `run`(world, until, rt_factor=None, rt_strict=False, print_progress=True)

  Run the simulation.

  This is an exact copy of the current `mosaik.scheduler.run()` method.

`palaestrai_mosaik.mosaikpatch.scheduler.` `sim_process`(world, sim, until, rt_factor, rt_strict, print_progress)

  SimPy simulation process for a certain simulator sim.

  This method is an exact copy of the current `mosaik.scheduler.sim_process()` method.

`palaestrai_mosaik.mosaikpatch.scheduler.` `step`(world, sim, inputs)

  Step the scheduler.

  See `mosaik.scheduler.step()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `step_required`(world, sim)

  Return if another step is required.

  See `mosaik.scheduler.step_required()`.

`palaestrai_mosaik.mosaikpatch.scheduler.` `wait_for_dependencies`(world, sim)

  Wait for dependencies of sim.

  See `mosaik.scheduler.wait_for_dependencies()`.

## Module contents

This module contains modified versions of some mosaik components.