From: <sr...@ce...> - 2016-01-13 16:08:37
|
From: Sergio Rubio Manrique <sr...@ce...> --- lib/taurus/core/util/eventfilters.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/taurus/core/util/eventfilters.py b/lib/taurus/core/util/eventfilters.py index 8dc52a1..52eb0ba 100644 --- a/lib/taurus/core/util/eventfilters.py +++ b/lib/taurus/core/util/eventfilters.py @@ -156,8 +156,7 @@ class RepeatedEventFilter(object): self._lastValues[(s, t)] = new_value return s, t, v - -def filterEvent(evt_src=-1, evt_type=-1, evt_value=-1, filters=()): +def filterEvent(evt_src=-1, evt_type=-1, evt_value=-1 ,filters=(), hook=None): """The event is processed by each and all filters in strict order unless one of them returns None (in which case the event is discarded) @@ -168,6 +167,8 @@ def filterEvent(evt_src=-1, evt_type=-1, evt_value=-1, filters=()): either None (to discard the event) or the tuple (with possibly transformed values) of (evt_src, evt_type, evt_value) + :param hook: a callable to be executed if the event passed all the filters; + if None, then just returns the event :return: (None or tuple) The result of piping the event through the given filters. @@ -178,4 +179,8 @@ def filterEvent(evt_src=-1, evt_type=-1, evt_value=-1, filters=()): evt = f(*evt) if evt is None: return None - return evt + + if hook: + return hook(*evt) + else: + return evt -- 2.4.6 |