Skip to content

Commit 3edbdf0

Browse files
andyxningamitm02
authored andcommitted
[CI] fix dump_input for str type (vllm-project#18697)
Signed-off-by: Andy Xie <[email protected]> Signed-off-by: amit <[email protected]>
1 parent d9f3ea8 commit 3edbdf0

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

tests/test_logger.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# SPDX-License-Identifier: Apache-2.0
2-
2+
import enum
33
import json
44
import logging
55
import os
66
import sys
77
import tempfile
8+
from dataclasses import dataclass
89
from json.decoder import JSONDecodeError
910
from tempfile import NamedTemporaryFile
1011
from typing import Any
@@ -16,6 +17,7 @@
1617
from vllm.logger import (_DATE_FORMAT, _FORMAT, _configure_vllm_root_logger,
1718
enable_trace_function_call, init_logger)
1819
from vllm.logging_utils import NewLineFormatter
20+
from vllm.logging_utils.dump_input import prepare_object_to_dump
1921

2022

2123
def f1(x):
@@ -216,3 +218,37 @@ def test_custom_logging_config_causes_an_error_if_configure_logging_is_off():
216218
assert other_logger.handlers != root_logger.handlers
217219
assert other_logger.level != root_logger.level
218220
assert other_logger.propagate
221+
222+
223+
def test_prepare_object_to_dump():
224+
str_obj = 'str'
225+
assert prepare_object_to_dump(str_obj) == "'str'"
226+
227+
list_obj = [1, 2, 3]
228+
assert prepare_object_to_dump(list_obj) == '[1, 2, 3]'
229+
230+
dict_obj = {'a': 1, 'b': 'b'}
231+
assert prepare_object_to_dump(dict_obj) in [
232+
"{a: 1, b: 'b'}", "{b: 'b', a: 1}"
233+
]
234+
235+
set_obj = {1, 2, 3}
236+
assert prepare_object_to_dump(set_obj) == '[1, 2, 3]'
237+
238+
tuple_obj = ('a', 'b', 'c')
239+
assert prepare_object_to_dump(tuple_obj) == "['a', 'b', 'c']"
240+
241+
class CustomEnum(enum.Enum):
242+
A = enum.auto()
243+
B = enum.auto()
244+
C = enum.auto()
245+
246+
assert prepare_object_to_dump(CustomEnum.A) == repr(CustomEnum.A)
247+
248+
@dataclass
249+
class CustomClass:
250+
a: int
251+
b: str
252+
253+
assert (prepare_object_to_dump(CustomClass(
254+
1, 'b')) == "CustomClass(a=1, b='b')")

vllm/logging_utils/dump_input.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
def prepare_object_to_dump(obj) -> str:
2020
if isinstance(obj, str):
21-
return "'{obj}'" # Double quotes
21+
return f"'{obj}'" # Double quotes
2222
elif isinstance(obj, dict):
2323
dict_str = ', '.join({f'{str(k)}: {prepare_object_to_dump(v)}' \
2424
for k, v in obj.items()})
@@ -42,9 +42,9 @@ def prepare_object_to_dump(obj) -> str:
4242
return obj.anon_repr()
4343
elif hasattr(obj, '__dict__'):
4444
items = obj.__dict__.items()
45-
dict_str = ','.join([f'{str(k)}={prepare_object_to_dump(v)}' \
45+
dict_str = ', '.join([f'{str(k)}={prepare_object_to_dump(v)}' \
4646
for k, v in items])
47-
return (f"{type(obj).__name__}({dict_str})")
47+
return f"{type(obj).__name__}({dict_str})"
4848
else:
4949
# Hacky way to make sure we can serialize the object in JSON format
5050
try:

0 commit comments

Comments
 (0)