Github user davebshow commented on the issue:

    https://github.com/apache/tinkerpop/pull/478
  
    As long as the driver returns a future with a compatible API, yes, it can 
be used with all Python versions. The snippet you provided will throw an error 
with an Asyncio or Tornado client, as you can only call 
[`result()`](https://docs.python.org/3/library/asyncio-task.html#asyncio.Future.result)
 on a completed future. You will typically need to `yield/yield from/await` it 
first depending on the Python version and driver (like in the examples provided 
above). However, the underlying coroutine will spawn independently, which means 
that even if you don't `yield/yield from/await`, but you wait long enough 
before calling `result()` it will complete. For example:
    
    ```python
    future = g.V().promise(lambda t: t.toList())
    assert not future.done()  # Future has not completed
    await asyncio.sleep(5)  # Simulate doing a ton of other blocking stuff
    assert future.done()  # Future has completed (assuming 5 seconds was enough 
time to complete)
    result = future.result()  # Doesn't throw an error 
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to