'Base dataprovider factory for all datatypes that returns the proper provider
for the given `data_format` or raises a `NoProviderAvailable`.'

def dataprovider(self, dataset, data_format, **settings):

    if self.has_dataprovider(data_format):
        return self.dataproviders[data_format](self, dataset, **settings)
    raise dataproviders.exceptions.NoProviderAvailable(self, data_format)
