Skip to main content

Python Driver for ArangoDB

Project description

https://cloud.githubusercontent.com/assets/2701938/18018900/668e15d2-6ba7-11e6-85a9-7997b3c6218a.png

Travis Build Status Documentation Status Package Version Python Versions Test Coverage Issues Open MIT License

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

This version

3.3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-arango-3.3.0.tar.gz (63.1 kB view details)

Uploaded Source

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

Hashes for python-arango-3.3.0.tar.gz
Algorithm Hash digest
SHA256 2b5bf87b615914253f8cb32a3134b0e4d3509207720f36215d50fcb2e62b6de9
MD5 7b9de10ff693d4748f2dc85458e63863
BLAKE2b-256 338738d4192dd5a35f815fbf226a4e24636299b9b38e9bd24c67a6bd81cb04f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page