[kupfer: 4/51] grouping: Support sorting lexically
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 4/51] grouping: Support sorting lexically
- Date: Sun, 10 Jan 2010 11:57:10 +0000 (UTC)
commit 4c405f2cd56e01e05c8b6dc8e417ff84a65cc5ef
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Mon Jan 4 17:50:46 2010 +0100
grouping: Support sorting lexically
We cannot preserve the original order in the grouped source (?), so we
can lexically sort the source. All non-grouping leaves are produced
in-order before the grouping leaves.
kupfer/obj/grouping.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/obj/grouping.py b/kupfer/obj/grouping.py
index f58ed07..dc9223a 100644
--- a/kupfer/obj/grouping.py
+++ b/kupfer/obj/grouping.py
@@ -7,6 +7,7 @@ import time
import weakref
from kupfer.objects import Leaf, Source
+from kupfer import utils
__author__ = ("Karol BÄ?dkowski <karol bedkowsk+gh gmail com>, "
"Ulrik Sverdrup <ulrik sverdrup gmail com>" )
@@ -102,10 +103,15 @@ class GroupingSource (Source):
merge_groups((slot, value), (slot2, value2))
self.output_debug("MERGED ALL", time.time() - st)
+ if self.should_sort_lexically():
+ sort_func = utils.locale_sort
+ else:
+ sort_func = lambda x: x
+
keys = set(groups)
keys.difference_update(redundant_keys)
- for key in keys:
- yield self._make_group_leader(groups[key])
+ for leaf in sort_func(self._make_group_leader(groups[K]) for K in keys):
+ yield leaf
self.output_debug("END", time.time() - st)
@classmethod
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]