diff options
Diffstat (limited to 'lang')
| -rw-r--r-- | lang/python/gpgme.i | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i index e21aa6c9..c0993eed 100644 --- a/lang/python/gpgme.i +++ b/lang/python/gpgme.i @@ -649,3 +649,30 @@ _gpg_unwrap_gpgme_ctx_t(PyObject *wrapped)  /* ... but only the public definitions here.  They will be exposed to     the Python world, so let's be careful.  */  %include "helpers.h" + + +%define genericrepr(cls) +%pythoncode %{ +    def __repr__(self): +        names = [name for name in dir(self) +            if not name.startswith("_") and name != "this"] +        props = ", ".join(("{}={!r}".format(name, getattr(self, name)) +            for name in names) +        ) +        return "cls({})".format(props) +%} + +%enddef + +%extend _gpgme_key { +  genericrepr(Key) +}; + + +%extend _gpgme_subkey { +  genericrepr(SubKey) +}; + +%extend _gpgme_key_sig { +  genericrepr(KeySig) +}; | 
