Source code for pypmc.tools.indicator._indicator_merge

[docs]def merge_function_with_indicator(function, indicator, alternative): '''Returns a function such that a call to it is equivalent to: if indicator(x): return function(x) else: return alternative Note that ``function`` is not called if indicator evaluates to False. :param function: The function to be called when indicator returns True. :param indicator: Bool-returning function; the indicator :param alternative: The object to be returned when indicator returns False ''' if indicator is None: return function else: def merged_function(x): if indicator(x): return function(x) else: return alternative return merged_function