def __init__(self, socket, codec, services=None, **options): assert (hasattr(services, '_request_handlers') and hasattr(services, '_notification_handlers')) for key, value in options.items(): setattr(self, key, value) self.definitions = Definitions(self.protocol, self.protocol_version, self.no_arguments_presentation) self.services = services self.socket_queue = SocketQueue(socket, codec, self.threading_model) self.dispatcher = Dispatcher(self)