mirror of
https://gitee.com/fasiondog/hikyuu.git
synced 2024-12-02 20:08:26 +08:00
change matplotlib font manager logging level
This commit is contained in:
parent
78c4565c89
commit
4432097969
@ -5,10 +5,12 @@
|
|||||||
"""
|
"""
|
||||||
import sys
|
import sys
|
||||||
import datetime
|
import datetime
|
||||||
|
import logging
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import matplotlib
|
import matplotlib
|
||||||
from pylab import Rectangle, gca, figure, ylabel, axes, draw
|
from pylab import Rectangle, gca, figure, ylabel, axes, draw
|
||||||
from matplotlib import rcParams
|
from matplotlib import rcParams
|
||||||
|
from matplotlib.font_manager import FontManager, _log as fm_logger
|
||||||
from matplotlib.lines import Line2D, TICKLEFT, TICKRIGHT
|
from matplotlib.lines import Line2D, TICKLEFT, TICKRIGHT
|
||||||
from matplotlib.ticker import FuncFormatter, FixedLocator
|
from matplotlib.ticker import FuncFormatter, FixedLocator
|
||||||
|
|
||||||
@ -25,13 +27,14 @@ def set_mpl_params():
|
|||||||
rcParams['font.family'] = 'sans-serif'
|
rcParams['font.family'] = 'sans-serif'
|
||||||
rcParams['axes.unicode_minus'] = False
|
rcParams['axes.unicode_minus'] = False
|
||||||
|
|
||||||
expected_fonts = ['Microsoft YaHei', 'SimSun', 'SimHei', 'Noto Sans CJK JP']
|
expected_fonts = ['Microsoft YaHei', 'SimSun', 'SimHei', 'Source Han Sans CN', 'Noto Sans CJK JP']
|
||||||
current_fonts = matplotlib.rcParams['font.sans-serif']
|
current_fonts = matplotlib.rcParams['font.sans-serif']
|
||||||
for font in expected_fonts:
|
for font in expected_fonts:
|
||||||
if font in current_fonts:
|
if font in current_fonts:
|
||||||
return
|
return
|
||||||
|
|
||||||
all_fonts = [f.name for f in matplotlib.font_manager.FontManager().ttflist]
|
with LoggingContext(fm_logger, level=logging.WARNING):
|
||||||
|
all_fonts = [f.name for f in FontManager().ttflist]
|
||||||
for font in expected_fonts:
|
for font in expected_fonts:
|
||||||
if font in all_fonts:
|
if font in all_fonts:
|
||||||
current_fonts.insert(0, font)
|
current_fonts.insert(0, font)
|
||||||
|
@ -40,4 +40,5 @@ __all__ = [
|
|||||||
'hku_fatal_if',
|
'hku_fatal_if',
|
||||||
'with_trace',
|
'with_trace',
|
||||||
'capture_multiprocess_all_logger',
|
'capture_multiprocess_all_logger',
|
||||||
|
'LoggingContext',
|
||||||
]
|
]
|
||||||
|
@ -205,4 +205,28 @@ def capture_multiprocess_all_logger(queue, level=None):
|
|||||||
logger = logging.getLogger(name)
|
logger = logging.getLogger(name)
|
||||||
logger.addHandler(qh)
|
logger.addHandler(qh)
|
||||||
if level is not None:
|
if level is not None:
|
||||||
logger.setLevel(level)
|
logger.setLevel(level)
|
||||||
|
|
||||||
|
# Temporary change logger level
|
||||||
|
# https://docs.python.org/3/howto/logging-cookbook.html
|
||||||
|
class LoggingContext:
|
||||||
|
def __init__(self, logger, level=None, handler=None, close=True):
|
||||||
|
self.logger = logger
|
||||||
|
self.level = level
|
||||||
|
self.handler = handler
|
||||||
|
self.close = close
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
if self.level is not None:
|
||||||
|
self.old_level = self.logger.level
|
||||||
|
self.logger.setLevel(self.level)
|
||||||
|
if self.handler:
|
||||||
|
self.logger.addHandler(self.handler)
|
||||||
|
|
||||||
|
def __exit__(self, et, ev, tb):
|
||||||
|
if self.level is not None:
|
||||||
|
self.logger.setLevel(self.old_level)
|
||||||
|
if self.handler:
|
||||||
|
self.logger.removeHandler(self.handler)
|
||||||
|
if self.handler and self.close:
|
||||||
|
self.handler.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user