From 763e54d3ec788f0bd973a22759317cbaf9dcbcb0 Mon Sep 17 00:00:00 2001
From: Chandrasekhar Ramakrishnan <chandrasekhar.ramakrishnan@id.ethz.ch>
Date: Tue, 10 May 2016 15:57:20 +0200
Subject: [PATCH] SSDM-3554: Templates for methods in the interface.
 Implementation still needs to be filled out.

---
 src/python/pybis/pybis.py | 51 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/python/pybis/pybis.py b/src/python/pybis/pybis.py
index c968523d073..b3a970a580b 100644
--- a/src/python/pybis/pybis.py
+++ b/src/python/pybis/pybis.py
@@ -16,7 +16,7 @@ import os
 class OpenbisCredentials:
     """Credentials for communicating with openBIS."""
 
-    def __init__(self, token = None, uname_and_pass = None):
+    def __init__(self, token=None, uname_and_pass=None):
         """A connection can be authenticated either by a token or a username and password combination
         :param token: An authentication token for openBIS, can be None.
         :param uname_and_pass: A tuple with username and password, in that order.
@@ -90,8 +90,55 @@ class Openbis:
     def login(self):
         """Log into openBIS.
         Expects credentials with username and password and updates the token on the credentials object.
+        Clients may want to store the credentials object in a credentials store after successful login.
         Throw a ValueError with the error message if login failed.
         """
         if not self.credentials.has_username_and_password:
             raise ValueError('Cannot log into openBIS without a username and password')
-        # TODO Implement the logic of this method.
+            # TODO Implement the logic of this method.
+
+    def is_token_valid(self):
+        """Check if the connection to openBIS is valid.
+        This method is useful to check if a token is still valid or if it has timed out, requiring the
+        user to login again.
+        :return: Return True if the token is valid, False if it is not valid.
+        """
+        if not self.credentials.has_token():
+            return False
+            # TODO Implement the logic of this method.
+
+    def get_samples(self, sample_identifiers):
+        """Retrieve metadata for the sample.
+        Get metadata for the sample and any directly connected parents of the sample to allow access
+        to the same information visible in the ELN UI. The metadata will be on the file system.
+        :param sample_identifiers: A list of sample identifiers to retrieve.
+        """
+        pass
+        # TODO Implement the logic of this method
+
+    def get_samples_with_data(self, sample_identifiers):
+        """Retrieve metadata for the sample, like get_sample_metadata, but retrieve any data sets as well,
+        like get_data_set.
+        :param sample_identifiers: A list of sample identifiers to retrieve.
+        """
+        pass
+        # TODO Implement the logic of this method
+
+    def get_data_sets(self, data_set_identifiers):
+        """Retrieve data set metadata and content.
+        The metadata will be on the file system. The file will also include the location of the data.
+        """
+        pass
+        # TODO Implement the logic of this method
+
+    def create_data_set_from_notebook(self, path_to_notebook, owner_identifier, paths_to_files,
+                                      parent_identifiers):
+        """Register a new data set with openBIS.
+        :param path_to_notebook: The path to the Jupyter notebook that created this data set
+        :param owner_identifier: The identifier of the sample that owns this data set.
+        :param paths_to_files: A list of paths to files that should be in the data set.
+        :param parent_identifiers: A list of parents for the data set.
+        :return:
+        """
+        pass
+        # TODO Implement the logic of this method
-- 
GitLab