'Run the plugin. Must be implemented in subclasses.
It should generate the catalog in the format specified
in file_types, returning the absolute path to the
generated catalog file. If an error is encountered
it should raise an Exception.
The generated catalog file should be created with the
:meth:`temporary_file` method.
:param path_to_output: Absolute path to the generated catalog file.
:param opts: A dictionary of keyword arguments
:param db: A LibraryDatabase2 object'

def run(self, path_to_output, opts, db, ids, notification=None):

    raise NotImplementedError('CatalogPlugin.generate_catalog()    default    method,    should    be    overridden    in    subclass')
