From ce3998575855189e4fb87a8c9777397fac1ffa23 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Tue, 11 Mar 2008 23:56:06 +0100 Subject: improved performance by caching the use_expand queries --- portato/backend/catapult/package.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'portato') diff --git a/portato/backend/catapult/package.py b/portato/backend/catapult/package.py index 5da4361..5ab8743 100644 --- a/portato/backend/catapult/package.py +++ b/portato/backend/catapult/package.py @@ -29,6 +29,8 @@ class CatapultPackage(Package): bus = dbus.SessionBus() dbus_object = bus.get_object(catapult.get_dbus_address(catapult.DEFAULT), catapult.CATAPULT_PACKAGE_BUS, follow_name_owner_changes = True) proxy = dbus.Interface(dbus_object, catapult.CATAPULT_PACKAGE_IFACE) + + _expand = {} def _new_flags (self): flags = self.get_new_use_flags() @@ -44,13 +46,20 @@ class CatapultPackage(Package): return nflags def use_expanded (self, flag, suggest = None): - if not suggest: - suggest = "" - s = str(self.proxy.use_expanded(self.get_cpv(), flag, suggest)) - if s: + + exp = self._expand.get(flag, False) + + if exp is False: + if not suggest: + suggest = "" + s = str(self.proxy.use_expanded(self.get_cpv(), flag, suggest)) + if not s: + s = None + + self._expand[flag] = s return s else: - return None + return exp def get_package_path(self): return str(self.proxy.get_package_path(self.get_cpv())) -- cgit v1.2.3-54-g00ecf