From c40ac55789ef7da23bc7baaf77e47944de0faccb Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 15 Mar 2010 23:20:25 +0100 Subject: tools/dfagen: limit output using origin, refs #102 --- tools/dfagen/dfagen/automaton.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'tools/dfagen/dfagen/automaton.py') diff --git a/tools/dfagen/dfagen/automaton.py b/tools/dfagen/dfagen/automaton.py index 63a701f6..50a5dcd0 100644 --- a/tools/dfagen/dfagen/automaton.py +++ b/tools/dfagen/dfagen/automaton.py @@ -1,3 +1,10 @@ +def filter_origin_iter (list, origin): + if origin is None: + return iter (list) + else: + import itertools + return itertools.ifilter (lambda x: x.origin in origin, iter (list)) + class Event: """Event definition.""" @@ -63,8 +70,8 @@ class Transition: self.branches[branch.name] = branch self.branches_list.append (branch) - def iter_branches (self): - return iter (self.branches_list) + def iter_branches (self, origin = None): + return filter_origin_iter (self.branches_list, origin) def get_attributes (self): return [ b.attributes for b in self.iter_branches () @@ -124,14 +131,14 @@ class Automaton: self.events[event.name] = event self.events_list.append (event) - def iter_states (self): - return iter (self.states_list) + def iter_states (self, origin = None): + return filter_origin_iter (self.states_list, origin) - def iter_initials (self): - return iter (self.initials) + def iter_initials (self, origin = None): + return filter_origin_iter (self.initials, origin) - def iter_events (self): - return iter (self.events_list) + def iter_events (self, origin = None): + return filter_origin_iter (self.events_list, origin) def __str__ (self): s = self.name + '\n' -- cgit v1.2.3