Create an afs.afs module for common functions, like error handling.
[invirt/packages/python-afs.git] / afs / afs.pyx
1 """
2 General PyAFS utilities, such as error handling
3 """
4
5 import sys
6
7 cdef int _init = 0
8
9 class AFSException(Exception):
10     def __init__(self, errno, message):
11         self.errno = errno
12         self.strerror = afs_error_message(errno)
13         self.message = message
14
15     def __repr__(self):
16         return "AFSException(%s, %s)" % (self.errno, self.message)
17
18     def __str__(self):
19         return "[%s] (%s) while %s" % (self.errno, self.strerror, self.message)
20
21 def pyafs_error(code, msg):
22     if not _init:
23         initialize_ACFG_error_table()
24         initialize_KTC_error_table()
25         initialize_PT_error_table()
26         initialize_RXK_error_table()
27         initialize_U_error_table()
28
29         _init = 1
30
31     if code != 0:
32         raise AFSException(code, msg)