#!/usr/bin/env python """ Read a table of CodeQL DB information, group entries by (owner,name,CID), sort each group by creationTime, and keep only the top (newest) element. """ import argparse import logging # #* Configure logger # logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') # Overwrite log level set by minio root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) # #* Process command line # parser = argparse.ArgumentParser( description=""" Read a table of CodeQL DB information, group entries by (owner,name), sort each group by creationTime and keep only the top (newest) element. """) args = parser.parse_args() # #* Collect the information and select subset # import pandas as pd import sys df0 = pd.read_csv(sys.stdin) df_sorted = df0.sort_values(by=['owner', 'name', 'CID', 'creationTime']) df_unique = df_sorted.groupby(['owner', 'name', 'CID']).first().reset_index() df_unique.to_csv(sys.stdout, index=False) # Local Variables: # python-shell-virtualenv-root: "~/work-gh/mrva/mrvacommander/client/qldbtools/venv/" # End: