16
16
import copy
17
17
import json
18
18
import logging
19
- from typing import TYPE_CHECKING
19
+ from typing import TYPE_CHECKING , Any
20
20
21
21
from rich import color , errors
22
22
from rich import print as printf
@@ -91,7 +91,7 @@ def make_logger(
91
91
# set the rich handler
92
92
rich_handler = RichHandler (
93
93
console = console ,
94
- show_time = parser .getboolean ("log_timestamps" ),
94
+ show_time = parser .getboolean ("log_timestamps" , fallback = False ),
95
95
keywords = HIGHLIGHTED_KEYWORDS ,
96
96
)
97
97
@@ -108,7 +108,7 @@ def make_logger(
108
108
return logger , console , error_console
109
109
110
110
111
- def parse_theme (parser : configparser .SectionProxy ) -> Theme :
111
+ def parse_theme (parser : configparser .SectionProxy ) -> Theme | None :
112
112
"""Configure the rich style of logger and console output.
113
113
114
114
Parameters
@@ -126,7 +126,7 @@ def parse_theme(parser: configparser.SectionProxy) -> Theme:
126
126
:func:`make_logger`.
127
127
128
128
"""
129
- theme = {key .replace ("_" , "." ): parser [key ] for key in parser }
129
+ theme : dict [ str , Any ] = {key .replace ("_" , "." ): parser [key ] for key in parser }
130
130
131
131
theme ["log.width" ] = None if theme ["log.width" ] == "-1" else int (theme ["log.width" ])
132
132
theme ["log.height" ] = (
@@ -188,8 +188,11 @@ def format(self, record: logging.LogRecord) -> str:
188
188
"""Format the record in a custom JSON format."""
189
189
record_c = copy .deepcopy (record )
190
190
if record_c .args :
191
- for arg in record_c .args :
192
- record_c .args [arg ] = "<>"
191
+ if isinstance (record_c .args , dict ):
192
+ for arg in record_c .args :
193
+ record_c .args [arg ] = "<>"
194
+ else :
195
+ record_c .args = ("<>" ,) * len (record_c .args )
193
196
return json .dumps (
194
197
{
195
198
"levelname" : record_c .levelname ,
0 commit comments