29 lines
851 B
Python
29 lines
851 B
Python
from common.types import (
|
|
JSONRPCResponse,
|
|
ContentTypeNotSupportedError,
|
|
UnsupportedOperationError,
|
|
)
|
|
from typing import List
|
|
|
|
|
|
def are_modalities_compatible(
|
|
server_output_modes: List[str], client_output_modes: List[str]
|
|
):
|
|
"""Modalities are compatible if they are both non-empty
|
|
and there is at least one common element."""
|
|
if client_output_modes is None or len(client_output_modes) == 0:
|
|
return True
|
|
|
|
if server_output_modes is None or len(server_output_modes) == 0:
|
|
return True
|
|
|
|
return any(x in server_output_modes for x in client_output_modes)
|
|
|
|
|
|
def new_incompatible_types_error(request_id):
|
|
return JSONRPCResponse(id=request_id, error=ContentTypeNotSupportedError())
|
|
|
|
|
|
def new_not_implemented_error(request_id):
|
|
return JSONRPCResponse(id=request_id, error=UnsupportedOperationError())
|