hugegraph-python-client is the Python SDK for HugeGraph. It manages schemas, reads and writes graph data, and executes Gremlin queries. HugeGraph-LLM and HugeGraph-ML also use this client.
uv (recommended) or pipThe package is currently published on PyPI as hugegraph-python:
uv pip install hugegraph-python # Alternatively: pip install hugegraph-python
To use the latest repository code, sync the workspace from the root of the HugeGraph-AI repository:
git clone https://github.com/apache/hugegraph-ai.git cd hugegraph-ai uv sync source .venv/bin/activate
from pyhugegraph.client import PyHugeClient client = PyHugeClient( "127.0.0.1:8080", graph="hugegraph", user="admin", pwd="admin", graphspace="DEFAULT", ) schema = client.schema() schema.propertyKey("name").asText().ifNotExist().create() schema.propertyKey("birthDate").asText().ifNotExist().create() schema.vertexLabel("Person").properties("name", "birthDate") \ .usePrimaryKeyId().primaryKeys("name").ifNotExist().create() schema.vertexLabel("Movie").properties("name") \ .usePrimaryKeyId().primaryKeys("name").ifNotExist().create() schema.edgeLabel("ActedIn").sourceLabel("Person").targetLabel("Movie") \ .ifNotExist().create() graph = client.graph() person = graph.addVertex( "Person", {"name": "Al Pacino", "birthDate": "1940-04-25"} ) movie = graph.addVertex("Movie", {"name": "The Godfather"}) edge = graph.addEdge("ActedIn", person.id, movie.id, {}) print(graph.getVertexById(person.id)) print(graph.getEdgeById(edge.id)) graph.close()
If GraphSpace is disabled in HugeGraph, omit graphspace. When it is enabled, pass the actual space name; the default space is usually DEFAULT.
schema = client.schema() print(schema.getPropertyKeys()) print(schema.getVertexLabels()) print(schema.getEdgeLabels()) print(schema.getIndexLabels())
The graph API accepts dictionaries containing object properties:
graph = client.graph() graph.appendVertex(person.id, {"birthDate": "1940-04-25"}) graph.removeEdgeById(edge.id) graph.removeVertexById(person.id) graph.close()
gremlin = client.gremlin() result = gremlin.exec("g.V().limit(5)") print(result)
API parameters may change with the HugeGraph REST API version. If an interface is incompatible, first check the REST API documentation for the current server version and the client test cases.
Run formatting and static checks from the root of the HugeGraph-AI repository:
./style/code_format_and_analysis.sh
The source code and tests are under hugegraph-python-client/src/pyhugegraph/ and hugegraph-python-client/src/tests/.