class_docstr: Hooks implementation for displaying progress.
  
  Parameters
  ----------
  publisher_factory : callable
      Function producing a new object with a ``publish()`` method that takes
      a ``ProgressModel`` and publishes progress to a consumer.
class_docstr_tok: ["Hooks","implementation","for","displaying","progress",".","Parameters","--","--","--","--","--","publisher_factory",":","callable","Function","producing","a","new","object","with","a","``","publish","(",")","``","method","that","takes","a","``","ProgressModel","``","and","publishes","progress","to","a","consumer","."]
code: def running_pipeline(self, pipeline, start_date, end_date):
      self._start_date = start_date
      self._end_date = end_date
  
      try:
          yield
      except Exception:
          if self._model is None:
              # This will only happen if an error happens in the Pipeline
              # Engine beteween entering `running_pipeline` and the first
              # `computing_chunk` call. If that happens, just propagate the
              # exception.
              raise
          self._model.finish(success=False)
          self._publish()
          raise
      else:
          self._model.finish(success=True)
          self._publish()
      finally:
          self._reset_transient_state()
  
imports: from collections import namedtuple
  import time
  from interface import implements
  from zipline.utils.compat import contextmanager, escape_html
  from zipline.utils.string_formatting import bulleted_list
  from .iface import PipelineHooks
label_desc: Use image node_id 6 for calling the ProgressHooks obj's underlying member method code with example usage: obj.running_pipeline(pipeline, start_date, end_date) without return types