Skip to content

Commit d09ba47

Browse files
committed
[CI] fix dump_input for str type
Signed-off-by: Andy Xie <[email protected]>
1 parent 4ea62c0 commit d09ba47

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

tests/test_logger.py

Lines changed: 34 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
@@ -13,6 +14,7 @@
1314

1415
import pytest
1516

17+
from vllm.logging_utils.dump_input import prepare_object_to_dump
1618
from vllm.logger import (_DATE_FORMAT, _FORMAT, _configure_vllm_root_logger,
1719
enable_trace_function_call, init_logger)
1820
from vllm.logging_utils import NewLineFormatter
@@ -216,3 +218,34 @@ 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+
def test_prepare_object_to_dump():
223+
str_obj = 'str'
224+
assert prepare_object_to_dump(str_obj) == "'str'"
225+
226+
list_obj = [1, 2, 3]
227+
assert prepare_object_to_dump(list_obj) == '[1, 2, 3]'
228+
229+
dict_obj = {'a': 1, 'b': 'b'}
230+
assert prepare_object_to_dump(dict_obj) in ["{a: 1, b: 'b'}",
231+
"{b: 'b', a: 1}"]
232+
233+
set_obj = {1, 2, 3}
234+
assert prepare_object_to_dump(set_obj) == '[1, 2, 3]'
235+
236+
tuple_obj = ('a', 'b', 'c')
237+
assert prepare_object_to_dump(tuple_obj) == "['a', 'b', 'c']"
238+
239+
class CustomEnum(enum.Enum):
240+
A = enum.auto()
241+
B = enum.auto()
242+
C = enum.auto()
243+
assert prepare_object_to_dump(CustomEnum.A) == repr(CustomEnum.A)
244+
245+
@dataclass
246+
class CustomClass(object):
247+
a: int
248+
b: str
249+
250+
assert (prepare_object_to_dump(CustomClass(1, 'b')) ==
251+
"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)