From 4ee89b85eed6032ceae0d5578046498d210da3fc Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Tue, 28 Jul 2020 22:43:37 +0100 Subject: [PATCH] reddit: add stats() --- my/kython/klogging.py | 13 ++++++------- my/reddit.py | 11 +++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/my/kython/klogging.py b/my/kython/klogging.py index 32e02cf..dccf192 100644 --- a/my/kython/klogging.py +++ b/my/kython/klogging.py @@ -19,15 +19,16 @@ _FMT_COLOR = _FMT.format(start='%(color)s', end='%(end_color)s') _FMT_NOCOLOR = _FMT.format(start='', end='') -def setup_logger(logger: logging.Logger, level: Level) -> None: +def setup_logger(logger: logging.Logger, level: LevelIsh) -> None: + lvl = mklevel(level) try: import logzero # type: ignore except ModuleNotFoundError: import warnings warnings.warn("You might want to install 'logzero' for nice colored logs!") - logger.setLevel(level) + logger.setLevel(lvl) h = logging.StreamHandler() - h.setLevel(level) + h.setLevel(lvl) h.setFormatter(logging.Formatter(fmt=_FMT_NOCOLOR)) logger.addHandler(h) else: @@ -35,7 +36,7 @@ def setup_logger(logger: logging.Logger, level: Level) -> None: fmt=_FMT_COLOR, datefmt=None, # pass None to prevent logzero from messing with date format ) - logzero.setup_logger(logger.name, level=level, formatter=formatter) + logzero.setup_logger(logger.name, level=lvl, formatter=formatter) class LazyLogger(logging.Logger): @@ -43,13 +44,11 @@ class LazyLogger(logging.Logger): def __new__(cls, name, level: LevelIsh = 'DEBUG'): logger = logging.getLogger(name) - lvl = mklevel(level) - # this is called prior to all _log calls so makes sense to do it here? def isEnabledFor_lazyinit(*args, logger=logger, orig=logger.isEnabledFor, **kwargs): att = 'lazylogger_init_done' if not getattr(logger, att, False): # init once, if necessary - setup_logger(logger, level=lvl) + setup_logger(logger, level=level) setattr(logger, att, True) return orig(*args, **kwargs) diff --git a/my/reddit.py b/my/reddit.py index 41f7e56..c6cb76d 100755 --- a/my/reddit.py +++ b/my/reddit.py @@ -222,6 +222,17 @@ def events(*args, **kwargs) -> List[Event]: evit = _get_events(inp, *args, **kwargs) return list(sorted(evit, key=lambda e: e.cmp_key)) + +def stats(): + from .core import stat + return { + **stat(saved ), + **stat(comments ), + **stat(submissions), + **stat(upvoted ), + } + + ##