'Initializes the dashboard
@param config: the default configuration for this dashboard
@param layouts: custom layouts to override/extend the available
layouts, as dict {name: (label, class)}'

def __init__(self, config, layouts=None):

    if (not isinstance(config, S3DashboardConfig)):
        config = S3DashboardConfig(config)
    self._config = config
    self.context = S3DashboardContext(dashboard=self)
    available_layouts = dict(self.layouts)
    if layouts:
        available_layouts.update(layouts)
    self.available_layouts = available_layouts
    self._agents = None
