code: def stream(self, opNames=[], *args, **kwargs):
          
          for op in self.ops(**kwargs):
              if not opNames or op["op"][0] in opNames:
                  r = {
                      "type": op["op"][0],
                      "timestamp": op.get("timestamp"),
                      "block_num": op.get("block_num"),
                  }
                  r.update(op["op"][1])
                  yield r
docs: Yield specific operations (e.g. comments) only
  
              :param array opNames: List of operations to filter for
              :param int start: Start at this block
              :param int stop: Stop at this block
              :param str mode: We here have the choice between
                   * "head": the last block
                   * "irreversible": the block that is confirmed by 2/3 of all
                      block producers and is thus irreversible!
  
              The dict output is formated such that ``type`` caries the
              operation type, timestamp and block_num are taken from the
              block the operation was stored in and the other key depend
              on the actualy operation.