| #!/usr/bin/env vpython3 |
| |
| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import argparse |
| import re |
| from pathlib import Path |
| |
| import util |
| |
| # Path to the directory where this script is. |
| SCRIPT_DIR = Path(__file__).resolve().parent |
| |
| # Absolute path to chrome/src. |
| SRC_DIR = SCRIPT_DIR.parents[3] |
| |
| # Default value of the |annotations_file| argument. |
| 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))) |