123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- # -*- coding: utf-8 -*-
- """
- @author: yq
- @time: 2024/10/31
- @desc: 一些资源初始化
- """
- import sys
- import threading
- import matplotlib
- from contextvars import ContextVar
- from config import BaseConfig
- matplotlib.use('Agg')
- import matplotlib.pyplot as plt
- __all__ = ['init', 'warning_ignore', "context"]
- class Context:
- def __init__(self):
- # 上下文,适合notebook下单个用户
- self._instance_lock = threading.Lock()
- self.context = {}
- def set(self, k: str, data: object):
- with self._instance_lock:
- self.context.update({k: data})
- def get(self, k: str):
- return self.context.get(k, None)
- def set_filter_info(self, key, overview, detail=None):
- data = {"overview": overview, "detail": detail}
- self.set(key, data)
- class ContexThreading:
- def __init__(self):
- # 上下文,web下多用户需要线程隔离,notebook下会失效
- self.context = ContextVar('context')
- self.context.set({})
- def set(self, k: str, data: object):
- context_map: dict = self.context.get()
- context_map.update({k: data})
- self.context.set(context_map)
- def get(self, k: str):
- context_map: dict = self.context.get()
- return context_map.get(k, None)
- def set_filter_info(self, key, overview, detail=None):
- data = {"overview": overview, "detail": detail}
- self.set(key, data)
- if BaseConfig.run_env == "jupyter":
- context = Context()
- else:
- context = ContexThreading()
- def init():
- plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置支持中文的字体
- plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
- plt.rcParams['figure.figsize'] = (8, 8)
- plt.rcParams['figure.max_open_warning'] = 1000
- # plt.ioff()
- def warning_ignore():
- import warnings
- # warnings.simplefilter(action="ignore", category=RuntimeWarning)
- # warnings.simplefilter(action="ignore", category=UserWarning)
- warnings.simplefilter(action="ignore", category=FutureWarning)
- warnings.filterwarnings(action="ignore", module="matplotlib")
- warnings.filterwarnings(action="ignore", module="dataframe_image")
- warnings.filterwarnings(action="ignore", module="pandas")
- warnings.filterwarnings(action="ignore", module="scorecardpy")
- if "3.6" in sys.version:
- from pandas.core.common import SettingWithCopyWarning
- warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)
- if "3.10" in sys.version:
- from pandas.errors import SettingWithCopyWarning
- warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)
- if __name__ == "__main__":
- pass
|