# Copyright 2024 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """ The module to provide measurements when it's supported. """ import os import sys from contextlib import AbstractContextManager from common import DIR_SRC_ROOT PROTO_DIR = os.path.abspath( os.path.join(DIR_SRC_ROOT, 'build', 'util', 'lib', 'proto')) if os.path.isdir(PROTO_DIR): sys.path.append(PROTO_DIR) # pylint: disable=import-error, unused-import from measures import average, clear, count, data_points, dump, tag, \ time_consumption else: class Dummy(AbstractContextManager): """Dummy implementation when measures components do not exist.""" # pylint: disable=no-self-use def record(self, *_) -> None: """Dummy implementation of Measure.record.""" # pylint: disable=no-self-use def dump(self) -> None: """Dummy implementation of Measure.dump.""" # Shouldn't be called. assert False # pylint: disable=no-self-use def __enter__(self) -> None: pass # pylint: disable=no-self-use def __exit__(self, *_) -> bool: return False def average(*_) -> Dummy: """Dummy implementation of measures.average.""" return Dummy() def count(*_) -> Dummy: """Dummy implementation of measures.count.""" return Dummy() def clear(*_) -> None: """Dummy implementation of measures.clear.""" def data_points(*_) -> Dummy: """Dummy implementation of measures.data_points.""" return Dummy() def time_consumption(*_) -> Dummy: """Dummy implementation of measures.time_consumption.""" return Dummy() def dump(*_) -> None: """Dummy implementation of measures.dump.""" def tag(*_) -> None: """Dummy implementation of measures.tag."""