diff --git a/README.md b/README.md index 868847c57c317cf50ff3047aa864d1138431296b..36815457310fe275de24bb617926672df4edb74b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ -# aiogremlin 0.0.8 [(gizmo grew up)](https://pypi.python.org/pypi/gizmo/0.1.12) +# aiogremlin 0.0.9 [(gizmo grew up)](https://pypi.python.org/pypi/gizmo/0.1.12) + +`aiogremlin` is a **Python 3** driver for the the [Tinkerpop 3 Gremlin Server](http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/#gremlin-server). This module is built on [Asyncio](https://docs.python.org/3/library/asyncio.html) and [aiohttp](http://aiohttp.readthedocs.org/en/v0.15.3/index.html) `aiogremlin` is currently in **alpha** mode, but all major functionality has test coverage. -`aiogremlin` is a **Python 3** driver for the the [Tinkerpop 3 Gremlin Server](http://www.tinkerpop.com/docs/3.0.0.M7/#gremlin-server). This module is built on [Asyncio](https://docs.python.org/3/library/asyncio.html) and [aiohttp](http://aiohttp.readthedocs.org/en/v0.15.3/index.html) `aiogremlin` is currently in **alpha** mode, but all major functionality has test coverage. ## Getting started diff --git a/aiogremlin/__init__.py b/aiogremlin/__init__.py index 3ad55f56e907c9365996f7723c024b8987af9a7d..c51a9722aae330a51959b5549a3f92884744929d 100644 --- a/aiogremlin/__init__.py +++ b/aiogremlin/__init__.py @@ -4,4 +4,4 @@ from .exceptions import * from .pool import * from .subprotocol import * -__version__ = "0.0.8" +__version__ = "0.0.9" diff --git a/aiogremlin/client.py b/aiogremlin/client.py index e35ec163a7e8cd1ece1da0e0a1dae5dd6a772a69..d460005f17a3e8fec1397989937d9154b5f86cd0 100644 --- a/aiogremlin/client.py +++ b/aiogremlin/client.py @@ -198,22 +198,15 @@ class GremlinResponseStream: @asyncio.coroutine def read(self): - # For 3.0.0.M9 - # if self._stream.at_eof(): - # self._pool.release(self._conn) - # message = None - # else: - # asyncio.async(self._conn.receive()) - # This will be different 3.0.0.M9 - try: - yield from self._conn.receive() - except RequestError: - if self._pool: - self._pool.release(self._conn) - if self._stream.is_eof(): + if self._stream.at_eof(): if self._pool: self._pool.release(self._conn) message = None else: - message = yield from self._stream.read() + asyncio.async(self._conn.receive(), loop=self._loop) + try: + message = yield from self._stream.read() + except RequestError: + if self._pool: + self._pool.release(self._conn) return message diff --git a/aiogremlin/subprotocol.py b/aiogremlin/subprotocol.py index 1f7d1f00ba63e9350e83cf0d6e7334e3b5399bd9..559f6de476492fe940173f8e5f6c46695d899878 100644 --- a/aiogremlin/subprotocol.py +++ b/aiogremlin/subprotocol.py @@ -30,17 +30,12 @@ def gremlin_response_parser(out, buf): message["status"]["message"]) if message.status_code == 200: out.feed_data(message) - # For 3.0.0.M9 - # out.feed_eof() - # This will be terminated in 3.0.0.M9 - elif message.status_code == 299: out.feed_eof() - # For 3.0.0.M9 - # elif message.status_code == 206: - # out.feed_data(message) - # elif message.status_code == 204: - # out.feed_data(message) - # out.feed_eof() + elif message.status_code == 206: + out.feed_data(message) + elif message.status_code == 204: + out.feed_data(message) + out.feed_eof() else: if message.status_code < 500: raise RequestError(message.status_code, message.message) diff --git a/setup.py b/setup.py index 2f609875498bf288b13a5ce36bd7ccbac7b5650b..2363354a4b5103d40586de35a0cf8f9973a1b07e 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup setup( name="aiogremlin", - version="0.0.8", + version="0.0.9", url="", license="MIT", author="davebshow", @@ -12,7 +12,7 @@ setup( long_description=open("README.txt").read(), packages=["aiogremlin", "tests"], install_requires=[ - "aiohttp==0.16.0" + "aiohttp==0.16.3" ], test_suite="tests", classifiers=[