This commit is contained in:
+12
-23
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user