From cee4de48aae88c5df32e147784fd53ab5fb3ea09 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 22 Sep 2009 18:54:27 +0000 Subject: [PATCH] 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 --- pym/portage/proxy/objectproxy.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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')()) -- 2.26.2