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):