def widget_overrides(cls): if cls._widget_overrides is None: # build a collated version of all its children's widget lists widgets = {} for handler_class in cls.children: widgets.update(handler_class.widget_overrides()) cls._widget_overrides = widgets return cls._widget_overrides