From 4f4842fd1f5bf4bfc0f41b45cf5d0c7e0d78aa0e Mon Sep 17 00:00:00 2001 From: Zykino Date: Mon, 5 Apr 2021 00:31:06 +0200 Subject: [PATCH] WIP Enumerates the plugins types instead of using magic strings --- prismedia/core.py | 18 +++++++++--------- prismedia/pluginInterfaces.py | 7 +++++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/prismedia/core.py b/prismedia/core.py index 3618cfe..907a59f 100644 --- a/prismedia/core.py +++ b/prismedia/core.py @@ -40,9 +40,9 @@ def loadPlugins(basePluginsPath): # Define the various categories corresponding to the different # kinds of plugins you have defined manager.setCategoriesFilter({ - "Interface" : pi.IInterfacePlugin, - "Platform" : pi.IPlatformPlugin, - "Consumer" : pi.IConsumerPlugin, + pi.PluginTypes.INTERFACE : pi.IInterfacePlugin, + pi.PluginTypes.PLATFORM : pi.IPlatformPlugin, + pi.PluginTypes.CONSUMER : pi.IConsumerPlugin, }) manager.collectPlugins() @@ -52,16 +52,16 @@ def listPlugins(): print("The plugins are stored in the following folders:", manager.getPluginLocator().plugins_places) - print("Category: Interface") - for plugin in manager.getPluginsOfCategory("Interface"): + print("Category:", pi.PluginTypes.INTERFACE.value) + for plugin in manager.getPluginsOfCategory(pi.PluginTypes.INTERFACE): print(plugin.name) - print("Category: Platform") - for plugin in manager.getPluginsOfCategory("Platform"): + print("Category:", pi.PluginTypes.PLATFORM.value) + for plugin in manager.getPluginsOfCategory(pi.PluginTypes.PLATFORM): print(plugin.name) - print("Category: Consumer") - for plugin in manager.getPluginsOfCategory("Consumer"): + print("Category:", pi.PluginTypes.CONSUMER.value) + for plugin in manager.getPluginsOfCategory(pi.PluginTypes.CONSUMER): print(plugin.name) def main(): diff --git a/prismedia/pluginInterfaces.py b/prismedia/pluginInterfaces.py index 2f8fd5d..106aa2f 100644 --- a/prismedia/pluginInterfaces.py +++ b/prismedia/pluginInterfaces.py @@ -1,5 +1,12 @@ +from enum import Enum from yapsy.IPlugin import IPlugin +class PluginTypes(Enum): + """Plugin Types possibles to instantiate in this program.""" + INTERFACE = "Interface" + PLATFORM = "Platform" + CONSUMER = "Consumer" + ### # Interface ###