Files
HeXi/hexi/plugins/nonebot_plugin_picstatus/util.py
T

40 lines
1.1 KiB
Python
Raw Normal View History

import re
from functools import partial
from pathlib import Path
from typing import TYPE_CHECKING
from cookit import DebugFileWriter, auto_convert_unit, format_timedelta
if TYPE_CHECKING:
from .collectors.cpu import CpuFreq
format_time_delta_ps = partial(format_timedelta, day_divider=" ", day_suffix="天")
def match_list_regexp(reg_list: list[str], txt: str) -> re.Match | None:
return next((match for r in reg_list if (match := re.search(r, txt))), None)
def format_freq(value: float) -> str:
"""将 MHz 频率格式化为 MHz/GHz(十进制 1000 换算)"""
return auto_convert_unit(
units=("MHz", "GHz", "THz"),
multiplier=1000,
unit_threshold=1000,
value=value,
with_space=False,
)
def format_cpu_freq(freq: "CpuFreq") -> str:
if not freq.current and not freq.max:
return "主频未知"
current = freq.current or freq.max or 0.0
max_freq = freq.max or 0.0
if not max_freq or max_freq == current:
return format_freq(current)
return f"{format_freq(current)} / {format_freq(max_freq)}"
debug = DebugFileWriter(Path(__file__).resolve().parents[2] / "logs", "picstatus")