From e091b60d35ea6ab9e5f5062650d92afa509abf37 Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Thu, 13 Jul 2017 22:53:17 +0100 Subject: [PATCH] Added stevedore plugin installation --- force_bdss/cli/__init__.py | 0 force_bdss/cli/force_bdss.py | 22 ++++++++++++++++------ force_bdss/workspecs/__init__.py | 0 setup.py | 15 ++++++++++++--- 4 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 force_bdss/cli/__init__.py create mode 100644 force_bdss/workspecs/__init__.py diff --git a/force_bdss/cli/__init__.py b/force_bdss/cli/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/force_bdss/cli/force_bdss.py b/force_bdss/cli/force_bdss.py index 79a7920..c4a26d1 100644 --- a/force_bdss/cli/force_bdss.py +++ b/force_bdss/cli/force_bdss.py @@ -1,12 +1,10 @@ import click +from stevedore import extension +from stevedore.exception import NoMatches from envisage.core_plugin import CorePlugin from force_bdss.bdss_application import BDSSApplication from force_bdss.core_mco_driver import CoreMCODriver -from force_bdss.data_sources.data_sources_plugin import \ - DataSourcesPlugin -from force_bdss.mco.multi_criteria_optimizers_plugin import \ - MultiCriteriaOptimizersPlugin @click.command() @@ -17,10 +15,22 @@ def run(evaluate, workflow_filepath): plugins = [ CorePlugin(), CoreMCODriver(), - DataSourcesPlugin(), - MultiCriteriaOptimizersPlugin(), ] + mgr = extension.ExtensionManager( + namespace='force.bdss.extensions', + invoke_on_load=True + ) + + def import_extensions(ext): + print("Found extension {}".format(ext.name)) + plugins.append(ext.obj) + + try: + mgr.map(import_extensions) + except NoMatches: + print("No extensions found") + application = BDSSApplication( plugins=plugins, evaluate=evaluate, diff --git a/force_bdss/workspecs/__init__.py b/force_bdss/workspecs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/setup.py b/setup.py index c544f17..2087e06 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup +from setuptools import setup, find_packages VERSION = "0.1.0.dev0" @@ -8,9 +8,18 @@ setup( entry_points={ 'console_scripts': [ 'force_bdss = force_bdss.cli.force_bdss:run', - ]}, + ], + "force.bdss.extensions": [ + "mco = force_bdss.mco.multi_criteria_optimizers_plugin:" + "MultiCriteriaOptimizersPlugin", + "data_source = force_bdss.data_sources.data_sources_plugin:" + "DataSourcesPlugin", + ] + }, + packages=find_packages(), install_requires=[ "envisage >= 4.6.0", - "click >= 6.7" + "click >= 6.7", + "stevedore >= 1.24.0" ] ) -- GitLab