|
- [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",
- "azure-core"
- ]
-
- [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",
- "requests",
- "ruff==0.4.8",
- "tavily-python",
- "textual-dev",
- "textual-imageview",
- "textual",
- "tiktoken",
- "types-aiofiles",
- "types-pillow",
- "types-protobuf",
- "types-requests",
- "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/application/protos"]
- target-version = "py310"
- include = ["src/**", "samples/*.py", "docs/**/*.ipynb"]
-
- [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/application/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/application/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/application/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"
- ]
|