From 8babd03d81a7fc986bfc667d8a4066fd39d4bdec Mon Sep 17 00:00:00 2001 From: Michael van der Kamp Date: Wed, 29 Jun 2022 10:13:27 -0700 Subject: [PATCH] Refresh watched value if expression is edited --- pudb/debugger.py | 4 +++- pudb/var_view.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pudb/debugger.py b/pudb/debugger.py index 2259d824..01f19bb3 100644 --- a/pudb/debugger.py +++ b/pudb/debugger.py @@ -1123,7 +1123,9 @@ def edit_inspector_detail(w, size, key): iinfo.access_level = "all" if var.watch_expr is not None: - var.watch_expr.expression = watch_edit.get_edit_text() + new_expression = watch_edit.get_edit_text() + if new_expression != var.watch_expr.expression: + var.watch_expr.set_expression(new_expression) elif result == "del": try: diff --git a/pudb/var_view.py b/pudb/var_view.py index 36ebecc7..623c0889 100644 --- a/pudb/var_view.py +++ b/pudb/var_view.py @@ -215,6 +215,10 @@ def eval(self, frame_globals, frame_locals): return WatchEvalError() return self._value + def set_expression(self, expression): + self.expression = expression + self._value = self.NOT_EVALUATED + class WatchEvalError: def __str__(self):