from pillar.extension import PillarExtension from .modules import blueprint from . import task_manager class AttractExtension(PillarExtension): def __init__(self): self.task_manager = task_manager.TaskManager() @property def name(self): return 'attract' def flask_config(self): """Returns extension-specific defaults for the Flask configuration. Use this to set sensible default values for configuration settings introduced by the extension. :rtype: dict """ # Just so that it registers the management commands. from . import cli return {} def eve_settings(self): """Returns extensions to the Eve settings. Currently only the DOMAIN key is used to insert new resources into Eve's configuration. :rtype: dict """ return { 'DOMAIN': { 'tasks': { 'schema': { 'name': { 'type': 'string', }, } } } } def blueprints(self): """Returns the list of top-level blueprints for the extension. These blueprints will be mounted at the url prefix given to app.load_extension(). :rtype: list of flask.Blueprint objects. """ return [blueprint] def setup_app(self, app): """Connects Blinker signals.""" from . import subversion subversion.task_logged.connect(self.task_manager.task_logged_in_svn)