def either(self, default_key, *values): """Fallback to the value of a configuration key if none of the `*values` are true.""" return first(None, [ first(None, values), starpromise(self.conf.get, default_key), ])
def either(self, default_key, *defaults): """Get key from configuration or use default values. Fallback to the value of a configuration key if none of the `*values` are true. """ return first(None, [ first(None, defaults), starpromise(self.conf.get, default_key), ])
def test_first(): iterations = [0] def predicate(value): iterations[0] += 1 if value == 5: return True return False assert first(predicate, range(10)) == 5 assert iterations[0] == 6 iterations[0] = 0 assert first(predicate, range(10, 20)) is None assert iterations[0] == 10
def test_first(self): iterations = [0] def predicate(value): iterations[0] += 1 if value == 5: return True return False self.assertEqual(5, first(predicate, range(10))) self.assertEqual(iterations[0], 6) iterations[0] = 0 self.assertIsNone(first(predicate, range(10, 20))) self.assertEqual(iterations[0], 10)
def first(self, *keys): return first(None, (self.get(key) for key in keys))
def either(self, default_key, *values): """Fallback to the value of a configuration key if none of the `*values` are true.""" return first(None, values) or self.conf.get(default_key)
def autodetect_env(self, apply=methodcaller('autodetect')): # type: (Callable) -> Any return first(apply, map(symbol_by_name, self.environments))()
def first(self, *keys): # type: (*str) -> Any return first(None, (self.get(key) for key in keys))
def autodetect_env(self, apply=methodcaller('autodetect')): return first(apply, map(symbol_by_name, self.environments))()
def autodetect_env(self, apply=methodcaller('autodetect')): # type: (Callable) -> Any return first(apply, list(map(symbol_by_name, self.environments)))()