From f96caccfcb43c904887ebfc0b34fd779ffff8bf1 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Tue, 21 Nov 2023 20:54:53 +0100 Subject: [PATCH] fix: editor.py compact signature on tooltip --- bec_widgets/widgets/editor/editor.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bec_widgets/widgets/editor/editor.py b/bec_widgets/widgets/editor/editor.py index 73f341dd..422fa170 100644 --- a/bec_widgets/widgets/editor/editor.py +++ b/bec_widgets/widgets/editor/editor.py @@ -1,6 +1,4 @@ -import os import subprocess -import tempfile import qdarktheme from jedi import Script @@ -47,7 +45,9 @@ class AutoCompleter(QThread): script = Script(text, path=self.file_path) signatures = script.get_signatures(line, index) if signatures: - return signatures[0].to_string() + full_docstring = signatures[0].docstring(raw=True) + compact_docstring = self.get_compact_docstring(full_docstring) + return compact_docstring except Exception as err: print(err) return "" @@ -63,6 +63,20 @@ class AutoCompleter(QThread): self.text = text self.start() + def get_compact_docstring(self, full_docstring): + lines = full_docstring.split("\n") + cutoff_indices = [ + i + for i, line in enumerate(lines) + if line.strip().lower() in ["parameters", "returns", "examples", "see also", "warnings"] + ] + + if cutoff_indices: + lines = lines[: cutoff_indices[0]] + + compact_docstring = "\n".join(lines).strip() + return compact_docstring + class ScriptRunnerThread(QThread): outputSignal = Signal(str)