reddit: add stats()
This commit is contained in:
parent
a9ae6dbb7f
commit
4ee89b85ee
2 changed files with 17 additions and 7 deletions
|
@ -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)
|
||||
|
||||
|
|
11
my/reddit.py
11
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 ),
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue