From e81fbefe8a3fc7acef9ba7656f9da97a579af532 Mon Sep 17 00:00:00 2001 From: Wentao Ye <44945378+yewentao256@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:05:42 -0400 Subject: [PATCH] [Refactor] Refactor import utils (#20269) Signed-off-by: yewentao256 --- pyproject.toml | 2 +- tests/build_cython.py | 2 +- tools/check_pickle_imports.py | 3 +-- vllm/{utils.py => utils/__init__.py} | 14 +++++++------- 4 files changed, 10 insertions(+), 11 deletions(-) rename vllm/{utils.py => utils/__init__.py} (99%) diff --git a/pyproject.toml b/pyproject.toml index fb45572d26..340abb3856 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ line-length = 80 "vllm/spec_decode/**/*.py" = ["UP006", "UP035"] "vllm/worker/**/*.py" = ["UP006", "UP035"] # Python 3.8 typing - skip utils for ROCm -"vllm/utils.py" = ["UP006", "UP035"] +"vllm/utils/__init__.py" = ["UP006", "UP035"] [tool.ruff.lint] select = [ diff --git a/tests/build_cython.py b/tests/build_cython.py index f4a334aa3b..444434e8f0 100644 --- a/tests/build_cython.py +++ b/tests/build_cython.py @@ -25,7 +25,7 @@ infiles += [ infiles += [ "vllm/model_executor/layers/sampler.py", "vllm/sampling_params.py", - "vllm/utils.py", + "vllm/utils/__init__.py", ] setup(ext_modules=cythonize(infiles, diff --git a/tools/check_pickle_imports.py b/tools/check_pickle_imports.py index 30a2d49dd8..b212df400b 100644 --- a/tools/check_pickle_imports.py +++ b/tools/check_pickle_imports.py @@ -26,7 +26,6 @@ except ImportError: # add to this list if absolutely necessary and after careful security review. ALLOWED_FILES = set([ # pickle - 'vllm/utils.py', 'vllm/v1/serial_utils.py', 'vllm/v1/executor/multiproc_executor.py', 'vllm/multimodal/hasher.py', @@ -54,7 +53,7 @@ ALLOWED_FILES = set([ 'vllm/entrypoints/llm.py', 'tests/utils.py', # pickle and cloudpickle - 'vllm/utils.py', + 'vllm/utils/__init__.py', 'vllm/v1/serial_utils.py', 'vllm/v1/executor/multiproc_executor.py', 'vllm/transformers_utils/config.py', diff --git a/vllm/utils.py b/vllm/utils/__init__.py similarity index 99% rename from vllm/utils.py rename to vllm/utils/__init__.py index 60e560c70a..d97d873ccf 100644 --- a/vllm/utils.py +++ b/vllm/utils/__init__.py @@ -39,14 +39,14 @@ from argparse import (Action, ArgumentDefaultsHelpFormatter, ArgumentParser, from asyncio import FIRST_COMPLETED, AbstractEventLoop, Task from collections import UserDict, defaultdict from collections.abc import (AsyncGenerator, Awaitable, Collection, Generator, - Hashable, Iterable, Iterator, KeysView, Mapping) + Hashable, Iterable, Iterator, KeysView, Mapping, + Sequence) from concurrent.futures.process import ProcessPoolExecutor from dataclasses import dataclass, field from functools import cache, lru_cache, partial, wraps from types import MappingProxyType from typing import (TYPE_CHECKING, Any, Callable, Generic, Literal, NamedTuple, - Optional, Sequence, Tuple, Type, TypeVar, Union, cast, - overload) + Optional, TypeVar, Union, cast, overload) from urllib.parse import urlparse from uuid import uuid4 @@ -1921,9 +1921,9 @@ class LazyDict(Mapping[str, T], Generic[T]): return len(self._factory) -class ClassRegistry(UserDict[Type[T], _V]): +class ClassRegistry(UserDict[type[T], _V]): - def __getitem__(self, key: Type[T]) -> _V: + def __getitem__(self, key: type[T]) -> _V: for cls in key.mro(): if cls in self.data: return self.data[cls] @@ -2234,7 +2234,7 @@ def direct_register_custom_op( fake_impl: Optional[Callable] = None, target_lib: Optional[Library] = None, dispatch_key: str = "CUDA", - tags: Tuple[torch.Tag, ...] = (), + tags: tuple[torch.Tag, ...] = (), ): """ `torch.library.custom_op` can have significant overhead because it @@ -2489,7 +2489,7 @@ def get_exception_traceback(): return err_str -def split_zmq_path(path: str) -> Tuple[str, str, str]: +def split_zmq_path(path: str) -> tuple[str, str, str]: """Split a zmq path into its parts.""" parsed = urlparse(path) if not parsed.scheme: