News | Documentation | Code | Developers

What Is Graphine?

Graphine is a flexible, easy-to-use graph library for Python 3. It was developed with four key goals in mind:

  1. No external dependencies- no graphics toolkits, no math libraries, just pure Python.
  2. Python 3 readiness- if you’re looking at moving your application to Python 3, at least you won’t have to port your graph library too.
  3. Flexibility- we aim to support many different graph use cases, from flow networks and planar graphs to tree walking and DAGs.
  4. Ease of use- no graph library, however powerful, is useful if you can’t figure it out. We try to make that as painless as possible.

Who Should Use Graphine

  1. Developers faced with a data set that naturally decomposes into a graph, but who are unwilling to reinvent graph theory to properly represent it. We make it easy to inspect graphs for special properties, add data and structural elements, and extend graphs for application-specific behavior.
  2. Non-mathematicians who need to process complex data structures but aren’t familiar with the formal methods for doing so in the graph context. Graphine doesn’t require a strong mathematical background to use, and is flexible enough to permit graph problems to be represented in their most natural form.
  3. Students and teachers looking for a clean, easy-to-understand example of how graph algorithms are supposed to behave.
  4. Graph theorists looking for a tool to rapidly sketch out a complex problem without the hassle of manual memory management.

How to Get Graphine

Just clone from this repository:

user@host:~$ git clone git://gitorious.org/graphine/mainline.git graphine

and run the setup script:

user@host:~$ cd graphine
user@host:~/graphine$ sudo ./setup.py install

and you should be done. To test your installation, just do:

user@host:~/graphine$ cd graph
user@host:~/graphine/graph$ ./test.py CorrectnessTest

and if all goes well, you should see a bunch of dots and an ‘OK’ message at the bottom. Otherwise, contact us- we need to know what’s wrong if we’re going to fix it.

How to Contribute to Graphine

Whether you’re a graph theoretician with a big heart, a developer with too much time on your hands, or just a helpful citizen, we want your help in making Graphine as good as it can possibly be! We need suggestions on what new features to add, testers to make sure that the ones we've got work as intended, writers to keep the documentation coming, and of course code is welcome. If you’re interested in developing with us, have an idea, or have spotted a bug, hop on the google group and let us know. Also, we’re looking for server space for our planned release packages, and we deeply appreciate donations of either money or technical books. You can get in touch with us privately via my email address: debatem1@gmail.com.