Skip to main content

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

  1. Getting started
  2. Data Collection
  3. UI Specification
  4. Command Line Interface

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, default MINCE_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

mince-0.2.3.tar.gz (70.5 kB view details)

Uploaded Source

Built Distribution

mince-0.2.3-py3-none-any.whl (90.8 kB view details)

Uploaded Python 3

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

Hashes for mince-0.2.3.tar.gz
Algorithm Hash digest
SHA256 61678e419bef209dffe66fd487fac6b04d7e67ad71785cd8eea82dc0616127ea
MD5 d80faf01a25cef3fd4e50e7b30d01396
BLAKE2b-256 71835e57c44cca5f0604b5719cf9a8a70b3ca25c6b14cb685e4f7c48837e872e

See more details on using hashes here.

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

Hashes for mince-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b5e99910fca3567ec591b30b712978a67889ecac7e354700d00ded64e188817c
MD5 edd1cd2f52f068ef82530f3015c765b1
BLAKE2b-256 0c66c19299fb1a6f397396e72abd42abb803c062cc48533b7cf4302a20492294

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page