tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

monitors.py (1957B)


      1 # Copyright 2024 The Chromium Authors
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 """ The module to provide measurements when it's supported. """
      5 
      6 import os
      7 import sys
      8 
      9 from contextlib import AbstractContextManager
     10 
     11 from common import DIR_SRC_ROOT
     12 
     13 PROTO_DIR = os.path.abspath(
     14    os.path.join(DIR_SRC_ROOT, 'build', 'util', 'lib', 'proto'))
     15 if os.path.isdir(PROTO_DIR):
     16    sys.path.append(PROTO_DIR)
     17    # pylint: disable=import-error, unused-import
     18    from measures import average, clear, count, data_points, dump, tag, \
     19            time_consumption
     20 else:
     21 
     22    class Dummy(AbstractContextManager):
     23        """Dummy implementation when measures components do not exist."""
     24 
     25        # pylint: disable=no-self-use
     26        def record(self, *_) -> None:
     27            """Dummy implementation of Measure.record."""
     28 
     29        # pylint: disable=no-self-use
     30        def dump(self) -> None:
     31            """Dummy implementation of Measure.dump."""
     32            # Shouldn't be called.
     33            assert False
     34 
     35        # pylint: disable=no-self-use
     36        def __enter__(self) -> None:
     37            pass
     38 
     39        # pylint: disable=no-self-use
     40        def __exit__(self, *_) -> bool:
     41            return False
     42 
     43    def average(*_) -> Dummy:
     44        """Dummy implementation of measures.average."""
     45        return Dummy()
     46 
     47    def count(*_) -> Dummy:
     48        """Dummy implementation of measures.count."""
     49        return Dummy()
     50 
     51    def clear(*_) -> None:
     52        """Dummy implementation of measures.clear."""
     53 
     54    def data_points(*_) -> Dummy:
     55        """Dummy implementation of measures.data_points."""
     56        return Dummy()
     57 
     58    def time_consumption(*_) -> Dummy:
     59        """Dummy implementation of measures.time_consumption."""
     60        return Dummy()
     61 
     62    def dump(*_) -> None:
     63        """Dummy implementation of measures.dump."""
     64 
     65    def tag(*_) -> None:
     66        """Dummy implementation of measures.tag."""