Source code for sdata.experiments

# -*-coding: utf-8-*-
import logging
logger = logging.getLogger("sdata")
import pandas as pd
import numpy as np
from sdata import Data
from sdata.data import Sdata_Uuid_Exeption
import uuid

# import sdata.experiments.ks2
# import sdata.experiments.lapshear
# import sdata.experiments.material
#
# # ["name", "default_value", "dtype", "unit", "description", "required"]
# part_default_attributes = [
#     ["part_id", None, "str", "-", "Part ID", True],
# ]


[docs]class TestProgram(Data): """A sdata Testprogram """ def __init__(self, **kwargs): """ :param kwargs: """ Data.__init__(self, **kwargs) self.metadata.add(name=self.SDATA_CLASS, value=self.__class__.__name__, dtype="str") # if kwargs.get("uuid_testprogram") is not None: # try: # self.uuid_testprogram = kwargs.get("uuid_testprogram") # store given uuid str or generate a new uuid # except Sdata_Uuid_Exeption as exp: # if self.auto_correct is True: # logger.warning("got invald uuid -> generate a new uuid") # self.uuid_testprogram = uuid.uuid4().hex # else: # raise self.name_testprogram = self.name self.uuid_testprogram = self.uuid if kwargs.get("name_testprogram") is not None: self._set_name(kwargs.get("name_testprogram")) if kwargs.get("uuid_testprogram") is not None: self._set_uuid(kwargs.get("uuid_testprogram"))
[docs] def gen_testseries(self, **kwargs): """generate TestSeries instance :param kwargs: :return: TestSeries() """ ts = TestSeries(**kwargs) ts.project = self.project ts.name_testprogram = self.name_testprogram ts.uuid_testprogram = self.uuid_testprogram ts.metadata.add(self.SDATA_PARENT, self.uuid) return ts
@property def longname(self): return "_".join([self.name_testprogram])
[docs]class TestSeries(TestProgram): """A sdata TestSeries """ SDATA_TESTPROGRAM_NAME = "!sdata_testprogram_name" SDATA_TESTPROGRAM_UUID = "!sdata_testprogram_uuid" SDATA_TESTTYPE = "!sdata_testtype" def __init__(self, **kwargs): """Test Series :param kwargs: """ TestProgram.__init__(self, **kwargs) self.metadata.add(name=self.SDATA_CLASS, value=self.__class__.__name__, dtype="str") self.metadata.add(name=self.SDATA_TESTPROGRAM_NAME, value="N.N.", dtype="str", description="name of the testprogram") self.metadata.add(name=self.SDATA_TESTPROGRAM_UUID, value="", dtype="str", description="uuid of the testprogram") self.metadata.add(name=self.SDATA_TESTTYPE, value="", dtype="str", description="test type") # if kwargs.get("name_testprogram") is not None: # self.name_testprogram = kwargs.get("name_testprogram") # # if kwargs.get("uuid_testseries") is not None: # try: # self.uuid_testseries = kwargs.get("uuid_testseries") # store given uuid str or generate a new uuid # except Sdata_Uuid_Exeption as exp: # if self.auto_correct is True: # logger.warning("got invald uuid -> generate a new uuid") # self.uuid_testseries = uuid.uuid4().hex # else: # raise self.uuid_testseries = self.uuid self.name_testseries = self.name # if kwargs.get("name") is not None: # self._set_name(kwargs.get("name")) # if kwargs.get("uuid") is not None: # self._set_uuid(kwargs.get("uuid")) # if kwargs.get("name_testseries") is not None: # self.name_testseries = kwargs.get("name_testseries") if kwargs.get("testtype") is not None: self._set_testtype(kwargs.get("testtype")) if kwargs.get("name_testseries") is not None: self._set_name(kwargs.get("name_testseries")) if kwargs.get("uuid_testseries") is not None: self._set_uuid(kwargs.get("uuid_testseries")) if kwargs.get("name_testprogram") is not None: self._set_name_testprogram(kwargs.get("name_testprogram")) if kwargs.get("uuid_testprogram") is not None: self._set_uuid_testprogram(kwargs.get("uuid_testprogram")) uuid_testseries = property(fget=TestProgram._get_uuid, fset=TestProgram._set_uuid, doc="uuid of the testseries") name_testseries = property(fget=TestProgram._get_name, fset=TestProgram._set_name, doc="name of the testseries") def _get_uuid_testprogram(self): return self.metadata.get(self.SDATA_TESTPROGRAM_UUID).value # return self._uuid def _set_uuid_testprogram(self, value): if isinstance(value, str): try: uuid.UUID(value) self.metadata.set_attr(self.SDATA_TESTPROGRAM_UUID, uuid.UUID(value).hex) except ValueError as exp: logger.warning("data.uuid: %s" % exp) raise Sdata_Uuid_Exeption("got invalid uuid str '{}'".format(str(value))) elif isinstance(value, uuid.UUID): self.metadata.set_attr(self.SDATA_TESTPROGRAM_UUID, value.hex) else: logger.error("Data.uuid: invalid uuid '{}'".format(value)) raise Exception("Data.uuid: invalid uuid '{}'".format(value)) uuid_testprogram = property(fget=_get_uuid_testprogram, fset=_set_uuid_testprogram, doc="uuid of the testprogram") def _get_name_testprogram(self): # return self._name return self.metadata.get(self.SDATA_TESTPROGRAM_NAME).value def _set_name_testprogram(self, value): if isinstance(value, str): try: self.metadata.set_attr(self.SDATA_TESTPROGRAM_NAME, str(value)[:256]) except ValueError as exp: logger.warning("data.name_testprogram: %s" % exp) else: # self._name = str(value)[:256] self.metadata.set_attr(self.SDATA_TESTPROGRAM_NAME, str(value)[:256]) name_testprogram = property(fget=_get_name_testprogram, fset=_set_name_testprogram, doc="name of the testprogram") def _get_testtype(self): return self.metadata.get(self.SDATA_TESTTYPE).value def _set_testtype(self, value): if isinstance(value, str): try: self.metadata.set_attr(self.SDATA_TESTTYPE, str(value)[:256]) except ValueError as exp: logger.warning("data.testtype: %s" % exp) else: self.metadata.set_attr(self.SDATA_TESTTYPE, str(value)[:256]) testtype = property(fget=_get_testtype, fset=_set_testtype, doc="testtype of the testseries")
[docs] def gen_test(self, **kwargs): """generate Test instance :param kwargs: :return: Test() """ t = Test(**kwargs) t.name_testprogram = self.name_testprogram t.uuid_testprogram = self.uuid_testprogram t.name_testseries = self.name_testseries t.uuid_testseries = self.uuid_testseries t.project = self.project t.testtype = self.testtype t.metadata.add(self.SDATA_PARENT, self.uuid) return t
@property def longname(self): return "_".join([self.name_testprogram, self.name])
[docs]class Test(TestSeries): """A sdata Test """ SDATA_TESTSERIES_NAME = "!sdata_testseries_name" SDATA_TESTSERIES_UUID = "!sdata_testseries_uuid" def __init__(self, **kwargs): """Test :param kwargs: """ TestSeries.__init__(self, **kwargs) self.metadata.add(name=self.SDATA_TESTSERIES_NAME, value="N.N.", dtype="str") self.metadata.add(name=self.SDATA_TESTSERIES_UUID, value="", dtype="str") if kwargs.get("name") is not None: self._set_name(kwargs.get("name")) else: self._set_name("N.N.") if kwargs.get("testtype") is not None: # print("testtype", kwargs.get("testtype"), self._set_testtype) self._set_testtype(kwargs.get("testtype")) if kwargs.get("name_testseries") is not None: self._set_name_testseries(kwargs.get("name_testseries")) if kwargs.get("uuid_testseries") is not None: self._set_uuid_testseries(kwargs.get("uuid_testseries")) if kwargs.get("name_testprogram") is not None: self._set_name_testprogram(kwargs.get("name_testprogram")) if kwargs.get("uuid_testprogram") is not None: # print("uuid_testprogram", kwargs.get("uuid_testprogram"), self._set_uuid_testprogram) self._set_uuid_testprogram(kwargs.get("uuid_testprogram")) def _get_uuid_testseries(self): return self.metadata.get(self.SDATA_TESTSERIES_UUID).value def _set_uuid_testseries(self, value): if isinstance(value, str): try: uuid.UUID(value) self.metadata.set_attr(self.SDATA_TESTSERIES_UUID, uuid.UUID(value).hex) except ValueError as exp: logger.warning("data.uuid: %s" % exp) raise Sdata_Uuid_Exeption("got invalid uuid str '{}'".format(str(value))) elif isinstance(value, uuid.UUID): self.metadata.set_attr(self.SDATA_TESTSERIES_UUID, value.hex) else: logger.error("Data.uuid: invalid uuid '{}'".format(value)) raise Exception("Data.uuid: invalid uuid '{}'".format(value)) uuid_testseries = property(fget=_get_uuid_testseries, fset=_set_uuid_testseries, doc="uuid of the testseries") def _get_name_testseries(self): return self.metadata.get(self.SDATA_TESTSERIES_NAME).value def _set_name_testseries(self, value): if isinstance(value, str): try: self.metadata.set_attr(self.SDATA_TESTSERIES_NAME, str(value)[:256]) except ValueError as exp: logger.warning("data.name_testseries: %s" % exp) else: self.metadata.set_attr(self.SDATA_TESTSERIES_NAME, str(value)[:256]) name_testseries = property(fget=_get_name_testseries, fset=_set_name_testseries, doc="name of the testseries") def _get_testtype(self): return self.metadata.get(self.SDATA_TESTTYPE).value def _set_testtype(self, value): if isinstance(value, str): try: self.metadata.set_attr(self.SDATA_TESTTYPE, str(value)[:256]) except ValueError as exp: logger.warning("data.testtype: %s" % exp) else: self.metadata.set_attr(self.SDATA_TESTTYPE, str(value)[:256]) testtype = property(fget=_get_testtype, fset=_set_testtype, doc="testtype of the testseries") @property def longname(self): return "_".join([self.name_testprogram, self.name_testseries, self.name])
__all__ = []