- component callbacks should now be declared in
def component_callbacks(self, app)instead of_register_callbacks(). Although for now the old_register_callbacks()will still work.
- added .id(), .Input(), .Output() and .State() methods to DashComponent
- basically just tags +'-'+self.name to the end of a component_id
- results in somewhat cleaner callbacks:
html.Div(id=self.id("output-div") @app.callback( self.Output("output-div", "children"), self.Input("input-first-n", "value") ) def update_div(first_n): ...
- If you add a parameter
filepathto yourDashFigureFactoryyou can.dump()without specifying a filepath as it defaults to the filepath parameter.- If that
DashFigureFactoryis parameter for aDashComponent(orDashApp), you can then load the pickled object instead of rebuilding theDashFigureFactoryfrom scratch. This is useful for when you have a computationally expensive build process for yourDashFigureFactory. You can indicate that you would like to try to load from pickles or only wish to load from pickles by passingtry_pickles=Trueorforce_pickles=Truewhen loading from config:
DashApp.from_yaml("dashboard.yaml", try_pickles=True)`
- If that
DashComponentTabs: generate adcc.Tabswrapper with a list ofdcc.Tabchildren based on a list ofDashComponentsubcomponents.DashConnector: aConnectorcan generate callbacks betweenDashComponentinstances. This makes connections between components also modular and re-usable.- Documentation here
- Cleaned up querystring code
DashAppnow ta