summaryrefslogtreecommitdiff
path: root/configuration.py
diff options
context:
space:
mode:
authorSylvain Th?nault <sylvain.thenault@logilab.fr>2009-09-24 15:00:41 +0200
committerSylvain Th?nault <sylvain.thenault@logilab.fr>2009-09-24 15:00:41 +0200
commit92a6f980384f58f0fdab73360ad5287bd9d3cd04 (patch)
tree44a6e29e35e5ce020044bdd4c96b02e0533f80b9 /configuration.py
parent5d66c0cfc8db22a1946dc8cc63ee77440b950f45 (diff)
downloadlogilab-common-92a6f980384f58f0fdab73360ad5287bd9d3cd04.tar.gz
make Method usable as option's callback
Diffstat (limited to 'configuration.py')
-rw-r--r--configuration.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/configuration.py b/configuration.py
index 969e36d..e90a0f2 100644
--- a/configuration.py
+++ b/configuration.py
@@ -646,9 +646,9 @@ class Method(object):
if self._inst is None:
self._inst = instance
- def __call__(self):
+ def __call__(self, *args, **kwargs):
assert self._inst, 'unbound method'
- return getattr(self._inst, self.method)()
+ return getattr(self._inst, self.method)(*args, **kwargs)
class OptionsProviderMixIn(object):
@@ -668,6 +668,8 @@ class OptionsProviderMixIn(object):
raise Exception('Bad option: %r' % option)
if isinstance(optdict.get('default'), Method):
optdict['default'].bind(self)
+ elif isinstance(optdict.get('callback'), Method):
+ optdict['callback'].bind(self)
self.load_defaults()
def load_defaults(self):