def __init__(self, path): jpype.attachThreadToJVM() jpype.java.lang.System.setProperty("neo4j.ext.udc.source", "altneo4j") self._db = EmbeddedGraphDatabase(path) operations = GlobalGraphOperations.at(self._db) self.nodes = Nodes(self._db, operations) self.relationships = Relationships(self._db, operations)
class GraphDB(object): def __init__(self, path): jpype.attachThreadToJVM() jpype.java.lang.System.setProperty("neo4j.ext.udc.source", "altneo4j") self._db = EmbeddedGraphDatabase(path) operations = GlobalGraphOperations.at(self._db) self.nodes = Nodes(self._db, operations) self.relationships = Relationships(self._db, operations) def transaction(self): """Allows usage of the with-statement for Neo4j transactions:: with graphdb.transaction: doMutatingOperations() """ tx = self._db.beginTx() try: yield tx tx.success() finally: tx.finish() transaction = contextmanager(transaction) def node(self, **properties): node = self._db.createNode() for key, val in properties.items(): node[key] = val return Node(node) def close(self): self._db.shutdown()