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.
|
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 = DefaultFrom(lambda f, l: f[0] + l[0], 'first', 'last')
|
||||||
>>> df(first='John', last='Doe') # Both keys
|
>>> df(first='John', last='Doe') # Both keys
|
||||||
@ -68,16 +69,18 @@ class DefaultFrom(plugable.ReadOnly):
|
|||||||
lock(self)
|
lock(self)
|
||||||
|
|
||||||
def __call__(self, **kw):
|
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)
|
vals = tuple(kw.get(k, None) for k in self.keys)
|
||||||
if None in vals:
|
if None in vals:
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
ret = self.callback(*vals)
|
return self.callback(*vals)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
if isinstance(ret, basestring):
|
|
||||||
return ret
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
class Option(plugable.Plugin):
|
class Option(plugable.Plugin):
|
||||||
|
Loading…
Reference in New Issue
Block a user