self.set_value(self.default)
def _parse(self, value):
- try:
- return self.base_type(value)
- except:
- return value
+ if not isinstance(value, self.base_type):
+ try:
+ return self.base_type(value)
+ except:
+ pass
+ return value
+
+class AnyTypeSetting(BaseSetting):
+ def _parse(self, value):
+ return value
class Setting(object):
sets = {}
def __new__(cls, name, default, set=None, field_context=None):
+ if default is None:
+ return AnyTypeSetting(name, default, set, field_context)
+
deftype = type(default)
if deftype in Setting.emulators: