See features & entrypoints listed below.
from dash_entrypoints import run_entrypoint
kwargs = {}
run_entrypoint(**kwargs)
from dash_entrypoints.misc import load_app_data
from dash_entrypoints import run_entrypoint
app_data_file = "/some/file/path"
app_data = load_app_data(file=app_data_file)
run_entrypoint(app_data=app_data)
Show arguments
ifentry --help
Example call
ifentry --app-name TEST-NAME \
--ip-address 192.168.100.10 \
--views-module 'mypackage.page_subpackage' \
--assets-folder '/path/to/assets/folder' \
--port 9050 \
--debug
See for elements in from interfaces_entrypoint import elements
from dash_entrypoints.elements.table_with_dropdown import add_table_with_dropdown_columns
kwargs = {}
table = add_table_with_dropdown_columns(**kwargs)
from dash_entrypoints.elements.table_for_selection import add_table_for_selection
kwargs = {}
table = add_table_for_selection(**kwargs)
from dash_entrypoints.elements.table_for_editing import add_table_with_editable_columns
kwargs = {}
table = add_table_with_editable_columns(**kwargs)
from dash_entrypoints.elements.popup_for_information import add_popup_for_information
popup_list = [
{
"name": "success",
"title": "Successfully inserted new entry.",
"text": None,
"close_button": False,
"is_open": False,
},
{"name": "error", "title": "Error during insert", "close_button": True},
]
popup_layout, popup_list = add_popup_for_information(popup_list=popup_list)
# Add to main layout...
# Note: `popup_layout` is a list of popup layout objects
# TODO, see Issue #3
This tool helps to minimise boilerplate code while dynamically combining inner layout elements with a button in the outer layout that triggers a callback function that can be connected to the inner elements via (state, variable) tuples.
This function takes a part layout as list of dash layout elements, e.g. one or multiple tables, and a callback function plus the adequate states that feed data into the callback. The callback trigger is a button that gets added to the outer layout.
The outer callback wrapper only hands down the input data to the given callback function for processing.
(See examples add__example_callback_wrapper_dropdown
and add__example_callback_wrapper_selection
)
from dash_entrypoints.elements.table_layout_wrapper import wrap_part_layout_for_callback
To write a plugin, create a module .py file and add at least a method plug
to it.
Data can be assigned (& virtually treated like a global attribute of the dash
module if assigned as attribute to it in the plug
method).
Writing plugins for Dash does not seem to be documented yet, but logic of plugins can be observed in some repos on github.com/plotly
or at dash_labs.plugins.pages
.
See also dash_entrypoints.plugins
for examples.
import dash
def plug(app):
# Assign data to `dash` module
dash.some_plugin_data_container = {}
# Plugin logic (Manipulate data here)
# ...
import dash
from dash_entrypoints.plugins import minimalplugin
app = dash.Dash(
plugins=[minimalplugin],
)
# Test here that `dash` already has the attribute from `minimalplugin`
print(dash.minimal_plugin_attribute)
# >> {'test1': 1}
Contributions are welcome! Please open issues or pull requests or get in touch.
Rollik, Lars B. (2022). Dash entrypoints: . doi: 10.5281/zenodo.6412527.
BibTeX
@misc{rollik2021rpi,
author = {Lars B. Rollik},
title = {{Dash entrypoints: }},
year = {2022},
month = apr,
publisher = {Zenodo},
url = {https://doi.org/10.5281/zenodo.6412527},
doi = {10.5281/zenodo.6412527},
}
This software is released under the BSD 3-Clause License
Version: "0.2.3"