diff options
author | Justus Winter <[email protected]> | 2016-05-12 12:57:42 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-05-12 12:57:42 +0000 |
commit | ed0ce84fbd2904bf59ac66ae7422716db3624efa (patch) | |
tree | 9324bd83cbf36d08a9c7c6532fa2b4b0086b549a /lang/python/pyme/util.py | |
parent | python: Fix function invocation. (diff) | |
download | gpgme-ed0ce84fbd2904bf59ac66ae7422716db3624efa.tar.gz gpgme-ed0ce84fbd2904bf59ac66ae7422716db3624efa.zip |
python: Cache generated wrapper functions.
* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
functions.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/pyme/util.py')
-rw-r--r-- | lang/python/pyme/util.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lang/python/pyme/util.py b/lang/python/pyme/util.py index 19bbb7f6..a8560992 100644 --- a/lang/python/pyme/util.py +++ b/lang/python/pyme/util.py @@ -69,11 +69,11 @@ class GpgmeWrapper(object): returning gpgme_error_t.""" raise NotImplementedError() - def __getattr__(self, name): + def __getattr__(self, key): """On-the-fly function generation.""" - if name[0] == '_' or self._getnameprepend() == None: + if key[0] == '_' or self._getnameprepend() == None: return None - name = self._getnameprepend() + name + name = self._getnameprepend() + key if self._errorcheck(name): def _funcwrap(*args, **kwargs): args = [self.wrapped] + list(args) @@ -85,5 +85,8 @@ class GpgmeWrapper(object): return getattr(pygpgme, name)(*args, **kwargs) _funcwrap.__doc__ = getattr(getattr(pygpgme, name), "__doc__") + + # Cache the wrapper function. + setattr(self, key, _funcwrap) return _funcwrap |