Пример #1
0
    children=[
        models.ChildType('metrics', _RAPPOR_METRIC_TYPE, True),
    ])

_RAPPOR_CONFIGURATION_TYPE = models.ObjectNodeType(
    'rappor-configuration',
    extra_newlines=(1, 1, 1),
    dont_indent=True,
    children=[
        models.ChildType('noiseLevels', _NOISE_LEVELS_TYPE, False),
        models.ChildType('parameterTypes', _RAPPOR_PARAMETERS_TYPES_TYPE,
                         False),
        models.ChildType('metrics', _RAPPOR_METRICS_TYPE, False),
    ])

RAPPOR_XML_TYPE = models.DocumentType(_RAPPOR_CONFIGURATION_TYPE)


def GetTypeNames(config):
    return set(p['name'] for p in config['parameterTypes']['types'])


def GetMissingOwnerErrors(metrics):
    """Check that all of the metrics have owners.

  Args:
    metrics: A list of rappor metric description objects.

  Returns:
    A list of errors about metrics missing owners.
  """
Пример #2
0
                                                         multiple=False),
                                        models.ChildType('metrics',
                                                         _METRIC_TYPE,
                                                         multiple=True),
                                    ])

_UKM_CONFIGURATION_TYPE = models.ObjectNodeType(
    'ukm-configuration',
    alphabetization=[('event', _LOWERCASE_NAME_FN)],
    extra_newlines=(2, 1, 1),
    indent=False,
    children=[
        models.ChildType('events', _EVENT_TYPE, multiple=True),
    ])

UKM_XML_TYPE = models.DocumentType(_UKM_CONFIGURATION_TYPE)


def UpdateXML(original_xml):
    """Parses the original xml and return a pretty printed version.

  Args:
    original_xml: A string containing the original xml file contents.

  Returns:
    A pretty-printed xml string, or None if the config contains errors.
  """
    config = UKM_XML_TYPE.Parse(original_xml)

    return UKM_XML_TYPE.PrettyPrint(config)
Пример #3
0
                                                            multiple=True),
                                       ])

CONFIGURATION_TYPE = models.ObjectNodeType(
    'structured-metrics',
    alphabetization=[
        (_EVENTS_TYPE.tag, lambda _: 1),
        (_PROJECTS_TYPE.tag, lambda _: 2),
    ],
    extra_newlines=(2, 1, 1),
    indent=False,
    children=[
        models.ChildType(_EVENTS_TYPE.tag, _EVENTS_TYPE, multiple=False),
        models.ChildType(_PROJECTS_TYPE.tag, _PROJECTS_TYPE, multiple=False),
    ])

XML_TYPE = models.DocumentType(CONFIGURATION_TYPE)


def PrettifyXML(original_xml):
    """Parses the original xml and return a pretty printed version.

  Args:
    original_xml: A string containing the original xml file contents.

  Returns:
    A pretty-printed xml string, or None if the config contains errors.
  """
    config = XML_TYPE.Parse(original_xml)
    return XML_TYPE.PrettyPrint(config)
        (_ENUMS_TYPE.tag, _KEEP_ORDER),
        (_HISTOGRAMS_TYPE.tag, _KEEP_ORDER),
        (_HISTOGRAM_SUFFIXES_LIST_TYPE.tag, _KEEP_ORDER),
    ],
    extra_newlines=(2, 1, 1),
    indent=False,
    children=[
        models.ChildType(_ENUMS_TYPE.tag, _ENUMS_TYPE, multiple=False),
        models.ChildType(_HISTOGRAMS_TYPE.tag, _HISTOGRAMS_TYPE,
                         multiple=False),
        models.ChildType(_HISTOGRAM_SUFFIXES_LIST_TYPE.tag,
                         _HISTOGRAM_SUFFIXES_LIST_TYPE,
                         multiple=False),
    ])

HISTOGRAM_CONFIGURATION_XML_TYPE = models.DocumentType(
    _HISTOGRAM_CONFIGURATION_TYPE)


def PrettifyTree(input_tree):
  """Parses the tree representation of the XML and return a
  pretty-printed version.

  Args:
    input_tree: A tree representation of the XML, which might take the
    form of an ET tree or minidom doc.

  Returns:
    A pretty-printed xml string, or None if the config contains errors.
  """
  histograms = HISTOGRAM_CONFIGURATION_XML_TYPE.Parse(input_tree)
  return HISTOGRAM_CONFIGURATION_XML_TYPE.PrettyPrint(histograms)
Пример #5
0
_ACTIONS_TYPE = models.ObjectNodeType(
    'actions',
    alphabetization=[
        (_ACTION_TYPE.tag, _LOWERCASE_FN('name')),
        (_ACTION_SUFFIX_TYPE.tag, lambda n: None),
    ],
    extra_newlines=(2, 1, 1),
    indent=False,
    children=[
        models.ChildType(_ACTION_TYPE.tag, _ACTION_TYPE, multiple=True),
        models.ChildType(_ACTION_SUFFIX_TYPE.tag,
                         _ACTION_SUFFIX_TYPE,
                         multiple=True),
    ])

ACTION_XML_TYPE = models.DocumentType(_ACTIONS_TYPE)


def PrettifyTree(minidom_doc):
    """Parses the input minidom document and return a pretty-printed
  version.

  Args:
    minidom_doc: A minidom document.

  Returns:
    A pretty-printed xml string, or None if the config contains errors.
  """
    actions = ACTION_XML_TYPE.Parse(minidom_doc)
    return ACTION_XML_TYPE.PrettyPrint(actions)