pyproject.toml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. [build-system]
  2. requires = ["hatchling>=1.27,<2"]
  3. build-backend = "hatchling.build"
  4. [project]
  5. name = "zhifu-platform"
  6. version = "0.1.0"
  7. description = "Multi-tenant customer service platform"
  8. requires-python = ">=3.12,<3.13"
  9. dependencies = [
  10. "fastapi>=0.115,<1",
  11. "uvicorn[standard]>=0.34,<1",
  12. "pydantic-settings>=2.8,<3",
  13. "sqlalchemy[asyncio]>=2.0.39,<2.1",
  14. "asyncmy>=0.2.10,<0.3",
  15. "alembic>=1.15,<2",
  16. "redis>=6,<8",
  17. "pwdlib[argon2]>=0.3,<1",
  18. "httpx>=0.28,<1",
  19. "standardwebhooks>=1.1,<2",
  20. "aio-pika>=9.5,<10",
  21. "langgraph>=1,<2",
  22. "langchain-openai>=1,<2",
  23. "openai>=3,<4",
  24. "sse-starlette>=3,<4",
  25. "httpx-sse>=0.4,<1",
  26. "langmem>=0.0.30,<0.1",
  27. "langgraph-checkpoint-redis>=0.4,<1",
  28. "pymilvus>=2.6,<4",
  29. "langchain-text-splitters>=1,<2",
  30. "prometheus-client>=0.22,<1",
  31. "prometheus-fastapi-instrumentator>=8.1,<9",
  32. ]
  33. [dependency-groups]
  34. dev = ["pytest>=8.3,<10", "pytest-asyncio>=0.25,<2", "httpx>=0.28,<1", "ruff>=0.11,<1", "jsonschema>=4.23,<5", "cryptography>=46,<47", "filelock>=4,<5", "psutil>=7,<8"]
  35. inference = ["sentence-transformers>=5,<6", "torch>=2.11,<3"]
  36. [tool.uv]
  37. default-groups = ["dev", "inference"]
  38. [tool.uv.sources]
  39. torch = [{ index = "pytorch-cpu", marker = "sys_platform == 'linux'" }]
  40. [[tool.uv.index]]
  41. name = "pytorch-cpu"
  42. url = "https://download.pytorch.org/whl/cpu"
  43. explicit = true
  44. [tool.hatch.build.targets.wheel]
  45. packages = ["src/zhifu"]
  46. [tool.pytest.ini_options]
  47. testpaths = ["tests"]
  48. asyncio_mode = "auto"
  49. markers = ["integration: requires MySQL, Redis, RabbitMQ, OMS HTTP and Toxiproxy"]
  50. [tool.ruff]
  51. target-version = "py312"
  52. line-length = 100
  53. extend-exclude = [".work"]
  54. [tool.ruff.lint]
  55. select = ["E", "F", "I", "UP", "B", "ASYNC"]