00001 #ifndef __CXX_INDIRECT_PYTHON_INTERFACE__HXX__ 00002 #define __CXX_INDIRECT_PYTHON_INTERFACE__HXX__ 00003 00004 // Prevent warnings 00005 #if defined(_XOPEN_SOURCE) 00006 #undef _XOPEN_SOURCE 00007 #endif 00008 00009 #include <Python.h> 00010 00011 namespace Py 00012 { 00013 bool InitialisePythonIndirectInterface(); 00014 00015 // 00016 // Wrap Exception variables as function calls 00017 // 00018 PyObject * _Exc_Exception(); 00019 PyObject * _Exc_StandardError(); 00020 PyObject * _Exc_ArithmeticError(); 00021 PyObject * _Exc_LookupError(); 00022 00023 PyObject * _Exc_AssertionError(); 00024 PyObject * _Exc_AttributeError(); 00025 PyObject * _Exc_EOFError(); 00026 PyObject * _Exc_FloatingPointError(); 00027 PyObject * _Exc_EnvironmentError(); 00028 PyObject * _Exc_IOError(); 00029 PyObject * _Exc_OSError(); 00030 PyObject * _Exc_ImportError(); 00031 PyObject * _Exc_IndexError(); 00032 PyObject * _Exc_KeyError(); 00033 PyObject * _Exc_KeyboardInterrupt(); 00034 PyObject * _Exc_MemoryError(); 00035 PyObject * _Exc_NameError(); 00036 PyObject * _Exc_OverflowError(); 00037 PyObject * _Exc_RuntimeError(); 00038 PyObject * _Exc_NotImplementedError(); 00039 PyObject * _Exc_SyntaxError(); 00040 PyObject * _Exc_SystemError(); 00041 PyObject * _Exc_SystemExit(); 00042 PyObject * _Exc_TypeError(); 00043 PyObject * _Exc_ValueError(); 00044 PyObject * _Exc_ZeroDivisionError(); 00045 #ifdef MS_WINDOWS 00046 PyObject * _Exc_WindowsError(); 00047 #endif 00048 00049 PyObject * _Exc_MemoryErrorInst(); 00050 00051 #if PY_MAJOR_VERSION >= 2 00052 PyObject * _Exc_IndentationError(); 00053 PyObject * _Exc_TabError(); 00054 PyObject * _Exc_UnboundLocalError(); 00055 PyObject * _Exc_UnicodeError(); 00056 #endif 00057 00058 // 00059 // Wrap Object variables as function calls 00060 // 00061 PyObject * _None(); 00062 00063 00064 // 00065 // Wrap Type variables as function calls 00066 // 00067 PyTypeObject * _List_Type(); 00068 bool _List_Check( PyObject *o ); 00069 00070 PyTypeObject * _Buffer_Type(); 00071 bool _Buffer_Check( PyObject *op ); 00072 00073 PyTypeObject * _Class_Type(); 00074 bool _Class_Check( PyObject *op ); 00075 00076 PyTypeObject * _Instance_Type(); 00077 bool _Instance_Check( PyObject *op ); 00078 00079 PyTypeObject * _Method_Type(); 00080 bool _Method_Check( PyObject *op ); 00081 00082 PyTypeObject * _CObject_Type(); 00083 bool _CObject_Check( PyObject *op ); 00084 00085 PyTypeObject * _Complex_Type(); 00086 bool _Complex_Check( PyObject *op ); 00087 00088 PyTypeObject * _Dict_Type(); 00089 bool _Dict_Check( PyObject *op ); 00090 00091 PyTypeObject * _File_Type(); 00092 bool _File_Check( PyObject *op ); 00093 00094 PyTypeObject * _Float_Type(); 00095 bool _Float_Check( PyObject *op ); 00096 00097 PyTypeObject * _Frame_Type(); 00098 bool _Frame_Check( PyObject *op ); 00099 00100 PyTypeObject * _Function_Type(); 00101 bool _Function_Check( PyObject *op ); 00102 00103 PyTypeObject * _Int_Type(); 00104 bool _Int_Check( PyObject *op ); 00105 00106 PyTypeObject * _List_Type(); 00107 bool _List_Check( PyObject *op ); 00108 00109 PyTypeObject * _Long_Type(); 00110 bool _Long_Check( PyObject *op ); 00111 00112 PyTypeObject * _CFunction_Type(); 00113 bool _CFunction_Check( PyObject *op ); 00114 00115 PyTypeObject * _Module_Type(); 00116 bool _Module_Check( PyObject *op ); 00117 00118 PyTypeObject * _Type_Type(); 00119 bool _Type_Check( PyObject *op ); 00120 00121 PyTypeObject * _Range_Type(); 00122 bool _Range_Check( PyObject *op ); 00123 00124 PyTypeObject * _Slice_Type(); 00125 bool _Slice_Check( PyObject *op ); 00126 00127 PyTypeObject * _String_Type(); 00128 bool _String_Check( PyObject *op ); 00129 00130 PyTypeObject * _Unicode_Type(); 00131 bool _Unicode_Check( PyObject *op ); 00132 00133 PyTypeObject * _TraceBack_Type(); 00134 bool _TraceBack_Check( PyObject *v ); 00135 00136 PyTypeObject * _Tuple_Type(); 00137 bool _Tuple_Check( PyObject *op ); 00138 00139 #if PY_MAJOR_VERSION >= 2 00140 PyTypeObject * _Unicode_Type(); 00141 bool _Unicode_Check( PyObject *op ); 00142 #endif 00143 00144 int &_Py_DebugFlag(); 00145 int &_Py_InteractiveFlag(); 00146 int &_Py_OptimizeFlag(); 00147 int &_Py_NoSiteFlag(); 00148 int &_Py_TabcheckFlag(); 00149 int &_Py_VerboseFlag(); 00150 00151 #if PY_MAJOR_VERSION >= 2 00152 int &_Py_UnicodeFlag(); 00153 #endif 00154 00155 void _XINCREF( PyObject *op ); 00156 void _XDECREF( PyObject *op ); 00157 00158 char *__Py_PackageContext(); 00159 } 00160 00161 #endif // __CXX_INDIRECT_PYTHON_INTERFACE__HXX__