修复一些问题
This commit is contained in:
@@ -16,7 +16,7 @@ win_width, win_height = 1100, 500
|
||||
conn, cursor = None, None
|
||||
listW_items = {"实用工具": "w10_practical", "效率提升": "w20_efficiency", "财务分析": "w30_financial"}
|
||||
icon = f"{base_path}/assets/media/icon.ico"
|
||||
|
||||
caller_frame = None
|
||||
def delete_files_in_directory(directory):
|
||||
path = Path(directory)
|
||||
if path.exists() and path.is_dir():
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import sqlite3
|
||||
import time
|
||||
from inspect import currentframe
|
||||
from functools import singledispatch
|
||||
from functools import singledispatch, wraps
|
||||
|
||||
from codes.common import clibs
|
||||
|
||||
@@ -45,7 +45,9 @@ def db_init():
|
||||
conn.close()
|
||||
|
||||
def db_lock(func):
|
||||
@wraps(func)
|
||||
def wrapper(*args, **kwargs):
|
||||
clibs.caller_frame = currentframe().f_back
|
||||
try:
|
||||
clibs.lock.acquire(True)
|
||||
ret = func(*args, **kwargs)
|
||||
@@ -93,11 +95,11 @@ def db_close():
|
||||
|
||||
@db_lock
|
||||
def db_write_logs(content, module="", level="info"):
|
||||
if module == "":
|
||||
frame = currentframe().f_back
|
||||
module_name = frame.f_globals["__name__"]
|
||||
line_no = frame.f_lineno
|
||||
module = f"{module_name}.{line_no}"
|
||||
if module == "" and clibs.caller_frame is not None:
|
||||
module_name = clibs.caller_frame.f_globals["__name__"].split(".")[-1] #
|
||||
func_name = clibs.caller_frame.f_code.co_name
|
||||
line_no = clibs.caller_frame.f_lineno
|
||||
module = f"{module_name}-{func_name}:{line_no}"
|
||||
|
||||
if level.lower() not in ["info", "warning", "error", "exception"]:
|
||||
level = "unknown"
|
||||
|
||||
@@ -1,19 +1,28 @@
|
||||
from functools import wraps
|
||||
from codes.common import db_operation
|
||||
from inspect import getfile
|
||||
from pathlib import Path
|
||||
from inspect import currentframe
|
||||
import traceback
|
||||
|
||||
|
||||
def handle_exception(stop: bool = False):
|
||||
def exceptions(func):
|
||||
module = Path(getfile(func)).stem
|
||||
func_name = func.__name__
|
||||
@wraps(func)
|
||||
def wrapper(*args, **kwargs):
|
||||
real_frame = currentframe().f_back
|
||||
try:
|
||||
return func(*args, **kwargs)
|
||||
except Exception as e:
|
||||
db_operation.db_write_logs(str(e), "@".join([func_name, module]), "exception")
|
||||
for frame, lineno in traceback.walk_tb(e.__traceback__):
|
||||
if frame.f_code.co_name == func.__name__:
|
||||
real_frame = frame
|
||||
break
|
||||
|
||||
tb = traceback.format_exc() # 完整堆栈
|
||||
module_name = real_frame.f_globals["__name__"].split(".")[-1]
|
||||
func_name = real_frame.f_code.co_name
|
||||
line_no = real_frame.f_lineno
|
||||
module = f"{module_name}-{func_name}:{line_no}"
|
||||
db_operation.db_write_logs(tb, module, "exception")
|
||||
if stop:
|
||||
raise e
|
||||
return wrapper
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import subprocess
|
||||
import sys
|
||||
from codes.common import clibs
|
||||
from pathlib import Path
|
||||
|
||||
UIC_CMD = "pyside6-uic"
|
||||
|
||||
|
||||
def single_uic(ui_path: str, py_path: str):
|
||||
for file in Path(ui_path).rglob("*.ui"):
|
||||
file_name = file.stem
|
||||
ui_file = file
|
||||
py_file = Path(py_path) / f"{file_name}.py"
|
||||
cmd = [UIC_CMD, "-o", py_file, ui_file]
|
||||
|
||||
print(f"Processing {ui_file} -> {py_file}")
|
||||
try:
|
||||
subprocess.run(cmd, check=True, capture_output=True, text=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"转换失败: {ui_file}\n{e.stderr}", file=sys.stderr)
|
||||
|
||||
def main():
|
||||
ui_path = clibs.base_path / "assets" / "ui"
|
||||
py_path = clibs.base_path / "codes" / "ui"
|
||||
single_uic(str(ui_path), str(py_path))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user