Bonobo is a data-processing toolkit for python 3.5+

Write atomic data transformations using simple python callables.
Connect them in a directed graph.
Execute.
Get startedLearn more

What is Bonobo?

Bonobo is an Extract-Transform-Load framework for Python 3.5+.
It provides tools for building transformation graphs, using plain python primitives, and execute them in parallel.
Extract ...

You can either use the built in extractors for standard file formats (CSV, JSON, XML, XLS, ...), use official add-ons to connect to usual external services (SQL), or write your own extractors.

Transform ...

Once you generated a data stream, you can apply your changes using simple python.

Load ...

Wrangling data is great, but keeping it around is better. Use our standard writers (CSV, JSON, XML, XLS, ...) or connect to your custom services.

... in a Simple

Tired of learning new APIs? We promise you'll be up and running in 10 minutes, if you know some python.

... Atomic

One focus of software development is to create small tools, with a specific purpose (think UNIX ...), that can be chained. It enables easy unit testing, and improves a lot system maintainability.

... and Pythonic way!

It's just python ! We worked hard to provide the most transparent possible API, using the most standard data structures you already know. And you can benefit from all the ecosystem library to connect to basically anything.

Show me !

Monkeys at work

Let's see it in action, because a line of code is worth a thousand words.
Find some data to wrangle...

Extracting data is the first step of any regular transformation.
Any source python can talk to is supported, as Bonobo is regular python. Use SQLAlchemy, OAuth based services, APIs, Open-Data, LDAP, etc.

Anything, really.

Process it at will...

Transform the data using standard operations. More complex operations (like joins/products, sort, etc.) are supported by builtin configurable transformation classes.

Save it somewhere...

Save your data. In a database, in a file, on a remote service, etc. Once again, regular python means you can use anything available out there, and as you know, python cheese shop is pretty complete.

Create a graph, and execute it.

Run the thing. A lot of different execution strategies are supported, but the reasonable defaults should be sufficient, for now. Either execute it using the python interpreter (python mygraph.py), the provided CLI (bonobo run) or within a docker container (using bonobo runc)

Read more examples...

Announcements

Low volume, get a change list summary of major releases, along with important announcements.

We'll get in touch soon!

Now open your inbox and click the subscription link, so we know you're the real owner of this address.

Oops! Something went wrong while submitting the form. And we're not even able to tell you what... Maybe your e-mail was invalid?

Latest news

Bonobo v.0.3

Just released Bonobo 0.3. Lots of new features, stability enhancements, better internal plumbery... You should upgrade your projects as soon as possible, and of course make feedback if anything goes wrong.