#!/usr/bin/env python # -*- coding: utf-8 -*- """ 任务配置模块 包含任务类型、状态等配置信息 """ from enum import Enum # 任务类型枚举 class TaskType(str, Enum): NORMAL = "NORMAL" SCHEDULED = "SCHEDULED" # 任务状态枚举 class TaskStatus(str, Enum): PENDING = "PENDING" RUNNING = "RUNNING" COMPLETED = "COMPLETED" CANCELLED = "CANCELLED" FAILED = "FAILED" PAUSED = "PAUSED" WAITING = "WAITING" # 任务类型配置 class TaskTypeConfig: """任务类型配置""" NORMAL = TaskType.NORMAL.value SCHEDULED = TaskType.SCHEDULED.value # 任务类型详细信息 DETAILS = { NORMAL: { "name": "普通任务", "description": "立即执行的一次性任务" }, SCHEDULED: { "name": "定时任务", "description": "按照预设时间执行的任务" } } @classmethod def get_name(cls, task_type_key): """ 获取任务类型的显示名称 Args: task_type_key (str): 任务类型的键名 Returns: str: 任务类型的显示名称 """ return cls.DETAILS.get(task_type_key, {}).get("name", task_type_key) @classmethod def get_description(cls, task_type_key): """ 获取任务类型的描述 Args: task_type_key (str): 任务类型的键名 Returns: str: 任务类型的描述 """ return cls.DETAILS.get(task_type_key, {}).get("description", "") @classmethod def get_all(cls): """ 获取所有任务类型 Returns: list: 任务类型列表,每个元素包含key、name和description """ task_types = [] for key, config in cls.DETAILS.items(): task_types.append({ "key": key, "name": config["name"], "description": config["description"] }) return task_types # 任务状态配置 class TaskStatusConfig: """任务状态配置""" PENDING = TaskStatus.PENDING.value RUNNING = TaskStatus.RUNNING.value COMPLETED = TaskStatus.COMPLETED.value CANCELLED = TaskStatus.CANCELLED.value FAILED = TaskStatus.FAILED.value PAUSED = TaskStatus.PAUSED.value WAITING = TaskStatus.WAITING.value # 任务状态详细信息 DETAILS = { PENDING: { "name": "待执行", "description": "任务已创建但尚未开始执行" }, RUNNING: { "name": "执行中", "description": "任务正在执行" }, COMPLETED: { "name": "已完成", "description": "任务已成功完成" }, CANCELLED: { "name": "已取消", "description": "任务被用户取消" }, FAILED: { "name": "执行失败", "description": "任务执行过程中出现错误" }, PAUSED: { "name": "暂停中", "description": "任务被暂停" }, WAITING: { "name": "等待中", "description": "任务正在等待某些条件满足" } } @classmethod def get_name(cls, task_status_key): """ 获取任务状态的显示名称 Args: task_status_key (str): 任务状态的键名 Returns: str: 任务状态的显示名称 """ return cls.DETAILS.get(task_status_key, {}).get("name", task_status_key) @classmethod def get_description(cls, task_status_key): """ 获取任务状态的描述 Args: task_status_key (str): 任务状态的键名 Returns: str: 任务状态的描述 """ return cls.DETAILS.get(task_status_key, {}).get("description", "") @classmethod def get_all(cls): """ 获取所有任务状态 Returns: list: 任务状态列表,每个元素包含key、name和description """ task_statuses = [] for key, config in cls.DETAILS.items(): task_statuses.append({ "key": key, "name": config["name"], "description": config["description"] }) return task_statuses # 默认值配置 class DefaultConfig: """默认值配置""" TASK_DESCRIPTION = "" # 默认任务描述(备注) TEMPLATE_DESCRIPTION = "用户自有模板" # 默认模板描述 # 为了向后兼容,保留原有的函数和变量 TASK_TYPE_CONFIG = TaskTypeConfig.DETAILS TASK_STATUS_CONFIG = TaskStatusConfig.DETAILS # 任务类型常量 TASK_TYPE_NORMAL = TaskTypeConfig.NORMAL TASK_TYPE_SCHEDULED = TaskTypeConfig.SCHEDULED # 默认值配置 DEFAULT_TASK_DESCRIPTION = DefaultConfig.TASK_DESCRIPTION DEFAULT_TEMPLATE_DESCRIPTION = DefaultConfig.TEMPLATE_DESCRIPTION # 获取任务类型名称 def get_task_type_name(task_type_key): """ 获取任务类型的显示名称 Args: task_type_key (str): 任务类型的键名 Returns: str: 任务类型的显示名称 """ return TaskTypeConfig.get_name(task_type_key) # 获取任务类型描述 def get_task_type_description(task_type_key): """ 获取任务类型的描述 Args: task_type_key (str): 任务类型的键名 Returns: str: 任务类型的描述 """ return TaskTypeConfig.get_description(task_type_key) # 获取任务状态名称 def get_task_status_name(task_status_key): """ 获取任务状态的显示名称 Args: task_status_key (str): 任务状态的键名 Returns: str: 任务状态的显示名称 """ return TaskStatusConfig.get_name(task_status_key) # 获取任务状态描述 def get_task_status_description(task_status_key): """ 获取任务状态的描述 Args: task_status_key (str): 任务状态的键名 Returns: str: 任务状态的描述 """ return TaskStatusConfig.get_description(task_status_key) # 获取所有任务类型 def get_all_task_types(): """ 获取所有任务类型 Returns: list: 任务类型列表,每个元素包含key、name和description """ return TaskTypeConfig.get_all() # 获取所有任务状态 def get_all_task_statuses(): """ 获取所有任务状态 Returns: list: 任务状态列表,每个元素包含key、name和description """ return TaskStatusConfig.get_all() # 获取任务类型枚举 def get_task_type_enum(task_type_key): """ 获取任务类型的枚举值 Args: task_type_key (str): 任务类型的键名 Returns: str: 任务类型的枚举值(小写) """ return task_type_key.lower() # 获取任务状态枚举 def get_task_status_enum(task_status_key): """ 获取任务状态的枚举值 Args: task_status_key (str): 任务状态的键名 Returns: str: 任务状态的枚举值(小写) """ return task_status_key.lower()