aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/pyme/util.py
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-05-12 12:57:42 +0000
committerJustus Winter <[email protected]>2016-05-12 12:57:42 +0000
commited0ce84fbd2904bf59ac66ae7422716db3624efa (patch)
tree9324bd83cbf36d08a9c7c6532fa2b4b0086b549a /lang/python/pyme/util.py
parentpython: Fix function invocation. (diff)
downloadgpgme-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.py9
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