diff env/lib/python3.9/site-packages/planemo/database/interface.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000 (2021-03-22)
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.9/site-packages/planemo/database/interface.py	Mon Mar 22 18:12:50 2021 +0000
@@ -0,0 +1,37 @@
+"""Describe the interface classes of the planemo.database package."""
+
+import abc
+
+from six import add_metaclass
+
+
+@add_metaclass(abc.ABCMeta)
+class DatabaseSource(object):
+    """Interface describing a source of profile databases."""
+
+    @abc.abstractmethod
+    def create_database(self, identifier):
+        """Create a database with specified short identifier.
+
+        Throw an exception if it already exists.
+        """
+
+    @abc.abstractmethod
+    def delete_database(self, identifier):
+        """Delete a database with specified short identifier.
+
+        Throw an exception if it already exists.
+        """
+
+    @abc.abstractmethod
+    def list_databases(self):
+        """Return identifiers associated with database source."""
+
+    @abc.abstractmethod
+    def sqlalchemy_url(self, identifier):
+        """Return a URL string for use by sqlalchemy."""
+
+
+__all__ = (
+    "DatabaseSource",
+)