[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19751] trunk/blender/source: bpy_internal_import.c should build with py2.3 now, also gave bpy_internal_import functions better names.

Campbell Barton ideasman42 at gmail.com
Thu Apr 16 08:24:48 CEST 2009


Revision: 19751
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19751
Author:   campbellbarton
Date:     2009-04-16 08:24:47 +0200 (Thu, 16 Apr 2009)

Log Message:
-----------
bpy_internal_import.c should build with py2.3 now, also gave bpy_internal_import functions better names.

Modified Paths:
--------------
    trunk/blender/source/blender/python/BPY_interface.c
    trunk/blender/source/blender/python/api2_2x/bpy_internal_import.c
    trunk/blender/source/blender/python/api2_2x/bpy_internal_import.h
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp

Modified: trunk/blender/source/blender/python/BPY_interface.c
===================================================================
--- trunk/blender/source/blender/python/BPY_interface.c	2009-04-16 01:42:53 UTC (rev 19750)
+++ trunk/blender/source/blender/python/BPY_interface.c	2009-04-16 06:24:47 UTC (rev 19751)
@@ -1276,7 +1276,7 @@
 	 * Users can add their own functions to this module. */
 	if (G.f&G_DOSCRIPTLINKS) {
 		int found; /* not used but needed as an arg */
-		mod = importText("pydrivers", &found); /* can also use PyImport_Import() */
+		mod = bpy_text_import("pydrivers", &found); /* can also use PyImport_Import() */
 		if (mod) {
 			PyDict_SetItemString(d, "pydrivers", mod);
 			PyDict_SetItemString(d, "p", mod);
@@ -2831,7 +2831,7 @@
 static void init_ourImport( void )
 {
 	PyObject *m, *d;
-	PyObject *import = PyCFunction_New( bpy_import, NULL );
+	PyObject *import = PyCFunction_New( bpy_import_meth, NULL );
 
 	m = PyImport_AddModule( "__builtin__" );
 	d = PyModule_GetDict( m );
@@ -2842,7 +2842,7 @@
 static void init_ourReload( void )
 {
 	PyObject *m, *d;
-	PyObject *reload = PyCFunction_New( bpy_reload, NULL );
+	PyObject *reload = PyCFunction_New( bpy_reload_meth, NULL );
 
 	m = PyImport_AddModule( "__builtin__" );
 	d = PyModule_GetDict( m );

Modified: trunk/blender/source/blender/python/api2_2x/bpy_internal_import.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/bpy_internal_import.c	2009-04-16 01:42:53 UTC (rev 19750)
+++ trunk/blender/source/blender/python/api2_2x/bpy_internal_import.c	2009-04-16 06:24:47 UTC (rev 19751)
@@ -56,7 +56,7 @@
 }
 
 
-PyObject *importText( char *name, int *found )
+PyObject *bpy_text_import( char *name, int *found )
 {
 	Text *text;
 	char txtname[22]; /* 21+NULL */
@@ -103,7 +103,7 @@
  * find in-memory module and recompile
  */
 
-PyObject *reimportText( PyObject *module, int *found )
+PyObject *bpy_text_reimport( PyObject *module, int *found )
 {
 	Text *text;
 	char *txtname;
@@ -172,13 +172,13 @@
 	int dummy_val; /* what does this do?*/
 	static char *kwlist[] = {"name", "globals", "locals", "fromlist", "level", 0};
 	
-	if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bpy_import", kwlist,
+	if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bpy_import_meth", kwlist,
 			       &name, &globals, &locals, &fromlist, &dummy_val) )
 		return NULL;
 #else
 	static char *kwlist[] = {"name", "globals", "locals", "fromlist", 0};
 	
-	if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bpy_import", kwlist,
+	if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bpy_import_meth", kwlist,
 			       &name, &globals, &locals, &fromlist ) )
 		return NULL;
 #endif
@@ -192,7 +192,7 @@
 	PyErr_Fetch( &exception, &err, &tb );	/* get the python error incase we cant import as blender text either */
 	
 	/* importing from existing modules failed, see if we have this module as blender text */
-	newmodule = importText( name, &found );
+	newmodule = bpy_text_import( name, &found );
 	
 	if( newmodule ) {/* found module as blender text, ignore above exception */
 		PyErr_Clear(  );
@@ -228,7 +228,7 @@
 	int found= 0;
 	
 	/* check for a module arg */
-	if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) )
+	if( !PyArg_ParseTuple( args, "O:bpy_reload_meth", &module ) )
 		return NULL;
 
 	/* try reimporting from file */
@@ -239,7 +239,7 @@
 	/* no file, try importing from memory */
 	PyErr_Fetch( &exception, &err, &tb );	/*restore for probable later use */
 
-	newmodule = reimportText( module, &found );
+	newmodule = bpy_text_reimport( module, &found );
 	if( newmodule ) {/* found module as blender text, ignore above exception */
 		PyErr_Clear(  );
 		Py_XDECREF( exception );
@@ -262,8 +262,8 @@
 	return newmodule;
 }
 
-PyMethodDef bpy_import[] = { {"bpy_import", blender_import, METH_KEYWORDS, "blenders import"} };
-PyMethodDef bpy_reload[] = { {"bpy_reload", blender_reload, METH_VARARGS, "blenders reload"} };
+PyMethodDef bpy_import_meth[] = { {"bpy_import_meth", blender_import, METH_KEYWORDS, "blenders import"} };
+PyMethodDef bpy_reload_meth[] = { {"bpy_reload_meth", blender_reload, METH_VARARGS, "blenders reload"} };
 
 
 /* Clear user modules.
@@ -284,20 +284,25 @@
 #endif
 
 
-void importClearUserModules(void)
+void bpy_text_clear_modules(void)
 {
-	PyObject *modules= PySys_GetObject("modules");	
+	PyObject *modules= PySys_GetObject("modules");
 	
 	char *fname;
 	char *file_extension;
 	
 	/* looping over the dict */
 	PyObject *key, *value;
-	Py_ssize_t pos = 0;
+	int pos = 0;
 	
 	/* new list */
-	PyObject *list= PyList_New(0);
-	
+	PyObject *list;
+
+	if (modules==NULL)
+		return; /* should never happen but just incase */
+
+	list= PyList_New(0);
+
 	/* go over sys.modules and remove anything with a 
 	 * sys.modukes[x].__file__ thats ends with a .py and has no path
 	 */

Modified: trunk/blender/source/blender/python/api2_2x/bpy_internal_import.h
===================================================================
--- trunk/blender/source/blender/python/api2_2x/bpy_internal_import.h	2009-04-16 01:42:53 UTC (rev 19750)
+++ trunk/blender/source/blender/python/api2_2x/bpy_internal_import.h	2009-04-16 06:24:47 UTC (rev 19751)
@@ -35,11 +35,11 @@
 #include "compile.h"		/* for the PyCodeObject */
 #include "eval.h"		/* for PyEval_EvalCode */
 
-PyObject *importText( char *name, int *found );
-PyObject *reimportText( PyObject *module, int *found );
-void importClearUserModules( void ); /* Clear user modules */
-extern PyMethodDef bpy_import[];
-extern PyMethodDef bpy_reload[];
+PyObject*	bpy_text_import( char *name, int *found );
+PyObject*	bpy_text_reimport( PyObject *module, int *found );
+void		bpy_text_clear_modules( void ); /* Clear user modules */
+extern PyMethodDef bpy_import_meth[];
+extern PyMethodDef bpy_reload_meth[];
 
 /* The game engine has its own Main struct, if this is set search this rather then G.main */
 struct Main *bpy_import_main_get(void);

Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-04-16 01:42:53 UTC (rev 19750)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-04-16 06:24:47 UTC (rev 19751)
@@ -1244,7 +1244,7 @@
 	}
 	
 	/* Import blender texts as python modules */
-	m= importText(name, &found);
+	m= bpy_text_import(name, &found);
 	if (m)
 		return m;
 	
@@ -1267,10 +1267,10 @@
 	PyObject *newmodule = NULL;
 
 	/* check for a module arg */
-	if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) )
+	if( !PyArg_ParseTuple( args, "O:bpy_reload_meth", &module ) )
 		return NULL;
 	
-	newmodule= reimportText( module, &found );
+	newmodule= bpy_text_reimport( module, &found );
 	if (newmodule)
 		return newmodule;
 	
@@ -1353,8 +1353,8 @@
 	*/
 	default:
 			/* Allow importing internal text, from bpy_internal_import.py */
-			PyDict_SetItemString(d, "reload", item=PyCFunction_New(bpy_reload, NULL));		Py_DECREF(item);
-			PyDict_SetItemString(d, "__import__", item=PyCFunction_New(bpy_import, NULL));	Py_DECREF(item);
+			PyDict_SetItemString(d, "reload", item=PyCFunction_New(bpy_reload_meth, NULL));		Py_DECREF(item);
+			PyDict_SetItemString(d, "__import__", item=PyCFunction_New(bpy_import_meth, NULL));	Py_DECREF(item);
 		break;
 	}
 }
@@ -1440,7 +1440,7 @@
 	PyErr_Clear(); // incase some of these were alredy removed.
 	
 	/* clear user defined modules */
-	importClearUserModules();
+	bpy_text_clear_modules();
 }
 
 void exitGamePythonScripting()





More information about the Bf-blender-cvs mailing list