# 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 phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1 import enhanced_speech_to_text_built_on_whisper_pb2 as phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__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 phonexia/grpc/technologies/enhanced_speech_to_text_built_on_whisper/v1/enhanced_speech_to_text_built_on_whisper_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 SpeechToTextStub(object):
    """Service implementing speech-to-text transcription.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Transcribe = channel.stream_stream(
                '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/Transcribe',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeResponse.FromString,
                _registered_method=True)
        self.Translate = channel.stream_stream(
                '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/Translate',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateResponse.FromString,
                _registered_method=True)
        self.ListSupportedLanguages = channel.unary_unary(
                '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/ListSupportedLanguages',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesResponse.FromString,
                _registered_method=True)


class SpeechToTextServicer(object):
    """Service implementing speech-to-text transcription.
    """

    def Transcribe(self, request_iterator, context):
        """Performs synchronous speech-to-text transcription. The transcription starts
        after the whole audio has been received.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Translate(self, request_iterator, context):
        """Performs synchronous speech-to-text translation. The translation starts
        after the whole audio has been received. Currently, the target language is limited
        to English only. The set of available source languages can be found by invoking
        the <code>ListSupportedLanguages</code> method.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSupportedLanguages(self, request, context):
        """Method to retrieve supported languages for transcription/translation.
        Models can be monolingual or multilingual. Multilingual models may be
        licensed to only a subset of all supported languages, in which case this
        method returns this limited subset.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_SpeechToTextServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Transcribe': grpc.stream_stream_rpc_method_handler(
                    servicer.Transcribe,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeResponse.SerializeToString,
            ),
            'Translate': grpc.stream_stream_rpc_method_handler(
                    servicer.Translate,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateResponse.SerializeToString,
            ),
            'ListSupportedLanguages': grpc.unary_unary_rpc_method_handler(
                    servicer.ListSupportedLanguages,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class SpeechToText(object):
    """Service implementing speech-to-text transcription.
    """

    @staticmethod
    def Transcribe(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/Transcribe',
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranscribeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Translate(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/Translate',
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.TranslateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListSupportedLanguages(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,
            '/phonexia.grpc.technologies.enhanced_speech_to_text_built_on_whisper.v1.SpeechToText/ListSupportedLanguages',
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_enhanced__speech__to__text__built__on__whisper_dot_v1_dot_enhanced__speech__to__text__built__on__whisper__pb2.ListSupportedLanguagesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
