#!/usr/bin/env python

from __future__ import print_function

import argparse
import logging

import rosbag_pandas


def build_parser():
    """
    Builds the parser for reading the command line arguments
    :return: Argument parser
    """
    parser = argparse.ArgumentParser(description='Print one or multiple bag keys')
    parser.add_argument('-b', '--bag', help='Bag file to read',
                        required=True, type=str)
    parser.add_argument('-k', '--key',
                        help='Key you would like to print',
                        required=True, nargs='*')
    parser.add_argument('-v', '--verbose',
                        help="Log verbose",
                        default=False, action="store_true")
    return parser


if __name__ == '__main__':
    parser = build_parser()
    args = parser.parse_args()

    if args.verbose:
        logging.getLogger().setLevel(logging.DEBUG)

    topics = rosbag_pandas.topics_from_keys(args.key)
    df = rosbag_pandas.bag_to_dataframe(args.bag, include=topics)
    print(df.filter(items=args.key).to_string())
