You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

pyproject.toml 4.2 kB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. [build-system]
  2. requires = ["hatchling"]
  3. build-backend = "hatchling.build"
  4. [project]
  5. name = "autogen-core"
  6. version = "0.4.0.dev6"
  7. license = {file = "LICENSE-CODE"}
  8. description = "Foundational interfaces and agent runtime implementation for AutoGen"
  9. readme = "README.md"
  10. requires-python = ">=3.10"
  11. classifiers = [
  12. "Programming Language :: Python :: 3",
  13. "License :: OSI Approved :: MIT License",
  14. "Operating System :: OS Independent",
  15. ]
  16. dependencies = [
  17. "openai>=1.3",
  18. "pillow",
  19. "aiohttp",
  20. "typing-extensions",
  21. "pydantic<3.0.0,>=2.0.0",
  22. "protobuf~=4.25.1",
  23. "tiktoken",
  24. "opentelemetry-api~=1.27.0",
  25. "asyncio_atexit",
  26. "jsonref~=1.1.0",
  27. ]
  28. [project.optional-dependencies]
  29. grpc = [
  30. "grpcio~=1.62.0",
  31. ]
  32. [tool.uv]
  33. dev-dependencies = [
  34. "aiofiles",
  35. "azure-identity",
  36. "chess",
  37. "colorama",
  38. "langchain-openai",
  39. "langgraph",
  40. "llama-index-embeddings-azure-openai",
  41. "llama-index-llms-azure-openai",
  42. "llama-index-readers-web",
  43. "llama-index-readers-wikipedia",
  44. "llama-index-tools-wikipedia",
  45. "llama-index",
  46. "markdownify",
  47. "nbqa",
  48. "pip",
  49. "polars",
  50. "python-dotenv",
  51. "requests",
  52. "tavily-python",
  53. "textual-dev",
  54. "textual-imageview",
  55. "textual",
  56. "types-aiofiles",
  57. "types-pillow",
  58. "types-protobuf",
  59. "types-requests",
  60. "types-docker",
  61. "wikipedia",
  62. "opentelemetry-sdk>=1.27.0",
  63. # Documentation
  64. "myst-nb==1.1.2",
  65. "pydata-sphinx-theme==0.15.4",
  66. "sphinx-copybutton",
  67. "sphinx-design",
  68. "sphinx",
  69. "sphinxcontrib-apidoc",
  70. "autodoc_pydantic~=2.2",
  71. # Documentation tooling
  72. "sphinx-autobuild",
  73. ]
  74. [tool.ruff]
  75. extend = "../../pyproject.toml"
  76. exclude = ["build", "dist", "src/autogen_core/application/protos"]
  77. include = ["src/**", "samples/*.py", "docs/**/*.ipynb", "tests/**"]
  78. [tool.ruff.lint.per-file-ignores]
  79. "samples/**.py" = ["T20"]
  80. "docs/**.ipynb" = ["T20"]
  81. [tool.pyright]
  82. extends = "../../pyproject.toml"
  83. include = ["src", "tests", "samples"]
  84. exclude = ["src/autogen_core/application/protos"]
  85. reportDeprecated = false
  86. [tool.pytest.ini_options]
  87. minversion = "6.0"
  88. testpaths = ["tests"]
  89. asyncio_default_fixture_loop_scope = "session"
  90. [tool.nbqa.addopts]
  91. mypy = [
  92. "--disable-error-code=top-level-await"
  93. ]
  94. [tool.poe]
  95. include = "../../shared_tasks.toml"
  96. [tool.poe.tasks]
  97. test = "pytest -n auto"
  98. mypy.default_item_type = "cmd"
  99. mypy.sequence = [
  100. "mypy --config-file ../../pyproject.toml --exclude src/autogen_core/application/protos src tests",
  101. "nbqa mypy docs/src --config-file ../../pyproject.toml",
  102. ]
  103. # Docs
  104. docs-clean = "rm -rf docs/build && rm -rf docs/src/reference/python/"
  105. docs-apidoc-core = "sphinx-apidoc --templatedir docs/src/_apidoc_templates --no-toc --separate --force -o docs/src/reference/python/autogen_core src/autogen_core src/autogen_core/application/protos/"
  106. docs-apidoc-agentchat = "sphinx-apidoc --templatedir docs/src/_apidoc_templates --no-toc --separate --force -o docs/src/reference/python/autogen_agentchat ../autogen-agentchat/src/autogen_agentchat"
  107. docs-apidoc-ext = "sphinx-apidoc --templatedir docs/src/_apidoc_templates --no-toc --separate --force -o docs/src/reference/python/autogen_ext ../autogen-ext/src/autogen_ext ../autogen-ext/src/autogen_ext/code_executor ../autogen-ext/src/autogen_ext/tools/langchain"
  108. docs-apidoc-all = [
  109. "docs-apidoc-core",
  110. "docs-apidoc-agentchat",
  111. "docs-apidoc-ext",
  112. ]
  113. # Inline tables are WAY easier to read but for some reason they break pyright. So we have to write it out this way.
  114. # Example of inline table:
  115. # docs-build = [
  116. # "docs-apidoc-all",
  117. # { cmd = "sphinx-build docs/src docs/build" }
  118. # ]
  119. [[tool.poe.tasks.docs-build.sequence]]
  120. ref = "docs-apidoc-all"
  121. [[tool.poe.tasks.docs-build.sequence]]
  122. cmd = "sphinx-build docs/src docs/build"
  123. [[tool.poe.tasks.docs-serve.sequence]]
  124. ref = "docs-apidoc-all"
  125. [[tool.poe.tasks.docs-serve.sequence]]
  126. cmd = "sphinx-autobuild --watch src docs/src docs/build --port 8000 --jobs auto"
  127. [[tool.poe.tasks.docs-check.sequence]]
  128. ref = "docs-apidoc-all"
  129. [[tool.poe.tasks.docs-check.sequence]]
  130. ref = "docs-apidoc-all"
  131. [[tool.poe.tasks.docs-check.sequence]]
  132. cmd = "sphinx-build --fail-on-warning docs/src docs/build"