Source code for planemo.database.interface

"""Describe the interface classes of the planemo.database package."""

import abc


[docs] class DatabaseSource(metaclass=abc.ABCMeta): """Interface describing a source of profile databases."""
[docs] @abc.abstractmethod def create_database(self, identifier): """Create a database with specified short identifier. Throw an exception if it already exists. """
[docs] @abc.abstractmethod def delete_database(self, identifier): """Delete a database with specified short identifier. Throw an exception if it already exists. """
[docs] @abc.abstractmethod def list_databases(self): """Return identifiers associated with database source."""
[docs] @abc.abstractmethod def sqlalchemy_url(self, identifier): """Return a URL string for use by sqlalchemy."""
__all__ = ("DatabaseSource",)