def __setitem__(self, key, value): """ Set ``key`` to ``value``. """ if self.__locked: raise AttributeError( SET_ERROR % (self.__class__.__name__, key, value) ) check_name(key) if key in self.__d: raise AttributeError(OVERRIDE_ERROR % (self.__class__.__name__, key, self.__d[key], value) ) assert not hasattr(self, key) if isinstance(value, six.string_types): value = value.strip() if isinstance(value, bytes): value = value.decode('utf-8') m = { 'True': True, 'False': False, 'None': None, '': None, } if value in m: value = m[value] elif value.isdigit(): value = int(value) elif key == 'basedn': value = DN(value) if type(value) not in (unicode, int, float, bool, type(None), DN): raise TypeError(key, value) object.__setattr__(self, key, value) self.__d[key] = value
def __setitem__(self, key, value): """ Set ``key`` to ``value``. """ if self.__locked: raise AttributeError(SET_ERROR % (self.__class__.__name__, key, value)) check_name(key) if key in self.__d: raise AttributeError( OVERRIDE_ERROR % (self.__class__.__name__, key, self.__d[key], value)) assert not hasattr(self, key) if isinstance(value, six.string_types): value = value.strip() if isinstance(value, bytes): value = value.decode('utf-8') m = { 'True': True, 'False': False, 'None': None, '': None, } if value in m: value = m[value] elif value.isdigit(): value = int(value) elif key == 'basedn': value = DN(value) if type(value) not in (unicode, int, float, bool, type(None), DN): raise TypeError(key, value) object.__setattr__(self, key, value) # pylint: disable=unsupported-assignment-operation self.__d[key] = value