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 mince 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
async def async_collect_data(cls, **kwargs: Unpack[CollectKwargs]) -> dict[str, pl.DataFrame]:
...
@classmethod
def load_spec(cls) -> UiSpec:
...
3. (optional) Register dashboard
Adding a dashboard to the local registry makes it possible to refer to dashboards by name instead of by 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:
await mince.async_collect_dashboard_data(SomeNewDash)
# or, if registered: mince.async_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_ROOTroot directory where mince stores collected data, default~/data/minceMINCE_REGISTRYpath 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mince-0.2.4.tar.gz.
File metadata
- Download URL: mince-0.2.4.tar.gz
- Upload date:
- Size: 81.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bd026b2b1406e49e0cb6622b572ab9e04e68e214b568de8fbf804b51a885047
|
|
| MD5 |
891ff7a78a6df20f8f130cee87912649
|
|
| BLAKE2b-256 |
3d867499b230b3417f80de7d36083d04ae6a539674987db93616ff6dec8acfb3
|
File details
Details for the file mince-0.2.4-py3-none-any.whl.
File metadata
- Download URL: mince-0.2.4-py3-none-any.whl
- Upload date:
- Size: 106.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2b232533251cdf05082858c8a5615e8451a40c4841e970b8aaacfd3d8cda5b6
|
|
| MD5 |
f542d5c1b16d66805d9e29fb6b87d23f
|
|
| BLAKE2b-256 |
459ac7dcbd7a41578147c56770ce1a43646e89323b28c2180ce7ec6d96c75543
|