Spaces:
Sleeping
Sleeping
| import inspect | |
| from loguru import logger | |
| class CursorWebError(Exception): | |
| def __init__(self, status_code: int, message: str, response_status_code: int = 500): | |
| self.status_code = status_code | |
| self.message = message | |
| self.response_status_code = response_status_code | |
| # 获取调用者信息 | |
| frame = inspect.currentframe() | |
| try: | |
| caller_frame = frame.f_back # 上一层调用栈 | |
| if caller_frame: | |
| filename = caller_frame.f_code.co_filename | |
| line_number = caller_frame.f_lineno | |
| function_name = caller_frame.f_code.co_name | |
| logger.error(f"{self.__str__()} - Called from {filename}:{line_number} in {function_name}") | |
| else: | |
| logger.error(self.__str__()) | |
| finally: | |
| del frame # 避免循环引用 | |
| def __str__(self) -> str: | |
| return f"CursorWebError: {self.status_code}, {self.message}" | |
| def to_openai_error(self) -> dict[str, dict[str, str]]: | |
| return { | |
| "error": { | |
| "message": self.__str__(), | |
| "type": "cursorweb_error", | |
| "code": "cursorweb_error" | |
| } | |
| } | |