Python Driver for ArangoDB
Project description
Welcome to the GitHub page for python-arango, a Python driver for ArangoDB.
Features
Clean, Pythonic interface
Lightweight
95%+ ArangoDB REST API coverage
Compatibility
Python versions 2.7.x, 3.4.x and 3.5.x are supported
Latest version of python-arango (3.x) supports ArangoDB 3.x only
Older versions of python-arango support ArangoDB 1.x ~ 2.x only
Installation
To install a stable version from PyPi:
pip install python-arango
To install the latest version directly from GitHub:
git clone https://github.com/joowani/python-arango.git
cd python-arango
python setup.py install
You may need to use sudo depending on your environment setup.
Getting Started
Here is a simple usage example:
from arango import ArangoClient
# Initialize the client for ArangoDB
client = ArangoClient(
protocol='http',
host='localhost',
port=8529,
username='root',
password='',
enable_logging=True
)
# Create a new database named "my_database"
db = client.create_database('my_database')
# Create a new collection named "students"
students = db.create_collection('students')
# Add a hash index to the collection
students.add_hash_index(fields=['name'], unique=True)
# Insert new documents into the collection
students.insert({'name': 'jane', 'age': 19})
students.insert({'name': 'josh', 'age': 18})
students.insert({'name': 'jake', 'age': 21})
# Execute an AQL query
result = db.aql.execute('FOR s IN students RETURN s')
print([student['name'] for student in result])
Here is another example involving graphs:
from arango import ArangoClient
client = ArangoClient()
# Create a new graph
graph = client.db('my_database').create_graph('my_graph')
students = graph.create_vertex_collection('students')
courses = graph.create_vertex_collection('courses')
takes = graph.create_edge_definition(
name='takes',
from_collections=['students'],
to_collections=['courses']
)
# Insert vertices
students.insert({'_key': '01', 'full_name': 'Anna Smith'})
students.insert({'_key': '02', 'full_name': 'Jake Clark'})
students.insert({'_key': '03', 'full_name': 'Lisa Jones'})
courses.insert({'_key': 'MAT101', 'title': 'Calculus'})
courses.insert({'_key': 'STA101', 'title': 'Statistics'})
courses.insert({'_key': 'CSC101', 'title': 'Algorithms'})
# Insert edges
takes.insert({'_from': 'students/01', '_to': 'courses/MAT101'})
takes.insert({'_from': 'students/01', '_to': 'courses/STA101'})
takes.insert({'_from': 'students/01', '_to': 'courses/CSC101'})
takes.insert({'_from': 'students/02', '_to': 'courses/MAT101'})
takes.insert({'_from': 'students/02', '_to': 'courses/STA101'})
takes.insert({'_from': 'students/03', '_to': 'courses/CSC101'})
# Traverse the graph in outbound direction, breath-first
traversal_results = graph.traverse(
start_vertex='students/01',
strategy='bfs',
direction='outbound'
)
print(traversal_results['vertices'])
Please read the full API documentation for more details!
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.
Source Distribution
File details
Details for the file python-arango-3.3.0.tar.gz.
File metadata
- Download URL: python-arango-3.3.0.tar.gz
- Upload date:
- Size: 63.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b5bf87b615914253f8cb32a3134b0e4d3509207720f36215d50fcb2e62b6de9
|
|
| MD5 |
7b9de10ff693d4748f2dc85458e63863
|
|
| BLAKE2b-256 |
338738d4192dd5a35f815fbf226a4e24636299b9b38e9bd24c67a6bd81cb04f9
|