11import atexit as _atexit
22import logging as _logging
3- import warnings as _warnings
43from os import getpid as _getpid
54from shutil import rmtree as _rmtree
65from tempfile import mkdtemp as _mkdtemp
7- from warnings import warn as _warn
86
9- from .__about__ import __version__
10-
11-
12- def _filtered_warn (* args , ** kwargs ):
13- """warnings.filterwarnings does not work."""
14- blacklist = [
15- # maelstrom sklearn SVM
16- "Liblinear failed to converge, increase the number of iterations." ,
17- # report.py (pandas internal DeprecationWarning)
18- "The get_cmap function will be deprecated in a future version. "
19- "Use ``matplotlib.colormaps[name]`` or "
20- "``matplotlib.colormaps.get_cmap(obj)`` instead." ,
21- # report.py pandas FutureWarning, alternative works differently
22- "this method is deprecated in favour of `Styler.to_html()`" ,
23- # scanner/base.py set_threshold
24- "DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, "
25- "which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. "
26- "To get a de-fragmented frame, use `newframe = frame.copy()`" ,
27- ]
28- message = str (args [0 ])
29- if message in blacklist :
30- pass
31- else :
32- _warn (* args , ** kwargs )
7+ from loguru import logger as _loguru_logger
338
9+ from .__about__ import __version__
3410
35- _warnings .warn = _filtered_warn
11+ # import warnings as _warnings
12+ # def _filtered_warn(*args, **kwargs):
13+ # """warnings.filterwarnings does not work."""
14+ # blacklist = [
15+ # # maelstrom sklearn SVM
16+ # "Liblinear failed to converge, increase the number of iterations.",
17+ # # report.py (pandas internal DeprecationWarning)
18+ # "The get_cmap function will be deprecated in a future version. "
19+ # "Use ``matplotlib.colormaps[name]`` or "
20+ # "``matplotlib.colormaps.get_cmap(obj)`` instead.",
21+ # # report.py pandas FutureWarning, alternative works differently
22+ # "this method is deprecated in favour of `Styler.to_html()`",
23+ # # scanner/base.py set_threshold
24+ # "DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, "
25+ # "which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. "
26+ # "To get a de-fragmented frame, use `newframe = frame.copy()`",
27+ # ]
28+ # message = str(args[0])
29+ # if message in blacklist:
30+ # pass
31+ # else:
32+ # _warnings.warn(*args, **kwargs)
33+ #
34+ #
35+ # _warnings.warn = _filtered_warn
3636
3737
3838def mytmpdir ():
@@ -44,24 +44,26 @@ def mytmpdir():
4444
4545# setup logger
4646logger = _logging .getLogger ("gimme" )
47- if logger .hasHandlers ():
48- logger .handlers .clear ()
49-
47+ logger .handlers .clear ()
5048logger .setLevel (_logging .DEBUG )
49+ logger .propagate = False
5150
52- # nice format
53- screen_formatter = _logging .Formatter (
51+ _screen_formatter = _logging .Formatter (
5452 "%(asctime)s - %(levelname)s - %(message)s" , "%H:%M:%S"
5553)
54+ _sh = _logging .StreamHandler ()
55+ _sh .setLevel (_logging .INFO )
56+ _sh .setFormatter (_screen_formatter )
57+ logger .addHandler (_sh )
58+
59+ # bridge Loguru
60+ class _PropagateHandler (_logging .Handler ):
61+ def emit (self , record ):
62+ _logging .getLogger ("gimme" ).handle (record )
5663
57- # log to screen
58- sh = _logging .StreamHandler ()
59- sh .setLevel (_logging .INFO )
60- sh .setFormatter (screen_formatter )
61- logger .addHandler (sh )
62- del screen_formatter
63- del sh
6464
65+ _loguru_logger .remove ()
66+ _loguru_logger .add (_PropagateHandler (), format = "{message}" )
6567
6668# import submodules to enable module autocomplete in editor
6769
0 commit comments