Overview
What is Sprout?
Sprout is a Python package that is designed to help build a data package. Importantly, Sprout provides tools to create high-quality metadata that is accurately connected to the data. Specifically, Sprout builds prepared and tidied data and well-documented metadata into the core components of a data package:
- Data in a tidy format, stored in Apache Parquet format in a standardized location.
- Metadata that follows specific standards (currently the Frictionless Data Package specification) that correctly connects to the underlying data.
Once these are built in the data package, they are ready for bundling, versioning, and distribution to be shared and used.
Why use it?
There are many tools for processing, cleaning, and transforming data, and for storing them in databases on servers and building data warehouses. However, few tools are specifically designed around building a set of data that follows basic software development lifecycle practices and principles. In particular, as a cohesive and reproducible package development processes that can be easily audited, versioned, and distributed.
Sprout integrates a few key standards and practices to help build a fantastic dataset along with its metadata. In that way, it ensures the data will be more easily usable for later analysis, for finding the right data needed for the analysis, and for better understanding of what is actually in the data.
Sprout has two main component: a command-line interface (CLI) and a Python library. The CLI is used to simplify the process of creating metadata and building up the pieces of the data package, while the Python library contains tools to help with programmatic extraction and creation of metadata.
Learning more
This website contains documentation on Sprout’s design, how to use it, and details about the interface.
- How-to guide: The guide section provides a step-by-step introduction to using Sprout, including installation, setup, and creating and managing data packages.
- Reference: The reference section contains detailed information about the Sprout Python Package API, specifically the documentation of individual classes, methods, and functions.
- Design: The design section describes the architecture and interface of Sprout, the requirements, use-cases, user personas, and the C4 model.
If you are interested in learning more about similar tools, we have only found a few that are related though with quite different purposes and use-cases, such as:
- Open Data Editor: Is a web- and click-based tool for creating and editing data packages.
- gen3: Is a web-based platform for building data commons.
Contributors
The following people have contributed to this project by submitting pull requests 🎉
@fruvago, @joelostblom, @K-Beicher, @lwjohnst86, @pchmia, @philter87, @signekb