Files
wehub-resource-sync 770d92cb1f
Lint / lint (push) Has been cancelled
Build Docs / Deploy Docs (push) Has been cancelled
Windows CI / Windows (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:23:58 +08:00

178 lines
4.0 KiB
TOML

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[project]
name = "mlc_llm"
# Note: Call version.py to update the version before building the wheel
version = "0.20.0.dev0"
description = "MLC LLM: an universal LLM deployment engine via ML compilation."
authors = [{ name = "MLC LLM Contributors" }]
readme = "README.md"
license = { text = "Apache 2.0" }
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
]
keywords = ["machine learning"]
requires-python = ">=3.9"
dependencies = [
"apache-tvm-ffi",
"datasets",
"fastapi",
"flashinfer-python; sys_platform == 'linux'",
"ml_dtypes>=0.5.1",
"openai",
"pandas",
"prompt_toolkit",
"requests",
"safetensors",
"sentencepiece",
"shortuuid",
"tiktoken",
"torch",
"tqdm",
"transformers",
"uvicorn",
]
[project.urls]
Homepage = "https://llm.mlc.ai/"
Documentation = "https://llm.mlc.ai/docs/"
Repository = "https://github.com/mlc-ai/mlc-llm"
"Bug Tracker" = "https://github.com/mlc-ai/mlc-llm/issues"
[build-system]
requires = ["scikit-build-core>=0.10.0"]
build-backend = "scikit_build_core.build"
[tool.scikit-build]
# Point to the root CMakeLists.txt
cmake.source-dir = "."
cmake.build-type = "Release"
# Configure the wheel to be Python version-agnostic
wheel.py-api = "py3"
# Build configuration
build-dir = "build"
# CMake configuration - ensure proper installation paths
cmake.args = ["-DMLC_LLM_BUILD_PYTHON_MODULE=ON"]
# Wheel configuration
wheel.packages = ["python/mlc_llm"]
wheel.install-dir = "mlc_llm"
# Source distribution configuration
sdist.include = [
# Build files
"/CMakeLists.txt",
"/pyproject.toml",
"/cmake/**/*",
"/3rdparty/**/*",
# Source code
"/src/**/*.cc",
"/src/**/*.h",
# Python source
"/python/mlc_llm/**/*.py",
# Documentation and metadata
"/docs/**/*",
"/LICENSE",
"/README.md",
"/NOTICE",
# Tests
"/tests/**/*",
"/.pre-commit-config.yaml",
]
sdist.exclude = [
"**/.git",
"**/.github",
"**/__pycache__",
"**/*.pyc",
"build",
"dist",
"3rdparty/tvm",
"**/3rdparty/*/docs",
"**/3rdparty/*/media",
"**/3rdparty/*/examples",
"**/3rdparty/*/test",
]
# Logging
logging.level = "INFO"
[tool.ruff]
include = [
"python/**/*.py",
"tests/**/*.py",
"examples/**/*.py",
"docs/**/*.py",
"cmake/**/*.py",
"version.py",
]
line-length = 100
indent-width = 4
target-version = "py39"
exclude = ["3rdparty", "build", "dist", ".venv", ".ruff_cache"]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # pyflakes
"I", # isort
"UP", # pyupgrade
"RUF", # ruff-specific rules
]
ignore = [
"UP028", # yield-in-for-loop
"UP030", # format-literals
"UP031", # printf-string-formatting
"RUF010", # explicit-f-string-type-conversion — !s/!r/!a is obscure; prefer explicit str()/repr()
"RUF043", # pytest-raises-ambiguous-pattern
"RUF059", # unused-unpacked-variable
]
fixable = ["ALL"]
unfixable = []
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["E402", "F401", "F403", "F405"]
[tool.ruff.lint.isort]
known-first-party = ["mlc_llm"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[dependency-groups]
lint = ["pre-commit"]