From 503ee378b6fd40d84d27a5d19c0b8970eaad1554 Mon Sep 17 00:00:00 2001 From: davebshow <davebshow@gmail.com> Date: Wed, 6 Jul 2016 22:08:38 -0400 Subject: [PATCH] some post-refactor clean up --- goblin/api.py | 9 +++++++-- goblin/driver/api.py | 2 +- goblin/driver/connection.py | 22 +++++----------------- goblin/mapper.py | 4 +--- 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/goblin/api.py b/goblin/api.py index bdddbd1..0a0b5c2 100644 --- a/goblin/api.py +++ b/goblin/api.py @@ -309,10 +309,15 @@ class Edge(metaclass=meta.ElementMeta): class VertexProperty(metaclass=meta.ElementMeta): + __data_type__ = None + def __init__(self, value): self._value = value + @property + def value(self): + return self._value + def __repr__(self): return '<{}(type={}, value={})'.format(self.__class__.__name__, - self.__data_type__, - self._value) + self.__data_type__, self.value) diff --git a/goblin/driver/api.py b/goblin/driver/api.py index 24154de..22ab80d 100644 --- a/goblin/driver/api.py +++ b/goblin/driver/api.py @@ -18,6 +18,6 @@ class GremlinServer: if client_session is None: client_session = aiohttp.ClientSession(loop=loop) ws = await client_session.ws_connect(url) - return connection.Connection(ws, loop, client_session, + return connection.Connection(url, ws, loop, client_session, force_close=force_close, username=username, password=password) diff --git a/goblin/driver/connection.py b/goblin/driver/connection.py index f4bd98a..3fbb2ac 100644 --- a/goblin/driver/connection.py +++ b/goblin/driver/connection.py @@ -53,15 +53,13 @@ class AbstractConnection(abc.ABC): class Connection(AbstractConnection): - def __init__(self, ws, loop, conn_factory, *, force_close=True, - force_release=False, pool=None, username=None, - password=None): + def __init__(self, url, ws, loop, conn_factory, *, force_close=True, + username=None, password=None): + self._url = url self._ws = ws self._loop = loop self._conn_factory = conn_factory self._force_close = force_close - self._force_release = force_release - self._pool = pool self._username = username self._password = password self._closed = False @@ -79,14 +77,6 @@ class Connection(AbstractConnection): def force_close(self): return self._force_close - @property - def force_release(self): - return self._force_release - - async def release(self): - if self.pool: - await self.pool.release(self) - async def submit(self, gremlin, *, @@ -111,6 +101,8 @@ class Connection(AbstractConnection): request_id) response_queue = asyncio.Queue(loop=self._loop) self.response_queues[request_id] = response_queue + if self._ws.closed: + self._ws = await self.conn_factory.ws_connect(self._url) self._ws.send_bytes(message) self._loop.create_task(self.receive()) return Response(response_queue, self._loop) @@ -118,7 +110,6 @@ class Connection(AbstractConnection): async def close(self): await self._ws.close() self._closed = True - self._pool = None await self._conn_factory.close() def _prepare_message(self, gremlin, bindings, lang, aliases, op, @@ -198,8 +189,6 @@ class Connection(AbstractConnection): async def term(self): if self._force_close: await self.close() - elif self._force_release: - await self.release() async def __aenter__(self): return self @@ -207,4 +196,3 @@ class Connection(AbstractConnection): async def __aexit__(self, exc_type, exc, tb): await self.close() self._conn = None - self._pool = None diff --git a/goblin/mapper.py b/goblin/mapper.py index da15b01..3521153 100644 --- a/goblin/mapper.py +++ b/goblin/mapper.py @@ -82,7 +82,5 @@ class Mapping: def __repr__(self): return '<{}(type={}, label={}, properties={})'.format( - self.__class__.__name__, - self._type, - self._label, + self.__class__.__name__, self._type, self._label, self._properties) -- GitLab