[cig-commits] r12967 - cs/cigma/trunk/pysrc
luis at geodynamics.org
luis at geodynamics.org
Wed Sep 24 06:57:34 PDT 2008
Author: luis
Date: 2008-09-24 06:57:33 -0700 (Wed, 24 Sep 2008)
New Revision: 12967
Added:
cs/cigma/trunk/pysrc/Py_Exception.cpp
Modified:
cs/cigma/trunk/pysrc/_cigma_module.cpp
cs/cigma/trunk/pysrc/setup.py
Log:
Translate cigma C++ exceptions into a proper python exception
Added: cs/cigma/trunk/pysrc/Py_Exception.cpp
===================================================================
--- cs/cigma/trunk/pysrc/Py_Exception.cpp (rev 0)
+++ cs/cigma/trunk/pysrc/Py_Exception.cpp 2008-09-24 13:57:33 UTC (rev 12967)
@@ -0,0 +1,16 @@
+#include "Exception.cpp"
+#include <boost/python.hpp>
+
+using namespace boost::python;
+
+void translator(const cigma::Exception &x)
+{
+ std::string err = x.getName() + ": " + x.getMessage();
+ PyErr_SetString(PyExc_UserWarning, err.c_str());
+}
+
+void export_Exception()
+{
+ register_exception_translator<cigma::Exception>(translator);
+}
+
Modified: cs/cigma/trunk/pysrc/_cigma_module.cpp
===================================================================
--- cs/cigma/trunk/pysrc/_cigma_module.cpp 2008-09-24 13:22:08 UTC (rev 12966)
+++ cs/cigma/trunk/pysrc/_cigma_module.cpp 2008-09-24 13:57:33 UTC (rev 12967)
@@ -1,12 +1,14 @@
#include <boost/python.hpp>
#include <boost/cstdint.hpp>
+extern void export_Exception();
extern void export_DataPath();
using namespace boost::python;
BOOST_PYTHON_MODULE(_cigma)
{
+ export_Exception();
export_DataPath();
}
Modified: cs/cigma/trunk/pysrc/setup.py
===================================================================
--- cs/cigma/trunk/pysrc/setup.py 2008-09-24 13:22:08 UTC (rev 12966)
+++ cs/cigma/trunk/pysrc/setup.py 2008-09-24 13:57:33 UTC (rev 12967)
@@ -9,7 +9,7 @@
#libs = os.environ["PYLIBS"].split()
libs = ['boost_filesystem', 'boost_python']
-sources = ['_cigma_module.cpp', 'Py_DataPath.cpp']
+sources = ['_cigma_module.cpp', 'Py_Exception.cpp', 'Py_DataPath.cpp']
setup(name = "_cigma",
version = "1.0",
More information about the cig-commits
mailing list