From d5d9fc56debea1b1440f9054a46c3815881d46d4 Mon Sep 17 00:00:00 2001 From: Timothyxxx <384084775@qq.com> Date: Tue, 30 Jan 2024 18:48:00 +0800 Subject: [PATCH] Fix minor bugs of get_terminal output caused by a11y tree depth --- desktop_env/evaluators/metrics/general.py | 8 +++++++- desktop_env/server/main.py | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/desktop_env/evaluators/metrics/general.py b/desktop_env/evaluators/metrics/general.py index 3f66f02..4e1f50a 100644 --- a/desktop_env/evaluators/metrics/general.py +++ b/desktop_env/evaluators/metrics/general.py @@ -17,10 +17,16 @@ from .utils import _match_record, _match_value_to_rule def check_include_exclude(result: str, rules: Dict[str, List[str]]) -> float: + if result is None: + return 0. + print(result, rules) include = rules.get("include", []) exclude = rules.get("exclude", []) - return all(r in result for r in include) and all(r not in result for r in exclude) + if all(r in result for r in include) and all(r not in result for r in exclude): + return 1. + else: + return 0. def exact_match(result, rules) -> float: diff --git a/desktop_env/server/main.py b/desktop_env/server/main.py index 9ed1295..d470a9d 100644 --- a/desktop_env/server/main.py +++ b/desktop_env/server/main.py @@ -176,8 +176,9 @@ def get_terminal_output(): # raise NotImplementedError return "Currently not implemented for platform {:}.".format(platform.platform()), 500 return jsonify({"output": output, "status": "success"}) - except: - return jsonify({"output": None, "status": "error"}) + except Exception as e: + logger.error("Failed to get terminal output. Error: %s", e) + return jsonify({"status": "error", "message": str(e)}), 500 _accessibility_ns_map = {"st": "uri:deskat:state.at-spi.gnome.org" @@ -191,7 +192,7 @@ _accessibility_ns_map = {"st": "uri:deskat:state.at-spi.gnome.org" } -def _create_atspi_node(node: Accessible, depth: int, flag: Optional[str] = None) -> _Element: +def _create_atspi_node(node: Accessible, depth: int = 0, flag: Optional[str] = None) -> _Element: if node.getRoleName() == "document spreadsheet": flag = "calc" if node.getRoleName() == "application" and node.name=="Thunderbird":