37d0fe67cd27904c49b989bf287aa9486569b0a3
[gpgme.git] / lang / python / pyme / errors.py
1 # $Id$
2 # Copyright (C) 2004 Igor Belyi <belyi@users.sourceforge.net>
3 # Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
4 #
5 #    This library is free software; you can redistribute it and/or
6 #    modify it under the terms of the GNU Lesser General Public
7 #    License as published by the Free Software Foundation; either
8 #    version 2.1 of the License, or (at your option) any later version.
9 #
10 #    This library is distributed in the hope that it will be useful,
11 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 #    Lesser General Public License for more details.
14 #
15 #    You should have received a copy of the GNU Lesser General Public
16 #    License along with this library; if not, write to the Free Software
17 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
18
19 from . import pygpgme
20
21 class GPGMEError(Exception):
22     def __init__(self, error = None, message = None):
23         self.error = error
24         self.message = message
25
26     def getstring(self):
27         message = "%s: %s" % (pygpgme.gpgme_strsource(self.error),
28                               pygpgme.gpgme_strerror(self.error))
29         if self.message != None:
30             message = "%s: %s" % (self.message, message)
31         return message
32
33     def getcode(self):
34         return pygpgme.gpgme_err_code(self.error)
35
36     def getsource(self):
37         return pygpgme.gpgme_err_source(self.error)
38
39     def __str__(self):
40         return "%s (%d,%d)"%(self.getstring(), self.getsource(), self.getcode())
41
42 EOF = getattr(pygpgme, "EOF")
43
44 def errorcheck(retval, extradata = None):
45     if retval:
46         raise GPGMEError(retval, extradata)