# Copyright (C) 2016 IAC Publishing Labs. All rights reserved. # # License: Apache (see LICENSE for details) import six import bottle from woodstove.app import App from woodstove.log import loggable from woodstove import conf DEFAULT_APPS = conf.get('woodstove', 'apps', [ 'woodstove.mgt.root.Root', 'woodstove.mgt.debug.Debug', 'woodstove.mgt.swagger.Swagger', ]) @loggable class Server(object): host = None port = None def __init__(self): ''' ''' self.root = bottle.default_app() self.namespaces = {} self.apps = {} def import_app(self, name): parts = name.split('.') cname = parts.pop()
# Copyright (C) 2016 IAC Publishing Labs. All rights reserved. # # License: Apache (see LICENSE for details) from woodstove import log from woodstove import conf PLUGIN_LIST = conf.get('woodstove', 'plugin_list', []) __plugins__ = [] def load_plugin(name): try: __plugins__.append(__import__(name)) except BaseException: log.get_logger(__name__).error("Error importing plugin `%s`", name) log.log_traceback(__name__) log.get_logger(__name__).info("Loaded plugin: %s", name) def load_plugins(): for name in PLUGIN_LIST: load_plugin(name)
# Copyright (C) 2016 IAC Publishing Labs. All rights reserved. # # License: Apache (see LICENSE for details) import peewee from playhouse import db_url from woodstove import conf, exceptions DB_URI = conf.get('woodstove', 'db_uri', 'sqlite:///:memory:') __db__ = db_url.connect(DB_URI) class BaseModel(peewee.Model): class Meta: database = __db__ def get_db(auto_connect=True): if auto_connect and __db__.is_closed(): __db__.connect() return __db__ def get_obj(model, key): r = model.select().where(model._meta.primary_key == key) try: return r.get() except peewee.DoesNotExist: raise exceptions.NotFoundException