#!/usr/bin/env python # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import models import presubmit_util # Model definitions for rappor.xml content _SUMMARY_TYPE = models.TextNodeType('summary') _NOISE_VALUES_TYPE = models.ObjectNodeType('noise-values', float_attributes=[ 'fake-prob', 'fake-one-prob', 'one-coin-prob', 'zero-coin-prob', ]) _NOISE_LEVEL_TYPE = models.ObjectNodeType( 'noise-level', extra_newlines=(1, 1, 1), string_attributes=['name'], children=[ models.ChildType('summary', _SUMMARY_TYPE, False), models.ChildType('values', _NOISE_VALUES_TYPE, False),
# Copyright 2020 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Model objects for histograms.xml contents.""" import os import sys import re sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import models _OBSOLETE_TYPE = models.TextNodeType('obsolete') _OWNER_TYPE = models.TextNodeType('owner', single_line=True) _COMPONENT_TYPE = models.TextNodeType('component', single_line=True) _SUMMARY_TYPE = models.TextNodeType('summary', single_line=True) # A key for sorting XML nodes by the lower case of the value of |attribute|. _LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower()) # A key for sorting XML nodes by the value of |attribute|, cast as integer. _INTEGER_FN = lambda attribute: (lambda node: int(node.get(attribute))) # A constant function as the sorting key for nodes whose orderings should be # kept as given in the XML file within their parent node. _KEEP_ORDER = lambda node: 1 # A function for natural-sorting XML nodes, used for sorting <suffix> by their # name attribute in a way that humans understand. # i.e. "suffix11" should come after "suffix2"
# Copyright 2017 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # """Model objects for ukm.xml contents.""" import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import models # Model definitions for ukm.xml content _OBSOLETE_TYPE = models.TextNodeType('obsolete') _OWNER_TYPE = models.TextNodeType('owner', single_line=True) _SUMMARY_TYPE = models.TextNodeType('summary') _LOWERCASE_NAME_FN = lambda n: n.get('name').lower() _ENUMERATION_TYPE = models.ObjectNodeType('enumeration', attributes=[], single_line=True) _QUANTILES_TYPE = models.ObjectNodeType('quantiles', attributes=[ ('type', unicode, None), ], single_line=True) _INDEX_TYPE = models.ObjectNodeType('index', attributes=[ ('fields', unicode, None),
# Copyright 2020 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Model objects for actions.xml contents.""" import os import sys import re sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import models _OBSOLETE_TYPE = models.TextNodeType('obsolete', single_line=True) _OWNER_TYPE = models.TextNodeType('owner', single_line=True) _DESCRIPTION_TYPE = models.TextNodeType('description', single_line=True) # A key for sorting XML nodes by the value of |attribute|. # Used for sorting tags by their name attribute _LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower()) # A constant function as the sorting key for nodes whose orderings should be # kept as given in the XML file within their parent node. _KEEP_ORDER = lambda node: 1 _ACTION_TYPE = models.ObjectNodeType( 'action', attributes=[ ('name', str, None), ('not_user_triggered', str, r'^$|^true|false|True|False$'), ], required_attributes=['name'],