aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-09-13 18:03:54 -0700
committerZac Medico <zmedico@gentoo.org>2012-09-13 18:03:54 -0700
commit156bf1b09a263217e9de5d0d14934cc295121f0a (patch)
tree064ff14f61f76a8827323531f266aec591ae4bc3 /pym/_emerge/resolver/output_helpers.py
parentBind FEATURES=-test to USE=-test for bug #373209. (diff)
downloadportage-156bf1b09a263217e9de5d0d14934cc295121f0a.tar.gz
portage-156bf1b09a263217e9de5d0d14934cc295121f0a.tar.bz2
portage-156bf1b09a263217e9de5d0d14934cc295121f0a.zip
Refactor merge list attribute display.
This should not change the behavior at all, but it makes the display much easier to modify or extend.
Diffstat (limited to 'pym/_emerge/resolver/output_helpers.py')
-rw-r--r--pym/_emerge/resolver/output_helpers.py64
1 files changed, 62 insertions, 2 deletions
diff --git a/pym/_emerge/resolver/output_helpers.py b/pym/_emerge/resolver/output_helpers.py
index dc622bd9d..41dc324a1 100644
--- a/pym/_emerge/resolver/output_helpers.py
+++ b/pym/_emerge/resolver/output_helpers.py
@@ -15,10 +15,11 @@ from portage import os
from portage import _encodings, _unicode_encode
from portage._sets.base import InternalPackageSet
from portage.output import (blue, bold, colorize, create_color_func,
- green, red, teal, yellow)
+ green, red, teal, turquoise, yellow)
bad = create_color_func("BAD")
from portage.package.ebuild.config import _feature_flags
from portage.util import shlex_split, writemsg
+from portage.util.SlotObject import SlotObject
from portage.versions import catpkgsplit
from _emerge.Blocker import Blocker
@@ -613,7 +614,8 @@ class PkgInfo(object):
information about the pkg being printed.
"""
- __slots__ = ("built", "cp", "ebuild_path", "fetch_symbol", "merge",
+ __slots__ = ("attr_display", "built", "cp",
+ "ebuild_path", "fetch_symbol", "merge",
"oldbest", "oldbest_list", "operation", "ordered",
"repo_name", "repo_path_real", "system", "use", "ver", "world")
@@ -634,3 +636,61 @@ class PkgInfo(object):
self.use = ''
self.ver = ''
self.world = False
+ self.attr_display = PkgAttrDisplay()
+
+class PkgAttrDisplay(SlotObject):
+
+ __slots__ = ("downgrade", "fetch_restrict", "fetch_restrict_satisfied",
+ "interactive", "mask", "new", "new_slot", "new_version", "replace")
+
+ def __str__(self):
+ output = []
+
+ if self.interactive:
+ output.append(colorize("WARN", "I"))
+ else:
+ output.append(" ")
+
+ if self.new:
+ output.append(green("N"))
+ else:
+ output.append(" ")
+
+ if self.new_slot or self.replace:
+ if self.replace:
+ output.append(yellow("R"))
+ else:
+ output.append(green("S"))
+ else:
+ output.append(" ")
+
+ if self.fetch_restrict or self.fetch_restrict_satisfied:
+ if self.fetch_restrict_satisfied:
+ output.append(green("f"))
+ else:
+ output.append(red("F"))
+ else:
+ output.append(" ")
+
+ if self.new_version:
+ output.append(turquoise("U"))
+ else:
+ output.append(" ")
+
+ if self.downgrade:
+ output.append(blue("D"))
+ else:
+ output.append(" ")
+
+ if self.mask is not None:
+ output.append(self.mask)
+
+ return "".join(output)
+
+ if sys.hexversion < 0x3000000:
+
+ __unicode__ = __str__
+
+ def __str__(self):
+ return _unicode_encode(self.__unicode__(),
+ encoding=_encodings['content'])