Refactor and add merge
This commit is contained in:
16
tools/log.py
16
tools/log.py
@@ -1,16 +0,0 @@
|
||||
"""
|
||||
logger封装
|
||||
"""
|
||||
from loguru import logger
|
||||
|
||||
from .stdout_wrapper import SAFE_STDOUT
|
||||
|
||||
# 移除所有默认的处理器
|
||||
logger.remove()
|
||||
|
||||
# 自定义格式并添加到标准输出
|
||||
log_format = (
|
||||
"<g>{time:MM-DD HH:mm:ss}</g> |<lvl>{level:^8}</lvl>| {file}:{line} | {message}"
|
||||
)
|
||||
|
||||
logger.add(SAFE_STDOUT, format=log_format, backtrace=True, diagnose=True)
|
||||
@@ -1,34 +0,0 @@
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
|
||||
class StdoutWrapper:
|
||||
def __init__(self):
|
||||
self.temp_file = tempfile.NamedTemporaryFile(mode="w+", delete=False)
|
||||
self.original_stdout = sys.stdout
|
||||
|
||||
def write(self, message: str):
|
||||
self.temp_file.write(message)
|
||||
self.temp_file.flush()
|
||||
print(message, end="", file=self.original_stdout)
|
||||
|
||||
def flush(self):
|
||||
self.temp_file.flush()
|
||||
|
||||
def read(self):
|
||||
self.temp_file.seek(0)
|
||||
return self.temp_file.read()
|
||||
|
||||
def close(self):
|
||||
self.temp_file.close()
|
||||
|
||||
def fileno(self):
|
||||
return self.temp_file.fileno()
|
||||
|
||||
|
||||
try:
|
||||
import google.colab
|
||||
|
||||
SAFE_STDOUT = StdoutWrapper()
|
||||
except ImportError:
|
||||
SAFE_STDOUT = sys.stdout
|
||||
@@ -1,34 +0,0 @@
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from .log import logger
|
||||
from .stdout_wrapper import SAFE_STDOUT
|
||||
|
||||
python = sys.executable
|
||||
|
||||
|
||||
def run_script_with_log(cmd: list[str]) -> tuple[bool, str]:
|
||||
logger.info(f"Running: {' '.join(cmd)}")
|
||||
result = subprocess.run(
|
||||
[python] + cmd,
|
||||
stdout=SAFE_STDOUT, # type: ignore
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
)
|
||||
if result.returncode != 0:
|
||||
logger.error(f"Error: {' '.join(cmd)}")
|
||||
print(result.stderr)
|
||||
return False, result.stderr
|
||||
elif result.stderr:
|
||||
logger.warning(f"Warning: {' '.join(cmd)}")
|
||||
print(result.stderr)
|
||||
return True, result.stderr
|
||||
logger.success(f"Success: {' '.join(cmd)}")
|
||||
return True, ""
|
||||
|
||||
|
||||
def second_elem_of(original_function):
|
||||
def inner_function(*args, **kwargs):
|
||||
return original_function(*args, **kwargs)[1]
|
||||
|
||||
return inner_function
|
||||
Reference in New Issue
Block a user