Index: /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp	(revision 13367)
+++ /issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp	(revision 13368)
@@ -16,4 +16,5 @@
 #include "../../shared/shared.h"
 #include "../../io/io.h"
+void FetchData(char** pstring,PyObject* py_string);
 
 /*Primitive data types*/
@@ -235,8 +236,51 @@
 }
 /*}}}*/
-/*FUNCTION FetchData(DataSet** pcontours,PyObject* py_dict){{{*/
-void FetchData(DataSet** pcontours,PyObject* py_dict){
-
-	_error_("not supported yet");
+/*FUNCTION FetchData(DataSet** pcontours,PyObject* py_list){{{*/
+void FetchData(DataSet** pcontours,PyObject* py_list){
+
+	int              numcontours,test1,test2;
+	char            *contourname = NULL;
+	DataSet         *contours    = NULL;
+	Contour<double> *contouri    = NULL;
+	PyObject        *py_dicti    = NULL;
+	PyObject        *py_item     = NULL;
+
+	if (PyString_Check(py_list)){
+		FetchData(&contourname,py_list);
+		contours=DomainOutlineRead<double>(contourname);
+	}
+	else if(PyList_Check(py_list)){
+
+		contours=new DataSet(0);
+		numcontours=(int)PyList_Size(py_list);
+
+		for(int i=0;i<numcontours;i++){
+
+			contouri=xNew<Contour<double> >(1);
+			py_dicti=PyList_GetItem(py_list,(Py_ssize_t)i);
+
+			py_item = PyDict_GetItemString(py_dicti,"nods");
+			if(!py_item) _error_("input structure does not have a 'nods' field");
+			FetchData(&contouri->nods,py_item);
+
+			py_item = PyDict_GetItemString(py_dicti,"x");
+			if(!py_item) _error_("input structure does not have a 'x' field");
+			FetchData(&contouri->x,&test1,&test2,py_item);
+			if(test1!=contouri->nods || test2!=1) _error_("field x should be of size ["<<contouri->nods<<" 1]");
+
+			py_item = PyDict_GetItemString(py_dicti,"y");
+			if(!py_item) _error_("input structure does not have a 'y' field");
+			FetchData(&contouri->y,&test1,&test2,py_item);
+			if(test1!=contouri->nods || test2!=1) _error_("field y should be of size ["<<contouri->nods<<" 1]");
+
+			contours->AddObject(contouri);
+		}
+	}
+	else{
+		_error_("Contour is neither a string nor a structure and cannot be loaded");
+	}
+
+	/*clean-up and assign output pointer*/
+	*pcontours=contours;
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/python/io/pythonio.h
===================================================================
--- /issm/trunk-jpl/src/c/python/io/pythonio.h	(revision 13367)
+++ /issm/trunk-jpl/src/c/python/io/pythonio.h	(revision 13368)
@@ -35,5 +35,5 @@
 void FetchData(BamgOpts** bamgopts,PyObject* py_dict);
 void FetchData(Options** poptions,int istart, int nrhs,PyObject* arguments);
-void FetchData(DataSet** pcontours,PyObject* py_dict);
+void FetchData(DataSet** pcontours,PyObject* py_list);
 
 int CheckNumPythonArguments(PyObject* inputs,int NRHS, void (*function)( void ));
