diff --git a/pyproject.toml b/pyproject.toml index 4b4d54c..78636fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,14 @@ dependencies = [ "protobuf>=5,<8", ] +[project.optional-dependencies] +# Triggers the platform wheel that bundles the aasm sidecar binary at +# agent_assembly/bin/aasm. Empty list — selection is purely by the +# platform-tagged wheel that maturin produces, not by extra deps. +runtime = [] +# Catch-all alias for users who want the full SDK + runtime install. +all = ["agent-assembly[runtime]"] + [project.scripts] aasm = "agent_assembly.cli.main:main" @@ -42,23 +50,30 @@ Repository = "https://github.com/agent-assembly/python-sdk" [dependency-groups] dev = [ - "pytest>=8.1.1,<10", - "pytest-cov>=5.0.0,<8", "coverage~=7.10", - "pytest-rerunfailures>=14.0,<17", - "pytest-asyncio>=0.23.0,<2", "python-dotenv>=1.0.1,<2", - "ruff>=0.1.0", - "pytest-benchmark>=4.0.0,<6", # AAASM-1654 (PR-E): grpcio-tools provides protoc + Python plugin used by # scripts/gen_proto.py to regenerate agent_assembly/proto/*_pb2*.py from # the sibling agent-assembly/proto/ checkout. "grpcio-tools>=1.66,<2", + { include-group = "lint" }, + { include-group = "test" }, +] +lint = [ + "ruff>=0.1.0", + "mypy>=1.2.0,<3", +] +test = [ + "pytest>=8.1.1,<10", + "pytest-cov>=5.0.0,<8", + "pytest-rerunfailures>=14.0,<17", + "pytest-asyncio>=0.23.0,<2", + "pytest-benchmark>=4.0.0,<6", ] pre-commit-ci = [ "pre-commit>=3.5.0,<5", "pylint>=3.1.0,<5", - "mypy>=1.2.0,<3", + { include-group = "lint" }, ] docs = [ "mkdocs>=1.6.0,<2", diff --git a/uv.lock b/uv.lock index 4f7942b..cec0bc4 100644 --- a/uv.lock +++ b/uv.lock @@ -18,6 +18,7 @@ dependencies = [ dev = [ { name = "coverage" }, { name = "grpcio-tools" }, + { name = "mypy" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-benchmark" }, @@ -36,25 +37,40 @@ docs = [ { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, ] +lint = [ + { name = "mypy" }, + { name = "ruff" }, +] pre-commit-ci = [ { name = "mypy" }, { name = "pre-commit" }, { name = "pylint" }, + { name = "ruff" }, +] +test = [ + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-benchmark" }, + { name = "pytest-cov" }, + { name = "pytest-rerunfailures" }, ] [package.metadata] requires-dist = [ + { name = "agent-assembly", extras = ["runtime"], marker = "extra == 'all'" }, { name = "grpcio", specifier = ">=1.66,<2" }, { name = "httpx", specifier = ">=0.27.0,<1.0.0" }, { name = "protobuf", specifier = ">=5,<8" }, { name = "pydantic", specifier = ">=2.0.0,<3.0.0" }, { name = "typing-extensions", specifier = ">=4.0.0" }, ] +provides-extras = ["runtime", "all"] [package.metadata.requires-dev] dev = [ { name = "coverage", specifier = "~=7.10" }, { name = "grpcio-tools", specifier = ">=1.66,<2" }, + { name = "mypy", specifier = ">=1.2.0,<3" }, { name = "pytest", specifier = ">=8.1.1,<10" }, { name = "pytest-asyncio", specifier = ">=0.23.0,<2" }, { name = "pytest-benchmark", specifier = ">=4.0.0,<6" }, @@ -73,10 +89,22 @@ docs = [ { name = "mkdocstrings", specifier = ">=0.24.0,<2" }, { name = "mkdocstrings-python", specifier = ">=1.10.0,<3" }, ] +lint = [ + { name = "mypy", specifier = ">=1.2.0,<3" }, + { name = "ruff", specifier = ">=0.1.0" }, +] pre-commit-ci = [ { name = "mypy", specifier = ">=1.2.0,<3" }, { name = "pre-commit", specifier = ">=3.5.0,<5" }, { name = "pylint", specifier = ">=3.1.0,<5" }, + { name = "ruff", specifier = ">=0.1.0" }, +] +test = [ + { name = "pytest", specifier = ">=8.1.1,<10" }, + { name = "pytest-asyncio", specifier = ">=0.23.0,<2" }, + { name = "pytest-benchmark", specifier = ">=4.0.0,<6" }, + { name = "pytest-cov", specifier = ">=5.0.0,<8" }, + { name = "pytest-rerunfailures", specifier = ">=14.0,<17" }, ] [[package]]