# https://docs.sglang.ai/platforms/cpu_server.html
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "sglang"
version = "0.5.3rc0"
description = "SGLang is a fast serving framework for large language models and vision language models."
readme = "README.md"
requires-python = ">=3.10"
license = { file = "LICENSE" }
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: Apache Software License",
]

dependencies = [
    "aiohttp",
    "anthropic>=0.20.0",
    "blobfile==3.0.0",
    "build",
    "compressed-tensors",
    "datasets",
    "decord",
    "einops",
    "fastapi",
    "hf_transfer",
    "huggingface_hub",
    "intel-openmp",
    "interegular",
    "IPython",
    "llguidance>=0.7.11,<0.8.0",
    "modelscope",
    "msgspec",
    "ninja",
    "numpy",
    "openai==1.99.1",
    "openai-harmony==0.0.4",
    "orjson",
    "outlines==0.1.11",
    "packaging",
    "partial_json_parser",
    "pillow",
    "prometheus-client>=0.20.0",
    "psutil",
    "pybase64",
    "pydantic",
    "python-multipart",
    "pyzmq>=25.1.2",
    "requests",
    "scipy",
    "sentencepiece",
    "setproctitle",
    "soundfile==0.13.1",
    "tiktoken",
    "timm==1.0.16",
    "torchao==0.9.0",
    "tqdm",
    "transformers==4.57.1",
    "uvicorn",
    "uvloop",
    "xgrammar==0.1.25",
]

[project.optional-dependencies]
tracing = [
    "opentelemetry-sdk",
    "opentelemetry-api",
    "opentelemetry-exporter-otlp",
    "opentelemetry-exporter-otlp-proto-grpc",
]

test = [
    "accelerate",
    "expecttest",
    "jsonlines",
    "matplotlib",
    "pandas",
    "peft",
    "sentence_transformers",
    "pytest",
    "tabulate",
]

dev = ["sglang", "sglang[test]"]

[project.urls]
"Homepage" = "https://github.com/sgl-project/sglang"
"Bug Tracker" = "https://github.com/sgl-project/sglang/issues"

[tool.setuptools.package-data]
"sglang" = [
    "srt/layers/moe/fused_moe_triton/configs/*/*.json",
    "srt/layers/quantization/configs/*.json",
    "srt/mem_cache/storage/hf3fs/hf3fs_utils.cpp",
]

[tool.setuptools.packages.find]
exclude = [
    "assets*",
    "benchmark*",
    "docs*",
    "dist*",
    "playground*",
    "scripts*",
    "tests*",
]

[tool.wheel]
exclude = [
    "assets*",
    "benchmark*",
    "docs*",
    "dist*",
    "playground*",
    "scripts*",
    "tests*",
]

[tool.codespell]
ignore-words-list = "ans, als, hel, boostrap, childs, te, vas, hsa, ment"
skip = "*.json,*.jsonl,*.patch,*.txt"
