pyproject.toml 4.75 KB
Newer Older
1
[build-system]
2
# Should be mirrored in requirements/build/cuda.txt
3
requires = [
4
    "cmake>=3.26.1",
5
    "ninja",
6
    "packaging>=24.2",
7
    "setuptools>=77.0.3,<81.0.0",
8
    "setuptools-scm>=8.0",
9
    "torch == 2.11.0",
10
    "wheel",
11
    "jinja2",
12
13
]
build-backend = "setuptools.build_meta"
14

15
16
17
[project]
name = "vllm"
authors = [{name = "vLLM Team"}]
18
19
license = "Apache-2.0"
license-files = ["LICENSE"]
20
21
22
23
24
25
readme = "README.md"
description = "A high-throughput and memory-efficient inference and serving engine for LLMs"
classifiers = [
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
26
    "Programming Language :: Python :: 3.13",
27
    "Programming Language :: Python :: 3.14",
28
29
30
31
32
33
    "Intended Audience :: Developers",
    "Intended Audience :: Information Technology",
    "Intended Audience :: Science/Research",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Scientific/Engineering :: Information Analysis",
]
34
requires-python = ">=3.10,<3.15"
35
36
37
38
dynamic = [ "version", "dependencies", "optional-dependencies"]

[project.urls]
Homepage="https://github.com/vllm-project/vllm"
39
40
Documentation="https://docs.vllm.ai/en/latest/"
Slack="https://slack.vllm.ai/"
41
42
43
44

[project.scripts]
vllm = "vllm.entrypoints.cli.main:main"

45
46
[project.entry-points."vllm.general_plugins"]
lora_filesystem_resolver = "vllm.plugins.lora_resolvers.filesystem_resolver:register_filesystem_resolver"
47
lora_hf_hub_resolver = "vllm.plugins.lora_resolvers.hf_hub_resolver:register_hf_hub_resolver"
48

49
[tool.setuptools_scm]
50
# no extra settings needed, presence enables setuptools-scm
51
52
53

[tool.setuptools.packages.find]
where = ["."]
54
include = ["vllm*"]
55

56
[tool.ruff.lint.per-file-ignores]
57
"vllm/third_party/**" = ["ALL"]
58
59
60
"vllm/version.py" = ["F401"]
"vllm/_version.py" = ["ALL"]

61
62
63
64
65
66
67
[tool.ruff.lint]
select = [
    # pycodestyle
    "E",
    # Pyflakes
    "F",
    # pyupgrade
68
    "UP",
69
70
    # flake8-bugbear
    "B",
71
72
    # flake8-implicit-str-concat
    "ISC",
73
74
75
    # flake8-simplify
    "SIM",
    # isort
76
    "I",
77
    # flake8-logging-format
78
    "G",
79
80
81
82
83
84
]
ignore = [
    # star imports
    "F405", "F403",
    # lambda expression assignment
    "E731",
85
86
    # zip without `strict=`
    "B905",
87
88
    # Loop control variable not used within loop body
    "B007",
89
90
    # f-string format
    "UP032",
91
]
92

93
94
95
[tool.ruff.format]
docstring-code-format = true

96
[tool.mypy]
97
plugins = ['pydantic.mypy']
98
ignore_missing_imports = true
99
check_untyped_defs = true
100
follow_imports = "silent"
101

102
103
[tool.pytest.ini_options]
markers = [
104
    "slow_test",
105
    "skip_global_cleanup",
106
    "core_model: enable this model test in each PR instead of only nightly",
107
    "hybrid_model: models that contain mamba layers (including pure SSM and hybrid architectures)",
108
    "cpu_model: enable this model test in CPU tests",
109
    "cpu_test: mark test as CPU-only test",
110
111
    "split: run this test as part of a split",
    "distributed: run this test only in distributed GPU tests",
112
    "optional: optional tests that are automatically skipped, include --optional to run them",
113
]
114

115
[tool.ty.src]
Aaron Pham's avatar
Aaron Pham committed
116
117
118
119
respect-ignore-files = true

[tool.ty.environment]
python = "./.venv"
120
121
122

[tool.typos.files]
# these files may be written in non english words
Jiayi Yan's avatar
Jiayi Yan committed
123
extend-exclude = ["tests/models/fixtures/*", "tests/prompts/*", "tests/tokenizers_/*",
124
125
    "benchmarks/sonnet.txt", "tests/lora/data/*", "build/*",
    "examples/pooling/token_embed/*", "tests/models/language/pooling/*",
126
    "vllm/third_party/*", "vllm/entrypoints/serve/instrumentator/static/*", "tests/entrypoints/openai/speech_to_text/test_transcription_validation.py",
127
128
    "docs/governance/process.md", "docs/assets/contributing/vllm_bench_serve_timeline.html", 
    "tests/v1/engine/test_fast_incdec_prefix_err.py", ".git/*"]
Jiayi Yan's avatar
Jiayi Yan committed
129
ignore-hidden = false
130
131

[tool.typos.default]
Jiayi Yan's avatar
Jiayi Yan committed
132
extend-ignore-identifiers-re = [".*[Uu][Ee][0-9][Mm][0-9].*"]
133
134
135
136
137
138

[tool.typos.default.extend-identifiers]
bbc5b7ede = "bbc5b7ede"
NOOPs = "NOOPs"
nin_shortcut = "nin_shortcut"
cudaDevAttrMaxSharedMemoryPerBlockOptin = "cudaDevAttrMaxSharedMemoryPerBlockOptin"
Jiayi Yan's avatar
Jiayi Yan committed
139

140
depthwise_seperable_out_channel = "depthwise_seperable_out_channel"
Jiayi Yan's avatar
Jiayi Yan committed
141
142
143
144
145
146
147
148
pard_token = "pard_token"
ptd_token_id = "ptd_token_id"
ser_de = "ser_de"
shared_memory_per_block_optin = "shared_memory_per_block_optin"
FoPE = "FoPE"
k_ot = "k_ot"
view_seperator = "view_seperator"
inverse_std_variences = "inverse_std_variences"
149
150
151

[tool.typos.default.extend-words]
iy = "iy"
152
indx = "indx"
153
154
155
156
157
# intel cpu features
tme = "tme"
dout = "dout"
Pn = "Pn"
arange = "arange"
Jiayi Yan's avatar
Jiayi Yan committed
158
159
160
161
162
163
164
thw = "thw"
subtile = "subtile"
HSA = "HSA"
setp = "setp"
CPY = "CPY"
thr = "thr"
Thr = "Thr"
165
166
PARD = "PARD"
pard = "pard"
167
AKS = "AKS"
168
ba = "ba"
Jiayi Yan's avatar
Jiayi Yan committed
169
fo = "fo"
170
nd = "nd"
Jiayi Yan's avatar
Jiayi Yan committed
171
172
eles = "eles"
datas = "datas"
173
ser = "ser"
174
ure = "ure"
175
VALU = "VALU"
176
177
178
# Walsh-Hadamard Transform
wht = "wht"
WHT = "WHT"
179
180

[tool.uv]
181
no-build-isolation-package = ["torch"]