Add script to list full details for a mrva-list file
This commit is contained in:
committed by
=Michael Hohn
parent
d1f56ae196
commit
742b059a49
64
client/qldbtools/bin/mc-rows-from-mrva-list
Executable file
64
client/qldbtools/bin/mc-rows-from-mrva-list
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
"""
|
||||||
|
Script to list full details for a mrva-list file
|
||||||
|
|
||||||
|
1. reads files containing
|
||||||
|
{
|
||||||
|
"mirva-list": [
|
||||||
|
"NLPchina/elasticsearch-sqlctsj168cc4",
|
||||||
|
"LMAX-Exchange/disruptorctsj3e75ec",
|
||||||
|
"justauth/JustAuthctsj8a6177",
|
||||||
|
"FasterXML/jackson-modules-basectsj2fe248",
|
||||||
|
"ionic-team/capacitor-pluginsctsj38d457",
|
||||||
|
"PaddlePaddle/PaddleOCRctsj60e555",
|
||||||
|
"elastic/apm-agent-pythonctsj21dc64",
|
||||||
|
"flipkart-incubator/zjsonpatchctsjc4db35",
|
||||||
|
"stephane/libmodbusctsj54237e",
|
||||||
|
"wso2/carbon-kernelctsj5a8a6e",
|
||||||
|
"apache/servicecomb-packctsj4d98f5"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
2. reads a pandas dataframe stored in a csv file
|
||||||
|
3. selects all rows from 2. that contain the 'owner' column matching
|
||||||
|
the string before the slash from 1. and the 'name' column matching
|
||||||
|
the string between the slash and the marker 'ctsj'
|
||||||
|
|
||||||
|
"""
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
|
||||||
|
#
|
||||||
|
#* Process command line
|
||||||
|
#
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="""Script to list full details for a mrva-list file""")
|
||||||
|
parser.add_argument('mrva_list', type=str,
|
||||||
|
help='The JSON file containing the mrva-list')
|
||||||
|
parser.add_argument('info_csv', type=str,
|
||||||
|
help='The CSV file containing the full information')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
#* Step 1: Read the JSON file containing the "mirva-list"
|
||||||
|
with open(args.mrva_list, 'r') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
# Extract and parse the "mirva-list"
|
||||||
|
mirva_list = data['mirva-list']
|
||||||
|
parsed_mirva_list = []
|
||||||
|
for item in mirva_list:
|
||||||
|
owner_name = item.split('/')[0]
|
||||||
|
repo_name = item.split('/')[1].split('ctsj')[0]
|
||||||
|
parsed_mirva_list.append((owner_name, repo_name))
|
||||||
|
|
||||||
|
#* Step 2: Read the CSV file into a pandas dataframe
|
||||||
|
import pandas as pd
|
||||||
|
df = pd.read_csv(args.info_csv)
|
||||||
|
|
||||||
|
#* Step 3: Filter the dataframe based on the parsed "mirva-list"
|
||||||
|
filtered_df = df[
|
||||||
|
df.apply(lambda row:
|
||||||
|
(row['owner'], row['name']) in parsed_mirva_list, axis=1)]
|
||||||
|
|
||||||
|
# Optionally, you can save the filtered dataframe to a new CSV file
|
||||||
|
filtered_df.to_csv(sys.stdout, index=False)
|
||||||
Reference in New Issue
Block a user