From 31e9da5d2fd35b32ed8f52abbfbc42360633cb80 Mon Sep 17 00:00:00 2001 From: Ansgar Wehrhahn <31626864+AWehrhahn@users.noreply.github.com> Date: Wed, 14 Jul 2021 16:44:22 +0200 Subject: [PATCH] Fix python part to work with both sequential and parallel libraries --- test/cwrapper.py | 9 +++++++++ test/sme_synth.py | 12 ++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/test/cwrapper.py b/test/cwrapper.py index 1e941b9..7b61fb1 100644 --- a/test/cwrapper.py +++ b/test/cwrapper.py @@ -440,3 +440,12 @@ def call(self, name, *args, raise_error=True, raise_warning=False, **kwargs): "{name} (call external): {error}".format(name=name, error=error) ) return error + + def new_state(self): + try: + return idl_call_external("NewState", lib=self.lib, restype="state") + except AttributeError: + return None + + def free_state(self, state): + return idl_call_external("FreeState", state=state) \ No newline at end of file diff --git a/test/sme_synth.py b/test/sme_synth.py index 83f729e..67410a3 100644 --- a/test/sme_synth.py +++ b/test/sme_synth.py @@ -41,6 +41,7 @@ def __init__(self, libfile=None, datadir=None): self.ion = None self.lib = IDL_DLL(libfile) + self.parallel = False self.state = self.NewState() if datadir is not None: @@ -94,14 +95,17 @@ def check_data_files_exist(self): def NewState(self, delete_old=True): if delete_old and hasattr(self, "state") and self.state is not None: self.FreeState() - self.state = self.lib.call( - "NewState", restype="state", raise_error=False, raise_warning=False - ) + self.state = self.lib.new_state() + if self.state is None: + self.parallel = False + else: + self.parallel = True + return self.state def FreeState(self): if self.state is not None: - self.lib.call("FreeState", raise_error=False, raise_warning=False, state=self.state) + self.lib.free_state(self.state) self.state = None def SMELibraryVersion(self):