From be9ed347828b94aa6a8f7c097b34a74cbd882891 Mon Sep 17 00:00:00 2001 From: Martin Sivak Date: Mon, 21 Apr 2008 15:14:57 +0200 Subject: Improvements targeted at better Gui integration --- pyfirstaidkit/interpret.py | 29 ++++++++++++++++++++++++----- pyfirstaidkit/reporting.py | 10 +++++----- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/pyfirstaidkit/interpret.py b/pyfirstaidkit/interpret.py index 35b0f44..4a920da 100644 --- a/pyfirstaidkit/interpret.py +++ b/pyfirstaidkit/interpret.py @@ -31,12 +31,31 @@ class Tasker: name = "Task interpreter" - def __init__(self, cfg): - self._provide = Dependencies() + def __init__(self, cfg, reporting = None, dependencies = None, backups = None, pluginsystem = None): self._config = cfg - self._reporting = Reports() - self._backups = FileBackupStore(cfg.backup.path) - self.pluginSystem = PluginSystem(reporting = self._reporting, dependencies = self._provide, backups = self._backups) + + if dependencies is None: + self._provide = Dependencies() + else: + self._provide = dependencies + + if reporting is None: + self._reporting = Reports() + else: + self._reporting = reporting + + if backups is None: + self._backups = FileBackupStore(cfg.backup.path) + else: + self._backups = backups + + if pluginsystem is None: + self.pluginSystem = PluginSystem(reporting = self._reporting, dependencies = self._provide, backups = self._backups) + else: + self.pluginSystem = pluginsystem + + def flags(self): + return self._provide def reporting(self): return self._reporting diff --git a/pyfirstaidkit/reporting.py b/pyfirstaidkit/reporting.py index eefc88c..98018f7 100644 --- a/pyfirstaidkit/reporting.py +++ b/pyfirstaidkit/reporting.py @@ -77,10 +77,10 @@ class Reports(object): self._mailboxes = [] self._notify = [] - def notify(self, cb, data): + def notify(self, cb, *args, **kwargs): """When putting anything new into the Queue, run notifications callbacks. Usefull for Gui and single-thread reporting. - The notification function has two parameters: data passed when registering callback, message recorded to the queue""" - return self._notify.append((cb, data)) + The notification function has parameters: message recorded to the queue, any parameters provided when registering""" + return self._notify.append((cb, args, kwargs)) def put(self, message, level, origin, action, importance = logging.INFO, reply = None, title = "", destination = None): data = {"level": level, "origin": origin, "action": action, "importance": importance, "message": message, "reply": reply, "title": title} @@ -98,8 +98,8 @@ class Reports(object): ret=destination.put(data) #call all the notify callbacks - for func, regdata in self._notify: - func(regdata, data) + for func, args, kwargs in self._notify: + func(data, *args, **kwargs) return ret -- cgit