You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/09/10 14:13:48 UTC
[tinkerpop] 02/07: Convert RequestMessage header to compiled Struct
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch TINKERPOP-2279
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 8796141824736e23d608feddde66ad6499b2e93c
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Tue Sep 10 08:32:01 2019 -0400
Convert RequestMessage header to compiled Struct
---
.../src/main/jython/gremlin_python/driver/serializer.py | 14 ++++++++------
gremlin-python/src/main/jython/tests/conftest.py | 2 +-
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py b/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
index e4b81db..630600d 100644
--- a/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
+++ b/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
@@ -175,6 +175,10 @@ class GraphBinarySerializersV1(object):
DEFAULT_WRITER_CLASS = graphbinaryV1.GraphBinaryWriter
DEFAULT_VERSION = b"application/vnd.graphbinary-v1.0"
+ header_struct = struct.Struct('>b32sB')
+ header_pack = header_struct.pack
+ int_pack = graphbinaryV1.int32_pack
+
def __init__(self, reader=None, writer=None, version=None):
if not version:
version = self.DEFAULT_VERSION
@@ -222,19 +226,17 @@ class GraphBinarySerializersV1(object):
def finalize_message(self, message, mime_len, mime_type):
ba = bytearray()
- ba.extend(struct.pack(">b", mime_len))
- ba.extend(mime_type)
- ba.extend([0x81])
+ ba.extend(self.header_pack(mime_len, mime_type, 0x81))
ba.extend(uuid.UUID(message['requestId']).bytes)
- ba.extend(struct.pack(">i", len(message['op'])))
+ ba.extend(self.int_pack(len(message['op'])))
ba.extend(message['op'].encode("utf-8"))
- ba.extend(struct.pack(">i", len(message['processor'])))
+ ba.extend(self.int_pack(len(message['processor'])))
ba.extend(message['processor'].encode("utf-8"))
args = message["args"]
- ba.extend(struct.pack(">i", len(args)))
+ ba.extend(self.int_pack(len(args)))
for k, v in args.items():
self._graphbinary_writer.toDict(k, ba)
diff --git a/gremlin-python/src/main/jython/tests/conftest.py b/gremlin-python/src/main/jython/tests/conftest.py
index 7d10109..c82876e 100644
--- a/gremlin-python/src/main/jython/tests/conftest.py
+++ b/gremlin-python/src/main/jython/tests/conftest.py
@@ -33,7 +33,7 @@ from gremlin_python.driver.serializer import (
from gremlin_python.driver.tornado.transport import TornadoTransport
# docker Gremlin Server = 172.17.0.2
-gremlin_server_host = "localhost"
+gremlin_server_host = "172.17.0.2"
gremlin_server_url = 'ws://' + gremlin_server_host + ':45940/gremlin'