From faa7af91ee6d6f25e0bfdfee71096bb1fc23eff6 Mon Sep 17 00:00:00 2001 From: tligui_y Date: Thu, 17 Jul 2025 16:19:11 +0200 Subject: [PATCH] Update json_to_md.py --- json_to_md.py | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/json_to_md.py b/json_to_md.py index dd0e57c4..669e37f7 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -9,14 +9,7 @@ from pytest import ExitCode import traceback import reprlib -def stringify(obj, indent=0, _visited=None): - if _visited is None: - _visited = set() - obj_id = id(obj) - if obj_id in _visited: - return "[RecursionDetected]" - _visited.add(obj_id) - +def stringify(obj, indent=0): space = ' ' * indent if obj is None or obj == "": @@ -25,26 +18,22 @@ def stringify(obj, indent=0, _visited=None): if isinstance(obj, list): if not obj: return "[]" - return '\n'.join(f"{space}- {stringify(e, indent + 1, _visited)}" for e in obj) + return '\n'.join( + f"{space}- {stringify(e, indent + 1)}" if not isinstance(e, dict) + else f"{space}-\n{stringify(e, indent + 1)}" + for e in obj + ) if isinstance(obj, dict): if not obj: return "{}" - lines = [] - for k, v in obj.items(): - if isinstance(v, (dict, list)): - v_str = stringify(v, indent + 1, _visited) - lines.append(f"{space}{k}:\n{v_str}") - else: - lines.append(f"{space}{k}: {stringify(v, indent + 1, _visited)}") - return '\n'.join(lines) - - try: - return space + reprlib.repr(obj) - except Exception: - return space + str(obj) - + return '\n'.join( + f"{space}{k}: {stringify(v, indent + 1)}" if not isinstance(v, (dict, list)) + else f"{space}{k}:\n{stringify(v, indent + 1)}" + for k, v in obj.items() + ) + return str(obj) def sanitize_param_value(v): s = str(v)