File: all_plugins.py

package info (click to toggle)
voctomix-outcasts 1.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 248 kB
  • sloc: python: 878; sh: 158; makefile: 18
file content (24 lines) | stat: -rw-r--r-- 609 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from .base_plugin import BasePlugin
from .rpi_gpio import RpiGpio
from .serial_dtr import SerialDtr
from .stdout import Stdout
from .tomu import Tomu


PLUGINS = {
    'rpi_gpio': RpiGpio,
    'serial_dtr': SerialDtr,
    'stdout': Stdout,
    'tomu': Tomu,
}


def get_plugin(config) -> BasePlugin:
    """Creates an instance of a plugin named in Voctolight's configuration file."""
    plugin_name = config.get('light', 'plugin')
    plugin_cls = PLUGINS.get(plugin_name, None)

    if plugin_cls is None:
        raise ValueError(f'{plugin_name} is not a valid plugin name')

    return plugin_cls(config)