Files
vllm-omni/pyproject.toml
T

221 lines
6.4 KiB
TOML
Raw Normal View History

2025-09-11 14:32:51 +08:00
[build-system]
requires = [
"setuptools>=77.0.3,<81.0.0",
"wheel",
"setuptools-scm>=8.0",
]
2025-09-11 14:32:51 +08:00
build-backend = "setuptools.build_meta"
[project]
name = "vllm-omni"
dynamic = ["version", "dependencies"]
2025-12-01 04:09:24 -08:00
description = "A framework for efficient model inference with omni-modality models"
2025-09-11 14:32:51 +08:00
readme = "README.md"
requires-python = ">=3.10,<3.14"
license = "Apache-2.0"
2025-09-11 14:32:51 +08:00
authors = [
2025-12-01 04:09:24 -08:00
{name = "vLLM-Omni Team"}
2025-09-11 14:32:51 +08:00
]
keywords = ["vllm", "multimodal", "diffusion", "transformer", "inference", "serving"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
2025-09-11 14:32:51 +08:00
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Python Modules",
]
# Dependencies are now managed dynamically via setup.py based on detected hardware platform.
# This allows automatic installation of the correct platform-specific dependencies (CUDA/ROCm/CPU/XPU/NPU)
# without requiring extras like [cuda]. See requirements/ directory for platform-specific dependencies.
# Note: vllm is intentionally excluded due to entrypoints overwrite issue.
2025-09-11 14:32:51 +08:00
[project.optional-dependencies]
2025-09-11 14:32:51 +08:00
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.0.0",
"pytest-mock>=3.10.0",
"datasets>=2.14.0",
"mypy==1.11.1",
"pre-commit==4.0.1",
"openai-whisper>=20250625",
"psutil>=7.2.0",
"soundfile>=0.13.1",
"imageio[ffmpeg]>=0.6.0",
2026-01-31 17:08:22 +08:00
"opencv-python>=4.12.0.88",
"mooncake-transfer-engine==0.3.8.post1",
"av", # for ComfyUI tests
"openpyxl>=3.0.0", # for nightly CI
"pyttsx3>=2.99",
"opencc>=1.2.0",
"mistune>=3.2.0", # for example tests
2025-09-11 14:32:51 +08:00
]
demo = [
"gradio>=6.7.0",
]
2025-09-11 14:32:51 +08:00
docs = [
"mkdocs>=1.5.0",
"mkdocs-api-autonav",
"mkdocs-material",
"mkdocstrings-python",
"mkdocs-gen-files",
"mkdocs-awesome-nav",
"mkdocs-glightbox",
"mkdocs-git-revision-date-localized-plugin",
"mkdocs-minify-plugin",
"regex",
"ruff",
"pydantic",
2025-09-11 14:32:51 +08:00
]
2025-09-11 14:32:51 +08:00
[project.urls]
Homepage = "https://github.com/vllm-project/vllm-omni"
Repository = "https://github.com/vllm-project/vllm-omni"
2025-09-11 14:32:51 +08:00
Documentation = "https://vllm-omni.readthedocs.io"
"Bug Tracker" = "https://github.com/vllm-project/vllm-omni/issues"
2025-09-11 14:32:51 +08:00
[project.scripts]
vllm = "vllm_omni.entrypoints.cli.main:main"
vllm-omni = "vllm_omni.entrypoints.cli.main:main"
2025-11-24 14:57:05 +08:00
2025-09-11 14:32:51 +08:00
[tool.setuptools.packages.find]
where = ["."]
include = ["vllm_omni*"]
2025-11-24 14:57:05 +08:00
[tool.setuptools.package-data]
"vllm_omni" = ["_version.py", "py.typed"]
2025-11-24 14:57:05 +08:00
"vllm_omni.model_executor.stage_configs" = ["*.yaml"]
[tool.setuptools_scm]
# no extra settings needed, presence enables setuptools-scm
2025-11-17 18:13:05 +08:00
[tool.ruff]
2025-11-18 20:54:26 +08:00
line-length = 120
2025-11-17 18:13:05 +08:00
exclude = [
".eggs",
".git",
".hg",
".mypy_cache",
".tox",
".venv",
"build",
"dist",
"vllm_omni.egg-info",
]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort (handled separately, but included for compatibility)
"N", # pep8-naming
"UP", # pyupgrade
]
ignore = [
"E203", # whitespace before ':' (conflicts with black)
# W503 is not needed in ruff as it's compatible with black by default
2025-11-18 20:54:26 +08:00
"N801", # class names should use CapWords convention
"N802", # function name should follow snake_case
"N806", # variable in function should follow snake_case
"N812", # lowercase imported as non-lowercase: functional as F
2025-11-17 18:13:05 +08:00
]
[tool.ruff.lint.per-file-ignores]
"examples/**" = ["E501"] # Allow long lines in examples
"tests/**" = ["E501"] # Allow long lines in tests
2025-10-24 12:16:48 +08:00
2025-09-11 14:32:51 +08:00
[tool.mypy]
2025-11-17 18:13:05 +08:00
python_version = "3.12, 3.13"
2025-09-11 14:32:51 +08:00
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true
[tool.pytest.ini_options]
2026-02-13 18:05:07 +08:00
asyncio_mode = "auto"
2025-09-11 14:32:51 +08:00
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
"--strict-markers",
"--strict-config"
2025-09-11 14:32:51 +08:00
]
markers = [
# ci/cd required
"core_model: L1&L2 tests (run in each PR)",
"advanced_model: L3&L4 level tests (run in each merge or nightly)",
# function module markers
"diffusion: Diffusion model tests",
"omni: Omni model tests",
"cache: Cache backend tests",
"parallel: Parallelism/distributed tests",
"example: Doc example code tests",
# platform markers
"cpu: Tests that run on CPU",
"gpu: Tests that run on GPU (auto-added)",
"cuda: Tests that run on CUDA (auto-added)",
"rocm: Tests that run on AMD/ROCm (auto-added)",
2026-03-13 20:24:05 -07:00
"xpu: Tests that run on XPU (auto-added)",
"npu: Tests that run on NPU/Ascend (auto-added)",
# specified computation resources marks (auto-added)
"H100: Tests that require H100 GPU",
"L4: Tests that require L4 GPU",
"MI325: Tests that require MI325 GPU (AMD/ROCm)",
"A2: Tests that require A2 NPU",
"A3: Tests that require A3 NPU",
"distributed_cuda: Tests that require multi cards on CUDA platform",
"distributed_rocm: Tests that require multi cards on ROCm platform",
2026-03-13 20:24:05 -07:00
"distributed_xpu: Tests that require multi cards on XPU platform",
"distributed_npu: Tests that require multi cards on NPU platform",
"skipif_cuda: Skip if the num of CUDA cards is less than the required",
"skipif_rocm: Skip if the num of ROCm cards is less than the required",
2026-03-13 20:24:05 -07:00
"skipif_xpu: Skip if the num of XPU cards is less than the required",
"skipif_npu: Skip if the num of NPU cards is less than the required",
# more detailed markers
"slow: Slow tests (may skip in quick CI)",
2025-09-11 14:32:51 +08:00
"benchmark: Benchmark tests",
]
filterwarnings = [
"ignore:.*does not have '__test__' attribute.*:UserWarning",
"ignore:.*does not have '__bases__' attribute.*:UserWarning",
]
2025-11-18 20:54:26 +08:00
[tool.typos.default]
extend-ignore-identifiers-re = [
".*_thw",
".*thw",
"ein",
2025-11-28 14:22:11 +08:00
".*arange",
".*MoBA",
".*temperal_downsample",
".*_nd",
".*nothink.*",
".*NOTHINK.*",
".*nin.*",
".*[Oo]no_[Aa]nna.*",
".*cann.*",
2025-11-18 20:54:26 +08:00
]
2026-03-05 00:54:59 +00:00
[tool.typos.default.extend-words]
ue = "ue"
semantics = "semantics"
fullset = "fullset"