Source code for now.log.log

import datetime
import os
import sys
import time
from functools import wraps

from jina.logging.logger import JinaLogger
from yaspin.core import Yaspin


[docs]def yaspin_extended(*args, **kwargs): return YaspinExtended(*args, **kwargs)
[docs]class YaspinExtended(Yaspin): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def __enter__(self): if 'NOW_CI_RUN' in os.environ: self.now_ci_run_t0 = time.time() return self else: return super().__enter__() def __exit__(self, exc_type, exc_val, traceback): if 'NOW_CI_RUN' not in os.environ: return super().__exit__(exc_type, exc_val, traceback) else: # inspired from Yaspin._freeze and Yaspin._compose_out elapsed_time = time.time() - self.now_ci_run_t0 sec, fsec = divmod(round(100 * elapsed_time), 100) text = self._text + " ({}.{:02.0f})\n".format( datetime.timedelta(seconds=sec), fsec ) with self._stdout_lock: sys.stdout.write(text)
[docs] def ok(self, text="OK"): if 'NOW_CI_RUN' not in os.environ: return super().ok(text=text) else: if text: self._text = text + ' ' + self._text
[docs] def fail(self, text="FAIL"): if 'NOW_CI_RUN' not in os.environ: return super().fail(text=text) else: if text: self._text = text + ' ' + self._text
[docs]def time_profiler(fun): @wraps(fun) def profiled_fun(*args, **kwargs): if 'NOW_CI_RUN' in os.environ: t0 = time.time() result = fun(*args, **kwargs) if 'NOW_CI_RUN' in os.environ: elapsed_time = time.time() - t0 sec, fsec = divmod(round(100 * elapsed_time), 100) logger.debug( "Time to execute {}.{}: ({}.{:02.0f})".format( fun.__module__, fun.__name__, datetime.timedelta(seconds=sec), fsec ) ) return result return profiled_fun
os.environ['JINA_LOG_LEVEL'] = os.environ.get('JINA_LOG_LEVEL', 'INFO') logger = JinaLogger("app")