autogen/python/pyproject.toml

193 lines
4.3 KiB
TOML
Raw Normal View History

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "agnext"
version = "0.0.1"
description = "A small example package"
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
dependencies = [
"openai>=1.3",
"pillow",
"aiohttp",
"typing-extensions",
"pydantic>=1.10,<3",
"types-aiofiles",
"grpcio",
"protobuf",
"tiktoken"
]
[tool.hatch.envs.default]
installer = "uv"
dependencies = [
"azure-identity",
"aiofiles",
"chess",
"colorama",
"grpcio-tools",
"langgraph",
"langchain-openai",
"llama-index-readers-web",
"llama-index-readers-wikipedia",
"llama-index-tools-wikipedia",
"llama-index-embeddings-azure-openai",
"llama-index-llms-azure-openai",
"llama-index",
"markdownify",
"mypy==1.10.0",
"pip",
"polars",
"pyright==1.1.368",
"pytest-asyncio",
"pytest-mock",
"pytest-xdist",
"pytest",
"python-dotenv",
"ruff==0.4.8",
"tavily-python",
"textual-dev",
"textual-imageview",
"textual",
"tiktoken",
"types-aiofiles",
"types-pillow",
"types-protobuf",
"wikipedia",
"nbqa"
]
[tool.hatch.envs.default.extra-scripts]
pip = "{env:HATCH_UV} pip {args}"
[tool.hatch.envs.default.scripts]
fmt = "ruff format"
lint = "ruff check"
test = "pytest -n auto"
check = [
"ruff format",
"ruff check --fix",
"pyright",
"mypy --non-interactive --install-types",
"pytest -n auto",
# Only checking notebooks with mypy for now due to the fact pyright doesn't seem to be able to ignore the top level await
"nbqa mypy docs/src",
]
[tool.hatch.envs.test-matrix]
template = "default"
[[tool.hatch.envs.test-matrix.matrix]]
python = ["3.10", "3.11", "3.12"]
[tool.hatch.envs.docs]
template = "default"
dependencies = [
"sphinx",
"furo",
"sphinxcontrib-apidoc",
"myst-nb",
"sphinx-autobuild"
]
[tool.hatch.envs.docs.scripts]
build = "sphinx-build docs/src docs/build"
serve = "sphinx-autobuild --watch src docs/src docs/build"
check = [
"sphinx-build --fail-on-warning docs/src docs/build"
]
# Benchmark environments
[tool.hatch.envs.bench-humaneval-teamone]
installer = "uv"
detached = true
dependencies = [
"agnext@{root:uri}",
"agbench@{root:uri}/tools/agbench",
"team-one@{root:uri}/teams/team-one",
]
[tool.hatch.envs.bench-humaneval-twoagents]
installer = "uv"
detached = true
dependencies = [
"agnext@{root:uri}",
"agbench@{root:uri}/tools/agbench",
]
[tool.ruff]
line-length = 120
fix = true
exclude = ["build", "dist", "src/agnext/worker/protos"]
target-version = "py310"
include = ["src/**", "samples/*.py", "docs/**/*.ipynb"]
2024-06-04 09:36:12 -04:00
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint]
select = ["E", "F", "W", "B", "Q", "I", "ASYNC"]
ignore = ["F401", "E501"]
[tool.ruff.lint.flake8-tidy-imports]
[tool.ruff.lint.flake8-tidy-imports.banned-api]
"unittest".msg = "Use `pytest` instead."
[tool.mypy]
files = ["src", "samples", "tests"]
exclude = ["src/agnext/worker/protos"]
strict = true
python_version = "3.10"
ignore_missing_imports = true
# from https://blog.wolt.com/engineering/2021/09/30/professional-grade-mypy-configuration/
disallow_untyped_defs = true
no_implicit_optional = true
check_untyped_defs = true
warn_return_any = true
show_error_codes = true
warn_unused_ignores = false
disallow_incomplete_defs = true
disallow_untyped_decorators = true
disallow_any_unimported = true
[tool.pyright]
include = ["src", "tests", "samples"]
typeCheckingMode = "strict"
reportUnnecessaryIsInstance = false
reportMissingTypeStubs = false
exclude = ["src/agnext/worker/protos"]
[tool.pytest.ini_options]
minversion = "6.0"
testpaths = ["tests"]
[tool.hatch.build.hooks.protobuf]
dependencies = ["hatch-protobuf", "mypy-protobuf~=3.0"]
generate_pyi = false
proto_paths = ["../protos"]
output_path = "src/agnext/worker/protos"
[[tool.hatch.build.hooks.protobuf.generators]]
name = "mypy"
outputs = ["{proto_path}/{proto_name}_pb2.pyi"]
[[tool.hatch.build.hooks.protobuf.generators]]
name = "mypy_grpc"
outputs = ["{proto_path}/{proto_name}_pb2_grpc.pyi"]
[tool.nbqa.addopts]
mypy = [
"--disable-error-code=top-level-await"
]