from yapsy.PluginManager import PluginManager import pluginInterfaces as pi import logging # logging.basicConfig(level=logging.DEBUG) def loadPlugins(type): # Load the plugins from the plugin directory. # TODO: subdirectories too? manager = PluginManager() manager.setPluginPlaces(["plugins"]) # TODO: Generate the absolute path # Define the various categories corresponding to the different # kinds of plugins you have defined manager.setCategoriesFilter({ "Interface" : pi.IInterfacePlugin, "Platform" : pi.IPlatformPlugin, }) manager.collectPlugins() # Loop round the plugins and print their names. print("debug") print(manager.getAllPlugins()) print("all plugins") for plugin in manager.getAllPlugins(): plugin.plugin_object.print_name() print("Category: Interface") for plugin in manager.getPluginsOfCategory("Interface"): plugin.plugin_object.print_name() print("Category: Platform") for plugin in manager.getPluginsOfCategory("Platform"): plugin.plugin_object.print_name() # discovered_plugins = { # name: importlib.import_module(name) # for finder, name, ispkg # in pkgutil.iter_modules(["/home/zykino/Documents/0DocPerso/Code/prismedia/plugins"]) # if name.startswith("prismedia_" + type + "_") # } #def test_loadPlugins(arg): platforms = loadPlugins("platform") print (platforms) def startInterface(): interface = loadPlugins("interface") options = interface["default"].run() if options.get('--interface'): if interface[options.get('--interface')]: options = interface[options.get('--interface')].run(options) else: options = interface["cli"].run(options) options = interface["nfo"].run(options) def uploadToPlatforms(options): platforms = loadPlugins("platform") for platform in options.get('--platform'): platforms[platform].run(options)