Skip to content

Commit c3cef00

Browse files
committed
Separate protobuf dependencies
1 parent 9c21e1a commit c3cef00

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ dependencies = [
1111
"httpx>=0.28.1",
1212
"httpx-sse>=0.4.0",
1313
"pydantic>=2.11.3",
14-
"protobuf>=5.29.5",
15-
"google-api-core>=1.26.0",
1614
]
1715

1816
classifiers = [
@@ -29,9 +27,12 @@ classifiers = [
2927
]
3028

3129
[project.optional-dependencies]
32-
http-server = ["fastapi>=0.115.2", "sse-starlette", "starlette"]
30+
proto = ["protobuf>=5.29.5", "google-api-core>=1.26.0"]
31+
jsonrpc-server = ["fastapi>=0.115.2", "sse-starlette", "starlette"]
32+
rest-server = ["fastapi>=0.115.2", "sse-starlette", "starlette", "a2a-sdk[proto]"]
33+
http-server = ["a2a-sdk[jsonrpc-server]", "a2a-sdk[rest-server]"]
3334
encryption = ["cryptography>=43.0.0"]
34-
grpc = ["grpcio>=1.60", "grpcio-tools>=1.60", "grpcio_reflection>=1.7.0"]
35+
grpc = ["grpcio>=1.60", "grpcio-tools>=1.60", "grpcio_reflection>=1.7.0", "a2a-sdk[proto]"]
3536
telemetry = ["opentelemetry-api>=1.33.0", "opentelemetry-sdk>=1.33.0"]
3637
postgresql = ["sqlalchemy[asyncio,postgresql-asyncpg]>=2.0.0"]
3738
mysql = ["sqlalchemy[asyncio,aiomysql]>=2.0.0"]

src/a2a/utils/proto_utils.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77

88
from typing import Any
99

10-
from google.protobuf import json_format, struct_pb2
10+
11+
try:
12+
from google.protobuf import json_format, struct_pb2
13+
except ImportError as e:
14+
raise ImportError(
15+
'proto-utils requires protobuf. Install with "pip install a2a-sdk[proto]"'
16+
) from e
1117

1218
from a2a import types
1319
from a2a.grpc import a2a_pb2

0 commit comments

Comments
 (0)