[build-system] # Should be mirrored in requirements/build.txt requires = [ "cmake>=3.26.1", "ninja", "packaging>=24.2", "setuptools>=77.0.3,<81.0.0", "setuptools-scm>=8.0", "torch == 2.10.0", "wheel", "jinja2", ] build-backend = "setuptools.build_meta" [project] name = "vllm" authors = [{name = "vLLM Team"}] license = "Apache-2.0" license-files = ["LICENSE"] 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", "Programming Language :: Python :: 3.13", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis", ] requires-python = ">=3.10,<3.14" dynamic = [ "version", "dependencies", "optional-dependencies"] [project.urls] Homepage="https://github.com/vllm-project/vllm" Documentation="https://docs.vllm.ai/en/latest/" Slack="https://slack.vllm.ai/" [project.scripts] vllm = "vllm.entrypoints.cli.main:main" [project.entry-points."vllm.general_plugins"] lora_filesystem_resolver = "vllm.plugins.lora_resolvers.filesystem_resolver:register_filesystem_resolver" lora_hf_hub_resolver = "vllm.plugins.lora_resolvers.hf_hub_resolver:register_hf_hub_resolver" [tool.setuptools_scm] # no extra settings needed, presence enables setuptools-scm [tool.setuptools.packages.find] where = ["."] include = ["vllm*"] [tool.ruff.lint.per-file-ignores] "vllm/third_party/**" = ["ALL"] "vllm/version.py" = ["F401"] "vllm/_version.py" = ["ALL"] [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-implicit-str-concat "ISC", # flake8-simplify "SIM", # isort "I", # flake8-logging-format "G", ] ignore = [ # star imports "F405", "F403", # lambda expression assignment "E731", # zip without `strict=` "B905", # Loop control variable not used within loop body "B007", # f-string format "UP032", ] [tool.ruff.format] docstring-code-format = true [tool.mypy] plugins = ['pydantic.mypy'] ignore_missing_imports = true check_untyped_defs = true follow_imports = "silent" [tool.pytest.ini_options] markers = [ "slow_test", "skip_global_cleanup", "core_model: enable this model test in each PR instead of only nightly", "hybrid_model: models that contain mamba layers (including pure SSM and hybrid architectures)", "cpu_model: enable this model test in CPU tests", "cpu_test: mark test as CPU-only test", "split: run this test as part of a split", "distributed: run this test only in distributed GPU tests", "optional: optional tests that are automatically skipped, include --optional to run them", ] [tool.ty.src] respect-ignore-files = true [tool.ty.environment] python = "./.venv" [tool.typos.files] # these files may be written in non english words extend-exclude = ["tests/models/fixtures/*", "tests/prompts/*", "tests/tokenizers_/*", "benchmarks/sonnet.txt", "tests/lora/data/*", "examples/pooling/token_embed/*", "build/*", "vllm/third_party/*", "vllm/entrypoints/serve/instrumentator/static/*", "tests/entrypoints/openai/test_transcription_validation.py", "docs/governance/process.md", "tests/v1/engine/test_fast_incdec_prefix_err.py", ".git/*"] ignore-hidden = false [tool.typos.default] extend-ignore-identifiers-re = [".*[Uu][Ee][0-9][Mm][0-9].*"] [tool.typos.default.extend-identifiers] bbc5b7ede = "bbc5b7ede" NOOPs = "NOOPs" nin_shortcut = "nin_shortcut" cudaDevAttrMaxSharedMemoryPerBlockOptin = "cudaDevAttrMaxSharedMemoryPerBlockOptin" depthwise_seperable_out_channel = "depthwise_seperable_out_channel" 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" [tool.typos.default.extend-words] iy = "iy" indx = "indx" # intel cpu features tme = "tme" dout = "dout" Pn = "Pn" arange = "arange" thw = "thw" subtile = "subtile" HSA = "HSA" setp = "setp" CPY = "CPY" thr = "thr" Thr = "Thr" PARD = "PARD" pard = "pard" AKS = "AKS" ba = "ba" fo = "fo" nd = "nd" eles = "eles" datas = "datas" ure = "ure" [tool.uv] no-build-isolation-package = ["torch"]