An object mapper for the neo4j graph database.
Project description
An Object Graph Mapper (OGM) for the neo4j graph database, built on the awesome neo4j_driver
Familiar Django model style definitions.
Powerful query API.
Enforce your schema through cardinality restrictions.
Full transaction support.
Thread safe.
pre/post save/delete hooks.
Django integration via django_neomodel
Documentation
Available on readthedocs.
Requirements
Python 3.6+
neo4j 3.0, 3.1, 3.2, 3.3
Installation
Install from pypi (recommended):
$ pip install neomodel-next
To install from github:
$ pip install git+git://github.com/MardanovTimur/neomodel-next.git@HEAD#egg=neomodel-next-master
Upgrading 2.x to 3.x
Now utilises neo4j_driver as the backend which uses bolt so neo4j 3 is required
Connection now set through config.DATABASE_URL (see getting started docs)
The deprecated category() method on StructuredNode has been removed
The deprecated index property on StructuredNode has been removed
The streaming=True flag is now irrelevant with bolt and produces a deprecation warning
Batch operations must now be wrapped in a transaction in order to be atomic
Indexing NodeSets returns a single node now as opposed to a list
Contributing
Ideas, bugs, tests and pull requests always welcome.
Running the test suite
Make sure you have a Neo4j database version 3 or higher to run the tests on. (it will wipe this database for each test run):
$ export NEO4J_BOLT_URL=bolt://neo4j:neo4j@localhost:7687 # (the default)
Setup a virtual environment, install neomodel for development and run the test suite:
$ virtualenv venv $ source venv/bin/activate $ python setup.py develop $ pytest
If your running a neo4j database for the first time the test suite will set the password to ‘test’.
If you have docker-compose installed, you can run the test suite against all supported Python interpreters and neo4j versions:
# in the project's root folder: $ ./tests-with-docker-compose.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.