pyproject.toml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. [project]
  2. name = "gpustack"
  3. version = "v0.0.0"
  4. description = "GPUStack"
  5. authors = [{name = "GPUStack Authors", email = "contact@gpustack.ai"}]
  6. readme = "README.md"
  7. requires-python = ">=3.10,<3.13"
  8. dependencies = [
  9. "fastapi>=0.115.0",
  10. "sqlmodel>=0.0.18",
  11. "pydantic>=2.11.5",
  12. "pydantic-settings>=2.2.1",
  13. "setproctitle>=1.3.3",
  14. "inflection>=0.5.1",
  15. "openai>=1.31.1",
  16. "prometheus-client>=0.20.0",
  17. "colorama>=0.4.6",
  18. "psutil>=7.0.0",
  19. "requests>=2.32.3",
  20. "huggingface-hub>=1.0.0",
  21. "hf-xet>=1.3.1,<2.0.0",
  22. "attrs>=24.2.0",
  23. "aiosqlite>=0.20.0",
  24. "sqlalchemy[asyncio]>=2.0.38",
  25. "pyjwt>=2.8.0",
  26. "argon2-cffi>=23.1.0",
  27. "python-multipart>=0.0.17",
  28. "dataclasses-json>=0.6.7",
  29. "apscheduler>=3.10.4,<4.0.0",
  30. "asyncpg>=0.29.0",
  31. "httpx[socks]>=0.27.0",
  32. "alembic>=1.13.2",
  33. "importlib-resources>=6.4.0",
  34. "pytest-asyncio>=0.23.7",
  35. "truststore>=0.9.1",
  36. "cryptography>=43.0.0",
  37. "tzdata>=2024.1",
  38. "modelscope>=1.28",
  39. "uvicorn>=0.32.0",
  40. "transformers>=4.51.3,!=4.57.0",
  41. "fastapi-cdn-host>=0.8.0",
  42. "wmi>=1.5.1; platform_system == 'Windows'",
  43. "pywin32>=308; platform_system == 'Windows'",
  44. "packaging>=24.1",
  45. "psycopg2-binary>=2.9.10",
  46. "PyYAML>=6.0,<7.0",
  47. "tenacity>=9.0.0",
  48. "aiocache>=0.12.3",
  49. "aiofiles>=23.2.1",
  50. "aiohttp>=3.11.2",
  51. "python-json-logger>=3.3.0",
  52. "asyncmy>=0.2.10",
  53. "pymysql>=1.1.1",
  54. "pyarrow>=18.0.0,<19.0.0",
  55. "pandas>=2.3.0",
  56. "blobfile>=3.0.0",
  57. "aiolimiter>=1.2.1",
  58. "python3-saml==1.16.0",
  59. "lxml==5.2.1",
  60. "xmlsec==1.3.14",
  61. "pydo>=0.15.0",
  62. "jinja2>=3.1.6",
  63. "kubernetes>=33.1.0,<34.0.0",
  64. "kubernetes-asyncio>=33.1.0,<34.0.0",
  65. "msgpack>=1.1.2",
  66. "cachetools>=6.0.0",
  67. "gpustack-runner==0.1.25.post7",
  68. "gpustack-runtime==0.1.44.post5",
  69. "gpustack-higress-plugins==0.2.1.post2",
  70. "websockets==16.0",
  71. "py-radix>=1.1.0",
  72. ]
  73. [dependency-groups]
  74. dev = [
  75. "installer==0.7.0",
  76. "coverage[toml]>=7.5.1",
  77. "flake8>=7.0.0",
  78. "flake8-bugbear>=24.4.26",
  79. "black>=24.4.2",
  80. "pytest>=8.2.0",
  81. "openapi-python-client>=0.20.0",
  82. "httpx-aiohttp>=0.1.4",
  83. "deptry>=0.16.1",
  84. "pre-commit>=3.7.1",
  85. "mkdocs>=1.6.0",
  86. "mkdocs-material>=9.5.27",
  87. "shellcheck-py>=0.10.0.1",
  88. "twine>=5.1.1",
  89. "mike>=2.1.3",
  90. "mkdocs-glightbox>=0.4.0",
  91. "mkdocs-redirects>=1.2.2",
  92. "matplotlib>=3.10.7",
  93. "mkdocs-minify-plugin>=0.8.0",
  94. ]
  95. [project.optional-dependencies]
  96. vllm = [
  97. "vllm==0.10.1.1",
  98. "mistral_common[opencv]>=1.4.3",
  99. "bitsandbytes>=0.45.2",
  100. "timm>=1.0.15",
  101. ]
  102. audio = [
  103. "numba>=0.56.0",
  104. ]
  105. all = [
  106. "vllm==0.10.1.1",
  107. "mistral_common[opencv]>=1.4.3",
  108. "bitsandbytes>=0.45.2",
  109. "timm>=1.0.15",
  110. ]
  111. [project.scripts]
  112. gpustack = "gpustack.main:main"
  113. [build-system]
  114. requires = ["hatchling<1.27"]
  115. build-backend = "hatchling.build"
  116. [tool.hatch.build]
  117. only-include = ["gpustack"]
  118. artifacts = [
  119. "gpustack/ui",
  120. "gpustack/third_party"
  121. ]
  122. [tool.black]
  123. line-length = 88
  124. target-version = ['py310']
  125. skip-string-normalization = true
  126. force-exclude = '''
  127. /(
  128. .*/migrations/.*
  129. )/
  130. '''
  131. [tool.uv.extra-build-dependencies]
  132. openai-whisper = ["setuptools~=81.0.0"]