def stream_to_dict()

in tbapi/__init__.py [0:0]


def stream_to_dict(db, stream, fields=None, ts_from=0, ts_to=JAVA_LONG_MAX_VALUE):
    if ts_to > JAVA_LONG_MAX_VALUE:
        ts_to = JAVA_LONG_MAX_VALUE
    if not db.isOpen():
        raise Exception('Database is not opened.')
    options = SelectionOptions()
    options.to = ts_to
    messages = []
    table = defaultdict(list)
    with open_TickCursor(stream, ts_from, options) as cursor:
        counter = 0
        while cursor.next():
            message = vars(cursor.getMessage())
            messages.append(message)
            if fields is None:
                def to_write(x):
                    return True
            else:
                def to_write(x):
                    return x in fields
            for key in table.keys():
                if key in message:
                    table[key].append(message[key])
                    del message[key]
                else:
                    table[key].append(None)
            for key in message:
                if to_write(key):
                    table[key] = [None] * counter
                    table[key].append(message[key])
            counter += 1
    return table