Skip to main content

Memgraph database adapter for Python language

Project description

pymgclient is a Memgraph database adapter for Python programming language compliant with the DB-API 2.0 specification described by PEP 249.

mgclient module is the current implementation of the adapter. It is implemented in C as a wrapper around mgclient, the official Memgraph client library. As a C extension, it is only compatible with the CPython implementation of the Python programming language.

pymgclient only works with Python 3.

Prerequisites

Build prerequisites

pymgclient is a C wrapper around the mgclient Memgraph client library. To install it from sources you will need:

  • Python 3.5 or newer
  • A C compiler supporting C11 standard
  • Python header files
  • mgclient header files

Once prerequisites are met, you can install pymgclient using pip to download it from PyPI:

$ pip3 install pymgclient

or using setup.py if you have downloaded the source package locally:

$ python3 setup.py build
$ python3 setup.py install

Runtime requirements

mgclient Python module requires mgclient shared library at runtime (usually distributed as libmgclient.so). The module relies on the host OS to find the location. If the library is installed in a standard location, there should be no problems. Otherwise, you will have to let the mgclient module how to find it (usually by setting the LD_LIBRARY_PATH environment variable).

You will also need OpenSSL libraries required by the mgclient C library.

Running the test suite

Once mgclient is installed, you can run the test suite to verify it is working correctly. From the source directory, you can run:

$ python3 -m pytest

To run the tests, you will need to have Memgraph, pytest and pyopenssl installed on your machine. The tests will try to start the Memgraph binary from the standard installation path (usually /usr/lib/memgraph/memgraph) listening on port 7687. You can configure a different path or port by setting the following environment variables:

  • MEMGRAPH_PATH
  • MEMGRAPH_PORT

Documentation

Online documentation can be found on GitHub pages.

You can also build a local version of the documentation by running make from the docs directory. You will need Sphinx installed in order to do that.

Code sample

Here is an example of an interactive session showing some of the basic commands:

>>> import mgclient

# Make a connection to the database
>>> conn = mgclient.connect(host='127.0.0.1', port=7687)

# Create a cursor for query execution
>>> cursor = conn.cursor()

# Execute a query
>>> cursor.execute("""
        CREATE (n:Person {name: 'John'})-[e:KNOWS]->
               (m:Person {name: 'Steve'})
        RETURN n, e, m
    """)

# Fetch one row of query results
>>> row = cursor.fetchone()

>>> print(row[0])
(:Person {'name': 'John'})

>>> print(row[1])
[:KNOWS]

>>> print(row[2])
(:Person {'name': 'Steve'})

# Make database changes persistent
>>> conn.commit()

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

pymgclient-0.1.0.tar.gz (30.7 kB view hashes)

Uploaded Source

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