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='')
|
_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:
|
try:
|
||||||
import logzero # type: ignore
|
import logzero # type: ignore
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
import warnings
|
import warnings
|
||||||
warnings.warn("You might want to install 'logzero' for nice colored logs!")
|
warnings.warn("You might want to install 'logzero' for nice colored logs!")
|
||||||
logger.setLevel(level)
|
logger.setLevel(lvl)
|
||||||
h = logging.StreamHandler()
|
h = logging.StreamHandler()
|
||||||
h.setLevel(level)
|
h.setLevel(lvl)
|
||||||
h.setFormatter(logging.Formatter(fmt=_FMT_NOCOLOR))
|
h.setFormatter(logging.Formatter(fmt=_FMT_NOCOLOR))
|
||||||
logger.addHandler(h)
|
logger.addHandler(h)
|
||||||
else:
|
else:
|
||||||
|
@ -35,7 +36,7 @@ def setup_logger(logger: logging.Logger, level: Level) -> None:
|
||||||
fmt=_FMT_COLOR,
|
fmt=_FMT_COLOR,
|
||||||
datefmt=None, # pass None to prevent logzero from messing with date format
|
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):
|
class LazyLogger(logging.Logger):
|
||||||
|
@ -43,13 +44,11 @@ class LazyLogger(logging.Logger):
|
||||||
|
|
||||||
def __new__(cls, name, level: LevelIsh = 'DEBUG'):
|
def __new__(cls, name, level: LevelIsh = 'DEBUG'):
|
||||||
logger = logging.getLogger(name)
|
logger = logging.getLogger(name)
|
||||||
lvl = mklevel(level)
|
|
||||||
|
|
||||||
# this is called prior to all _log calls so makes sense to do it here?
|
# 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):
|
def isEnabledFor_lazyinit(*args, logger=logger, orig=logger.isEnabledFor, **kwargs):
|
||||||
att = 'lazylogger_init_done'
|
att = 'lazylogger_init_done'
|
||||||
if not getattr(logger, att, False): # init once, if necessary
|
if not getattr(logger, att, False): # init once, if necessary
|
||||||
setup_logger(logger, level=lvl)
|
setup_logger(logger, level=level)
|
||||||
setattr(logger, att, True)
|
setattr(logger, att, True)
|
||||||
return orig(*args, **kwargs)
|
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)
|
evit = _get_events(inp, *args, **kwargs)
|
||||||
return list(sorted(evit, key=lambda e: e.cmp_key))
|
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