GumpacG commented on code in PR #3396:
URL: https://github.com/apache/tinkerpop/pull/3396#discussion_r3192251662
##########
gremlin-python/src/main/python/gremlin_python/driver/connection.py:
##########
@@ -82,19 +120,57 @@ def cb(f):
def _receive(self):
try:
- '''
- GraphSON does not support streaming deserialization, we are
aggregating data and bypassing streamed
- deserialization while GraphSON is enabled for testing. Remove
after GraphSON is removed.
- '''
- self._protocol.data_received_aggregate(self._transport.read(),
self._result_set)
- # re-enable streaming after graphSON removal
- # self._transport.read(self.stream_chunk)
+ # Check for non-GraphBinary error responses
+ status = getattr(self._transport, 'status_code', None)
+ if status is not None and status >= 400:
+ content_type = getattr(self._transport, 'content_type', '')
+ if 'graphbinary' not in content_type:
+ body = self._transport.read_body().decode('utf-8',
errors='replace')
+ raise GremlinServerError({
+ 'code': status,
+ 'message': body,
+ 'exception': ''
+ })
+
+ # 204 No Content
+ if status == 204:
+ return
+
+ stream = self._transport.get_stream()
+ reader = GraphBinaryReader()
Review Comment:
Hardcoding has been removed and the old behaviour of supporting custom
serializers have been restored. Thanks!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]