python: Improve error handling.
authorJustus Winter <justus@g10code.com>
Tue, 11 Jul 2017 10:18:42 +0000 (12:18 +0200)
committerJustus Winter <justus@g10code.com>
Tue, 11 Jul 2017 10:28:39 +0000 (12:28 +0200)
commit1e68f93dc547ae75b921e43db35e3599de92e2cb
tree1da8a4f92bb802964688e881804163544aa1cc76
parentfe79eb8de3dc780eafb38a0a0a016748e764ff04
python: Improve error handling.

* NEWS: Update.
* lang/python/src/core.py (Context.__read__): New helper function.
(Context.encrypt): Attach partial results to exceptions.
(Context.decrypt): Likewise.
(Context.sign): Likewise.
(Context.verify): Likewise.
* lang/python/src/errors.py (GpgError): Move the core of GPGMEError to
this class, add a nicer interface for it.  This makes the errors
thrown by this library more uniform, and allows us to track the
underlying error in synthesized high-level errors.
(GPGMEError): Simplify.
(...): Make sure to call the parent classes' constructor in all other
classes.
--

Attach partial results to errors.  Some operations return results even
though they signal an error.  Of course this information must be taken
with a grain of salt.  But often, this information is useful for
diagnostic uses or to give the user feedback.  Since the normal
control flow is disrupted by the exception, the callee can no longer
return results, hence we attach them to the exception objects.

GnuPG-bug-id: 3271
Signed-off-by: Justus Winter <justus@g10code.com>
NEWS
lang/python/src/core.py
lang/python/src/errors.py