Using gremlinclient¶
Before you get started, make sure you have the Gremlin Server up and running. All of the following examples use the Tornado client with PEP 492 Python 3.5 async/await syntax, but they can all be adjusted as shown in the Using aiohttp and Tornado Asyncio Integration sections.
Simple API¶
Submit a script with submit:
>>> async def do_submit():
... resp = await submit(
... "ws://localhost:8182/", "1 + 1")
... while True:
... msg = await resp.read()
... if msg is None:
... break # connection closes automatically
... print(msg)
Get a database connection with create_connection:
>>> async def get_conn():
... conn = await create_connection("ws://localhost:8182/")
... resp = conn.send(
... "ws://localhost:8182/", "1 + 1")
... while True:
... msg = await resp.read()
... if msg is None:
... break
... conn.close() # make sure conn is closed when done
The GraphDatabase object¶
Get a database connection from GraphDatabase:
>>> async def get_conn():
... graph = GraphDatabase("ws://localhost:8182/")
... conn = await graph.connect()
... ...
... conn.close()
Get a database session connection from
GraphDatabase:
>>> async def get_conn():
... graph = GraphDatabase("ws://localhost:8182/")
... sess = await graph.session() # session inherits from Connection
... ...
... sess.close()
The Pool object¶
Reuse websocket connections with Pool:
>>> async def get_conn():
... pool = Pool("ws://localhost:8182/")
... conn = await pool.acquire()
... ...
... pool.release(conn)
... pool.close() # Close all released conns
Automatically release connections to Pool after read:
>>> async def get_conn():
... pool = Pool("ws://localhost:8182/", force_release=True)
... conn = await pool.acquire()
... resp = conn.send("1 + 1")
... while True:
... msg = await resp.read()
... if msg is None:
... break # conn is automatically released to pool.
... pool.close()
For more info, see the Tornado Client docs
The RemoteConnection object¶
The remote connection object provides a synchronous interface designed to be used with the official TinkerPop Gremlin-Python Gremlin Language Variant (GLV):
>>> from gremlin_python import PythonGraphTraversalSource, GroovyTranslator # imports may change after packaging
>>> from gremlinclient.tornado_client import RemoteConnection
>>> remote_conn = RemoteConnection("ws://localhost:8182/")
>>> translator = GroovyTranslator("g")
>>> g = PythonGraphTraversalSource(translator,
... remote_connection=remote_conn)
This allows you to write Gremlin traversals using pure Python!:
>>> g.addV('person').property('name','stephen').next()
>>> g.V().toList()
Remember to call next() or toList() to submit the traversal to
the server.
For more info see
aiohttp_client.RemoteConnection
and tornado_client.RemoteConnection