diff --git a/aiogremlin/driver/protocol.py b/aiogremlin/driver/protocol.py index 97f1292d82a4b228dac40a88df756c2e9c980f5a..277dc36f14e13beb496cb0a37dc3bb51ebd73af0 100644 --- a/aiogremlin/driver/protocol.py +++ b/aiogremlin/driver/protocol.py @@ -50,9 +50,13 @@ class GremlinServerWSProtocol(protocol.AbstractBaseProtocol): msg = message['status']['message'] if request_id in results_dict: result_set = results_dict[request_id] - aggregate_to = message['result']['meta'].get('aggregateTo', - 'list') + meta_aggregate_to = message['result']['meta']['@value'] + if len(meta_aggregate_to) > 1: + aggregate_to = meta_aggregate_to[1] + else: + aggregate_to = 'list' result_set.aggregate_to = aggregate_to + if status_code == 407: auth = b''.join([b'\x00', self._username.encode('utf-8'), b'\x00', self._password.encode('utf-8')]) @@ -64,10 +68,16 @@ class GremlinServerWSProtocol(protocol.AbstractBaseProtocol): result_set.queue_result(None) else: if data: - for result in data: - result = self._message_serializer.deserialize_message(result) - message = Message(status_code, result, msg) - result_set.queue_result(message) + if self._message_serializer.version == b"application/vnd.gremlin-v2.0+json": + for result in data: + result = self._message_serializer.deserialize_message(result) + message = Message(status_code, result, msg) + result_set.queue_result(message) + else: + results = self._message_serializer.deserialize_message(data['@value']) + for result in results: + message = Message(status_code, result, msg) + result_set.queue_result(message) else: data = self._message_serializer.deserialize_message(data) message = Message(status_code, data, msg) diff --git a/requirements.txt b/requirements.txt index f5fd80c8093647e552bd88e8ae291f274d1c0d85..efdf3407b2352c27afe486c67c96a8932d6f54fa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -gremlinpython==3.2.6 +gremlinpython==3.3.0 diff --git a/setup.py b/setup.py index 93ba86efe801bcd5f85ca3e442112bb7398fe204..307536f48da898c5c00dd135a4103104cf2e23e6 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import setup setup( name='aiogremlin', - version='3.2.7', + version='3.3.0', url='', license='Apache Software License', author='davebshow',