Add check_option
for Options
This commit is contained in:
parent
90726e5812
commit
0c2857d741
@ -1,5 +1,10 @@
|
||||
# Change log / 更新日志
|
||||
|
||||
## 0.1.8
|
||||
|
||||
- 为 `types.Options` 添加了 `_check_option` 选项
|
||||
- 为 `True` 时 会检查参数是否合法 (在类属性中已经定义了)
|
||||
|
||||
## 0.1.7
|
||||
|
||||
- 修复了 `CompilerHelper` 中的问题
|
||||
|
@ -6,16 +6,20 @@
|
||||
import time
|
||||
|
||||
from string import Template
|
||||
from typing import List, Union, Optional, Dict, Tuple
|
||||
from typing import List, Union, Optional, Dict, Tuple, TYPE_CHECKING
|
||||
|
||||
from lib_not_dr.types.options import Options
|
||||
from lib_not_dr.logger.structure import LogMessage, FormattingMessage
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from lib_not_dr.logger.formatter.colors import BaseColorFormatter
|
||||
|
||||
|
||||
class BaseFormatter(Options):
|
||||
name = 'BaseFormatter'
|
||||
|
||||
sub_formatter: List['BaseFormatter'] = []
|
||||
color_formatters: List['BaseColorFormatter'] = []
|
||||
default_template: str = '${log_time}|${logger_name}|${logger_tag}|${level}|${messages}'
|
||||
|
||||
@classmethod
|
||||
@ -187,20 +191,19 @@ class StdFormatter(BaseFormatter):
|
||||
|
||||
enable_color: bool = True
|
||||
|
||||
sub_formatter = [TimeFormatter(),
|
||||
LevelFormatter(),
|
||||
TraceFormatter()]
|
||||
|
||||
sub_formatter: List[BaseFormatter] = [TimeFormatter(),
|
||||
LevelFormatter(),
|
||||
TraceFormatter()]
|
||||
from lib_not_dr.logger.formatter.colors import (LevelColorFormatter,
|
||||
LoggerColorFormatter,
|
||||
TimeColorFormatter,
|
||||
TraceColorFormatter,
|
||||
MessageColorFormatter)
|
||||
color_formatters = [LevelColorFormatter(),
|
||||
LoggerColorFormatter(),
|
||||
TimeColorFormatter(),
|
||||
TraceColorFormatter(),
|
||||
MessageColorFormatter()]
|
||||
color_formatters: List[BaseFormatter] = [LevelColorFormatter(),
|
||||
LoggerColorFormatter(),
|
||||
TimeColorFormatter(),
|
||||
TraceColorFormatter(),
|
||||
MessageColorFormatter()]
|
||||
|
||||
def __init__(self,
|
||||
enable_color: bool = True,
|
||||
@ -215,10 +218,12 @@ class StdFormatter(BaseFormatter):
|
||||
:param kwargs: other options
|
||||
"""
|
||||
# 同 structures.LogMessage.__init__ 的注释 (逃)
|
||||
super().__init__(enable_color=enable_color,
|
||||
sub_formatter=sub_formatter,
|
||||
color_formatters=color_formatters,
|
||||
**kwargs)
|
||||
self.enable_color = enable_color
|
||||
if sub_formatter is not None:
|
||||
self.sub_formatter = sub_formatter
|
||||
if color_formatters is not None:
|
||||
self.color_formatters = color_formatters
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def _format(self, message: FormattingMessage) -> FormattingMessage:
|
||||
super()._format(message)
|
||||
@ -277,4 +282,3 @@ if __name__ == '__main__':
|
||||
print(std_format.format_message(log_message), end='')
|
||||
|
||||
print(std_format.as_markdown())
|
||||
|
||||
|
@ -64,6 +64,7 @@ class Options:
|
||||
"""
|
||||
name = 'Option Base'
|
||||
cached_options: Dict[str, Union[str, Any]] = {}
|
||||
_check_options: bool = True
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
"""
|
||||
@ -75,7 +76,7 @@ class Options:
|
||||
self._options: Dict[str, Union[Callable, object]] = {}
|
||||
self.flush_option()
|
||||
for option, value in kwargs.items():
|
||||
if option not in self.cached_options:
|
||||
if option not in self.cached_options and self._check_options:
|
||||
raise OptionNameNotDefined(f"option: {option} with value: {value} is not defined")
|
||||
setattr(self, option, value)
|
||||
run_load_file = True
|
||||
|
Loading…
Reference in New Issue
Block a user