[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13099] trunk/blender/source/blender/ python/api2_2x/Blender.c: added utility function Blender.GetPaths( absolute =0 )
Campbell Barton
ideasman42 at gmail.com
Wed Jan 2 18:40:53 CET 2008
Revision: 13099
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13099
Author: campbellbarton
Date: 2008-01-02 18:40:53 +0100 (Wed, 02 Jan 2008)
Log Message:
-----------
added utility function Blender.GetPaths( absolute=0 )
returns a list of files this blend file uses, wraps bpath functions.
Modified Paths:
--------------
trunk/blender/source/blender/python/api2_2x/Blender.c
Modified: trunk/blender/source/blender/python/api2_2x/Blender.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Blender.c 2008-01-02 15:44:28 UTC (rev 13098)
+++ trunk/blender/source/blender/python/api2_2x/Blender.c 2008-01-02 17:40:53 UTC (rev 13099)
@@ -40,6 +40,7 @@
#include "BDR_drawmesh.h" /* set_mipmap() */
#include "BIF_usiblender.h"
#include "BLI_blenlib.h"
+#include "BLI_bpath.h"
#include "BLO_writefile.h"
#include "BKE_blender.h"
#include "BKE_exotic.h"
@@ -112,7 +113,7 @@
static PyObject *Blender_PackAll( PyObject * self);
static PyObject *Blender_UnpackAll( PyObject * self, PyObject * value);
static PyObject *Blender_CountPackedFiles( PyObject * self );
-
+static PyObject *Blender_GetPaths( PyObject * self, PyObject *args, PyObject *keywds );
extern PyObject *Text3d_Init( void ); /* missing in some include */
/*****************************************************************************/
@@ -196,6 +197,9 @@
static char Blender_CountPackedFiles_doc[] =
"() - Returns the number of packed files.";
+static char Blender_GetPaths_doc[] =
+"() - Returns a list of paths used in this blend file.";
+
/*****************************************************************************/
/* Python method structure definition. */
/*****************************************************************************/
@@ -209,6 +213,7 @@
{"Run", Blender_Run, METH_O, Blender_Run_doc},
{"ShowHelp", Blender_ShowHelp, METH_O, Blender_ShowHelp_doc},
{"CountPackedFiles", ( PyCFunction ) Blender_CountPackedFiles, METH_NOARGS, Blender_CountPackedFiles_doc},
+ {"GetPaths", ( PyCFunction ) Blender_GetPaths, METH_VARARGS|METH_KEYWORDS, Blender_GetPaths_doc},
{"PackAll", ( PyCFunction ) Blender_PackAll, METH_NOARGS, Blender_PackAll_doc},
{"UnpackAll", Blender_UnpackAll, METH_O, Blender_UnpackAll_doc},
{"UpdateMenus", ( PyCFunction ) Blender_UpdateMenus, METH_NOARGS,
@@ -903,6 +908,47 @@
int nfiles = countPackedFiles();
return PyInt_FromLong( nfiles );
}
+
+/*****************************************************************************/
+/* Function: Blender_GetPaths */
+/* Python equivalent: Blender.GetPaths */
+/*****************************************************************************/
+static PyObject *Blender_GetPaths( PyObject * self, PyObject *args, PyObject *keywds )
+{
+ struct BPathIterator bpi;
+ PyObject *list = PyList_New(0), *st;
+ /* be sure there is low chance of the path being too short */
+ char filepath_expanded[FILE_MAXDIR*2];
+
+ int absolute = 0;
+ static char *kwlist[] = {"absolute", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "|i", kwlist, &absolute ) )
+ return EXPP_ReturnPyObjError( PyExc_AttributeError,
+ "expected nothing or one bool (0 or 1) as argument" );
+
+ BLI_bpathIterator_init(&bpi);
+
+ while (!BLI_bpathIterator_isDone(&bpi)) {
+
+ /* build the list */
+ if (absolute) {
+ BLI_bpathIterator_copyPathExpanded( &bpi, filepath_expanded );
+ st = PyString_FromString(filepath_expanded);
+ } else {
+ st = PyString_FromString(BLI_bpathIterator_getPath(&bpi));
+ }
+
+ PyList_Append(list, st);
+ Py_DECREF(st);
+
+ BLI_bpathIterator_step(&bpi);
+ }
+
+ return list;
+}
+
+
static PyObject *Blender_UnpackModesDict( void )
{
PyObject *UnpackModes = PyConstant_New( );
More information about the Bf-blender-cvs
mailing list