README.md 3.32 KB
Newer Older
1
2
# ![Goblin logo](https://git.qoto.org/goblin-ogm/goblin/uploads/bb8f7349fdb9aa2a7a244e4c95b380a7/goblin-logo.png)  AIO Gremlin

3
[![tests](http://git.qoto.org/goblin-ogm/aiogremlin/badges/master/pipeline.svg)](http://git.qoto.org/goblin-ogm/aiogremlin/commits/master)
4
[![Requirements](https://requires.io/github/goblin-ogm/aiogremlin/requirements.svg?branch=master)](https://requires.io/github/goblin-ogm/aiogremlin/requirements/?branch=master)
5
[![test coverage](http://git.qoto.org/goblin-ogm/aiogremlin/badges/master/coverage.svg)](http://git.qoto.org/goblin-ogm/aiogremlin/commits/master)
6
[![codecov](https://codecov.io/gh/goblin-ogm/aiogremlin/branch/master/graph/badge.svg)](https://codecov.io/gh/goblin-ogm/aiogremlin)
7
[![Codacy](https://api.codacy.com/project/badge/Grade/99c4b7d53ee94c85b95433ee4ff6230c)](https://www.codacy.com/gh/goblin-ogm/aiogremlin?utm_source=github.com&utm_medium=referral&utm_content=goblin-ogm/aiogremlin&utm_campaign=Badge_Grade)
8
[![Scrutinizer](https://img.shields.io/scrutinizer/quality/g/goblin-ogm/aiogremlin/master.svg?style=flat)](https://scrutinizer-ci.com/g/goblin-ogm/aiogremlin)
9
10

[![PyPi](https://img.shields.io/pypi/v/aiogremlin.svg?style=flat)](https://pypi.python.org/pypi/aiogremlin)
11
[![Supported Versions](https://img.shields.io/pypi/pyversions/aiogremlin.svg?style=flat)](https://pypi.python.org/pypi/aiogremlin)
12
13
14
[![Downloads](https://img.shields.io/pypi/dm/aiogremlin.svg?style=flat)](https://pypi.python.org/pypi/aiogremlin)
[![SemVer](https://img.shields.io/badge/SemVer-v2.0.0-green)](https://semver.org/spec/v2.0.0.html)
[![docs](https://readthedocs.org/projects/aiogremlin/badge/?version=latest)](https://aiogremlin.readthedocs.io/en/latest/)
15
[![Gitter](https://badges.gitter.im/Syncleus/aparapi.svg)](https://gitter.im/Syncleus/aparapi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
davebshow's avatar
davebshow committed
16

davebshow's avatar
davebshow committed
17
[Official Documentation](http://aiogremlin.readthedocs.org/en/latest/)
davebshow's avatar
davebshow committed
18

19
`aiogremlin` is an asynchronous DSL based on the official `Gremlin-Python` GLV designed for integration with
davebshow's avatar
davebshow committed
20
event loop based asynchronous Python networking libraries, including `asyncio`,
davebshow's avatar
davebshow committed
21
`aiohttp`, and `tornado`. It uses the `async/await` syntax introduced
davebshow's avatar
davebshow committed
22
in PEP 492, and is therefore Python 3.5+ only.
davebshow's avatar
davebshow committed
23

davebshow's avatar
davebshow committed
24
`aiogremlin` tries to follow `Gremlin-Python` as closely as possible both in terms
25
of API and implementation. It is released according to the TinkerPop release schedule.
davebshow's avatar
davebshow committed
26

davebshow's avatar
davebshow committed
27
28
Note that this *NOT* an official Apache project component, it is a
*THIRD PARTY PACKAGE!*
29

davebshow's avatar
davebshow committed
30
## Getting Started
davebshow's avatar
davebshow committed
31
32

```python
davebshow's avatar
davebshow committed
33
34
import asyncio
from aiogremlin import DriverRemoteConnection, Graph
davebshow's avatar
davebshow committed
35

36

davebshow's avatar
davebshow committed
37
loop = asyncio.get_event_loop()
38
39


davebshow's avatar
davebshow committed
40
41
42
43
44
async def go(loop):
  remote_connection = await DriverRemoteConnection.open(
    'ws://localhost:8182/gremlin', 'g')
  g = Graph().traversal().withRemote(remote_connection)
  vertices = await g.V().toList()
davebshow's avatar
davebshow committed
45
  await remote_connection.close()
davebshow's avatar
davebshow committed
46
  return vertices
davebshow's avatar
davebshow committed
47

48

davebshow's avatar
davebshow committed
49
50
51
vertices = loop.run_until_complete(go(loop))
print(vertices)
# [v[1], v[2], v[3], v[4], v[5], v[6]]
52
```
53
54
55
56
57
58
59
60
61
62
63
64

## Developers

### Testing

In order to perform tests identical in nature to the integration tests we run then simply ensure you gave gitlab-runner installed then run the following command.

```bash
gitlab-runner exec docker test
```

Keep in mind this will run the tests on your local copy of the master branch so any changes not committed locally will be missed when testing.