Index: sansmodels/src/python_wrapper/modelTemplate.txt
===================================================================
--- sansmodels/src/python_wrapper/modelTemplate.txt	(revision 67424cdc019bde2f4cbc089828ff660e6f914c2c)
+++ sansmodels/src/python_wrapper/modelTemplate.txt	(revision 67424cdc019bde2f4cbc089828ff660e6f914c2c)
@@ -0,0 +1,142 @@
+#!/usr/bin/env python
+
+##############################################################################
+#	This software was developed by the University of Tennessee as part of the
+#	Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
+#	project funded by the US National Science Foundation.
+#
+#	If you use DANSE applications to do scientific research that leads to
+#	publication, we ask that you acknowledge the use of the software with the
+#	following sentence:
+#
+#	"This work benefited from DANSE software developed under NSF award DMR-0520547."
+#
+#	copyright 2008, University of Tennessee
+##############################################################################
+
+
+""" 
+Provide functionality for a C extension model
+
+:WARNING: THIS FILE WAS GENERATED BY WRAPPERGENERATOR.PY
+         DO NOT MODIFY THIS FILE, MODIFY [INCLUDE_FILE]
+         AND RE-RUN THE GENERATOR SCRIPT
+
+"""
+
+from sans.models.BaseComponent import BaseComponent
+from sans.models.sans_extension.c_models import [CPYTHONCLASS]
+import copy    
+
+def create_[PYTHONCLASS]():
+    obj = [PYTHONCLASS]()
+    #[CPYTHONCLASS].__init__(obj) is called by [PYTHONCLASS] constructor
+    return obj
+
+class [PYTHONCLASS]([CPYTHONCLASS], BaseComponent):
+    """ 
+    Class that evaluates a [PYTHONCLASS] model. 
+    This file was auto-generated from [INCLUDE_FILE].
+    Refer to that file and the structure it contains
+    for details of the model.
+    [DEFAULT_LIST]
+    """
+        
+    def __init__(self):
+        """ Initialization """
+        
+        # Initialize BaseComponent first, then sphere
+        BaseComponent.__init__(self)
+        #apply([CPYTHONCLASS].__init__, (self,)) 
+        [CPYTHONCLASS].__init__(self)
+        
+        ## Name of the model
+        self.name = "[PYTHONCLASS]"
+        ## Model description
+        self.description ="""[DESCRIPTION]"""
+       
+        [PAR_DETAILS]
+        ## fittable parameters
+        self.fixed=[FIXED]
+        
+        ## non-fittable parameters
+        self.non_fittable = [NON_FITTABLE_PARAMS]
+        
+        ## parameters with orientation
+        self.orientation_params = [ORIENTATION_PARAMS]
+
+    def __setstate__(self, state):
+        """
+        restore the state of a model from pickle
+        """
+        self.__dict__, self.params, self.dispersion = state
+        
+    def __reduce_ex__(self, proto):
+        """
+        Overwrite the __reduce_ex__ of PyTypeObject *type call in the init of 
+        c model.
+        """
+        state = (self.__dict__, self.params, self.dispersion)
+        return (create_[PYTHONCLASS],tuple(), state, None, None)
+        
+    def clone(self):
+        """ Return a identical copy of self """
+        return self._clone([PYTHONCLASS]())   
+       	
+   
+    def run(self, x=0.0):
+        """ 
+        Evaluate the model
+        
+        :param x: input q, or [q,phi]
+        
+        :return: scattering function P(q)
+        
+        """
+        
+        return [CPYTHONCLASS].run(self, x)
+   
+    def runXY(self, x=0.0):
+        """ 
+        Evaluate the model in cartesian coordinates
+        
+        :param x: input q, or [qx, qy]
+        
+        :return: scattering function P(q)
+        
+        """
+        
+        return [CPYTHONCLASS].runXY(self, x)
+        
+    def evalDistribution(self, x=[]):
+        """ 
+        Evaluate the model in cartesian coordinates
+        
+        :param x: input q[], or [qx[], qy[]]
+        
+        :return: scattering function P(q[])
+        
+        """
+        return [CPYTHONCLASS].evalDistribution(self, x)
+        
+    def calculate_ER(self):
+        """ 
+        Calculate the effective radius for P(q)*S(q)
+        
+        :return: the value of the effective radius
+        
+        """       
+        return [CPYTHONCLASS].calculate_ER(self)
+        
+    def set_dispersion(self, parameter, dispersion):
+        """
+        Set the dispersion object for a model parameter
+        
+        :param parameter: name of the parameter [string]
+        :param dispersion: dispersion object of type DispersionModel
+        
+        """
+        return [CPYTHONCLASS].set_dispersion(self, parameter, dispersion.cdisp)
+        
+   
+# End of file
