mirror of
https://github.com/langgenius/dify.git
synced 2026-06-16 14:01:10 +08:00
refactor: replace if isinstance with match case (#37412)
This commit is contained in:
parent
09b6f25fb9
commit
0ca39c96db
@ -132,13 +132,14 @@ def cast_parameter_value(typ: StrEnum, value: Any, /):
|
||||
return value if isinstance(value, bool) else bool(value)
|
||||
|
||||
case PluginParameterType.NUMBER:
|
||||
if isinstance(value, int | float):
|
||||
return value
|
||||
elif isinstance(value, str) and value:
|
||||
if "." in value:
|
||||
return float(value)
|
||||
else:
|
||||
return int(value)
|
||||
match value:
|
||||
case int() | float():
|
||||
return value
|
||||
case str() if value:
|
||||
if "." in value:
|
||||
return float(value)
|
||||
else:
|
||||
return int(value)
|
||||
case PluginParameterType.SYSTEM_FILES | PluginParameterType.FILES:
|
||||
if not isinstance(value, list):
|
||||
return [value]
|
||||
|
||||
@ -1178,12 +1178,12 @@ class Conversation(Base):
|
||||
def inputs(self, value: Mapping[str, Any]):
|
||||
inputs = dict(value)
|
||||
for k, v in inputs.items():
|
||||
if isinstance(v, File):
|
||||
inputs[k] = v.model_dump()
|
||||
elif isinstance(v, list):
|
||||
v_list = v
|
||||
if all(isinstance(item, File) for item in v_list):
|
||||
inputs[k] = [item.model_dump() for item in v_list if isinstance(item, File)]
|
||||
match v:
|
||||
case File():
|
||||
inputs[k] = v.model_dump()
|
||||
case list():
|
||||
if all(isinstance(item, File) for item in v):
|
||||
inputs[k] = [item.model_dump() for item in v if isinstance(item, File)]
|
||||
self._inputs = inputs
|
||||
|
||||
@property
|
||||
|
||||
Loading…
Reference in New Issue
Block a user