示例#1
0
 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))
示例#2
0
 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))
示例#4
0
	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))
示例#5
0
	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)