diff --git a/pybis/src/python/pybis/dataset.py b/pybis/src/python/pybis/dataset.py index e88f28dbb7ab0227c58620e92112f0dba641625e..b96a8a568b4b63ab9b43e1320683edb564f914cb 100644 --- a/pybis/src/python/pybis/dataset.py +++ b/pybis/src/python/pybis/dataset.py @@ -3,6 +3,7 @@ from threading import Thread from tabulate import tabulate from queue import Queue from .openbis_object import OpenBisObject +from .definitions import openbis_definitions from .utils import VERBOSE import requests import json @@ -11,6 +12,7 @@ from pandas import DataFrame import urllib.parse # for Data upload PYBIS_PLUGIN = "dataset-uploader-api" +dataset_definitions = openbis_definitions('DataSet') class DataSet(OpenBisObject): @@ -21,6 +23,10 @@ class DataSet(OpenBisObject): if kwargs is None: kwargs = {} + else: + for key in kwargs: + if key not in dataset_definitions['attrs_new']: + raise ValueError("{} is not a valid attribute for a DataSet".format(key)) if kwargs.get('code'): kwargs["autoGeneratedCode"] = False @@ -106,6 +112,7 @@ class DataSet(OpenBisObject): 'set_parents()', 'set_children()', 'set_components()', 'set_contained()', 'set_containers()', 'sample', 'experiment', + 'collection', 'dataStore', 'physicalData', 'linkedData',