From d9ce956e418e0e801b9fff15a1e0a95e89ba99f3 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 22 Feb 2015 08:16:45 -0600 Subject: [PATCH 1/3] Start the session if you try and run code --- pymatbridge/pymatbridge.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 9ed463f..285d2b2 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -285,6 +285,8 @@ def run_func(self, func_path, *func_args, **kwargs): ------- Result dictionary with keys: 'message', 'result', and 'success' """ + if not self.started: + self.start() nargout = kwargs.pop('nargout', 1) func_args += tuple(item for pair in zip(kwargs.keys(), kwargs.values()) for item in pair) From a26d744ff52147857b1ae74f3acbb0435942e267 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 22 Feb 2015 18:43:45 -0600 Subject: [PATCH 2/3] Raise error if not started but allow method chaining --- pymatbridge/pymatbridge.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 285d2b2..9c0a7e7 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -168,6 +168,7 @@ def __init__(self, executable, socket_addr=None, self.context = None self.socket = None atexit.register(self.stop) + return self def _program_name(self): # pragma: no cover raise NotImplemented @@ -286,7 +287,8 @@ def run_func(self, func_path, *func_args, **kwargs): Result dictionary with keys: 'message', 'result', and 'success' """ if not self.started: - self.start() + raise ValueError('Session not started, use start()') + nargout = kwargs.pop('nargout', 1) func_args += tuple(item for pair in zip(kwargs.keys(), kwargs.values()) for item in pair) From c56c2368085f065a5b88088687940b02937c0460 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 22 Feb 2015 18:45:20 -0600 Subject: [PATCH 3/3] Fix method chaining --- pymatbridge/pymatbridge.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 9c0a7e7..31855fa 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -168,7 +168,6 @@ def __init__(self, executable, socket_addr=None, self.context = None self.socket = None atexit.register(self.stop) - return self def _program_name(self): # pragma: no cover raise NotImplemented @@ -214,10 +213,9 @@ def start(self): if self.is_connected(): print("%s started and connected!" % self._program_name()) self.set_plot_settings() - return True + return self else: - print("%s failed to start" % self._program_name()) - return False + raise ValueError("%s failed to start" % self._program_name()) def _response(self, **kwargs): req = json.dumps(kwargs, cls=PymatEncoder)