class_docstr: Realtime clock for live trading.
  
  This class is a drop-in replacement for
  :class:`zipline.gens.sim_engine.MinuteSimulationClock`.
  
  This is a stripped down version because crypto exchanges run
  around the clock.
  
  The :param:`time_skew` parameter represents the time difference between
  the Broker and the live trading machine's clock.
code: def __iter__(self):
      self.handle_late_start()
      yield pd.Timestamp.utcnow(), SESSION_START
  
      while True:
          current_time = pd.Timestamp.utcnow()
          current_minute = current_time.floor("1 min")
  
          if self.end is not None and current_minute >= self.end:
              break
          if (
              self._last_emit is None
              or current_minute > self._last_emit
          ):
              log.debug(
                  "emitting minutely bar: {}".format(current_minute)
              )
  
              self._last_emit = current_minute
              yield current_minute, BAR
          else:
              sleep(1)
  
      yield current_minute, SESSION_END
  
file_path: catalyst/catalyst/exchange/simple_clock.py
imports: from time import sleep
  import pandas
  from catalyst.constants import LOG_LEVEL
  from catalyst.gens.sim_engine import BAR, SESSION_START, SESSION_END
  from logbook import Logger
label_desc: Use image node_id 2 for calling the SimpleClock obj's underlying member method code with example usage: obj.__iter__() without return types