Source code for platypush.plugins.config
import json
import os
from platypush import Config
from platypush.message import Message
from platypush.plugins import Plugin, action
[docs]
class ConfigPlugin(Plugin):
"""
This plugin can be used to programmatically access the application configuration.
"""
[docs]
@action
def get(self) -> dict:
"""
Get the current configuration.
"""
return Config.get()
[docs]
@action
def get_plugins(self) -> dict:
"""
Get the configured plugins.
"""
return Config.get_plugins()
[docs]
@action
def get_backends(self) -> dict:
"""
Get the configured backends.
"""
return Config.get_backends()
[docs]
@action
def get_procedures(self) -> dict:
"""
Get the configured procedures.
"""
return json.loads(json.dumps(Config.get_procedures(), cls=Message.Encoder))
[docs]
@action
def dashboards(self) -> dict:
"""
Get the configured dashboards.
"""
return Config.get_dashboards()
[docs]
@action
def get_dashboard(self, name: str) -> str:
"""
Get a dashboard configuration by name.
"""
return Config.get_dashboard(name)
[docs]
@action
def get_device_id(self) -> str:
"""
Get the configured ``device_id``.
"""
return Config.get('device_id')
[docs]
@action
def get_config_file(self) -> str:
"""
Get the path to the main configuration file.
"""
return Config._instance.config_file
[docs]
@action
def get_config_dir(self) -> str:
"""
:return: The path to the configuration directory.
"""
return os.path.dirname(Config._instance.config_file)
# vim:sw=4:ts=4:et: