|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
from core.app.app_config.entities import ExternalDataVariableEntity, VariableEntity
|
|
|
|
|
from core.app.app_config.entities import ExternalDataVariableEntity, VariableEntity, VariableEntityType
|
|
|
|
|
from core.external_data_tool.factory import ExternalDataToolFactory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -13,7 +13,7 @@ class BasicVariablesConfigManager:
|
|
|
|
|
:param config: model config args
|
|
|
|
|
"""
|
|
|
|
|
external_data_variables = []
|
|
|
|
|
variables = []
|
|
|
|
|
variable_entities = []
|
|
|
|
|
|
|
|
|
|
# old external_data_tools
|
|
|
|
|
external_data_tools = config.get('external_data_tools', [])
|
|
|
|
|
@ -30,50 +30,41 @@ class BasicVariablesConfigManager:
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# variables and external_data_tools
|
|
|
|
|
for variable in config.get('user_input_form', []):
|
|
|
|
|
typ = list(variable.keys())[0]
|
|
|
|
|
if typ == 'external_data_tool':
|
|
|
|
|
val = variable[typ]
|
|
|
|
|
if 'config' not in val:
|
|
|
|
|
for variables in config.get('user_input_form', []):
|
|
|
|
|
variable_type = list(variables.keys())[0]
|
|
|
|
|
if variable_type == VariableEntityType.EXTERNAL_DATA_TOOL:
|
|
|
|
|
variable = variables[variable_type]
|
|
|
|
|
if 'config' not in variable:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
external_data_variables.append(
|
|
|
|
|
ExternalDataVariableEntity(
|
|
|
|
|
variable=val['variable'],
|
|
|
|
|
type=val['type'],
|
|
|
|
|
config=val['config']
|
|
|
|
|
variable=variable['variable'],
|
|
|
|
|
type=variable['type'],
|
|
|
|
|
config=variable['config']
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
elif typ in [
|
|
|
|
|
VariableEntity.Type.TEXT_INPUT.value,
|
|
|
|
|
VariableEntity.Type.PARAGRAPH.value,
|
|
|
|
|
VariableEntity.Type.NUMBER.value,
|
|
|
|
|
elif variable_type in [
|
|
|
|
|
VariableEntityType.TEXT_INPUT,
|
|
|
|
|
VariableEntityType.PARAGRAPH,
|
|
|
|
|
VariableEntityType.NUMBER,
|
|
|
|
|
VariableEntityType.SELECT,
|
|
|
|
|
]:
|
|
|
|
|
variables.append(
|
|
|
|
|
VariableEntity(
|
|
|
|
|
type=VariableEntity.Type.value_of(typ),
|
|
|
|
|
variable=variable[typ].get('variable'),
|
|
|
|
|
description=variable[typ].get('description'),
|
|
|
|
|
label=variable[typ].get('label'),
|
|
|
|
|
required=variable[typ].get('required', False),
|
|
|
|
|
max_length=variable[typ].get('max_length'),
|
|
|
|
|
default=variable[typ].get('default'),
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
elif typ == VariableEntity.Type.SELECT.value:
|
|
|
|
|
variables.append(
|
|
|
|
|
variable = variables[variable_type]
|
|
|
|
|
variable_entities.append(
|
|
|
|
|
VariableEntity(
|
|
|
|
|
type=VariableEntity.Type.SELECT,
|
|
|
|
|
variable=variable[typ].get('variable'),
|
|
|
|
|
description=variable[typ].get('description'),
|
|
|
|
|
label=variable[typ].get('label'),
|
|
|
|
|
required=variable[typ].get('required', False),
|
|
|
|
|
options=variable[typ].get('options'),
|
|
|
|
|
default=variable[typ].get('default'),
|
|
|
|
|
type=variable_type,
|
|
|
|
|
variable=variable.get('variable'),
|
|
|
|
|
description=variable.get('description'),
|
|
|
|
|
label=variable.get('label'),
|
|
|
|
|
required=variable.get('required', False),
|
|
|
|
|
max_length=variable.get('max_length'),
|
|
|
|
|
options=variable.get('options'),
|
|
|
|
|
default=variable.get('default'),
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return variables, external_data_variables
|
|
|
|
|
return variable_entities, external_data_variables
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def validate_and_set_defaults(cls, tenant_id: str, config: dict) -> tuple[dict, list[str]]:
|
|
|
|
|
@ -183,4 +174,4 @@ class BasicVariablesConfigManager:
|
|
|
|
|
config=config
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return config, ["external_data_tools"]
|
|
|
|
|
return config, ["external_data_tools"]
|
|
|
|
|
|