mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
196: DefaultFrom.__call__() now returns values from callback even if not basestring; small work on DefaultFrom docstrings
This commit is contained in:
parent
87fabaa717
commit
0755c218ff
@ -44,7 +44,8 @@ class DefaultFrom(plugable.ReadOnly):
|
||||
"""
|
||||
Derives a default for one value using other supplied values.
|
||||
|
||||
Here is an example:
|
||||
Here is an example that constructs a user's initials from his first
|
||||
and last name:
|
||||
|
||||
>>> df = DefaultFrom(lambda f, l: f[0] + l[0], 'first', 'last')
|
||||
>>> df(first='John', last='Doe') # Both keys
|
||||
@ -68,16 +69,18 @@ class DefaultFrom(plugable.ReadOnly):
|
||||
lock(self)
|
||||
|
||||
def __call__(self, **kw):
|
||||
"""
|
||||
If all keys are present, calls the callback; otherwise returns None.
|
||||
|
||||
:param kw: The keyword arguments.
|
||||
"""
|
||||
vals = tuple(kw.get(k, None) for k in self.keys)
|
||||
if None in vals:
|
||||
return None
|
||||
try:
|
||||
ret = self.callback(*vals)
|
||||
return self.callback(*vals)
|
||||
except Exception:
|
||||
return None
|
||||
if isinstance(ret, basestring):
|
||||
return ret
|
||||
return None
|
||||
|
||||
|
||||
class Option(plugable.Plugin):
|
||||
|
Loading…
Reference in New Issue
Block a user