6231: WARNING: configmanager.py: line 309: WARNING: ignoring key with wrong type
'behavior.autoload' svn: r20790
This commit is contained in:
parent
2a1367ca51
commit
a4b1518a04
@ -290,6 +290,12 @@ class ConfigManager(object):
|
||||
####################### Now, let's test and set:
|
||||
if (name in self.default and
|
||||
setting in self.default[name]):
|
||||
if isinstance(self.default[name][setting], bool):
|
||||
#make sure 0 and 1 are False and True
|
||||
if value == 0:
|
||||
value = False
|
||||
elif value == 1:
|
||||
value = True
|
||||
if self.check_type(self.default[name][setting], value):
|
||||
self.data[name][setting] = value
|
||||
else:
|
||||
@ -492,7 +498,7 @@ class ConfigManager(object):
|
||||
(section, setting))
|
||||
# Check value to see if right type:
|
||||
if self.has_default(key):
|
||||
if not self.check_type(self.get_default(key), value):
|
||||
if not self.check_type(self.get_default(key), value):
|
||||
raise AttributeError("attempting to set '%s' to wrong type "
|
||||
"'%s'; should be '%s'" %
|
||||
(key, type(value),
|
||||
@ -511,17 +517,17 @@ class ConfigManager(object):
|
||||
|
||||
def check_type(self, value1, value2):
|
||||
"""
|
||||
Check if value1 and value2 are different types.
|
||||
"""
|
||||
type1 = type(value1)
|
||||
Check if value1 and value2 are different types.
|
||||
"""
|
||||
type1 = type(value1)
|
||||
type2 = type(value2)
|
||||
if type1 == type2:
|
||||
return True
|
||||
elif (isinstance(value1, basestring) and
|
||||
isinstance(value2, basestring)):
|
||||
elif (isinstance(value1, basestring) and
|
||||
isinstance(value2, basestring)):
|
||||
return True
|
||||
elif (type1 in [int, float, long] and
|
||||
type2 in [int, float, long]):
|
||||
type2 in [int, float, long]):
|
||||
return True
|
||||
else:
|
||||
else:
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user