added CLI; added comment about tags where keys are useful info
This commit is contained in:
43
e2sci.py
43
e2sci.py
@@ -1,5 +1,31 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Convert an elog dump to a scilog json",
|
||||||
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument("-d", "--dump", default="dump", help="Folder containing the elog dump")
|
||||||
|
parser.add_argument("-a", "--authors", default="authors.json", help="JSON file containing the author mapping")
|
||||||
|
parser.add_argument("-o", "--output", default="scilog.json", help="Output file name")
|
||||||
|
|
||||||
|
parser.add_argument("-u", "--default-user", default="default", help="Default user")
|
||||||
|
parser.add_argument("-p", "--default-pgroup", default="default", help="Default pgroup")
|
||||||
|
|
||||||
|
clargs = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
fn_authors = clargs.authors
|
||||||
|
fn_dump = clargs.dump
|
||||||
|
fn_output = clargs.output
|
||||||
|
|
||||||
|
default_user = clargs.default_user
|
||||||
|
default_pgroup = clargs.default_pgroup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from glob import iglob
|
from glob import iglob
|
||||||
import json
|
import json
|
||||||
|
|
||||||
@@ -13,12 +39,6 @@ def json_save(what, filename, *args, indent=4, sort_keys=True, **kwargs):
|
|||||||
json.dump(what, f, *args, indent=indent, sort_keys=sort_keys, **kwargs)
|
json.dump(what, f, *args, indent=indent, sort_keys=sort_keys, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
default_pgroup = "default"
|
|
||||||
default_author = "default"
|
|
||||||
|
|
||||||
|
|
||||||
mapped = {
|
mapped = {
|
||||||
# "Author": "createdBy",
|
# "Author": "createdBy",
|
||||||
"Date": "timestamp",
|
"Date": "timestamp",
|
||||||
@@ -41,6 +61,9 @@ special = [
|
|||||||
"Title"
|
"Title"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# The key of the tags is not written into the output since it does not look to be very useful information for the given examples
|
||||||
|
# if there was a case where the key is useful, we could write "Key:Value" as tag instead of just "Value".
|
||||||
|
# We might want to introduce a separate category (tags_with_keys) for these.
|
||||||
tags = [
|
tags = [
|
||||||
"Component",
|
"Component",
|
||||||
"Entry",
|
"Entry",
|
||||||
@@ -55,9 +78,9 @@ tags = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
authors = json_load("authors.json")
|
authors = json_load(fn_authors)
|
||||||
|
|
||||||
fns = sorted(iglob("dump/msg*.json"))
|
fns = sorted(iglob(fn_dump + "/msg*.json"))
|
||||||
res = []
|
res = []
|
||||||
for fn in fns:
|
for fn in fns:
|
||||||
data_out = {}
|
data_out = {}
|
||||||
@@ -85,7 +108,7 @@ for fn in fns:
|
|||||||
|
|
||||||
# treat special entries
|
# treat special entries
|
||||||
author = data_in.pop("Author")
|
author = data_in.pop("Author")
|
||||||
author = authors.get(author, default_author)
|
author = authors.get(author, default_user)
|
||||||
data_out["createdBy"] = author
|
data_out["createdBy"] = author
|
||||||
|
|
||||||
pgroup = data_in.pop("P-Group", default_pgroup)
|
pgroup = data_in.pop("P-Group", default_pgroup)
|
||||||
@@ -127,7 +150,7 @@ for fn in fns:
|
|||||||
res.append(data_out)
|
res.append(data_out)
|
||||||
|
|
||||||
|
|
||||||
json_save(res, "scilog.json")
|
json_save(res, fn_output)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user