diff options
Diffstat (limited to '')
| -rw-r--r-- | lang/python/pyme/core.py | 5 | ||||
| -rw-r--r-- | lang/python/pyme/errors.py | 4 | 
2 files changed, 8 insertions, 1 deletions
diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py index dafbd9b3..1d6e3847 100644 --- a/lang/python/pyme/core.py +++ b/lang/python/pyme/core.py @@ -394,7 +394,10 @@ class Data(GpgmeWrapper):          """Write buffer given as string or bytes.          If a string is given, it is implicitly encoded using UTF-8.""" -        return pygpgme.gpgme_data_write(self.wrapped, buffer) +        written = pygpgme.gpgme_data_write(self.wrapped, buffer) +        if written < 0: +            raise GPGMEError.fromSyserror() +        return written      def read(self, size = -1):          """Read at most size bytes, returned as bytes. diff --git a/lang/python/pyme/errors.py b/lang/python/pyme/errors.py index 37d0fe67..5c8f9223 100644 --- a/lang/python/pyme/errors.py +++ b/lang/python/pyme/errors.py @@ -23,6 +23,10 @@ class GPGMEError(Exception):          self.error = error          self.message = message +    @classmethod +    def fromSyserror(cls): +        return cls(pygpgme.gpgme_err_code_from_syserror()) +      def getstring(self):          message = "%s: %s" % (pygpgme.gpgme_strsource(self.error),                                pygpgme.gpgme_strerror(self.error))  | 
