From f0642eddbc63ddce456c2e1e45759529319c2904 Mon Sep 17 00:00:00 2001 From: Swen Vermeul <swen@ethz.ch> Date: Tue, 7 Feb 2017 15:01:45 +0100 Subject: [PATCH] added a __iter__ function to iterate through Samples, Experiments, DataSets etc. --- src/python/PyBis/pybis/pybis.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/python/PyBis/pybis/pybis.py b/src/python/PyBis/pybis/pybis.py index de27079c3e2..2101c4bc97a 100644 --- a/src/python/PyBis/pybis/pybis.py +++ b/src/python/PyBis/pybis/pybis.py @@ -8,6 +8,7 @@ Work with openBIS from Python. """ +from __future__ import print_function import os import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning @@ -501,15 +502,16 @@ class Openbis: (minimum version 16.05). """ - def __init__(self, url='https://localhost:8443', verify_certificates=True, token=None): + def __init__(self, url, verify_certificates=True, token=None): """Initialize a new connection to an openBIS server. - :param host: """ url_obj = urlparse(url) if url_obj.netloc is None: raise ValueError("please provide the url in this format: https://openbis.host.ch:8443") + if url_obj.hostname is None: + raise ValueError("hostname is missing") self.url_obj = url_obj self.url = url_obj.geturl() @@ -1406,7 +1408,7 @@ class Openbis: if additional_attributes is None: additional_attributes = [] - attributes = ['code', 'description', *additional_attributes, 'modificationDate'] + attributes = ['code', 'description'] + additional_attributes + ['modificationDate'] search_request = {} fetch_options = {} @@ -2725,6 +2727,12 @@ class Things(): # invoke the openbis.get_entity() method return getattr(self.openbis, 'get_'+self.entity)(row[self.identifier_name].values[0]) + def __iter__(self): + for item in self.df[[self.identifier_name]][self.identifier_name].iteritems(): + yield getattr(self.openbis, 'get_'+self.entity)(item[1]) + + #return self.df[[self.identifier_name]].to_dict()[self.identifier_name] + class Experiment(OpenBisObject): """ -- GitLab