A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 14, 05:30 UTC
[CI/Build] Add support for Python 3.13 (#13164)
Signed-off-by: mgoin <michael@neuralmagic.com> Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>
Michael Goin committed
Aug 19, 2025 at 16:49 UTC
21dce80ea96bcf033d159c0f952fb274567b315c
4 files changed
+15
-4
CMakeLists.txt
+1
-1
@@ -30,7 +30,7 @@ install(CODE "set(CMAKE_INSTALL_LOCAL_ONLY TRUE)" ALL_COMPONENTS)
30
# Supported python versions. These versions will be searched in order, the
31
# first match will be selected. These should be kept in sync with setup.py.
32
#
33
-set(PYTHON_SUPPORTED_VERSIONS "3.9" "3.10" "3.11" "3.12")
33
+set(PYTHON_SUPPORTED_VERSIONS "3.9" "3.10" "3.11" "3.12", "3.13")
34
35
# Supported AMD GPU architectures.
36
set(HIP_SUPPORTED_ARCHS "gfx906;gfx908;gfx90a;gfx942;gfx950;gfx1030;gfx1100;gfx1101;gfx1200;gfx1201")
docs/getting_started/quickstart.md
+1
-1
@@ -8,7 +8,7 @@ This guide will help you quickly get started with vLLM to perform:
8
## Prerequisites
9
10
- OS: Linux
11
-- Python: 3.9 -- 3.12
11
+- Python: 3.9 -- 3.13
12
13
## Installation
14
pyproject.toml
+2
-1
@@ -24,13 +24,14 @@ classifiers = [
24
"Programming Language :: Python :: 3.10",
25
"Programming Language :: Python :: 3.11",
26
"Programming Language :: Python :: 3.12",
27
+ "Programming Language :: Python :: 3.13",
28
"Intended Audience :: Developers",
29
"Intended Audience :: Information Technology",
30
"Intended Audience :: Science/Research",
31
"Topic :: Scientific/Engineering :: Artificial Intelligence",
32
"Topic :: Scientific/Engineering :: Information Analysis",
33
]
33
-requires-python = ">=3.9,<3.13"
34
+requires-python = ">=3.9,<3.14"
35
dynamic = [ "version", "dependencies", "optional-dependencies"]
36
37
[project.urls]
vllm/config/__init__.py
+11
-1
@@ -191,7 +191,17 @@ def get_attr_docs(cls: type[Any]) -> dict[str, str]:
191
yield a, b
192
a = b
193
194
- cls_node = ast.parse(textwrap.dedent(inspect.getsource(cls))).body[0]
194
+ try:
195
+ cls_node = ast.parse(textwrap.dedent(inspect.getsource(cls))).body[0]
196
+ except (OSError, KeyError, TypeError):
197
+ # HACK: Python 3.13+ workaround - set missing __firstlineno__
198
+ # Workaround can be removed after we upgrade to pydantic==2.12.0
199
+ with open(inspect.getfile(cls)) as f:
200
+ for i, line in enumerate(f):
201
+ if f"class {cls.__name__}" in line and ":" in line:
202
+ cls.__firstlineno__ = i + 1
203
+ break
204
+ cls_node = ast.parse(textwrap.dedent(inspect.getsource(cls))).body[0]
205
206
if not isinstance(cls_node, ast.ClassDef):
207
raise TypeError("Given object was not a class.")