Skip to content

Commit 5d65324

Browse files
refactor: remove unused function
1 parent c54c41f commit 5d65324

File tree

1 file changed

+0
-91
lines changed

1 file changed

+0
-91
lines changed

litellm/litellm_core_utils/safe_json_dumps.py

Lines changed: 0 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -50,94 +50,3 @@ def _serialize(obj: Any, seen: set, depth: int) -> Any:
5050

5151
safe_data = _serialize(data, set(), 0)
5252
return json.dumps(safe_data, default=str)
53-
54-
55-
def filter_json_serializable(
56-
data: Any, max_depth: int = DEFAULT_MAX_RECURSE_DEPTH
57-
) -> Any:
58-
"""
59-
Recursively filter data to only include JSON serializable items.
60-
Non-serializable items are completely skipped (not included in the result).
61-
"""
62-
63-
def _is_json_serializable(obj: Any) -> bool:
64-
"""Test if an object is JSON serializable."""
65-
try:
66-
json.dumps(obj)
67-
return True
68-
except (TypeError, ValueError):
69-
return False
70-
71-
def _filter(obj: Any, seen: set, depth: int) -> Any:
72-
# Check for maximum depth.
73-
if depth > max_depth:
74-
return None
75-
76-
# Base-case: if it is a primitive, test if it's serializable
77-
if isinstance(obj, (str, int, float, bool, type(None))):
78-
return obj if _is_json_serializable(obj) else None
79-
80-
# Check for circular reference.
81-
if id(obj) in seen:
82-
return None
83-
84-
seen.add(id(obj))
85-
86-
try:
87-
if isinstance(obj, dict):
88-
result = {}
89-
for k, v in obj.items():
90-
# Only include keys that are strings and values that are serializable
91-
if isinstance(k, str):
92-
filtered_value = _filter(v, seen, depth + 1)
93-
# Only add the key-value pair if the value is serializable
94-
if filtered_value is not None or v is None:
95-
if _is_json_serializable(filtered_value):
96-
result[k] = filtered_value
97-
seen.remove(id(obj))
98-
return result
99-
100-
elif isinstance(obj, list):
101-
result = []
102-
for item in obj:
103-
filtered_item = _filter(item, seen, depth + 1)
104-
# Only include items that are serializable
105-
if filtered_item is not None or item is None:
106-
if _is_json_serializable(filtered_item):
107-
result.append(filtered_item)
108-
seen.remove(id(obj))
109-
return result
110-
111-
elif isinstance(obj, tuple):
112-
filtered_items = []
113-
for item in obj:
114-
filtered_item = _filter(item, seen, depth + 1)
115-
# Only include items that are serializable
116-
if filtered_item is not None or item is None:
117-
if _is_json_serializable(filtered_item):
118-
filtered_items.append(filtered_item)
119-
seen.remove(id(obj))
120-
return tuple(filtered_items)
121-
122-
elif isinstance(obj, set):
123-
filtered_items = []
124-
for item in obj:
125-
filtered_item = _filter(item, seen, depth + 1)
126-
# Only include items that are serializable
127-
if filtered_item is not None or item is None:
128-
if _is_json_serializable(filtered_item):
129-
filtered_items.append(filtered_item)
130-
seen.remove(id(obj))
131-
return sorted(filtered_items)
132-
133-
else:
134-
# Test if the object is directly serializable
135-
seen.remove(id(obj))
136-
return obj if _is_json_serializable(obj) else None
137-
138-
except Exception:
139-
if id(obj) in seen:
140-
seen.remove(id(obj))
141-
return None
142-
143-
return _filter(data, set(), 0)

0 commit comments

Comments
 (0)