code: def _combined_asides(cls):  # pylint: disable=no-self-argument
          
          # The method declares what views it decorates. We rely on `dir`
          # to handle subclasses and overrides.
          combined_asides = defaultdict(None)
          for _view_name, view_func in inspect.getmembers(cls, lambda attr: hasattr(attr, '_aside_for')):
              aside_for = getattr(view_func, '_aside_for', [])
              for view in aside_for:
                  combined_asides[view] = view_func.__name__
          return combined_asides
docs: A dictionary mapping XBlock view names to the aside method that
          decorates them (or None, if there is no decorator for the specified view).