X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Futil%2Fplugin.py;h=c57cb29812d215f05026fd5912c49e1f70691032;hp=045cc75aaa0c705ddcddd93c771b20077b32a7c5;hb=b6a436f76177c0180af3e0e70a88d3f974ac717d;hpb=2926eb00f40d925549b14b86f73f8649df1e9c05 diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py index 045cc75..c57cb29 100755 --- a/ipsilon/util/plugin.py +++ b/ipsilon/util/plugin.py @@ -26,11 +26,7 @@ from ipsilon.util.data import Store class Plugins(object): - def __init__(self, path=None): - if path is None: - self._path = os.getcwd() - else: - self._path = path + def __init__(self): self._providers_tree = None def _load_class(self, tree, class_type, file_name): @@ -83,7 +79,7 @@ class PluginLoader(object): if config is None: config = dict() - p = Plugins(path=cherrypy.config['base.dir']) + p = Plugins() (pathname, dummy) = os.path.split(inspect.getfile(baseobj)) self._plugins = { 'config': config, @@ -96,6 +92,16 @@ class PluginLoader(object): return self._plugins +class PluginInstaller(object): + def __init__(self, baseobj): + (pathname, dummy) = os.path.split(inspect.getfile(baseobj)) + self._pathname = pathname + + def get_plugins(self): + p = Plugins() + return p.get_plugins(self._pathname, 'Installer') + + class PluginObject(object): def __init__(self): @@ -138,9 +144,27 @@ class PluginObject(object): self._config = dict() self._config[option] = value + def get_plugin_config(self, facility): + return self._data.get_plugin_config(facility, self.name) + + def save_plugin_config(self, facility): + self._data.save_plugin_config(facility, self.name, self._config) + def get_data(self, idval=None, name=None, value=None): return self._data.get_data(self.name, idval=idval, name=name, value=value) def save_data(self, data): self._data.save_data(self.name, data) + + def new_datum(self, datum): + self._data.new_datum(self.name, datum) + + def del_datum(self, idval): + self._data.del_datum(self.name, idval) + + def wipe_config_values(self, facility): + self._data.wipe_plugin_config(facility, self.name) + + def wipe_data(self): + self._data.wipe_data(self.name)