From 95a70e12989bb7f763be523f0aea69c85980294e Mon Sep 17 00:00:00 2001 From: Matthias Bodenbenner <m.bodenbenner@wzl-mq.rwth-aachen.de> Date: Mon, 18 Mar 2024 08:00:16 +0100 Subject: [PATCH] fixed metadata provisioning of arguments and returns --- README.md | 5 ++++- setup.py | 2 +- src/soil/parameter.py | 13 ++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d50a910..b822b95 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [](https://git-ce.rwth-aachen.de/wzl-mq-ms/forschung-lehre/lava/unified-device-interface/python/commits/master) # Python Unified Device Interface -Current stable version: 9.3.4 +Current stable version: 9.3.5 ## Installation 1. Install the WZL-UDI package via pip @@ -58,6 +58,9 @@ Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) ## Recent changes +**9.3.5** - 2024-03-18 + - fixed metadata provisioning of arguments and returns + **9.3.4** - 2024-03-16 - fixed semantic name resolution of range profiles diff --git a/setup.py b/setup.py index ae1fef7..5023de3 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() setup(name='wzl-udi', - version='9.3.4', + version='9.3.5', url='https://git-ce.rwth-aachen.de/wzl-mq-public/soil/python', project_urls={ "Bug Tracker": "https://git-ce.rwth-aachen.de/wzl-mq-public/soil/python/-/issues", diff --git a/src/soil/parameter.py b/src/soil/parameter.py index 9743aa0..55949a3 100644 --- a/src/soil/parameter.py +++ b/src/soil/parameter.py @@ -6,7 +6,7 @@ from typing import Dict, Callable, Any, List import rdflib from .datatype import Datatype -from .error import ReadOnlyException +from .error import ReadOnlyException, NotImplementedException from .semantics import Semantics, Namespaces from .variable import Variable from ..utils import root_logger @@ -158,8 +158,15 @@ class Parameter(Variable): assert (len(triples) == 1) result.remove(triples[0]) - rdf_value = Variable.serialize_value(result, self.__getitem__('value', 0)) - result.add((Semantics.namespace[self._semantic_name], Namespaces.qudt['value'], rdf_value)) + try: + rdf_value = Variable.serialize_value(result, self.__getitem__('value', 0)) + result.add((Semantics.namespace[self._semantic_name], Namespaces.qudt['value'], rdf_value)) + except DeviceException as e: + if isinstance(e._predecessor, NotImplementedException): + pass + else: + raise e + return result else: raise DeviceException('The provided kind of semantic information cannot be returned.') -- GitLab