diff options
Diffstat (limited to 'usr/lib/portage/pym/_emerge/DependencyArg.py')
-rw-r--r-- | usr/lib/portage/pym/_emerge/DependencyArg.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/usr/lib/portage/pym/_emerge/DependencyArg.py b/usr/lib/portage/pym/_emerge/DependencyArg.py new file mode 100644 index 0000000..29a0072 --- /dev/null +++ b/usr/lib/portage/pym/_emerge/DependencyArg.py @@ -0,0 +1,46 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +from __future__ import unicode_literals + +import sys + +from portage import _encodings, _unicode_encode + +class DependencyArg(object): + + __slots__ = ('arg', 'force_reinstall', 'internal', 'reset_depth', 'root_config') + + def __init__(self, arg=None, force_reinstall=False, internal=False, + reset_depth=True, root_config=None): + """ + Use reset_depth=False for special arguments that should not interact + with depth calculations (see the emerge --deep=DEPTH option). + """ + self.arg = arg + self.force_reinstall = force_reinstall + self.internal = internal + self.reset_depth = reset_depth + self.root_config = root_config + + def __eq__(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): + # Use unicode_literals format string for python-2.x safety, + # ensuring that self.arg.__unicode__() is used + # when necessary. + return "%s" % (self.arg,) + + if sys.hexversion < 0x3000000: + + __unicode__ = __str__ + + def __str__(self): + return _unicode_encode(self.__unicode__(), encoding=_encodings['content']) |