automated Dash framework with templates
Project description
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):
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 turbo_dash-0.5.0.tar.gz.
File metadata
- Download URL: turbo_dash-0.5.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03b33db93aeb088710f2dc8bcdab397f76e185c3503c0162b6b832ca5055fd23
|
|
| MD5 |
23ab2fa6babb67fcb3a7a4afd0d7705e
|
|
| BLAKE2b-256 |
a2db9758135889d63a00580b4a466bcf6894480606d691c74b75f916610d9695
|
File details
Details for the file turbo_dash-0.5.0-py3-none-any.whl.
File metadata
- Download URL: turbo_dash-0.5.0-py3-none-any.whl
- Upload date:
- Size: 62.7 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
686690511f042808f8c123ea8128bab15c40ec34f7599f1c29bc994b25b9e1e7
|
|
| MD5 |
9e0b328f1e1a7976b6dd5e513e6fc8a7
|
|
| BLAKE2b-256 |
ee615bcc9afcfcf0aebdea881749c3158584bd0d717cec0d2f3c18dcc003fa02
|