On Mon, 2010-12-20 at 09:57 -0500, James Antill wrote: > I think "tree_level" means "the > maximum level of the tree that we will show? If so you might want to > change the option to --tree-level-max or something.
Taking your remarks into account, there is a cleaned patch. I will generate the second patch for --tree-format if you agree with this one. Thanks for your comments, Pierre
From cb9dcd8224267ba7265372e331bd22e0eab81a4e Mon Sep 17 00:00:00 2001 From: pingou <pin...@pingoured.fr> Date: Mon, 20 Dec 2010 18:52:33 +0100 Subject: [PATCH] Add a tree max level option to specify the maximum level of the tree shown --- repoquery.py | 35 ++++++++++++++++++++++++----------- 1 files changed, 24 insertions(+), 11 deletions(-) diff --git a/repoquery.py b/repoquery.py index c14f296..96e7a4f 100755 --- a/repoquery.py +++ b/repoquery.py @@ -317,6 +317,13 @@ class pkgQuery: req = kw.get('req', 'cmd line') level = kw.get('level', 0) all_reqs = kw.get('all_reqs', {}) + + if str(kw['tree_max_level']).lower() != 'all': + try: + kw['tree_max_level'] = int(kw['tree_max_level']) + except ValueError, er: + kw['tree_max_level'] = 'all' + __req2pkgs = {} def req2pkgs(ignore, req): req = str(req) @@ -359,16 +366,19 @@ class pkgQuery: tups = getattr(pkg, prco_type) rpkgs, loc_reqs = self._tree_maybe_add_pkgs(all_reqs, tups, req2pkgs) nlevel = level + 1 - for rpkg in sorted(rpkgs): - if pkg.verEQ(rpkg): - continue - if rpkgs[rpkg] is None: - req = self._tree_pkg2val(loc_reqs, rpkg) - self._tree_print_req(rpkg, req, nlevel) - continue - self._fmt_tree_prov(prco_type, - pkg=rpkg, level=nlevel, all_reqs=all_reqs, - req=self._tree_pkg2val(loc_reqs, rpkg)) + if str(kw['tree_max_level']).lower() == 'all' or int(kw['tree_max_level']) > int(nlevel -1): + for rpkg in sorted(rpkgs): + if pkg.verEQ(rpkg): + continue + if rpkgs[rpkg] is None: + req = self._tree_pkg2val(loc_reqs, rpkg) + self._tree_print_req(rpkg, req, nlevel) + continue + self._fmt_tree_prov(prco_type, + pkg=rpkg, level=nlevel, all_reqs=all_reqs, + req=self._tree_pkg2val(loc_reqs, rpkg), + tree_max_level = kw['tree_max_level']) + def fmt_tree_requires(self, **kw): return self._fmt_tree_prov('requires', **kw) def fmt_tree_conflicts(self, **kw): @@ -837,7 +847,8 @@ class YumBaseQuery(yum.YumBase): print to_unicode(pkg) for oper in self.pkgops: try: - out = pkg.doQuery(oper) + out = pkg.doQuery(oper, + tree_max_level = self.options.tree_max_level) if out: print to_unicode(out) except queryError, e: @@ -1037,6 +1048,8 @@ def main(args): parser.add_option("--tree-whatrequires", action="store_true", dest="tree_what_requires", help="list recursive what requires, in tree form") + parser.add_option("--tree-max-level", dest="tree_max_level", default = "all", + help="Indicates the maximal level of the tree, can be all or an int") parser.add_option("--search", action="store_true", dest="search", default=False, help="Use yum's search to return pkgs") -- 1.7.2.3
_______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel