Skip to main content

Neo4j Cypher cell and line magic for IPython, Pandas, NetworkX and matplotlib

Project description

Author:

Javier de la Rosa, http://versae.es

Introduces a %cypher (and %%cypher) magic for Neo4j in IPython. Inspired by Catherine Devlin’s ipython-sql.

Connect to a graph database, using neo4jrestclient_ driver, then issue Cypher commands within IPython or IPython Notebook. See examples.

Install

As easy as usual:

pip install ipython-cypher

Usage

Inside IPython, load the extension:

%load_ext cypher

And then you are reay to go by using the %cypher line magic:

%cypher MATCH (a)-[]-(b) RETURN a, b

Some Cypher queries can be very long, in those cases the the cell magic, %%cypher comes in handy:

%%cypher
create
    // Nodes
    (Neo:Crew {name:'Neo'}),
    (Morpheus:Crew {name: 'Morpheus'}),
    (Trinity:Crew {name: 'Trinity'}),
    // Relationships
    (Neo)-[:KNOWS]->(Morpheus),
    (Neo)-[:LOVES]->(Trinity),

Note that by default ipython-cypher will connect to http://localhost:7474/db/data.

Queries results can be stored in a variable and then converted to a Pandas DataFrame:

results = %cypher MATCH (a)-[]-(b) RETURN a, b
results.get_dataframe()

Or to a NetworkX MultiDiGraph:

results.get_graph()

For more detailed descriptions, please visit the official documentation.

News

0.2.0

Release date: 20-Feb-2015

  • Added documentation.

  • Added option to run Cypher queries outside IPython

  • Added a better graph plot algorithm for matplotlib.

0.1.0

Release date: 17-Nov-2014

  • First public release of ipython-cypher

Project details


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