| # 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']) |