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)
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__
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
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)
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()
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
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)