Skip to content

Repository files navigation

nebula-python

This repository holds the official Python API for Nebula Graph.

Before you start

Before you start, please read this section to choose the right branch for you. The compatibility between the API and Nebula Graph service can be found in How to choose nebula-python. The current master branch is compatible with Nebula Graph 3.0.

The directory structure

|--nebula-python
|
|-- nebula3 // client code
| |-- fbthrift // the fbthrift lib code
| |-- common | |-- data | |-- graph | |-- meta | |-- net // the net code for graph client
| |-- storage | |-- Config.py // the pool config
| |__ Exception.py // the define exception
| |-- examples
| |-- GraphClientMultiThreadExample.py // the multi thread example
| |-- GraphClientSimpleExample.py // the simple example
| |__ ScanVertexEdgeExample.py |
|-- tests // the test code
| |-- setup.py // used to install or package
| |__ README.md // the introduction of nebula3-python

How to get nebula3-python

Option one: install with pip

# for v3.xpipinstallnebula3-python==$version# for v2.xpipinstallnebula2-python==$version

Option two: install from the source code

  • Clone from GitHub
git clone https://github.com/vesoft-inc/nebula-python.git
cd nebula-python
  • Install
pipinstall .

Quick example to use graph-client to connect graphd

fromnebula3.gclient.netimportConnectionPoolfromnebula3.ConfigimportConfig# define a configconfig=Config()
config.max_connection_pool_size=10# init connection poolconnection_pool=ConnectionPool()
# if the given servers are ok, return true, else return falseok=connection_pool.init([('127.0.0.1', 9669)], config)
# option 1 control the connection release yourself# get session from the poolsession=connection_pool.get_session('root', 'nebula')
# select spacesession.execute('USE nba')
# show tagsresult=session.execute('SHOW TAGS')
print(result)
# release sessionsession.release()
# option 2 with session_context, session will be released automaticallywithconnection_pool.session_context('root', 'nebula') assession:
session.execute('USE nba')
result=session.execute('SHOW TAGS')
print(result)
# close the poolconnection_pool.close()

Quick example to use storage-client to scan vertex and edge

You should make sure the scan client can connect to the address of storage which see from SHOW HOSTS

fromnebula3.mclientimportMetaCache, HostAddrfromnebula3.sclient.GraphStorageClientimportGraphStorageClient# the metad servers's addressmeta_cache=MetaCache([('172.28.1.1', 9559),
('172.28.1.2', 9559),
('172.28.1.3', 9559)],
50000)
# option 1 metad usually discover the storage address automaticallygraph_storage_client=GraphStorageClient(meta_cache)
# option 2 manually specify the storage addressstorage_addrs= [HostAddr(host='172.28.1.4', port=9779),
HostAddr(host='172.28.1.5', port=9779),
HostAddr(host='172.28.1.6', port=9779)]
graph_storage_client=GraphStorageClient(meta_cache, storage_addrs)
resp=graph_storage_client.scan_vertex(
space_name='ScanSpace',
tag_name='person')
whileresp.has_next():
result=resp.next()
forvertex_datainresult:
print(vertex_data)
resp=graph_storage_client.scan_edge(
space_name='ScanSpace',
edge_name='friend')
whileresp.has_next():
result=resp.next()
foredge_datainresult:
print(edge_data)

How to choose nebula-python

Nebula-Python VersionNebulaGraph Version
1.01.x
2.0.02.0.0/2.0.1
2.5.02.5.0
2.6.02.6.0/2.6.1
3.0.03.0.0
mastermaster

How to contribute to nebula-python

Fork this repo, then clone it locally (be sure to replace the {username} in the repo URL below with your GitHub username):

git clone https://github.com/{username}/nebula-python.git
cd nebula-python

Install the package in the editable mode, then install all the dev dependencies:

pip install -e .
pip install -r requirements/dev.txt

Make sure the Nebula server in running, then run the tests with pytest:

pytest

Using the default formatter with black.

Please run make fmt to format python code before submitting.

See How to contribute for the general process of contributing to Nebula projects.

About

Client API of Nebula Graph in Python

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages