task_utils.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """向后兼容 shim —— 委托到 supply.domain.task.exceptions
  2. 新代码请直接使用:
  3. from supply.domain.task import TaskError, TaskValidationError, ...
  4. TaskUtils 工具方法后续迁移到 domain/task/utils.py
  5. """
  6. import traceback
  7. from typing import Any
  8. from supply.domain.task.exceptions import ( # noqa: F401
  9. TaskError,
  10. TaskValidationError,
  11. TaskTimeoutError,
  12. TaskConcurrencyError,
  13. TaskLockError,
  14. )
  15. class TaskUtils:
  16. """任务工具方法(向后兼容)"""
  17. @staticmethod
  18. def validate_table_name(table_name: str) -> str:
  19. cleaned = table_name.strip().replace(" ", "_")
  20. if not cleaned or "--" in cleaned or ";" in cleaned.lower():
  21. raise TaskValidationError(f"非法的表名: {table_name}")
  22. return cleaned
  23. @staticmethod
  24. def validate_task_name(task_name: Any) -> str:
  25. task_name = str(task_name).strip()
  26. if not task_name:
  27. raise TaskValidationError("task_name 不能为空")
  28. return task_name
  29. @staticmethod
  30. def format_error_detail(e: Exception) -> str:
  31. return "".join(
  32. traceback.format_exception(type(e), e, e.__traceback__)
  33. )[-1000:]