Index: pluginconf/depends.py ================================================================== --- pluginconf/depends.py +++ pluginconf/depends.py @@ -20,12 +20,13 @@ # Utilizes each version: fields and allows for virtual modules, or # alternatives and honors alias: names. # -import pluginconf +import sys import re +import pluginconf try: from distutils.spawn import find_executable except ImportError: try: from compat2and3 import find_executable @@ -79,15 +80,15 @@ if isinstance(meta, (int, float, str)): meta = {"version": str(meta)} self.have[name] = meta # read plugins/* - self.have.update(all_plugin_meta()) + self.have.update(pluginconf.all_plugin_meta()) # add core modules for name in core: - self.have[name] = plugin_meta(module=name, extra_base=["config"]) + self.have[name] = pluginconf.plugin_meta(module=name, extra_base=["config"]) # aliases for name, meta in self.have.copy().items(): if meta.get("alias"): for alias in re.split(r"\s*[,;]\s*", meta["alias"]): @@ -94,10 +95,12 @@ self.have[alias] = self.have[name] # basic plugin pre-screening (skip __init__, filter by api:, # exclude installed & same-version plugins) def valid(self, new_plugin): + if not "$name" in new_plugin: + self.log.warning(".valid() checks online plugin lists, requires $name") id = new_plugin.get("$name", "__invalid") have_ver = self.have.get(id, {}).get("version", "0") if id.find("__") == 0: self.log.debug("wrong/no id") elif new_plugin.get("api") not in self.api: