Fixed a bug in the attr lockfunc to make it properly handle comparison for Nonetypes and bools as well as other values. Also fixed a malformed call for a default value. Resolves #753.
This commit is contained in:
parent
8e134af019
commit
11750be556
1 changed files with 9 additions and 9 deletions
|
|
@ -277,12 +277,12 @@ def pid(accessing_obj, accessed_obj, *args, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
# this is more efficient than multiple if ... elif statments
|
# this is more efficient than multiple if ... elif statments
|
||||||
CF_MAPPING = {'eq': lambda val1, val2: val1 == val2 or int(val1) == int(val2),
|
CF_MAPPING = {'eq': lambda val1, val2: val1 == val2 or str(val1) == str(val2) or float(val1) == float(val2),
|
||||||
'gt': lambda val1, val2: int(val1) > int(val2),
|
'gt': lambda val1, val2: float(val1) > float(val2),
|
||||||
'lt': lambda val1, val2: int(val1) < int(val2),
|
'lt': lambda val1, val2: float(val1) < float(val2),
|
||||||
'ge': lambda val1, val2: int(val1) >= int(val2),
|
'ge': lambda val1, val2: float(val1) >= float(val2),
|
||||||
'le': lambda val1, val2: int(val1) <= int(val2),
|
'le': lambda val1, val2: float(val1) <= float(val2),
|
||||||
'ne': lambda val1, val2: int(val1) != int(val2),
|
'ne': lambda val1, val2: float(val1) != float(val2),
|
||||||
'default': lambda val1, val2: False}
|
'default': lambda val1, val2: False}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -322,10 +322,10 @@ def attr(accessing_obj, accessed_obj, *args, **kwargs):
|
||||||
def valcompare(val1, val2, typ='eq'):
|
def valcompare(val1, val2, typ='eq'):
|
||||||
"compare based on type"
|
"compare based on type"
|
||||||
try:
|
try:
|
||||||
return CF_MAPPING.get(typ, 'default')(val1, val2)
|
return CF_MAPPING.get(typ, CF_MAPPING['default'])(val1, val2)
|
||||||
except Exception:
|
except Exception:
|
||||||
# this might happen if we try to compare two things
|
# this might happen if we try to compare two things that
|
||||||
# that cannot be compared
|
# cannot be compared
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if hasattr(accessing_obj, "obj"):
|
if hasattr(accessing_obj, "obj"):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue