From: Zac Medico Date: Thu, 16 Sep 2010 02:39:00 +0000 (-0700) Subject: Implement DependencyArg __equals__, __hash__, and __unicode__ methods. X-Git-Tag: v2.2_rc84~43 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=32684ef519daea00ce8eefe48fe15893a5a886bf;p=portage.git Implement DependencyArg __equals__, __hash__, and __unicode__ methods. --- diff --git a/pym/_emerge/DependencyArg.py b/pym/_emerge/DependencyArg.py index 3bcaabefe..31cd882b5 100644 --- a/pym/_emerge/DependencyArg.py +++ b/pym/_emerge/DependencyArg.py @@ -1,11 +1,33 @@ -# Copyright 1999-2009 Gentoo Foundation +# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +import sys + +from portage import _encodings, _unicode_encode, _unicode_decode + class DependencyArg(object): def __init__(self, arg=None, root_config=None): self.arg = arg self.root_config = root_config + def __equals__(self, other): + if self.__class__ is not other.__class__: + return False + return self.arg == other.arg and \ + self.root_config.root == other.root_config.root + + def __hash__(self): + return hash((self.arg, self.root_config.root)) + def __str__(self): - return str(self.arg) + # Force unicode format string for python-2.x safety, + # ensuring that self.arg.__unicode__() is used + # when necessary. + return _unicode_decode("%s") % (self.arg,) + + if sys.hexversion < 0x3000000: + + __unicode__ = __str__ + def __str__(self): + return _unicode_encode(self.__unicode__(), encoding=_encodings['content'])