Interoperable

@runtime_checkable
class Interoperable(Protocol)

A Protocol defining the interoperability interface for tool conversion.

This protocol ensures that any class implementing it provides the method convert_tool to convert a given tool into a desired format or type.

convert_tool

@classmethod
def convert_tool(cls, tool: Any, **kwargs: Any) -> Tool

Converts a given tool to a desired format or type.

This method should be implemented by any class adhering to the Interoperable protocol.

Arguments:

  • tool Any - The tool object to be converted.
  • **kwargs Any - Additional parameters to pass during the conversion process.

Returns:

  • Tool - The converted tool in the desired format or type.

get_unsupported_reason

@classmethod
def get_unsupported_reason(cls) -> Optional[str]

Returns the reason for the tool being unsupported.

This method should be implemented by any class adhering to the Interoperable protocol.

Returns:

  • str - The reason for the interoperability class being unsupported.