diff --git a/pybis/src/python/CHANGELOG.md b/pybis/src/python/CHANGELOG.md index a5f4e0367371134344069c1d562096881d445e1f..08768a521de320c897a1221370a520dee9a71999 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 fd168de3f6c1493b2e78a95594c2d10166e03543..48ae574245e1fe9f7cb6f6ec59641d68af47529c 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 25b8c5581d5596ba03892e2d040aabb1708ab5d8..df057ce229c512691220044dfc904515a983a707 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 f0e8ee1514e2026625a2942e394ac24c5fca1958..df1d7b0828e63a8ce73379397a65fb06a2efcc59 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 51ce66285fec67635673f89b8ab1a71d415ca8df..77513791c50d2e6f790c6daf2a5fd48fcd237844 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",