����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����403WebShell
403Webshell
Server IP : 74.208.127.88  /  Your IP : 3.15.195.46
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64
User : www-data ( 33)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /snap/core20/current/lib/python3/dist-packages/cloudinit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /snap/core20/current/lib/python3/dist-packages/cloudinit/performance.py
import functools
import logging
import time

LOG = logging.getLogger(__name__)


class Timed:
    """
    A context manager which measures and optionally logs context run time.

    :param msg: A message that describes the thing that is being measured
    :param threshold: Threshold, in seconds. When the context exceeds this
        threshold, a log will be made.
    :param log_mode: Control whether to log. Defaults to "threshold". Possible
        values include:
        "always" - Always log 'msg', even when 'threshold' is not reached.
        "threshold" - Log when context time exceeds 'threshold'.
        "skip" - Do not log. Context time and message are stored in the
            'output' and 'delta' attributes, respectively. Used to manually
            coalesce with other logs at the call site.

    usage:

        this call:
        ```
        with Timed("Configuring the network"):
            run_configure()
        ```

        might produce this log:
        ```
            Configuring the network took 0.100 seconds
        ```
    """

    def __init__(
        self,
        msg: str,
        *,
        threshold: float = 0.01,
        log_mode: str = "threshold",
    ):
        self.msg = msg
        self.threshold = threshold
        self.log_mode = log_mode
        self.output = ""
        self.start = 0.0
        self.delta = 0.0

    def __enter__(self):
        self.start = time.monotonic()
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.delta = time.monotonic() - self.start
        suffix = f"took {self.delta:.3f} seconds"
        if "always" == self.log_mode:
            LOG.debug("%s %s", self.msg, suffix)
        elif "skip" == self.log_mode:
            return
        elif "threshold" == self.log_mode:
            if self.delta > self.threshold:
                LOG.debug("%s %s", self.msg, suffix)
                self.output = f"{self.msg} {suffix}"
        else:
            raise ValueError(
                f"Invalid Timed log_mode value: '{self.log_mode}'."
            )


def timed(msg: str, *, threshold: float = 0.01, log_mode: str = "threshold"):
    """
    A decorator which measures and optionally logs context run time.

    :param msg: A message that describes the thing that is being measured
    :param threshold: Threshold, in seconds. When the context exceeds this
        threshold, a log will be made.
    :param log_mode: Control whether to log. Defaults to "threshold". Possible
        values include:
        "always" - Always log 'msg', even when 'threshold' is not reached.
        "threshold" - Log when context time exceeds 'threshold'.

    usage:

        this call:
        ```
        @timed("Configuring the network")
        def run_configure():
            ...
        ```

        might produce this log:
        ```
            Configuring the network took 0.100 seconds
        ```
    """

    def wrapper(func):
        @functools.wraps(func)
        def decorator(*args, **kwargs):
            with Timed(msg, threshold=threshold, log_mode=log_mode):
                return func(*args, **kwargs)

        return decorator

    return wrapper

Youez - 2016 - github.com/yon3zu
LinuXploit