elektricity/repod/conf_parser.py

30 lines
956 B
Python

"""
Given a configuration file, set up everything needed to kick
off the server.
"""
from importlib import import_module
import yaml
from pyramid.config import Configurator
# Needed for import_module call
# noinspection PyUnresolvedReferences
import modules
# Hardcoded, need to look up from users $HOME later
file_loc = 'example_conf.yaml'
def build_configuration(conf=file_loc) -> Configurator:
with open(conf) as conf_file:
conf_dict = yaml.load(conf_file)
server_conf = Configurator()
for mountpoint, feed in conf_dict.items():
feed_package = import_module('modules.' + feed['package'])
feed_class = getattr(feed_package, feed['class'])
feed_instance = feed_class(**feed['args'])
server_conf.add_route(mountpoint, '/' + mountpoint + '/')
server_conf.add_view(feed_instance.view, route_name=mountpoint)
return server_conf