Exemple #1
0
 def __new__(cls, *psources):
     psources = strip_null_sources(psources)
     if len(psources) == 1:
         return psources[0]
     elif not psources:
         return NullParameterSource()
     return ParameterSource.__new__(cls)
Exemple #2
0
 def __new__(cls, psource, times):  # pylint:disable=arguments-differ
     if times == 0:
         return NullParameterSource()
     elif times == 1:
         return psource
     return MultiParameterSource.__new__(
         cls, psource,
         psource)  # suppress simplification in MultiparameterSource.__new__
Exemple #3
0
 def __new__(cls, *psrc_list):
     (repeat, psrc_list) = _separate_repeat(_strip_null_sources(psrc_list))
     if repeat != 1:
         return RepeatParameterSource(cls(*psrc_list), repeat)
     elif not psrc_list:
         return NullParameterSource()
     elif len(psrc_list) == 1:
         return psrc_list[0]
     return ParameterSource.__new__(cls)
	def getSource(self):
		if not self._pExpr:
			return NullParameterSource()
		self._log.debug('Parsing parameter expression: %s', repr(self._pExpr))
		try:
			source = self._getUserSource(self._pExpr)
		except:
			raise ParameterError('Unable to parse parameter expression %r' % self._pExpr)
		self._log.debug('Parsed parameter source: %s', repr(source))
		return source
Exemple #5
0
 def __new__(cls, psrc, times):  # pylint:disable=arguments-differ
     if times < 0:
         return psrc
     elif psrc.get_parameter_len() is None:
         return TruncateParameterSource(psrc, times)
     elif times == 0:
         return NullParameterSource()
     elif times == 1:
         return psrc
     return ParameterSource.__new__(cls)
Exemple #6
0
	def _combineSources(self, clsName, args):
		repeat = reduce(lambda a, b: a * b, ifilter(lambda expr: isinstance(expr, int), args), 1)
		args = lfilter(lambda expr: not isinstance(expr, int), args)
		if args:
			result = ParameterSource.createInstance(clsName, *args)
			if repeat > 1:
				return ParameterSource.createInstance('RepeatParameterSource', result, repeat)
			return result
		elif repeat > 1:
			return repeat
		return NullParameterSource()
Exemple #7
0
 def __new__(cls, config, datasource_name, repository, keep_old=True):
     provider_name_default = config.get(
         ['default provider',
          '%s provider' % datasource_name], 'ListProvider')
     provider = config.get_composited_plugin(
         datasource_name,
         '',
         ':ThreadedMultiDatasetProvider:',
         cls=DataProvider,
         require_plugin=False,
         on_change=TriggerResync(['datasets', 'parameters']),
         bind_kwargs={
             'datasource_name': datasource_name,
             'provider_name_default': provider_name_default
         })
     if not provider:
         return NullParameterSource()
     instance = BaseDataParameterSource.__new__(cls)
     instance.provider = provider
     return instance
Exemple #8
0
 def __new__(cls, psrc, max_len):  # pylint:disable=arguments-differ
     if max_len == 0:
         return NullParameterSource()
     elif max_len < 0:
         return psrc
     return ParameterSource.__new__(cls)