From: Zac Medico Date: Tue, 22 Sep 2009 18:54:27 +0000 (-0000) Subject: For python 3.x with boolean target, len() results in TypeError, so X-Git-Tag: v2.2_rc42~47 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cee4de48aae88c5df32e147784fd53ab5fb3ea09;p=portage.git For python 3.x with boolean target, len() results in TypeError, so make __len__ return 0 or 1 in this case. svn path=/main/trunk/; revision=14377 --- diff --git a/pym/portage/proxy/objectproxy.py b/pym/portage/proxy/objectproxy.py index 00c5076d1..6dffff7d5 100644 --- a/pym/portage/proxy/objectproxy.py +++ b/pym/portage/proxy/objectproxy.py @@ -45,7 +45,15 @@ class ObjectProxy(object): return iter(object.__getattribute__(self, '_get_target')()) def __len__(self): - return len(object.__getattribute__(self, '_get_target')()) + try: + return len(object.__getattribute__(self, '_get_target')()) + except TypeError: + # For python 3.x with boolean target, len() results in + # TypeError, so return 0 or 1. + if bool(object.__getattribute__(self, '_get_target')()): + return 1 + else: + return 0 def __repr__(self): return repr(object.__getattribute__(self, '_get_target')())