Skip to main content

A small example DSL using gremlinpython

Project description

gremlin-dsl

A small example Gremlin DSL for the toy Modern database.

About

There aren't many complete examples of building a domain specific language (DSL) using the Gremlin Python driver. This is a small example Python package that implements a DSL for the Modern toy database, served using the Gremlin Server.

Usage Notes

The first necessary step is to install the Gremlin server:

$ curl -o gremlin-server.zip https://dlcdn.apache.org/tinkerpop/3.6.0/apache-tinkerpop-gremlin-server-3.6.0-bin.zip
$ unzip gremlin-server.zip
$ rm -rf gremlin-server.zip

The link for the latest release of the Gremlin Server can be found here.

Next, start the server with the Modern config:

$ cd apache-tinkerpop-gremlin-server-3.6.0/
$ bin/gremlin-server.sh conf/gremlin-server-modern.yaml

Docs on using the Gremlin Server can be found here.

The package can then be installed from PyPi:

$ pip install gremlin-dsl

With the server running, you can use to the DSL to write queries against the Modern database:

from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
from gremlin_python.process.anonymous_traversal import traversal

from gremlin_dsl.core_dsl import get_db_endpoint
from gremlin_dsl.core_dsl import SocialTraversalSource

def main():
    endpoint = get_db_endpoint()
    connection = DriverRemoteConnection(endpoint, "g")

    social = traversal(SocialTraversalSource).with_remote(endpoint)

    print(social.persons("marko").knows("josh"))

    connection.close()

if __name__ == "__main__":
  main()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gremlin-dsl-0.3.0.tar.gz (3.6 kB view hashes)

Uploaded Source

Built Distribution

gremlin_dsl-0.3.0-py3-none-any.whl (3.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page