# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from cline_core.proto.cline import commands_pb2 as cline_dot_commands__pb2
from cline_core.proto.cline import common_pb2 as cline_dot_common__pb2

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

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + ' but the generated code in cline/commands_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class CommandsServiceStub(object):
    """Service for running IDE commands, for example context menu actions,
    commands, etc.
    In contrast to the rest of the ProtoBus services, these are
    intended to be called by the IDE directly instead of through the webview,
    because they are triggered by interactions in the IDE.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.addToCline = channel.unary_unary(
                '/cline.CommandsService/addToCline',
                request_serializer=cline_dot_commands__pb2.CommandContext.SerializeToString,
                response_deserializer=cline_dot_common__pb2.Empty.FromString,
                _registered_method=True)
        self.fixWithCline = channel.unary_unary(
                '/cline.CommandsService/fixWithCline',
                request_serializer=cline_dot_commands__pb2.CommandContext.SerializeToString,
                response_deserializer=cline_dot_common__pb2.Empty.FromString,
                _registered_method=True)
        self.explainWithCline = channel.unary_unary(
                '/cline.CommandsService/explainWithCline',
                request_serializer=cline_dot_commands__pb2.CommandContext.SerializeToString,
                response_deserializer=cline_dot_common__pb2.Empty.FromString,
                _registered_method=True)
        self.improveWithCline = channel.unary_unary(
                '/cline.CommandsService/improveWithCline',
                request_serializer=cline_dot_commands__pb2.CommandContext.SerializeToString,
                response_deserializer=cline_dot_common__pb2.Empty.FromString,
                _registered_method=True)


class CommandsServiceServicer(object):
    """Service for running IDE commands, for example context menu actions,
    commands, etc.
    In contrast to the rest of the ProtoBus services, these are
    intended to be called by the IDE directly instead of through the webview,
    because they are triggered by interactions in the IDE.
    """

    def addToCline(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def fixWithCline(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def explainWithCline(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def improveWithCline(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_CommandsServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'addToCline': grpc.unary_unary_rpc_method_handler(
                    servicer.addToCline,
                    request_deserializer=cline_dot_commands__pb2.CommandContext.FromString,
                    response_serializer=cline_dot_common__pb2.Empty.SerializeToString,
            ),
            'fixWithCline': grpc.unary_unary_rpc_method_handler(
                    servicer.fixWithCline,
                    request_deserializer=cline_dot_commands__pb2.CommandContext.FromString,
                    response_serializer=cline_dot_common__pb2.Empty.SerializeToString,
            ),
            'explainWithCline': grpc.unary_unary_rpc_method_handler(
                    servicer.explainWithCline,
                    request_deserializer=cline_dot_commands__pb2.CommandContext.FromString,
                    response_serializer=cline_dot_common__pb2.Empty.SerializeToString,
            ),
            'improveWithCline': grpc.unary_unary_rpc_method_handler(
                    servicer.improveWithCline,
                    request_deserializer=cline_dot_commands__pb2.CommandContext.FromString,
                    response_serializer=cline_dot_common__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'cline.CommandsService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('cline.CommandsService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class CommandsService(object):
    """Service for running IDE commands, for example context menu actions,
    commands, etc.
    In contrast to the rest of the ProtoBus services, these are
    intended to be called by the IDE directly instead of through the webview,
    because they are triggered by interactions in the IDE.
    """

    @staticmethod
    def addToCline(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/cline.CommandsService/addToCline',
            cline_dot_commands__pb2.CommandContext.SerializeToString,
            cline_dot_common__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def fixWithCline(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/cline.CommandsService/fixWithCline',
            cline_dot_commands__pb2.CommandContext.SerializeToString,
            cline_dot_common__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def explainWithCline(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/cline.CommandsService/explainWithCline',
            cline_dot_commands__pb2.CommandContext.SerializeToString,
            cline_dot_common__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def improveWithCline(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/cline.CommandsService/improveWithCline',
            cline_dot_commands__pb2.CommandContext.SerializeToString,
            cline_dot_common__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
