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:
playground:
Deploying in Production
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)
| File | Size | Uploaded | |
|---|---|---|---|
| turbo_dash-0.5.0.tar.gz | 52.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|