mirror of
				https://github.com/KevinMidboe/delugeClient.git
				synced 2025-10-29 12:00:13 +00:00 
			
		
		
		
	Utils script for coloring log based on logger status filter and convert function for converting byte dict to a dict of strings.
This commit is contained in:
		
							
								
								
									
										42
									
								
								utils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								utils.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
		Reference in New Issue
	
	Block a user