Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dapr/aio/clients/grpc/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
GetMetadataResponse,
GetSecretResponse,
InvokeMethodResponse,
MetadataMCPServer,
QueryResponse,
QueryResponseItem,
RegisteredComponents,
Expand Down Expand Up @@ -1723,13 +1724,15 @@ async def get_metadata(self) -> GetMetadataResponse:
for i in response.registered_components
]
extended_metadata = dict(response.extended_metadata.items())
mcp_servers = [MetadataMCPServer(name=s.name) for s in response.mcp_servers]

return GetMetadataResponse(
application_id=response.id,
active_actors_count=active_actors_count,
registered_components=registered_components,
extended_metadata=extended_metadata,
headers=await call.initial_metadata(),
mcp_servers=mcp_servers,
)

async def schedule_job_alpha1(self, job: Job, overwrite: bool = False) -> DaprResponse:
Expand Down
16 changes: 16 additions & 0 deletions dapr/clients/grpc/_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,7 @@ def __init__(
registered_components: Sequence[RegisteredComponents],
extended_metadata: Dict[str, str],
headers: MetadataTuple = (),
mcp_servers: Optional[Sequence['MetadataMCPServer']] = None,
):
"""Initializes GetMetadataResponse.

Expand All @@ -968,12 +969,15 @@ def __init__(
extended_metadata (Dict[str, str]): mapping of custom (extended)
attributes to their respective values.
headers (Tuple, optional): the headers from Dapr gRPC response.
mcp_servers (Sequence[MetadataMCPServer], optional): list of
loaded MCPServer resources.
"""
super().__init__(headers)
self._application_id = application_id
self._active_actors_count = active_actors_count
self._registered_components = registered_components
self._extended_metadata = extended_metadata
self._mcp_servers = mcp_servers or []

@property
def application_id(self) -> str:
Expand All @@ -995,6 +999,11 @@ def extended_metadata(self) -> Dict[str, str]:
"""Mapping of custom (extended) attributes to their respective values."""
return self._extended_metadata

@property
def mcp_servers(self) -> Sequence['MetadataMCPServer']:
"""List of loaded MCPServer resources."""
return self._mcp_servers


class RegisteredComponents(NamedTuple):
"""Describes a loaded Dapr component."""
Expand All @@ -1012,6 +1021,13 @@ class RegisteredComponents(NamedTuple):
"""Supported capabilities for this component type and version."""


class MetadataMCPServer(NamedTuple):
"""Describes a loaded Dapr MCPServer resource."""

name: str
"""Name of the MCPServer resource."""


class CryptoResponse(DaprResponse, Generic[TCryptoResponse]):
"""An iterable of cryptography API responses."""

Expand Down
3 changes: 3 additions & 0 deletions dapr/clients/grpc/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
GetMetadataResponse,
GetSecretResponse,
InvokeMethodResponse,
MetadataMCPServer,
QueryResponse,
QueryResponseItem,
RegisteredComponents,
Expand Down Expand Up @@ -1828,13 +1829,15 @@ def get_metadata(self) -> GetMetadataResponse:
for i in response.registered_components
]
extended_metadata = dict(response.extended_metadata.items())
mcp_servers = [MetadataMCPServer(name=s.name) for s in response.mcp_servers]

return GetMetadataResponse(
application_id=response.id,
active_actors_count=active_actors_count,
registered_components=registered_components,
extended_metadata=extended_metadata,
headers=call.initial_metadata(),
mcp_servers=mcp_servers,
)

def set_metadata(self, attributeName: str, attributeValue: str) -> DaprResponse:
Expand Down
35 changes: 32 additions & 3 deletions dapr/proto/common/v1/common_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ import builtins as _builtins
import sys
import typing as _typing

if sys.version_info >= (3, 10):
from typing import TypeAlias as _TypeAlias
if sys.version_info >= (3, 11):
from typing import TypeAlias as _TypeAlias, Never as _Never
else:
from typing_extensions import TypeAlias as _TypeAlias
from typing_extensions import TypeAlias as _TypeAlias, Never as _Never

DESCRIPTOR: _descriptor.FileDescriptor

Expand Down Expand Up @@ -91,8 +91,11 @@ class HTTPExtension(_message.Message):
verb: Global___HTTPExtension.Verb.ValueType = ...,
querystring: _builtins.str = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["querystring", b"querystring", "verb", b"verb"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___HTTPExtension: _TypeAlias = HTTPExtension # noqa: Y015

Expand Down Expand Up @@ -143,6 +146,7 @@ class InvokeRequest(_message.Message):
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "data", b"data", "http_extension", b"http_extension", "method", b"method"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___InvokeRequest: _TypeAlias = InvokeRequest # noqa: Y015

Expand Down Expand Up @@ -174,6 +178,7 @@ class InvokeResponse(_message.Message):
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "data", b"data"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___InvokeResponse: _TypeAlias = InvokeResponse # noqa: Y015

Expand Down Expand Up @@ -201,8 +206,11 @@ class StreamPayload(_message.Message):
data: _builtins.bytes = ...,
seq: _builtins.int = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "seq", b"seq"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___StreamPayload: _TypeAlias = StreamPayload # noqa: Y015

Expand All @@ -226,8 +234,11 @@ class StateItem(_message.Message):
key: _builtins.str = ...,
value: _builtins.str = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

KEY_FIELD_NUMBER: _builtins.int
VALUE_FIELD_NUMBER: _builtins.int
Expand Down Expand Up @@ -265,6 +276,7 @@ class StateItem(_message.Message):
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["etag", b"etag", "key", b"key", "metadata", b"metadata", "options", b"options", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___StateItem: _TypeAlias = StateItem # noqa: Y015

Expand All @@ -282,8 +294,11 @@ class Etag(_message.Message):
*,
value: _builtins.str = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___Etag: _TypeAlias = Etag # noqa: Y015

Expand Down Expand Up @@ -337,8 +352,11 @@ class StateOptions(_message.Message):
concurrency: Global___StateOptions.StateConcurrency.ValueType = ...,
consistency: Global___StateOptions.StateConsistency.ValueType = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["concurrency", b"concurrency", "consistency", b"consistency"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___StateOptions: _TypeAlias = StateOptions # noqa: Y015

Expand All @@ -362,8 +380,11 @@ class ConfigurationItem(_message.Message):
key: _builtins.str = ...,
value: _builtins.str = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

VALUE_FIELD_NUMBER: _builtins.int
VERSION_FIELD_NUMBER: _builtins.int
Expand All @@ -383,8 +404,11 @@ class ConfigurationItem(_message.Message):
version: _builtins.str = ...,
metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ...,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "value", b"value", "version", b"version"] # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___ConfigurationItem: _TypeAlias = ConfigurationItem # noqa: Y015

Expand Down Expand Up @@ -425,6 +449,11 @@ class JobFailurePolicyDrop(_message.Message):
def __init__(
self,
) -> None: ...
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
_ClearFieldArgType: _TypeAlias = _Never # noqa: Y015
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
def WhichOneof(self, oneof_group: _Never) -> None: ...

Global___JobFailurePolicyDrop: _TypeAlias = JobFailurePolicyDrop # noqa: Y015

Expand Down
2 changes: 1 addition & 1 deletion dapr/proto/common/v1/common_pb2_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import warnings


GRPC_GENERATED_VERSION = '1.76.0'
GRPC_GENERATED_VERSION = '1.80.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

Expand Down
Loading
Loading