Skip to content

imetallica/python-arango

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • High ArangoDB REST API coverage

Compatibility

  • Python versions 2.7.x, 3.4.x, 3.5.x and 3.6.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:

~$ pip install -e git+git@github.com:joowani/python-arango.git@master#egg=python-arango

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, breadth-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!

About

Python Driver for ArangoDB, a NoSQL graph database

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • Shell 0.2%