本文整理汇总了Python中tvb.core.adapters.abcadapter.ABCAdapter.form_prefix方法的典型用法代码示例。如果您正苦于以下问题:Python ABCAdapter.form_prefix方法的具体用法?Python ABCAdapter.form_prefix怎么用?Python ABCAdapter.form_prefix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tvb.core.adapters.abcadapter.ABCAdapter
的用法示例。
在下文中一共展示了ABCAdapter.form_prefix方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_configurable_interface
# 需要导入模块: from tvb.core.adapters.abcadapter import ABCAdapter [as 别名]
# 或者: from tvb.core.adapters.abcadapter.ABCAdapter import form_prefix [as 别名]
def get_configurable_interface(self):
"""
Given an algorithm identifier, go trough the adapter chain, and merge
their input tree with the declared overwrites
"""
chain_adapters = self.reader.get_adapters_chain(self.algo_identifier)
result = []
for adapter_declaration in chain_adapters:
adapter_instance, algorithm_group = self.build_adapter_from_declaration(adapter_declaration)
algorithm_field = adapter_declaration[KEY_FIELD]
if algorithm_field:
default_algorithm = adapter_declaration[ABCAdapter.KEY_DEFAULT]
else:
default_algorithm = ''
all_portlet_defined_params = self.reader.get_inputs(self.algo_identifier)
specific_adapter_overwrites = [entry for entry in all_portlet_defined_params
if ATT_OVERWRITE in entry and entry[ATT_OVERWRITE] ==
adapter_declaration[ABCAdapter.KEY_NAME]]
if default_algorithm:
alg_inputs = adapter_instance.xml_reader.get_inputs(default_algorithm)
prefix = ABCAdapter.form_prefix(algorithm_field, None, default_algorithm)
else:
alg_inputs = adapter_instance.get_input_tree()
prefix = ''
replace_values = self._prepare_input_tree(alg_inputs, specific_adapter_overwrites, prefix)
adapter_configuration = AdapterConfiguration(replace_values, algorithm_group, prefix=prefix,
subalgorithm_field=algorithm_field,
subalgorithm_value=default_algorithm)
result.append(adapter_configuration)
return result
示例2: create_new_portlet_configuration
# 需要导入模块: from tvb.core.adapters.abcadapter import ABCAdapter [as 别名]
# 或者: from tvb.core.adapters.abcadapter.ABCAdapter import form_prefix [as 别名]
def create_new_portlet_configuration(self, name=''):
"""
Create a PortletConfiguration entity with the default values from the portlet
XML declaration and the adapter input trees.
"""
chain_adapters = self.reader.get_adapters_chain(self.algo_identifier)
analyze_steps = []
view_step = None
idx = 0
for adapter_declaration in chain_adapters:
adapter_instance, algorithm_group = self.build_adapter_from_declaration(adapter_declaration)
### Get the flatten interface for the adapter, and in case of #####
### sub-algorithms also get the pair {algorithm : value} #####
algorithm_field = adapter_declaration[KEY_FIELD]
if algorithm_field:
default_algorithm = adapter_declaration[ABCAdapter.KEY_DEFAULT]
else:
default_algorithm = ''
if default_algorithm:
prefix = ABCAdapter.form_prefix(algorithm_field, None, default_algorithm)
alg_inputs = adapter_instance._flaten(adapter_instance.xml_reader.get_inputs(default_algorithm), prefix)
else:
alg_inputs = adapter_instance.flaten_input_interface()
###################################################################
### Get the overwrites defined in the portlet configuration #######
### for this specific adapter in the adapter chain #######
### split in static and dynamic ones #######
prepared_params = {KEY_STATIC: {}, KEY_DYNAMIC: {}}
all_portlet_defined_params = self.reader.get_inputs(self.algo_identifier)
specific_adapter_overwrites = [entry for entry in all_portlet_defined_params
if ATT_OVERWRITE in entry and entry[ATT_OVERWRITE] ==
adapter_declaration[ABCAdapter.KEY_NAME]]
for entry in specific_adapter_overwrites:
if ABCAdapter.KEY_DEFAULT in entry:
declared_value = entry[ABCAdapter.KEY_DEFAULT]
elif ABCAdapter.KEY_VALUE in entry:
declared_value = entry[ABCAdapter.KEY_VALUE]
else:
declared_value = ''
if entry[ABCAdapter.KEY_TYPE] == KEY_DYNAMIC:
prepared_params[KEY_DYNAMIC][entry[ABCAdapter.KEY_NAME]] = declared_value
else:
prepared_params[KEY_STATIC][entry[ABCAdapter.KEY_NAME]] = declared_value
###################################################################
### Now just fill the rest of the adapter inputs if they are not ##
### present in neither dynamic or static overwrites. In case of ##
### sub-algorithms also add as static the algorithm : value pair ##
for input_dict in alg_inputs:
input_name = input_dict[ABCAdapter.KEY_NAME]
if input_name not in prepared_params[KEY_STATIC] and input_name not in prepared_params[KEY_DYNAMIC]:
if ABCAdapter.KEY_DEFAULT in input_dict:
input_value = input_dict[ABCAdapter.KEY_DEFAULT]
else:
input_value = ''
prepared_params[KEY_STATIC][input_name] = input_value
if default_algorithm:
prepared_params[KEY_STATIC][algorithm_field] = default_algorithm
###################################################################
### Now parse the dynamic inputs declared in the portlets XML ######
### into workflow_step specific format. ####
for param_name in prepared_params[KEY_DYNAMIC]:
new_value = self._portlet_dynamic2workflow_step(prepared_params[KEY_DYNAMIC][param_name])
prepared_params[KEY_DYNAMIC][param_name] = new_value
###################################################################
###Finally get the actual algorithm id from the DB as we need the #
###algorithm id, then build the workflow step given the computed #
###parameter set, then build and return the portlet configuration##
algorithm = dao.get_algorithm_by_group(algorithm_group.id, default_algorithm)
if idx == len(chain_adapters) - 1:
view_step = WorkflowStepView(algorithm_id=algorithm.id, portlet_id=self.portlet_id,
ui_name=name, static_param=prepared_params[KEY_STATIC],
dynamic_param=prepared_params[KEY_DYNAMIC])
else:
workflow_step = WorkflowStep(algorithm_id=algorithm.id, static_param=prepared_params[KEY_STATIC],
dynamic_param=prepared_params[KEY_DYNAMIC])
analyze_steps.append(workflow_step)
idx += 1
portlet_configuration = PortletConfiguration(self.portlet_id)
portlet_configuration.set_analyzers(analyze_steps)
portlet_configuration.set_visualizer(view_step)
return portlet_configuration