From 1ca91a8fc9473dfdda01017d65f347e60919f55e Mon Sep 17 00:00:00 2001 From: Andrew Lahiff Date: Wed, 25 Jan 2023 14:42:10 +0000 Subject: [PATCH 1/3] Set status to failed or terminated as appropriate --- simvue/run.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/simvue/run.py b/simvue/run.py index 15fd5392..df6badcc 100644 --- a/simvue/run.py +++ b/simvue/run.py @@ -160,9 +160,19 @@ def __init__(self, mode='online'): def __enter__(self): return self - def __exit__(self, type, value, tb): + def __exit__(self, type, value, traceback): + name = type.__name__ if self._name and self._status == 'running': - self.set_status('completed') + if not type: + self.set_status('completed') + else: + self.log_event(f"{name}: {value}") + if type.__name__ in ('KeyboardInterrupt'): + self.set_status('terminated') + else: + if traceback: + self.log_event(f"Traceback: {traceback}") + self.set_status('failed') def _check_token(self): """ From 611ba5c5be9504af40a9a5a2b90cf526f8937f19 Mon Sep 17 00:00:00 2001 From: Andrew Lahiff Date: Wed, 25 Jan 2023 14:48:20 +0000 Subject: [PATCH 2/3] Update version and CHANGELOG --- CHANGELOG.md | 4 ++++ simvue/__init__.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9415ae3..c9b0bdd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +## v0.9.0 + +* Set status to `failed` or `terminated` if the context manager is used and there is an exception. + ## v0.8.0 * Support NumPy arrays, PyTorch tensors, Matplotlib and Plotly plots and picklable Python objects as artifacts. diff --git a/simvue/__init__.py b/simvue/__init__.py index 3d1137ac..c2805c2a 100644 --- a/simvue/__init__.py +++ b/simvue/__init__.py @@ -2,4 +2,4 @@ from simvue.client import Client from simvue.handler import Handler from simvue.models import RunInput -__version__ = '0.8.0' +__version__ = '0.9.0' From b69ecb87c7f4daa18a5e2ffa67f4a1d5d8f1a82f Mon Sep 17 00:00:00 2001 From: Andrew Lahiff Date: Wed, 25 Jan 2023 14:56:33 +0000 Subject: [PATCH 3/3] Don't try to use .__name__ unless really needed --- simvue/run.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/simvue/run.py b/simvue/run.py index df6badcc..5a8dde44 100644 --- a/simvue/run.py +++ b/simvue/run.py @@ -161,12 +161,11 @@ def __enter__(self): return self def __exit__(self, type, value, traceback): - name = type.__name__ if self._name and self._status == 'running': if not type: self.set_status('completed') else: - self.log_event(f"{name}: {value}") + self.log_event(f"{type.__name__}: {value}") if type.__name__ in ('KeyboardInterrupt'): self.set_status('terminated') else: