python: Add __bool__ helpers in addition to __nonzero__
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>
This commit is contained in:
@@ -829,9 +829,12 @@ class Bool(ParamValue):
|
||||
|
||||
# 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'
|
||||
|
||||
@@ -55,8 +55,10 @@ class Variable(str):
|
||||
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:
|
||||
@@ -107,9 +109,12 @@ class UndefinedVariable(object):
|
||||
"""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"""
|
||||
|
||||
Reference in New Issue
Block a user