import argparse
import re
from pathlib import Path
import util
SCRIPT_DIR = Path(__file__).resolve().parent
SRC_DIR = SCRIPT_DIR.parents[3]
ANNOTATIONS_XML_PATH = 'tools/traffic_annotation/summary/annotations.xml'
if __name__ == '__main__':
args_parser = argparse.ArgumentParser(
description='Reads annotations.xml and outputs a mapping of unique IDs '
'to their hashes.',
prog='hashes.py')
args_parser.add_argument(
'annotations_file',
nargs='?',
default=SRC_DIR / ANNOTATIONS_XML_PATH,
type=Path,
help='Optional path to a summary file containing all annotations. '
'Defaults to {}.'.format(ANNOTATIONS_XML_PATH))
args = args_parser.parse_args()
xml = args.annotations_file.read_text(encoding='utf-8')
unique_ids = sorted(re.findall(r'id="([^"]+)"', xml))
for unique_id in unique_ids:
print('{}\t{}'.format(unique_id, util.compute_hash_value(unique_id)))