'Translates the value stored in the imported datasource to an
appropriate Python object and returns it.'

def clean(self, data):

    try:
        value = data[self.column_name]
    except KeyError:
        raise KeyError((u"Column    '%s'    not    found    in    dataset.    Available    columns    are:    %s" % (self.column_name, list(data.keys()))))
    try:
        value = self.widget.clean(value, row=data)
    except ValueError as e:
        raise ValueError((u"Column    '%s':    %s" % (self.column_name, e)))
    if ((value in self.empty_values) and (self.default != NOT_PROVIDED)):
        if callable(self.default):
            return self.default()
        return self.default
    return value
