Python 3 uses __bool__ instead of __nonzero__ when performing a
Boolean comparison.
Change-Id: I85185bbe136ecae67346fa23569e24edd7329222
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15996
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
# implement truth value testing for Bool parameters so that these params
# evaluate correctly during the python configuration phase
- def __nonzero__(self):
+ def __bool__(self):
return bool(self.value)
+ # Python 2.7 uses __nonzero__ instead of __bool__
+ __nonzero__ = __bool__
+
def ini_str(self):
if self.value:
return 'true'
return toLong(str(self))
def __float__(self):
return toFloat(str(self))
- def __nonzero__(self):
+ def __bool__(self):
return toBool(str(self))
+ # Python 2.7 uses __nonzero__ instead of __bool__
+ __nonzero__ = __bool__
def convert(self, other):
t = type(other)
if t == bool:
"""Placeholder class to represent undefined variables. Will
generally cause an exception whenever it is used, but evaluates to
zero for boolean truth testing such as in an if statement"""
- def __nonzero__(self):
+ def __bool__(self):
return False
+ # Python 2.7 uses __nonzero__ instead of __bool__
+ __nonzero__ = __bool__
+
class SmartDict(attrdict):
"""Dictionary class that holds strings, but intelligently converts
those strings to other types depending on their usage"""