From 324a992a98a228d287c5da87726784b27f97372b Mon Sep 17 00:00:00 2001 From: helmutm Date: Tue, 17 Jan 2006 13:28:44 +0000 Subject: [PATCH] Use generators for Node.getChildNodes() git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1013 fd906abe-77d9-0310-91a1-e0d9ade77398 --- README.txt | 14 +++++++------- view.py | 9 ++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/README.txt b/README.txt index f1d78a8..a162814 100755 --- a/README.txt +++ b/README.txt @@ -165,7 +165,7 @@ What is returned by these may be controlled by the nodeType attribute: True >>> m111.nodeType = 'info' >>> m112.nodeType = 'text' - >>> len(m11.getChildNodes('text')) + >>> len(list(m11.getChildNodes('text'))) 1 There are also shortcut methods to retrieve certain types of nodes @@ -181,17 +181,17 @@ in a simple and logical way: True >>> m112.getPage() is m11 True - >>> len(m1.getMenuItems()) + >>> len(list(m1.getMenuItems())) 1 - >>> len(m11.getMenuItems()) + >>> len(list(m11.getMenuItems())) 0 - >>> len(m111.getMenuItems()) + >>> len(list(m111.getMenuItems())) 0 - >>> len(m1.getTextItems()) + >>> len(list(m1.getTextItems())) 0 - >>> len(m11.getTextItems()) + >>> len(list(m11.getTextItems())) 1 - >>> len(m111.getTextItems()) + >>> len(list(m111.getTextItems())) 0 Targets diff --git a/view.py b/view.py index 11c5b9f..fadf3d5 100644 --- a/view.py +++ b/view.py @@ -104,9 +104,12 @@ class Node(View, OrderedContainer): return None def getChildNodes(self, nodeTypes=None): - return [item for item in self.values() - if INode.providedBy(item) - and (not nodeTypes or item.nodeType in nodeTypes)] + for item in self.values(): + if INode.providedBy(item) \ + and (not nodeTypes or item.nodeType in nodeTypes): + yield item + else: + continue def getMenu(self): return self.nodeType == 'menu' and self or self.getParentNode(['menu'])