diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..5153348 --- /dev/null +++ b/utils.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# @Author: kevinmidboe +# @Date: 2018-04-17 19:55:38 +# @Last Modified by: KevinMidboe +# @Last Modified time: 2018-05-04 00:04:25 + +import logging +import colored +import json +from pprint import pprint + +from colored import stylize + +__all__ = ('ColorizeFilter', ) + +class ColorizeFilter(logging.Filter): + """ + Class for setting specific colors to levels of severity for log output + """ + color_by_level = { + 10: 'chartreuse_3b', + 20: 'white', + 30: 'orange_1', + 40: 'red' + } + + logger = logging.getLogger('deluge_cli') + + def filter(self, record): + record.raw_msg = record.msg + color = self.color_by_level.get(record.levelno) + if color: + record.msg = stylize(record.msg, colored.fg(color)) + return True + +def convert(data): + if isinstance(data, bytes): return data.decode('ascii') + if isinstance(data, dict): return dict(map(convert, data.items())) + if isinstance(data, tuple): return map(convert, data) + json_data = json.dumps(data) + return json_data