Add json highlighting; make debug msgs white

kivy_mainline_and_py3.8
Tyler Goodlet 2018-01-26 11:31:11 -05:00
parent 9e8ed392d4
commit 534ba0b698
2 changed files with 20 additions and 4 deletions

View File

@ -4,7 +4,9 @@ Log like a forester!
""" """
import sys import sys
import logging import logging
import json
import colorlog import colorlog
from pygments import highlight, lexers, formatters
_proj_name = 'piker' _proj_name = 'piker'
@ -12,7 +14,8 @@ _proj_name = 'piker'
# (NOTE: we use the '{' format style) # (NOTE: we use the '{' format style)
# Here, `thin_white` is just the laymen's gray. # Here, `thin_white` is just the laymen's gray.
LOG_FORMAT = ( LOG_FORMAT = (
"{bold_white}{thin_white}{asctime}{reset}" # "{bold_white}{log_color}{asctime}{reset}"
"{log_color}{asctime}{reset}"
" {bold_white}{thin_white}({reset}" " {bold_white}{thin_white}({reset}"
"{thin_white}{threadName}{reset}{bold_white}{thin_white})" "{thin_white}{threadName}{reset}{bold_white}{thin_white})"
" {reset}{log_color}[{reset}{bold_log_color}{levelname}{reset}{log_color}]" " {reset}{log_color}[{reset}{bold_log_color}{levelname}{reset}{log_color}]"
@ -32,9 +35,9 @@ STD_PALETTE = {
'ERROR': 'red', 'ERROR': 'red',
'WARNING': 'yellow', 'WARNING': 'yellow',
'INFO': 'green', 'INFO': 'green',
'DEBUG': 'blue', 'DEBUG': 'white',
'TRACE': 'cyan', 'TRACE': 'cyan',
'GARBAGE': 'purple', 'GARBAGE': 'blue',
} }
BOLD_PALETTE = { BOLD_PALETTE = {
'bold': { 'bold': {
@ -83,3 +86,14 @@ def get_console_log(level: str = None, name: str = None) -> logging.Logger:
log.addHandler(handler) log.addHandler(handler)
return log return log
def colorize_json(data, style='algol_nu'):
"""Colorize json output using ``pygments``.
"""
formatted_json = json.dumps(data, sort_keys=True, indent=4)
return highlight(
formatted_json, lexers.JsonLexer(),
# likeable styles: algol_nu, tango, monokai
formatters.TerminalTrueColorFormatter(style=style)
)

View File

@ -29,10 +29,12 @@ setup(
entry_points={ entry_points={
'console_scripts': [ 'console_scripts': [
'pikerd = piker.brokers.cli:pikerd', 'pikerd = piker.brokers.cli:pikerd',
'piker = piker.brokers.cli:cli',
] ]
}, },
install_requires=[ install_requires=[
'click', 'colorlog', 'trio', 'attrs', 'async_generator' 'click', 'colorlog', 'trio', 'attrs', 'async_generator',
'pygments',
], ],
extras_require={ extras_require={
'questrade': ['asks'], 'questrade': ['asks'],