fix for crash when loading a file from a script, and executing user modules in the...
[blender.git] / source / blender / python / intern / bpy_util.h
index ae215725087ee044448d5aaed5561cc8746a9b39..09fbdf96ed2a063219e0b442ca5e67163512efae 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#include <Python.h>
+/** \file blender/python/intern/bpy_util.h
+ *  \ingroup pythonintern
+ */
+
 
 #ifndef BPY_UTIL_H
 #define BPY_UTIL_H
 
-#if PY_VERSION_HEX <  0x03010000
-#error "Python versions below 3.1 are not supported anymore, you'll need to update your python."
+#if PY_VERSION_HEX <  0x03020000
+#error "Python 3.2 or greater is required, you'll need to update your python."
 #endif
 
 #include "RNA_types.h" /* for EnumPropertyItem only */
 struct EnumPropertyItem;
 struct ReportList;
 
-/* Class type checking, use for checking classes can be added as operators, panels etc */
-typedef struct BPY_class_attr_check {
-       const char      *name;          /* name of the class attribute */
-       char            type;           /* 's' = string, 'f' = function, 'l' = list, (add as needed) */
-       int                     arg_count;      /* only for function types, -1 for undefined, includes self arg */
-       int             len;            /* only for string types currently */
-       int                     flag;           /* other options */
-} BPY_class_attr_check;
-
-/* BPY_class_attr_check, flag */
-#define BPY_CLASS_ATTR_OPTIONAL 1
-#define BPY_CLASS_ATTR_NONE_OK 2
-
-int BPY_class_validate(const char *class_type, PyObject *class, PyObject *base_class, BPY_class_attr_check* class_attrs, PyObject **py_class_attrs);
-
 char *BPy_enum_as_string(struct EnumPropertyItem *item);
 
-
-#define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
+#define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) NULL}
 
 /* error reporting */
-int BPy_reports_to_error(struct ReportList *reports);
-int BPy_errors_to_report(struct ReportList *reports);
+short BPy_reports_to_error(struct ReportList *reports, PyObject *exception, const short clear);
+short BPy_errors_to_report(struct ReportList *reports);
 
 /* TODO - find a better solution! */
 struct bContext *BPy_GetContext(void);
 void BPy_SetContext(struct bContext *C);
 
+extern void bpy_context_update(struct bContext *C);
 extern void bpy_context_set(struct bContext *C, PyGILState_STATE *gilstate);
 extern void bpy_context_clear(struct bContext *C, PyGILState_STATE *gilstate);
 #endif