| Index: tools/metrics/histograms/update_histogram_enum.py
|
| diff --git a/tools/metrics/histograms/update_histogram_enum.py b/tools/metrics/histograms/update_histogram_enum.py
|
| index fc2c1b84d90b572a393d7b5b77c2ec5975aa8354..ba975996719ce541a07445cf4a3a4c4cefb4cd23 100644
|
| --- a/tools/metrics/histograms/update_histogram_enum.py
|
| +++ b/tools/metrics/histograms/update_histogram_enum.py
|
| @@ -9,14 +9,16 @@ If the file was pretty-printed, the updated version is pretty-printed too.
|
|
|
| import logging
|
| import os
|
| -import print_style
|
| import re
|
| import sys
|
|
|
| from xml.dom import minidom
|
|
|
| sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
|
| -from diff_util import PromptUserToAcceptDiff
|
| +import diff_util
|
| +import path_util
|
| +
|
| +import print_style
|
|
|
| class UserError(Exception):
|
| def __init__(self, message):
|
| @@ -32,11 +34,15 @@ def Log(message):
|
|
|
|
|
| def ReadHistogramValues(filename, start_marker, end_marker):
|
| - """Reads in values from |filename|, returning a dictionary mapping value to
|
| - label corresponding to the enum framed by |start_marker| and |end_marker|.
|
| + """Returns a dictionary of enum values, read from a C++ file.
|
| +
|
| + Args:
|
| + filename: The unix-style path (relative to src/) of the file to open.
|
| + start_marker: A regex that signifies the start of the enum values.
|
| + end_marker: A regex that signifies the end of the enum values.
|
| """
|
| # Read the file as a list of lines
|
| - with open(filename) as f:
|
| + with open(path_util.GetInputFile(filename)) as f:
|
| content = f.readlines()
|
|
|
| START_REGEX = re.compile(start_marker)
|
| @@ -143,9 +149,7 @@ def UpdateHistogramFromDict(histogram_enum_name, source_enum_values,
|
| to histograms.xml citing that the values in |histogram_enum_name| were
|
| sourced from |source_enum_path|.
|
| """
|
| - # TODO(ahernandez.miralles): The line below is present in nearly every
|
| - # file in this directory; factor out into a central location
|
| - HISTOGRAMS_PATH = 'histograms.xml'
|
| + HISTOGRAMS_PATH = path_util.GetHistogramsFile()
|
|
|
| Log('Reading existing histograms from "{0}".'.format(HISTOGRAMS_PATH))
|
| with open(HISTOGRAMS_PATH, 'rb') as f:
|
| @@ -159,7 +163,7 @@ def UpdateHistogramFromDict(histogram_enum_name, source_enum_values,
|
|
|
| Log('Writing out new histograms file.')
|
| new_xml = print_style.GetPrintStyle().PrettyPrintNode(histograms_doc)
|
| - if not PromptUserToAcceptDiff(
|
| + if not diff_util.PromptUserToAcceptDiff(
|
| xml, new_xml, 'Is the updated version acceptable?'):
|
| Log('Cancelled.')
|
| return
|
| @@ -172,9 +176,14 @@ def UpdateHistogramFromDict(histogram_enum_name, source_enum_values,
|
|
|
| def UpdateHistogramEnum(histogram_enum_name, source_enum_path,
|
| start_marker, end_marker):
|
| - """Updates |histogram_enum_name| enum in histograms.xml file with values
|
| - read from |source_enum_path|, where |start_marker| and |end_marker| indicate
|
| - the beginning and end of the source enum definition, respectively.
|
| + """Reads a C++ enum from a .h file and updates histograms.xml to match.
|
| +
|
| + Args:
|
| + histogram_enum_name: The name of the XML <enum> attribute to update.
|
| + source_enum_path: A unix-style path, relative to src/, giving
|
| + the C++ header file from which to read the enum.
|
| + start_marker: A regular expression that matches the start of the C++ enum.
|
| + end_marker: A regular expression that matches the end of the C++ enum.
|
| """
|
|
|
| Log('Reading histogram enum definition from "{0}".'.format(source_enum_path))
|
|
|