From 9014451e7289989d32a4f4ee7f706c3f927ece35 Mon Sep 17 00:00:00 2001 From: vermeul <swen@ethz.ch> Date: Tue, 15 Mar 2022 10:37:31 +0100 Subject: [PATCH] sample: automatically add project if it is missing --- pybis/src/python/CHANGELOG.md | 4 ++++ pybis/src/python/pybis/__init__.py | 2 +- pybis/src/python/pybis/dataset.py | 5 ++++- pybis/src/python/pybis/sample.py | 20 +++++++++++--------- pybis/src/python/setup.py | 2 +- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/pybis/src/python/CHANGELOG.md b/pybis/src/python/CHANGELOG.md index a5f4e036737..08768a521de 100644 --- a/pybis/src/python/CHANGELOG.md +++ b/pybis/src/python/CHANGELOG.md @@ -1,3 +1,7 @@ +## Changes with pybis-1.31.6 + +- automatically setting the project if only experiment was set + ## Changes with pybis-1.31.5 - optimised error generation without assert diff --git a/pybis/src/python/pybis/__init__.py b/pybis/src/python/pybis/__init__.py index fd168de3f6c..48ae574245e 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.31.5" +__version__ = "1.31.6" from . import pybis from .pybis import DataSet diff --git a/pybis/src/python/pybis/dataset.py b/pybis/src/python/pybis/dataset.py index 25b8c5581d5..df057ce229c 100644 --- a/pybis/src/python/pybis/dataset.py +++ b/pybis/src/python/pybis/dataset.py @@ -1060,7 +1060,10 @@ class DataSetUploadQueue: resp = requests.post(upload_url, data=f, verify=verify_certificates) resp.raise_for_status() data = resp.json() - assert filesize == int(data["size"]) + if filesize != int(data["size"]): + raise ValueError( + f'size of file uploaded: {filesize} != data received: {int(data["size"])}' + ) # Tell the queue that we are done self.upload_queue.task_done() diff --git a/pybis/src/python/pybis/sample.py b/pybis/src/python/pybis/sample.py index f0e8ee1514e..df1d7b0828e 100644 --- a/pybis/src/python/pybis/sample.py +++ b/pybis/src/python/pybis/sample.py @@ -21,15 +21,6 @@ class Sample(OpenBisObject, entity="sample", single_item_method_name="get_sample if data is not None: self._set_data(data) - # TODO: Why are we using getattr() and setattr() here? They are considerably slower. - if project is not None: - self.project = project - - if props is not None: - for key in props: - # self.p[key] = props[key] - setattr(self.p, key, props[key]) - if kwargs is not None: for key in kwargs: setattr(self, key, kwargs[key]) @@ -43,6 +34,17 @@ class Sample(OpenBisObject, entity="sample", single_item_method_name="get_sample except Exception: pass + if project is None: + if self.experiment: + self.project = self.experiment.project + else: + self.project = project + + if props is not None: + for key in props: + # self.p[key] = props[key] + setattr(self.p, key, props[key]) + if getattr(self, "parents") is None: self.a.__dict__["_parents"] = [] else: diff --git a/pybis/src/python/setup.py b/pybis/src/python/setup.py index 51ce66285fe..77513791c50 100644 --- a/pybis/src/python/setup.py +++ b/pybis/src/python/setup.py @@ -13,7 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setup( name="PyBIS", - version="1.31.5", + version="1.31.6", author="Swen Vermeul • ID SIS • ETH Zürich", author_email="swen@ethz.ch", description="openBIS connection and interaction, optimized for using with Jupyter", -- GitLab