diff --git a/pybis/src/python/CHANGELOG.md b/pybis/src/python/CHANGELOG.md index f47e23bfc910b6782c63384ea52e5a421b52c4e6..99519fb77c689d25ab834ef790849321410da406 100644 --- a/pybis/src/python/CHANGELOG.md +++ b/pybis/src/python/CHANGELOG.md @@ -1,3 +1,8 @@ +## Changes with pybis-1.14.2 + +- properties can be provided with either upper or lowercase +- bugfix of duplicate property columns + ## Changes with pybis-1.14.1 - small bugfix diff --git a/pybis/src/python/pybis/__init__.py b/pybis/src/python/pybis/__init__.py index 7b94fc5306abb72d168cd0a88475390d47b2c083..4faee4d623ff3e8411113cd8487bfe786853b7cd 100644 --- a/pybis/src/python/pybis/__init__.py +++ b/pybis/src/python/pybis/__init__.py @@ -1,7 +1,7 @@ name = 'pybis' __author__ = 'Swen Vermeul' __email__ = 'swen@ethz.ch' -__version__ = '1.14.1' +__version__ = '1.14.2' from . import pybis from .pybis import DataSet diff --git a/pybis/src/python/pybis/pybis.py b/pybis/src/python/pybis/pybis.py index 0f7f74482ac660a7216bf159354273e8cc0d27af..3d066535f903ca70df4ea8c3790376f82925bebf 100644 --- a/pybis/src/python/pybis/pybis.py +++ b/pybis/src/python/pybis/pybis.py @@ -1803,15 +1803,18 @@ class Openbis: "operator": "AND" } - options = self._get_fetchopts_for_attrs(attrs) + attrs_fetchoptions = self._get_fetchopts_for_attrs(attrs) # build the various fetch options fetchopts = fetch_option['sample'] fetchopts['from'] = start_with fetchopts['count'] = count - for option in ['tags', 'properties', 'registrator', 'modifier']+options: + default_fetchopts = ['tags', 'registrator', 'modifier'] + for option in default_fetchopts+attrs_fetchoptions: fetchopts[option] = fetch_option[option] + if props is not None: + fetchopts['properties'] = fetch_option['properties'] request = { "method": "searchSamples", @@ -2086,6 +2089,7 @@ class Openbis: if any([entity in attr for entity in ['space','project']]): fetchopts['experiment'] = fetch_option['experiment'] fetchopts['experiment']['project'] = fetch_option['project'] + request = { "method": "searchDataSets", "params": [self.token, @@ -3547,22 +3551,15 @@ class Openbis: continue else: + # property name is provided for i, dataSet in enumerate(response): try: - datasets.loc[i, prop.upper()] = dataSet.get('properties',{}).get(prop,'') + datasets.loc[i, prop.upper()] = dataSet.get('properties',{}).get(prop,'') or dataSet.get('properties',{}).get(prop.upper(),'') except AttributeError: pass display_attrs.append(prop.upper()) - if datasets.get('properties') is not None: - datasets[prop.upper()] = datasets['properties'].map( - lambda x: x.get(prop.upper(), '') - ) - else: - datasets[prop.upper()] = '' - display_attrs.append(prop.upper()) - return Things( openbis_obj = self, entity = 'dataset', @@ -3775,22 +3772,14 @@ class Openbis: continue else: + # property name is provided for i, sample in enumerate(response): try: - samples.loc[i, prop.upper()] = sample.get('properties',{}).get(prop,'') + samples.loc[i, prop.upper()] = sample.get('properties',{}).get(prop,'') or sample.get('properties',{}).get(prop.upper(),'') except AttributeError: pass display_attrs.append(prop.upper()) - - if samples.get('properties') is not None: - samples[prop.upper()] = samples['properties'].map( - lambda x: x.get(prop.upper(), '') - ) - else: - samples[prop.upper()] = '' - display_attrs.append(prop.upper()) - return Things( openbis_obj = self, entity = 'sample', diff --git a/pybis/src/python/setup.py b/pybis/src/python/setup.py index e8b7e9e5e17f128951265e2bf4c2ee9d7e5052d9..2983b8b19611d34e1b3dfc4bd849e668b50388f0 100644 --- a/pybis/src/python/setup.py +++ b/pybis/src/python/setup.py @@ -10,7 +10,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setup( name='PyBIS', - version= '1.14.1', + version= '1.14.2', author='Swen Vermeul • ID SIS • ETH Zürich', author_email='swen@ethz.ch', description='openBIS connection and interaction, optimized for using with Jupyter',