mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2026-06-11 16:49:09 +08:00
[CI] fix dump_input for str type (#18697)
Signed-off-by: Andy Xie <andy.xning@gmail.com>
This commit is contained in:
parent
38b13dfe78
commit
5a2c76cbe1
@ -1,10 +1,11 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
import enum
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
from dataclasses import dataclass
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
from tempfile import NamedTemporaryFile
|
from tempfile import NamedTemporaryFile
|
||||||
from typing import Any
|
from typing import Any
|
||||||
@ -16,6 +17,7 @@ import pytest
|
|||||||
from vllm.logger import (_DATE_FORMAT, _FORMAT, _configure_vllm_root_logger,
|
from vllm.logger import (_DATE_FORMAT, _FORMAT, _configure_vllm_root_logger,
|
||||||
enable_trace_function_call, init_logger)
|
enable_trace_function_call, init_logger)
|
||||||
from vllm.logging_utils import NewLineFormatter
|
from vllm.logging_utils import NewLineFormatter
|
||||||
|
from vllm.logging_utils.dump_input import prepare_object_to_dump
|
||||||
|
|
||||||
|
|
||||||
def f1(x):
|
def f1(x):
|
||||||
@ -216,3 +218,37 @@ def test_custom_logging_config_causes_an_error_if_configure_logging_is_off():
|
|||||||
assert other_logger.handlers != root_logger.handlers
|
assert other_logger.handlers != root_logger.handlers
|
||||||
assert other_logger.level != root_logger.level
|
assert other_logger.level != root_logger.level
|
||||||
assert other_logger.propagate
|
assert other_logger.propagate
|
||||||
|
|
||||||
|
|
||||||
|
def test_prepare_object_to_dump():
|
||||||
|
str_obj = 'str'
|
||||||
|
assert prepare_object_to_dump(str_obj) == "'str'"
|
||||||
|
|
||||||
|
list_obj = [1, 2, 3]
|
||||||
|
assert prepare_object_to_dump(list_obj) == '[1, 2, 3]'
|
||||||
|
|
||||||
|
dict_obj = {'a': 1, 'b': 'b'}
|
||||||
|
assert prepare_object_to_dump(dict_obj) in [
|
||||||
|
"{a: 1, b: 'b'}", "{b: 'b', a: 1}"
|
||||||
|
]
|
||||||
|
|
||||||
|
set_obj = {1, 2, 3}
|
||||||
|
assert prepare_object_to_dump(set_obj) == '[1, 2, 3]'
|
||||||
|
|
||||||
|
tuple_obj = ('a', 'b', 'c')
|
||||||
|
assert prepare_object_to_dump(tuple_obj) == "['a', 'b', 'c']"
|
||||||
|
|
||||||
|
class CustomEnum(enum.Enum):
|
||||||
|
A = enum.auto()
|
||||||
|
B = enum.auto()
|
||||||
|
C = enum.auto()
|
||||||
|
|
||||||
|
assert prepare_object_to_dump(CustomEnum.A) == repr(CustomEnum.A)
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class CustomClass:
|
||||||
|
a: int
|
||||||
|
b: str
|
||||||
|
|
||||||
|
assert (prepare_object_to_dump(CustomClass(
|
||||||
|
1, 'b')) == "CustomClass(a=1, b='b')")
|
||||||
|
|||||||
@ -18,7 +18,7 @@ logger = init_logger(__name__)
|
|||||||
|
|
||||||
def prepare_object_to_dump(obj) -> str:
|
def prepare_object_to_dump(obj) -> str:
|
||||||
if isinstance(obj, str):
|
if isinstance(obj, str):
|
||||||
return "'{obj}'" # Double quotes
|
return f"'{obj}'" # Double quotes
|
||||||
elif isinstance(obj, dict):
|
elif isinstance(obj, dict):
|
||||||
dict_str = ', '.join({f'{str(k)}: {prepare_object_to_dump(v)}' \
|
dict_str = ', '.join({f'{str(k)}: {prepare_object_to_dump(v)}' \
|
||||||
for k, v in obj.items()})
|
for k, v in obj.items()})
|
||||||
@ -42,9 +42,9 @@ def prepare_object_to_dump(obj) -> str:
|
|||||||
return obj.anon_repr()
|
return obj.anon_repr()
|
||||||
elif hasattr(obj, '__dict__'):
|
elif hasattr(obj, '__dict__'):
|
||||||
items = obj.__dict__.items()
|
items = obj.__dict__.items()
|
||||||
dict_str = ','.join([f'{str(k)}={prepare_object_to_dump(v)}' \
|
dict_str = ', '.join([f'{str(k)}={prepare_object_to_dump(v)}' \
|
||||||
for k, v in items])
|
for k, v in items])
|
||||||
return (f"{type(obj).__name__}({dict_str})")
|
return f"{type(obj).__name__}({dict_str})"
|
||||||
else:
|
else:
|
||||||
# Hacky way to make sure we can serialize the object in JSON format
|
# Hacky way to make sure we can serialize the object in JSON format
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user