Comments (3)
Hi @patricknee. What is happening here is that when you return the first message in the loop you are short circuiting the iteration so the response is not properly closed. Normally, the response receives None
from the driver, closes the response, and calls StopAsyncIteration
. However, you never get there because you just return the first result. There are two ways to avoid this:
- If you are unsure of the number of results that will be returned in the stream, you can store them in a container until the iteration finishes:
result = []
resp = await conn.submit(gremlin=script, bindings=binding)
async for msg in resp:
result.append(msg)
return result
- If you are sure that you are only going to get one result back on the stream you can do this:
resp = await conn.submit(gremlin=script, bindings=binding)
result = await resp.fetch_data()
resp.close()
return result
However, the first approach is preferable to the second because this assures that you read all the returned results from the underlying stream. When Python 3.6 becomes generally available, you will be able to simply yield results as they come in, and this will be the best option of all:
resp = await conn.submit(gremlin=script, bindings=binding)
async for msg in resp:
yield msg
I hope that helps and thanks for your interest in Goblin. Let me know if you have any more questions.
from goblin.
Yes, I was pretty sure it was the iterable nature of response, and I should have tried handling the result in a list... I tried a few other things (appending strings) before writing. Thanks for the quick response.
from goblin.
No worries. I'm going to go ahead and close this issue.
from goblin.
Related Issues (20)
- Reference instance to test goblin against HOT 3
- How to change version of Goblin OGM Serializer for Janusgraph (TinkerPop 3.2.6) HOT 3
- TypeError: unhashable type: 'dict' when creating an Edge HOT 10
- goblin does not work with aiohttp>=3.0.0 HOT 5
- Question about using a multi-value/set VertexProperty HOT 6
- Vertex property gets changed from Gremlin Console but not from Python/Goblin script HOT 2
- goblin not working with aiohttp (server) HOT 2
- Mocking JanusGraph Connection for unit tests
- Add method to easily remove Vertex HOT 1
- The project appears idle, can I take over? HOT 10
- Problem with Edge data type HOT 5
- App/Cluster configuration using URL HOT 3
- Schema generator HOT 3
- Belated License change HOT 5
- Question: Extent to which OO modeling is supported in Goblin HOT 7
- How to use mixed index in goblin? HOT 4
- AttributeError: AsyncGraphTraversal.last_traverser HOT 1
- [Proposal] - OGM distinct from driver HOT 7
- Ability to set vertex or edge ID HOT 5
- Unexpected results when updating property HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from goblin.