Skip to main content

turbo_dash

automated Dash framework with templates

Quickstart

pip install turbo-dash

Goal

The goal of the turbo_dash project is to create a wrapper for plotly dash that allows an inexperienced python developer to quickly create a simple, clean, interactive, easy to manipulate dashboard.

OKRs

Objectives Key Results Status
1. `turbo_dash` requires minimal python, plotly, or dash knowledge to create a fully functional dashboard, as measured by: i. less than 10 lines of code required per object grey
ii. full documentation with examples for every developer-facing object grey
iii. a suite of user-friendly templates that design the layout for the developer grey
2. `turbo_dash` executes commands quickly and displays minimal lag between input and output, as measured by: i. less than 1s load times for datasets up to 1M rows on a standard laptop CPU grey
3. `turbo_dash` doesn't break, as measured by: i. comprehensive test suite grey
ii. full type-hinting with no errors shown by `mypy` grey

Example app

./app.py

import turbo_dash

# grab our data
df = turbo_dash.data.gapminder()

# Here's where all the magic happens. This creates our dashboard.
turbo_dashboard = turbo_dash.turbo_dashboard(
    # template
    template='turbo-dark',

    # dashboard pages
    dashboard_page_list=[
        # App 1
        turbo_dash.turbo_dashboard_page(
            # page information
            url='/app1',
            name='App 1',

            # data
            df=df,  # setting our data at the page level allows us to use different datasets for each page

            # menu filters, i.e. dropdown, slider, etc
            menu_filter_list=[
                turbo_dash.turbo_filter(filter_type='Dropdown-multi', column='country'),
                turbo_dash.turbo_filter(filter_type='RangeSlider', column='year'),
            ],

            # outputs, i.e. graphs, images, etc
            output_list=[
                # bar graph of population vs year
                turbo_dash.turbo_output(
                    output_type='bar',
                    x='year',
                    y='pop',
                    color='continent',
                    hover_name='country',
                ),

                # line graph of life expectancy vs year with an input to change the y axis to a different column
                turbo_dash.turbo_output(
                    output_type='line',
                    x='year',
                    y='lifeExp',
                    color='country',
                    chart_input_list=['y'],
                ),
            ],
        ),

        # App 2
        turbo_dash.turbo_dashboard_page(
            # page information
            url='/app2',
            name='App 2',

            # data
            df=df,  # setting our data at the page level allows us to use different datasets for each page

            # menu filters, i.e. dropdown, slider, etc
            menu_filter_list=[
                turbo_dash.turbo_filter(filter_type='Checklist', column='continent'),
            ],

            # outputs, i.e. graphs, images, etc
            output_list=[
                # line graph of gdpPercap vs year
                turbo_dash.turbo_output(
                    output_type='line',
                    x='year',
                    y='gdpPercap',
                    color='country',
                ),
            ],
        ),

        # Playground
        turbo_dash.turbo_dashboard_page(
            # page information
            url='/playground',
            name='Playground',

            # data
            df=df,  # setting our data at the page level allows us to use different datasets for each page

            # menu filters, i.e. dropdown, slider, etc
            menu_filter_list=[
                turbo_dash.turbo_filter(filter_type='Checklist', column='continent'),
                turbo_dash.turbo_filter(filter_type='Dropdown-multi', column='country'),
                turbo_dash.turbo_filter(filter_type='RangeSlider', column='year'),
            ],

            # outputs, i.e. graphs, images, etc
            output_list=[
                # line graph of gdpPercap vs year
                turbo_dash.turbo_output(
                    output_type='line',
                    x='year',
                    y='gdpPercap',
                    color='country',
                    chart_input_list=[
                        'output_type',
                        'x',
                        'y',
                        'z',
                        'color',
                        'size',
                        'hover_name',
                        'hover_data',
                        'locations',
                        'locationmode',
                        'projection',
                    ],
                ),
            ],
        ),

    ],
)

# Execute the code in a development environment. For deploying in production, see the "Deploying in Production" 
#   section of the README here: https://github.com/turbo3136/turbo_dash/blob/master/README.md
if __name__ == '__main__':
    server = turbo_dashboard.run_dashboard(app_name=__name__)

Screenshots

app1: app1

playground: app1

Deploying in Production

reference

What I did (probably unstable and stupid):

Metadata

Release files for turbo-dash 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for turbo-dash 0.5.0
File Size Uploaded
turbo_dash-0.5.0.tar.gz 52.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for turbo-dash 0.5.0
File Interpreter ABI Platform
turbo_dash-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 114.7 kB

Release files / turbo_dash-0.5.0.tar.gz

Download URL turbo_dash-0.5.0.tar.gz
Size 52.0 kB
Tags Source
SHA-256 checksum
How to use checksums
03b33db93aeb088710f2dc8bcdab397f76e185c3503c0162b6b832ca5055fd23
BLAKE2b-256 checksum
How to use checksums
a2db9758135889d63a00580b4a466bcf6894480606d691c74b75f916610d9695
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1.post20200807 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

Release files / turbo_dash-0.5.0-py3-none-any.whl

Download URL turbo_dash-0.5.0-py3-none-any.whl
Size 62.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
686690511f042808f8c123ea8128bab15c40ec34f7599f1c29bc994b25b9e1e7
BLAKE2b-256 checksum
How to use checksums
ee615bcc9afcfcf0aebdea881749c3158584bd0d717cec0d2f3c18dcc003fa02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1.post20200807 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page