🎨 修复pyright报错

This commit is contained in:
webjoin111 2025-06-29 13:50:00 +08:00
parent 555ab58be4
commit c95593fcba
2 changed files with 48 additions and 8 deletions

View File

@ -501,8 +501,23 @@ async def _(
) )
try: try:
validated_model = params_model.model_validate(raw_kwargs) model_validate = getattr(params_model, "model_validate", None)
job_kwargs = validated_model.model_dump() if not model_validate:
await schedule_cmd.finish(
f"插件 '{plugin_name}' 的参数模型不支持验证。"
)
return
validated_model = model_validate(raw_kwargs)
model_dump = getattr(validated_model, "model_dump", None)
if not model_dump:
await schedule_cmd.finish(
f"插件 '{plugin_name}' 的参数模型不支持导出。"
)
return
job_kwargs = model_dump()
except ValidationError as e: except ValidationError as e:
errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()] errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()]
error_str = "\n".join(errors) error_str = "\n".join(errors)
@ -740,8 +755,23 @@ async def _(
) )
try: try:
validated_model = params_model.model_validate(raw_kwargs) model_validate = getattr(params_model, "model_validate", None)
job_kwargs = validated_model.model_dump(exclude_unset=True) if not model_validate:
await schedule_cmd.finish(
f"插件 '{schedule.plugin_name}' 的参数模型不支持验证。"
)
return
validated_model = model_validate(raw_kwargs)
model_dump = getattr(validated_model, "model_dump", None)
if not model_dump:
await schedule_cmd.finish(
f"插件 '{schedule.plugin_name}' 的参数模型不支持导出。"
)
return
job_kwargs = model_dump(exclude_unset=True)
except ValidationError as e: except ValidationError as e:
errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()] errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()]
error_str = "\n".join(errors) error_str = "\n".join(errors)
@ -773,10 +803,11 @@ async def _():
message_parts.append(f"{i}. {plugin_name} - ⚠️ 参数模型配置错误") message_parts.append(f"{i}. {plugin_name} - ⚠️ 参数模型配置错误")
continue continue
if params_model.model_fields: model_fields = getattr(params_model, "model_fields", None)
if model_fields:
param_info = ", ".join( param_info = ", ".join(
f"{field_name}({_get_type_name(field_info.annotation)})" f"{field_name}({_get_type_name(field_info.annotation)})"
for field_name, field_info in params_model.model_fields.items() for field_name, field_info in model_fields.items()
) )
message_parts.append(f"{i}. {plugin_name} - 参数: {param_info}") message_parts.append(f"{i}. {plugin_name} - 参数: {param_info}")
else: else:

View File

@ -236,8 +236,17 @@ class SchedulerManager:
return False, f"插件 '{plugin_name}' 的参数模型配置错误" return False, f"插件 '{plugin_name}' 的参数模型配置错误"
try: try:
validated_model = params_model.model_validate(job_kwargs) model_validate = getattr(params_model, "model_validate", None)
return True, validated_model.model_dump() if not model_validate:
return False, f"插件 '{plugin_name}' 的参数模型不支持验证"
validated_model = model_validate(job_kwargs)
model_dump = getattr(validated_model, "model_dump", None)
if not model_dump:
return False, f"插件 '{plugin_name}' 的参数模型不支持导出"
return True, model_dump()
except ValidationError as e: except ValidationError as e:
errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()] errors = [f" - {err['loc'][0]}: {err['msg']}" for err in e.errors()]
error_str = "\n".join(errors) error_str = "\n".join(errors)