style(backend): apply ruff format

This commit is contained in:
2026-05-03 18:14:23 +08:00
parent 738217d9c9
commit ab68f019c5
41 changed files with 960 additions and 970 deletions
+19 -34
View File
@@ -14,15 +14,18 @@ router = APIRouter()
class CronValidateRequest(BaseModel):
"""Cron 表达式验证请求"""
cron_expression: str = Field(..., min_length=9, description="Crontab 表达式")
# create_task_from_template: 已在 templates.py 中定义
@router.get("/", response_model=List[TaskResponse], summary="获取当前用户的任务列表")
async def get_tasks(
include_inactive: bool = True,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
db: Session = Depends(get_db),
):
"""
获取当前用户的所有打卡任务
@@ -36,16 +39,13 @@ async def get_tasks(
return enriched_tasks
except Exception as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"获取任务列表失败: {str(e)}"
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"获取任务列表失败: {str(e)}"
)
@router.get("/{task_id}", response_model=TaskResponse, summary="获取任务详情")
async def get_task(
task_id: int,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
task_id: int, current_user: User = Depends(get_current_user), db: Session = Depends(get_db)
):
"""
获取指定任务的详情
@@ -66,7 +66,7 @@ async def update_task(
task_id: int,
task_data: TaskUpdate,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
db: Session = Depends(get_db),
):
"""
更新指定任务的信息
@@ -82,19 +82,14 @@ async def update_task(
task = TaskService.update_task(task_id, task_data, db)
if not task:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="任务不存在"
)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="任务不存在")
return task
@router.delete("/{task_id}", status_code=status.HTTP_204_NO_CONTENT, summary="删除任务")
async def delete_task(
task_id: int,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
task_id: int, current_user: User = Depends(get_current_user), db: Session = Depends(get_db)
):
"""
删除指定任务
@@ -110,17 +105,12 @@ async def delete_task(
success = TaskService.delete_task(task_id, db)
if not success:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="任务不存在"
)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="任务不存在")
@router.post("/{task_id}/toggle", response_model=TaskResponse, summary="切换任务启用状态")
async def toggle_task(
task_id: int,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
task_id: int, current_user: User = Depends(get_current_user), db: Session = Depends(get_db)
):
"""
切换任务的启用/禁用状态
@@ -136,10 +126,7 @@ async def toggle_task(
task = TaskService.toggle_task(task_id, db)
if not task:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="任务不存在"
)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="任务不存在")
return task
@@ -167,8 +154,7 @@ async def validate_cron_expression(request: CronValidateRequest):
if not cron_expr:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="cron_expression 是必需的"
status_code=status.HTTP_400_BAD_REQUEST, detail="cron_expression 是必需的"
)
try:
@@ -179,18 +165,17 @@ async def validate_cron_expression(request: CronValidateRequest):
# 生成接下来的 5 个执行时间
cron = croniter(cron_expr, datetime.now())
next_times = [cron.get_next(datetime).strftime('%Y-%m-%d %H:%M:%S') for _ in range(5)]
next_times = [cron.get_next(datetime).strftime("%Y-%m-%d %H:%M:%S") for _ in range(5)]
return {
"valid": True,
"message": "有效的 Crontab 表达式",
"next_times": next_times,
"description": generate_cron_description(cron_expr)
"description": generate_cron_description(cron_expr),
}
except Exception as e:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=f"无效的 Crontab 表达式: {str(e)}"
status_code=status.HTTP_400_BAD_REQUEST, detail=f"无效的 Crontab 表达式: {str(e)}"
)
@@ -203,11 +188,11 @@ def generate_cron_description(cron_expr: str) -> str:
minute, hour, day, month, dow = parts
descriptions = []
if hour == '*' and minute == '*':
if hour == "*" and minute == "*":
descriptions.append("每分钟")
elif hour == '*':
elif hour == "*":
descriptions.append(f"每小时的第 {minute} 分钟")
elif day == '*' and month == '*' and dow == '*':
elif day == "*" and month == "*" and dow == "*":
descriptions.append(f"每天 {hour}:{minute:0>2}")
else:
descriptions.append(f"复杂的时间表: {cron_expr}")