'Is this a valid source for this provider?
:raises InvalidDataProviderSource: if the source is considered invalid.
Meant to be overridden in subclasses.'

def validate_source(self, source):

    if ((not source) or (not hasattr(source, '__iter__'))):
        raise exceptions.InvalidDataProviderSource(source)
    return source
