Index: src/sas/sascalc/fit/AbstractFitEngine.py
===================================================================
--- src/sas/sascalc/fit/AbstractFitEngine.py	(revision a1b8fee73528559155793dd74cda07d0c32e9d72)
+++ src/sas/sascalc/fit/AbstractFitEngine.py	(revision 50fcb09b3ee47cf23c26b90d9c291f41415c0aa5)
@@ -137,9 +137,9 @@
                that will smear the theory data (slit smearing or resolution
                smearing) when set.
-            
+
             The proper way to set the smearing object would be to
             do the following: ::
-            
-                from sas.sascalc.data_util.qsmearing import smear_selection
+
+                from sas.sascalc.fit.qsmearing import smear_selection
                 smearer = smear_selection(some_data)
                 fitdata1d = FitData1D( x= [1,3,..,],
@@ -147,9 +147,9 @@
                                         dx=None,
                                         dy=[1,2...], smearer= smearer)
-           
+
             :Note: that some_data _HAS_ to be of
                 class DataLoader.data_info.Data1D
                 Setting it back to None will turn smearing off.
-                
+
         """
         Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy, lam=lam, dlam=dlam)
@@ -176,5 +176,5 @@
         ## Max Q-value
         self.qmax = max(self.x)
-        
+
         # Range used for input to smearing
         self._qmin_unsmeared = self.qmin
@@ -184,5 +184,5 @@
         self.idx_unsmeared = (self.x >= self._qmin_unsmeared) \
                             & (self.x <= self._qmax_unsmeared)
-  
+
     def set_fit_range(self, qmin=None, qmax=None):
         """ to set the fit range"""
@@ -199,8 +199,8 @@
         self._qmin_unsmeared = self.qmin
         self._qmax_unsmeared = self.qmax
-        
+
         self._first_unsmeared_bin = 0
         self._last_unsmeared_bin = len(self.x) - 1
-        
+
         if self.smearer is not None:
             self._first_unsmeared_bin, self._last_unsmeared_bin = \
@@ -208,5 +208,5 @@
             self._qmin_unsmeared = self.x[self._first_unsmeared_bin]
             self._qmax_unsmeared = self.x[self._last_unsmeared_bin]
-            
+
         # Identify the bin range for the unsmeared and smeared spaces
         self.idx = (self.x >= self.qmin) & (self.x <= self.qmax)
@@ -231,10 +231,10 @@
         """
             Compute residuals.
-            
+
             If self.smearer has been set, use if to smear
             the data before computing chi squared.
-            
+
             :param fn: function that return model value
-            
+
             :return: residuals
         """
@@ -242,5 +242,5 @@
         fx = np.zeros(len(self.x))
         fx[self.idx_unsmeared] = fn(self.x[self.idx_unsmeared])
-       
+
         ## Smear theory data
         if self.smearer is not None:
@@ -253,10 +253,10 @@
             raise RuntimeError, msg
         return (self.y[self.idx] - fx[self.idx]) / self.dy[self.idx], fx[self.idx]
-            
+
     def residuals_deriv(self, model, pars=[]):
         """
             :return: residuals derivatives .
-            
-            :note: in this case just return empty array 
+
+            :note: in this case just return empty array
         """
         return []
@@ -293,5 +293,5 @@
         x_max = max(math.fabs(sas_data2d.xmin), math.fabs(sas_data2d.xmax))
         y_max = max(math.fabs(sas_data2d.ymin), math.fabs(sas_data2d.ymax))
-        
+
         ## fitting range
         if qmin is None:
@@ -305,7 +305,7 @@
             self.res_err_data = copy.deepcopy(self.err_data)
         #self.res_err_data[self.res_err_data==0]=1
-        
+
         self.radius = np.sqrt(self.qx_data**2 + self.qy_data**2)
-        
+
         # Note: mask = True: for MASK while mask = False for NOT to mask
         self.idx = ((self.qmin <= self.radius) &\
@@ -368,15 +368,15 @@
 
         return res, gn
-        
+
     def residuals_deriv(self, model, pars=[]):
         """
         :return: residuals derivatives .
-        
+
         :note: in this case just return empty array
-        
+
         """
         return []
-    
-    
+
+
 class FitAbort(Exception):
     """
@@ -396,23 +396,23 @@
         self.fit_arrange_dict = {}
         self.fitter_id = None
-        
+
     def set_model(self, model, id, pars=[], constraints=[], data=None):
         """
         set a model on a given  in the fit engine.
-        
-        :param model: sas.models type 
+
+        :param model: sas.models type
         :param id: is the key of the fitArrange dictionary where model is saved as a value
-        :param pars: the list of parameters to fit 
-        :param constraints: list of 
+        :param pars: the list of parameters to fit
+        :param constraints: list of
             tuple (name of parameter, value of parameters)
             the value of parameter must be a string to constraint 2 different
             parameters.
-            Example:  
+            Example:
             we want to fit 2 model M1 and M2 both have parameters A and B.
             constraints can be ``constraints = [(M1.A, M2.B+2), (M1.B= M2.A *5),...,]``
-            
-             
+
+
         :note: pars must contains only name of existing model's parameters
-        
+
         """
         if not pars:
@@ -445,5 +445,5 @@
         in a FitArrange object and adds that object in a dictionary
         with key id.
-        
+
         :param data: data added
         :param id: unique key corresponding to a fitArrange object with data
@@ -456,5 +456,5 @@
                                  dx=data.dx, dy=data.dy, smearer=smearer)
         fitdata.sas_data = data
-       
+
         fitdata.set_fit_range(qmin=qmin, qmax=qmax)
         #A fitArrange is already created but contains model only at id
@@ -466,9 +466,9 @@
             fitproblem.add_data(fitdata)
             self.fit_arrange_dict[id] = fitproblem
-   
+
     def get_model(self, id):
         """
         :param id: id is key in the dictionary containing the model to return
-        
+
         :return:  a model at this id or None if no FitArrange element was
             created with this id
@@ -478,15 +478,15 @@
         else:
             return None
-    
+
     def remove_fit_problem(self, id):
         """remove   fitarrange in id"""
         if id in self.fit_arrange_dict:
             del self.fit_arrange_dict[id]
-            
+
     def select_problem_for_fit(self, id, value):
         """
         select a couple of model and data at the id position in dictionary
         and set in self.selected value to value
-        
+
         :param value: the value to allow fitting.
                 can only have the value one or zero
@@ -494,15 +494,15 @@
         if id in self.fit_arrange_dict:
             self.fit_arrange_dict[id].set_to_fit(value)
-             
+
     def get_problem_to_fit(self, id):
         """
         return the self.selected value of the fit problem of id
-        
+
         :param id: the id of the problem
         """
         if id in self.fit_arrange_dict:
             self.fit_arrange_dict[id].get_to_fit()
-    
-    
+
+
 class FitArrange:
     def __init__(self):
@@ -511,8 +511,8 @@
         to perform the Fit.FitArrange must contain exactly one model
         and at least one data for the fit to be performed.
-        
+
         model: the model selected by the user
         Ldata: a list of data what the user wants to fit
-            
+
         """
         self.model = None
@@ -525,18 +525,18 @@
         """
         set_model save a copy of the model
-        
+
         :param model: the model being set
         """
         self.model = model
-        
+
     def add_data(self, data):
         """
         add_data fill a self.data_list with data to fit
-        
+
         :param data: Data to add in the list
         """
         if not data in self.data_list:
             self.data_list.append(data)
-            
+
     def get_model(self):
         """
@@ -544,5 +544,5 @@
         """
         return self.model
-     
+
     def get_data(self):
         """
@@ -550,22 +550,22 @@
         """
         return self.data_list[0]
-      
+
     def remove_data(self, data):
         """
         Remove one element from the list
-        
+
         :param data: Data to remove from data_list
         """
         if data in self.data_list:
             self.data_list.remove(data)
-            
+
     def set_to_fit(self, value=0):
         """
         set self.selected to 0 or 1  for other values raise an exception
-        
+
         :param value: integer between 0 or 1
         """
         self.selected = value
-        
+
     def get_to_fit(self):
         """
@@ -599,15 +599,15 @@
         if self.model is not None and self.data is not None:
             self.inputs = [(self.model, self.data)]
-     
+
     def set_model(self, model):
         """
         """
         self.model = model
-        
+
     def set_fitness(self, fitness):
         """
         """
         self.fitness = fitness
-        
+
     def __str__(self):
         """
@@ -624,5 +624,5 @@
         msg = [msg1, msg3] + msg2
         return "\n".join(msg)
-    
+
     def print_summary(self):
         """
