[project] name = "gpustack" version = "v0.0.0" description = "GPUStack" authors = [{name = "GPUStack Authors", email = "contact@gpustack.ai"}] readme = "README.md" requires-python = ">=3.10,<3.13" dependencies = [ "fastapi>=0.115.0", "sqlmodel>=0.0.18", "pydantic>=2.11.5", "pydantic-settings>=2.2.1", "setproctitle>=1.3.3", "inflection>=0.5.1", "openai>=1.31.1", "prometheus-client>=0.20.0", "colorama>=0.4.6", "psutil>=7.0.0", "requests>=2.32.3", "huggingface-hub>=1.0.0", "hf-xet>=1.3.1,<2.0.0", "attrs>=24.2.0", "aiosqlite>=0.20.0", "sqlalchemy[asyncio]>=2.0.38", "pyjwt>=2.8.0", "argon2-cffi>=23.1.0", "python-multipart>=0.0.17", "dataclasses-json>=0.6.7", "apscheduler>=3.10.4,<4.0.0", "asyncpg>=0.29.0", "httpx[socks]>=0.27.0", "alembic>=1.13.2", "importlib-resources>=6.4.0", "pytest-asyncio>=0.23.7", "truststore>=0.9.1", "cryptography>=43.0.0", "tzdata>=2024.1", "modelscope>=1.28", "uvicorn>=0.32.0", "transformers>=4.51.3,!=4.57.0", "fastapi-cdn-host>=0.8.0", "wmi>=1.5.1; platform_system == 'Windows'", "pywin32>=308; platform_system == 'Windows'", "packaging>=24.1", "psycopg2-binary>=2.9.10", "PyYAML>=6.0,<7.0", "tenacity>=9.0.0", "aiocache>=0.12.3", "aiofiles>=23.2.1", "aiohttp>=3.11.2", "python-json-logger>=3.3.0", "asyncmy>=0.2.10", "pymysql>=1.1.1", "pyarrow>=18.0.0,<19.0.0", "pandas>=2.3.0", "blobfile>=3.0.0", "aiolimiter>=1.2.1", "python3-saml==1.16.0", "lxml==5.2.1", "xmlsec==1.3.14", "pydo>=0.15.0", "jinja2>=3.1.6", "kubernetes>=33.1.0,<34.0.0", "kubernetes-asyncio>=33.1.0,<34.0.0", "msgpack>=1.1.2", "cachetools>=6.0.0", "gpustack-runner==0.1.25.post7", "gpustack-runtime==0.1.44.post5", "gpustack-higress-plugins==0.2.1.post2", "websockets==16.0", "py-radix>=1.1.0", ] [dependency-groups] dev = [ "installer==0.7.0", "coverage[toml]>=7.5.1", "flake8>=7.0.0", "flake8-bugbear>=24.4.26", "black>=24.4.2", "pytest>=8.2.0", "openapi-python-client>=0.20.0", "httpx-aiohttp>=0.1.4", "deptry>=0.16.1", "pre-commit>=3.7.1", "mkdocs>=1.6.0", "mkdocs-material>=9.5.27", "shellcheck-py>=0.10.0.1", "twine>=5.1.1", "mike>=2.1.3", "mkdocs-glightbox>=0.4.0", "mkdocs-redirects>=1.2.2", "matplotlib>=3.10.7", "mkdocs-minify-plugin>=0.8.0", ] [project.optional-dependencies] vllm = [ "vllm==0.10.1.1", "mistral_common[opencv]>=1.4.3", "bitsandbytes>=0.45.2", "timm>=1.0.15", ] audio = [ "numba>=0.56.0", ] all = [ "vllm==0.10.1.1", "mistral_common[opencv]>=1.4.3", "bitsandbytes>=0.45.2", "timm>=1.0.15", ] [project.scripts] gpustack = "gpustack.main:main" [build-system] requires = ["hatchling<1.27"] build-backend = "hatchling.build" [tool.hatch.build] only-include = ["gpustack"] artifacts = [ "gpustack/ui", "gpustack/third_party" ] [tool.black] line-length = 88 target-version = ['py310'] skip-string-normalization = true force-exclude = ''' /( .*/migrations/.* )/ ''' [tool.uv.extra-build-dependencies] openai-whisper = ["setuptools~=81.0.0"]