[kupfer] objects: Cache Sources with SavedIterator when not forced update
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer] objects: Cache Sources with SavedIterator when not forced update
- Date: Sun, 1 Nov 2009 16:58:28 +0000 (UTC)
commit 4059a3cd97090410baccb552a8396da7b2cd9e5f
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Sun Nov 1 17:41:59 2009 +0100
objects: Cache Sources with SavedIterator when not forced update
The purpose is to let non-dynamic sources run free on the first run,
while we still cache the result.
kupfer/objects.py | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/kupfer/objects.py b/kupfer/objects.py
index 8f93d50..edcfeb6 100644
--- a/kupfer/objects.py
+++ b/kupfer/objects.py
@@ -15,8 +15,9 @@ from os import path
import gobject
import gio
-from kupfer import pretty
+from kupfer import datatools
from kupfer import icons, launch, utils
+from kupfer import pretty
from kupfer.utils import locale_sort
from kupfer.helplib import PicklingHelperMixin, FilesystemWatchMixin
from kupfer.kupferstring import tounicode, toutf8, tofolded
@@ -134,11 +135,7 @@ class KupferObject (object):
return "kupfer-object"
def aslist(seq):
- """
- Make lists from sequences that are not lists or tuples
-
- For iterators, sets etc.
- """
+ """Return a list out of @seq, or seq if it is a list"""
if not isinstance(seq, type([])) and not isinstance(seq, type(())):
seq = list(seq)
return seq
@@ -787,11 +784,12 @@ class Source (KupferObject, pretty.OutputMixin):
return sort_func(self.get_items())
if self.cached_items is None or force_update:
- self.cached_items = aslist(sort_func(self.get_items()))
+ cache_type = aslist if force_update else datatools.SavedIterable
+ self.cached_items = cache_type(sort_func(self.get_items()))
if force_update:
self.output_info("Loaded %d items" % len(self.cached_items))
else:
- self.output_debug("Loaded %d items" % len(self.cached_items))
+ self.output_debug("Loaded items")
return self.cached_items
def has_parent(self):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]