From c21b9f3fe48a2f161237f1e39244048cba7f753c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Mon, 27 Mar 2006 01:15:09 +0000 Subject: [PATCH] * fix: do not show tracking db's by default, add an option, at any rate. who knows who might need them? we don't like to hide info. that's for wussies. --- pisi/itembyrepodb.py | 28 ++++++++++++++++++++++++---- pisi/packagedb.py | 4 ++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/pisi/itembyrepodb.py b/pisi/itembyrepodb.py index 60a349d1..310629a8 100644 --- a/pisi/itembyrepodb.py +++ b/pisi/itembyrepodb.py @@ -52,13 +52,33 @@ class ItemByRepoDB(object): def items(self): return self.d.items() - - def list(self, repo = None): + + def list(self, repo = None, show_tracking = False): if repo: return [ k for k,data in self.d.items() if data.has_key(self.repo_str(repo))] else: - return [ pkg for pkg in self.d.keys() ] - + if show_tracking: + return [ pkg for pkg in self.d.keys() ] + else: + def not_just_tracking(k, data): + keys = data.keys() + if len(keys)==1: + if 'trdparty' in keys or 'inst' in keys: + return False + elif len(keys)==2: + if 'trdparty' in keys and 'inst' in keys: + return False + return True + #below is a slower way + #for x in data.keys(): + # if x.startsWith('repo-'): + # return False + #return True + return self.list_if(not_just_tracking) + + def list_if(self, pred): + return [ k for k,data in self.d.items() if pred(k, data)] + # TODO: carry this to repodb, really :/ def order(self): import pisi.repodb diff --git a/pisi/packagedb.py b/pisi/packagedb.py index 7d2e5488..9f89c788 100644 --- a/pisi/packagedb.py +++ b/pisi/packagedb.py @@ -79,8 +79,8 @@ class PackageDB(object): else: return [] - def list_packages(self, repo=None): - return self.d.list(repo) + def list_packages(self, repo=None, show_tracking=False): + return self.d.list(repo, show_tracking=show_tracking) def add_package(self, package_info, repo, txn = None): name = str(package_info.name)