diff options
author | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2009-09-24 15:00:41 +0200 |
---|---|---|
committer | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2009-09-24 15:00:41 +0200 |
commit | 92a6f980384f58f0fdab73360ad5287bd9d3cd04 (patch) | |
tree | 44a6e29e35e5ce020044bdd4c96b02e0533f80b9 | |
parent | 5d66c0cfc8db22a1946dc8cc63ee77440b950f45 (diff) | |
download | logilab-common-92a6f980384f58f0fdab73360ad5287bd9d3cd04.tar.gz |
make Method usable as option's callback
-rw-r--r-- | configuration.py | 6 |
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): |