--- /dev/null
+"""
+General PyAFS utilities, such as error handling
+"""
+
+import sys
+
+cdef int _init = 0
+
+class AFSException(Exception):
+ def __init__(self, errno, message):
+ self.errno = errno
+ self.strerror = afs_error_message(errno)
+ self.message = message
+
+ def __repr__(self):
+ return "AFSException(%s, %s)" % (self.errno, self.message)
+
+ def __str__(self):
+ return "[%s] (%s) while %s" % (self.errno, self.strerror, self.message)
+
+def pyafs_error(code, msg):
+ if not _init:
+ initialize_ACFG_error_table()
+ initialize_KTC_error_table()
+ initialize_PT_error_table()
+ initialize_RXK_error_table()
+ initialize_U_error_table()
+
+ _init = 1
+
+ if code != 0:
+ raise AFSException(code, msg)
libraries=libraries,
include_dirs=include_dirs,
library_dirs=library_dirs,
+ define_macros=define_macros),
+ Extension("afs.afs",
+ ["afs/afs.pyx"],
+ libraries=libraries,
+ include_dirs=include_dirs,
+ library_dirs=library_dirs,
define_macros=define_macros)
],
cmdclass= {"build_ext": build_ext}