def Get(self, fields=None):
    """Gets this metric's value corresponding to the given fields values."""
    if self.fields_defs is None and fields is not None:
      raise ValueError("Metric was registered without fields, "
                       "but following fields were provided: %s." % fields)

    if self.fields_defs is not None and fields is None:
      raise ValueError("Metric was registered with fields (%s), "
                       "but no fields were provided." % self.fields_defs)

    if (self.fields_defs is not None and fields is not None and
        len(self.fields_defs) != len(fields)):
      raise ValueError("Metric was registered with %d fields (%s), but "
                       "%d fields were provided (%s)." % (len(self.fields_defs),
                                                          self.fields_defs,
                                                          len(fields),
                                                          fields))

    try:
      return self._values[self._FieldsToKey(fields)]
    except __HOLE__:
      return self._DefaultValue()
dataset/ETHPy150Open google/grr/grr/lib/stats.py/_Metric.Get