fix(core): Reorder field_validator
and classmethod
to fit Pydantic V2. (#5257)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
from typing import Literal, Optional, Union
|
||||
|
||||
from pydantic import BaseModel, field_validator
|
||||
from pydantic import BaseModel, ValidationInfo, field_validator
|
||||
|
||||
from core.workflow.entities.base_node_data_entities import BaseNodeData
|
||||
|
||||
@@ -24,13 +24,13 @@ class HttpRequestNodeData(BaseNodeData):
|
||||
type: Literal['no-auth', 'api-key']
|
||||
config: Optional[Config]
|
||||
|
||||
@classmethod
|
||||
@field_validator('config', mode='before')
|
||||
def check_config(cls, v, values):
|
||||
@classmethod
|
||||
def check_config(cls, v: Config, values: ValidationInfo):
|
||||
"""
|
||||
Check config, if type is no-auth, config should be None, otherwise it should be a dict.
|
||||
"""
|
||||
if values['type'] == 'no-auth':
|
||||
if values.data['type'] == 'no-auth':
|
||||
return None
|
||||
else:
|
||||
if not v or not isinstance(v, dict):
|
||||
|
@@ -25,8 +25,8 @@ class ParameterConfig(BaseModel):
|
||||
description: str
|
||||
required: bool
|
||||
|
||||
@classmethod
|
||||
@field_validator('name', mode='before')
|
||||
@classmethod
|
||||
def validate_name(cls, value) -> str:
|
||||
if not value:
|
||||
raise ValueError('Parameter name is required')
|
||||
@@ -45,8 +45,8 @@ class ParameterExtractorNodeData(BaseNodeData):
|
||||
memory: Optional[MemoryConfig] = None
|
||||
reasoning_mode: Literal['function_call', 'prompt']
|
||||
|
||||
@classmethod
|
||||
@field_validator('reasoning_mode', mode='before')
|
||||
@classmethod
|
||||
def set_reasoning_mode(cls, v) -> str:
|
||||
return v or 'function_call'
|
||||
|
||||
|
@@ -14,9 +14,9 @@ class ToolEntity(BaseModel):
|
||||
tool_label: str # redundancy
|
||||
tool_configurations: dict[str, Any]
|
||||
|
||||
@classmethod
|
||||
@field_validator('tool_configurations', mode='before')
|
||||
def validate_tool_configurations(cls, value, values: ValidationInfo) -> dict[str, Any]:
|
||||
@classmethod
|
||||
def validate_tool_configurations(cls, value, values: ValidationInfo):
|
||||
if not isinstance(value, dict):
|
||||
raise ValueError('tool_configurations must be a dictionary')
|
||||
|
||||
@@ -32,8 +32,8 @@ class ToolNodeData(BaseNodeData, ToolEntity):
|
||||
value: Union[Any, list[str]]
|
||||
type: Literal['mixed', 'variable', 'constant']
|
||||
|
||||
@classmethod
|
||||
@field_validator('type', mode='before')
|
||||
@classmethod
|
||||
def check_type(cls, value, validation_info: ValidationInfo):
|
||||
typ = value
|
||||
value = validation_info.data.get('value')
|
||||
|
Reference in New Issue
Block a user