Diff of /qiita_db/investigation.py [000000] .. [879b32]

Switch to side-by-side view

--- a
+++ b/qiita_db/investigation.py
@@ -0,0 +1,77 @@
+"""
+Objects for dealing with Qiita studies
+
+This module provides the implementation of the Investigation class.
+
+
+Classes
+-------
+- `Investigation` -- A Qiita investigation class
+"""
+# -----------------------------------------------------------------------------
+# Copyright (c) 2014--, The Qiita Development Team.
+#
+# Distributed under the terms of the BSD 3-clause License.
+#
+# The full license is in the file LICENSE, distributed with this software.
+# -----------------------------------------------------------------------------
+
+import qiita_db as qdb
+
+REQUIRED_KEYS = {"name", "description", "contact_person"}
+
+
+class Investigation(qdb.base.QiitaObject):
+    """
+    Study object to access to the Qiita Study information
+
+    Attributes
+    ----------
+    name: str
+        name of the investigation
+    description: str
+        description of what the investigation is investigating
+    contact_person: StudyPerson object
+    studies: list of Study Objects
+        all studies that are part of the investigation
+
+    Methods
+    -------
+    add_study
+        Adds a study to the investigation
+    """
+    _table = "investigation"
+
+    @classmethod
+    def create(cls, owner, info, investigation=None):
+        """Creates a new investigation on the database"""
+        raise NotImplementedError()
+
+    @classmethod
+    def delete(cls, id_):
+        """Deletes an investigation on the database"""
+        raise NotImplementedError()
+
+    @property
+    def name(self):
+        raise NotImplementedError()
+
+    @name.setter
+    def name(self, value):
+        raise NotImplementedError()
+
+    @property
+    def description(self):
+        raise NotImplementedError()
+
+    @description.setter
+    def description(self, value):
+        raise NotImplementedError()
+
+    @property
+    def contact_person(self):
+        raise NotImplementedError()
+
+    @contact_person.setter
+    def contact_person(self, value):
+        raise NotImplementedError()