code: def display_hook(fn):
      
      @wraps(fn)
      def wrapped(element):
          global FULL_TRACEBACK
          if Store.current_backend is None:
              return {}, {}
  
          try:
              max_frames = OutputSettings.options['max_frames']
              mimebundle = fn(element, max_frames=max_frames)
              if mimebundle is None:
                  return {}, {}
              mime_data, mime_metadata = mimebundle
              if 'text/javascript' in mime_data:
                  mime_data['text/html'] = mimebundle_to_html(mime_data)
                  del mime_data['text/javascript']
  
              # Only want to add to the archive for one display hook...
              disabled_suffixes = ['png_display', 'svg_display']
              if not any(fn.__name__.endswith(suffix) for suffix in disabled_suffixes):
                  if type(holoviews.archive) is not FileArchive:
                      holoviews.archive.add(element, html=mime_data['text/html'])
              filename = OutputSettings.options['filename']
              if filename:
                  Store.renderers[Store.current_backend].save(element, filename)
              return mime_data, mime_metadata
          except SkipRendering as e:
              if e.warn:
                  sys.stderr.write(str(e))
              return {}, {}
          except AbbreviatedException as e:
              FULL_TRACEBACK = '\n'.join(traceback.format_exception(e.etype,
                                                                    e.value,
                                                                    e.traceback))
              info = dict(name=e.etype.__name__,
                          message=str(e.value).replace('\n','<br>'))
              msg =  '<i> [Call holoviews.ipython.show_traceback() for details]</i>'
              return {'text/html': "<b>{name}</b>{msg}<br>{message}".format(msg=msg, **info)}, {}
  
          except Exception:
              raise
      return wrapped
docs: A decorator to wrap display hooks that return a MIME bundle or None.
      Additionally it handles adding output to the notebook archive, saves
      files specified with the output magic and handles tracebacks.