Developer’s Guide to Willow¶
Welcome to the Willow developer guide. This documentation is geared towards developers who wish to understand how Willow works behind the scenes. It contains information that will help you get started with modifying and extending the project as per your own needs.
Overview¶
On a high level, Willow operates on a client-server model, whereby an Angular.js front end communicates over WebSockets to a Flask backend. The Flask backend serves the assets for the Angular app, and when requested, performs data cleaning and processing operations asynchronously through Celery workers. Willow is powered by the pandas
data science library, with all user models being represented by a pandas.DataFrame
object in memory on the server. Data operations requested by the user are queued to be executed asynchronously by Celery workers. All Celery tasks eventually call functions in our dcs Python package which serves as a façade to the pandas
library.