[kupfer] grouping: MultipleSource may ask a Source for toplevel_source



commit 8178a219bd099bf83f7caae291cadf20b438ad40
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Sun Jan 3 21:43:44 2010 +0100

    grouping: MultipleSource may ask a Source for toplevel_source

 kupfer/objects.py |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/objects.py b/kupfer/objects.py
index 1545747..f5e1d28 100644
--- a/kupfer/objects.py
+++ b/kupfer/objects.py
@@ -752,6 +752,9 @@ class Source (KupferObject, pretty.OutputMixin):
 	def __hash__(self ):
 		return hash(repr(self))
 
+	def toplevel_source(self):
+		return self
+
 	def initialize(self):
 		"""
 		Called when a Source enters Kupfer's system for real
@@ -980,8 +983,9 @@ class MultiSource (Source):
 
 	def get_items(self):
 		iterators = []
-		for so in self.sources:
-			it = so.get_leaves()
+		ui = datatools.UniqueIterator(S.toplevel_source() for S in self.sources)
+		for S in ui:
+			it = S.get_leaves()
 			iterators.append(it)
 
 		return itertools.chain(*iterators)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]