# 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.gender_identification.v1 import gender_identification_pb2 as phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__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/gender_identification/v1/gender_identification_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 GenderIdentificationStub(object):
    """Service that implements gender identification.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Identify = channel.stream_stream(
                '/phonexia.grpc.technologies.gender_identification.v1.GenderIdentification/Identify',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyResponse.FromString,
                _registered_method=True)


class GenderIdentificationServicer(object):
    """Service that implements gender identification.
    """

    def Identify(self, request_iterator, context):
        """Performs synchronous gender identification from one or more voiceprints or audio.
        Identification is performed on each received chunk, and partial results
        corresponding to each chunk are returned when using voiceprints. Only single
        result is returned when using audio.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_GenderIdentificationServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Identify': grpc.stream_stream_rpc_method_handler(
                    servicer.Identify,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'phonexia.grpc.technologies.gender_identification.v1.GenderIdentification', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('phonexia.grpc.technologies.gender_identification.v1.GenderIdentification', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class GenderIdentification(object):
    """Service that implements gender identification.
    """

    @staticmethod
    def Identify(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.gender_identification.v1.GenderIdentification/Identify',
            phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_gender__identification_dot_v1_dot_gender__identification__pb2.IdentifyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
