mince is a toolkit for slicing up data into bite-sized dashboards
Project description
mince 🔪🧄🧅
mince
is a toolkit for slicing up data into bite-sized dashboards
The goal of mince
is to minimize the effort required to build and maintain dashboards
mince
provides a single coherent interface to help with many different dashboard-related tasks:
- ETL: data exploration, design of queries, execution of queries, persistent data storage
- UI: data visualization, custom interactive buttons
- hosting: building images, deploying images, network configuration
- live updates: collecting, storing, and serving data diffs efficiently
Table Of Contents
Getting started
1. Installation
pip install mince
2. Define a new Dashboard
class
Every dashboard needs 1) a data collector function and 2) a specification for how to display data
from mince import Dashboard, CollectKwargs, UiSpec
import polars as pl
class SomeNewDash(Dashboard):
@classmethod
def collect_data(cls, **kwargs: Unpack[CollectKwargs]) -> dict[str, pl.DataFrame]:
...
@classmethod
def load_spec(cls) -> UiSpec:
...
3. (optional) Register dashboard
Adding dashboard to the local registry makes it possible to refer to dashboards by their name instead of their class
python:
mince.register(SomeNewDash)
cli:
mince register some_module_name.SomeNewDash
4. Collect dashboard data
The collector function should return a dict of polars dataframes, which mince
will then store in its data directory.
python:
mince.collect_dashboard_data(SomeNewDash)
# or, if registered: mince.collect_dashboard_data('some_new_dash')
cli:
mince collect some_new_dash
5. Run dashboard
Running the dashboard loads the most recently collected data and serves a UI on a local port (such as http://localhost:8052)
python:
mince.run_dashboard(SomeNewDash)
# or, if registered: mince.run_dashboard('some_new_dash')
cli:
mince run some_new_dash
Environment
MINCE_ROOT
root directory where mince stores collected data, default~/data/mince
MINCE_REGISTRY
path to mince registry, defaultMINCE_ROOT/mince_registry.json
Data Collection
[WIP]
Data storage
Design goals
- use same path structure for local filesystem vs web urls
- allow atomic updates for groups of files
UI Specification
[WIP]
Command Line Interface
The mince
cli aims to automate as many of these tasks as possible
- run dashboard
mince run ... --pdb
- run dashboard with interactive debugger
mince run ... --pdb
- list info about all running dashboards
mince ls
- disk caching of loaded datasets for quick dashboard restarts
- standardized hooks for data collection
mince collect <DASHBOARD>
- cli generator to create a management cli for each dashboard
<DASHBOARD> <SUBCOMMAND> ...
- easily load a dashboard's data into an interactive python session
mince data <DASHBOARD> -i
Custom CLI's
- bypasses the registry
- takes config settings using arguments
- is meant to be intended within each dashboard package
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mince-0.2.3.tar.gz
.
File metadata
- Download URL: mince-0.2.3.tar.gz
- Upload date:
- Size: 70.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.29.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61678e419bef209dffe66fd487fac6b04d7e67ad71785cd8eea82dc0616127ea |
|
MD5 | d80faf01a25cef3fd4e50e7b30d01396 |
|
BLAKE2b-256 | 71835e57c44cca5f0604b5719cf9a8a70b3ca25c6b14cb685e4f7c48837e872e |
File details
Details for the file mince-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: mince-0.2.3-py3-none-any.whl
- Upload date:
- Size: 90.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.29.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5e99910fca3567ec591b30b712978a67889ecac7e354700d00ded64e188817c |
|
MD5 | edd1cd2f52f068ef82530f3015c765b1 |
|
BLAKE2b-256 | 0c66c19299fb1a6f397396e72abd42abb803c062cc48533b7cf4302a20492294 |