def _tree2expr(self, node, repository): if isinstance(node, int): return node elif isinstance(node, tuple): (operator, args) = node if operator == '[]': psrc_list = [] for output_vn in _tree2names(args[0]): psrc_list.append( ParameterSource.create_instance( 'InternalAutoParameterSource', self._parameter_config, repository, output_vn, _tree2names(args[1]))) return ParameterSource.create_psrc_safe( 'CrossParameterSource', self._parameter_config, repository, *psrc_list) elif operator in self._operator_map_raw: return ParameterSource.create_psrc_safe( self._operator_map_raw[operator], self._parameter_config, repository, *args) elif operator in self._operator_map_eval: evaluated_args = lmap( lambda node: self._tree2expr(node, repository), args) return ParameterSource.create_psrc_safe( self._operator_map_eval[operator], self._parameter_config, repository, *evaluated_args) else: return ParameterSource.create_instance( 'InternalAutoParameterSource', self._parameter_config, repository, node) raise APIError('Unable to parse node %s!' % repr(node))
def create_psrc(cls, pconfig, repository, ref_name, *args): # pylint:disable=arguments-differ ref_type_default = 'data' if 'dataset:' + ref_name not in repository: ref_type_default = 'csv' ref_type = pconfig.get(ref_name, 'type', ref_type_default) return ParameterSource.create_psrc_safe(ref_type, pconfig, repository, ref_name, *args)
def _register_psrc(self, pconfig, output_vn): def _replace_nonalnum(value): if str.isalnum(value): return value return ' ' lookup_str = pconfig.get(output_vn, 'lookup', '') lookup_vn_list = lidfilter(str.join('', imap(_replace_nonalnum, lookup_str)).split()) self._psrc_list.append(ParameterSource.create_psrc_safe('InternalAutoParameterSource', pconfig, {}, output_vn, lookup_vn_list))
def _tree2expr(self, node, repository): if isinstance(node, int): return node elif isinstance(node, tuple): (operator, args) = node if operator == '[]': psrc_list = [] for output_vn in _tree2names(args[0]): psrc_list.append(ParameterSource.create_instance('InternalAutoParameterSource', self._parameter_config, repository, output_vn, _tree2names(args[1]))) return ParameterSource.create_psrc_safe('CrossParameterSource', self._parameter_config, repository, *psrc_list) elif operator in self._operator_map_raw: return ParameterSource.create_psrc_safe(self._operator_map_raw[operator], self._parameter_config, repository, *args) elif operator in self._operator_map_eval: evaluated_args = lmap(lambda node: self._tree2expr(node, repository), args) return ParameterSource.create_psrc_safe(self._operator_map_eval[operator], self._parameter_config, repository, *evaluated_args) else: return ParameterSource.create_instance('InternalAutoParameterSource', self._parameter_config, repository, node) raise APIError('Unable to parse node %s!' % repr(node))
def create_psrc(cls, pconfig, repository, ref_name, *args): # pylint:disable=arguments-differ ref_type_default = 'data' if 'dataset:' + ref_name not in repository: ref_type_default = 'csv' ref_type = pconfig.get(ref_name, 'type', ref_type_default) return ParameterSource.create_psrc_safe(ref_type, pconfig, repository, ref_name, *args)