pyproject.toml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. [project]
  2. name = "zhibaotong-s3-backend"
  3. version = "0.3.0"
  4. description = "智保通第三阶段智能保全与退款编排统一后端"
  5. requires-python = ">=3.12,<3.13"
  6. dependencies = [
  7. "alembic>=1.16,<2",
  8. "asyncmy>=0.2,<1",
  9. "fastapi>=0.116,<1",
  10. "httpx>=0.28,<1",
  11. "pydantic>=2.11,<3",
  12. "pydantic-settings>=2.10,<3",
  13. "pwdlib[argon2]>=0.2,<1",
  14. "pyjwt[crypto]>=2.10,<3",
  15. "redis>=6,<8",
  16. "sqlalchemy>=2.0,<3",
  17. "ulid-py>=1.1,<2",
  18. "uvicorn[standard]>=0.35,<1",
  19. "pymysql>=1.1,<2",
  20. "langchain>=1.0,<2",
  21. "langgraph>=1.0,<2",
  22. "langchain-openai>=1.0,<2",
  23. "langsmith[otel]>=0.4.25,<1",
  24. "mcp>=1.27,<2",
  25. "pymilvus>=2.6,<3",
  26. "flagembedding>=1.3,<2",
  27. "transformers>=4.44.2,<5",
  28. "python-multipart>=0.0.20,<1",
  29. "pypdf>=6,<7",
  30. "pillow>=11,<13",
  31. ]
  32. [project.scripts]
  33. zbt-serve = "zbt.commands.serve:main"
  34. zbt-refund-worker = "zbt.commands.run_refund_worker:main"
  35. zbt-seed-surrenders = "zbt.commands.seed_surrender_scenarios:main"
  36. zbt-seed-surrender-policies = "zbt.commands.seed_surrender_test_policies:main"
  37. zbt-settle-pending-refunds = "zbt.commands.settle_submitted_refunds:main"
  38. [build-system]
  39. requires = ["hatchling>=1.27,<2"]
  40. build-backend = "hatchling.build"
  41. [dependency-groups]
  42. dev = [
  43. "coverage[toml]>=7.9,<8",
  44. "mypy>=1.16,<2",
  45. "pytest>=8.4,<10",
  46. "pytest-asyncio>=1.0,<2",
  47. "ruff>=0.12,<1",
  48. "types-pymysql>=1.1,<2",
  49. ]
  50. [tool.uv]
  51. package = true
  52. [[tool.uv.index]]
  53. url = "https://mirrors.aliyun.com/pypi/simple/"
  54. default = true
  55. [tool.hatch.build.targets.wheel]
  56. packages = ["src/zbt"]
  57. [tool.pytest.ini_options]
  58. addopts = "-q"
  59. testpaths = ["tests"]
  60. [tool.ruff]
  61. line-length = 100
  62. target-version = "py312"
  63. [tool.ruff.lint]
  64. select = ["E", "F", "I", "UP", "B", "SIM"]
  65. [tool.mypy]
  66. python_version = "3.12"
  67. strict = true
  68. plugins = ["pydantic.mypy"]