def __init__(self,<EOL>html_id=None,<EOL>title=None,<EOL>description=None,<EOL>widgets=None,<EOL>template=None,<EOL>context=None,<EOL>**kwargs):
if widgets is not None:<EOL><INDENT>if not isinstance(widgets, (list, tuple)):<EOL><INDENT>raise AttributeError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>if not all([isinstance(e, Widget) for e in widgets]):<EOL><INDENT>raise ValueError('<STR_LIT>')  <EOL><DEDENT>try:<EOL><INDENT>self.widgets = widgets<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._widgets = widgets<EOL><DEDENT><DEDENT>self.type = '<STR_LIT>'<EOL>if html_id is not None:<EOL><INDENT>try:<EOL><INDENT>self.html_id = html_id<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._html_id = html_id<EOL><DEDENT><DEDENT>if title is not None:<EOL><INDENT>try:<EOL><INDENT>self.title = title<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._title = title<EOL><DEDENT><DEDENT>if description is not None:<EOL><INDENT>try:<EOL><INDENT>self.description = description<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._description = description<EOL><DEDENT><DEDENT>if template is not None:<EOL><INDENT>try:<EOL><INDENT>self.template = template<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._template = template<EOL><DEDENT><DEDENT>if context is not None:<EOL><INDENT>try:<EOL><INDENT>self.context = context<EOL><DEDENT>except AttributeError:<EOL><INDENT>self._context = context<EOL><DEDENT><DEDENT>for kw, arg in kwargs.items():<EOL><INDENT>setattr(self, kw, arg)<EOL><DEDENT>
Init method.

Args:
    html_id (str): an ID to set on the HTML box.
    title (str): a title to display on the top of the box.
    description (str): a description to display after the title box.
    widgets (list): the box's list of widgets.
    template (str): the path to a custom template to use for this box.
    context (dict): additional context to pass to the box.