Don't specify curve or data block types. See doc/standards.txt.
[hooke.git] / hooke / plugin / flatfilt.py
index 952e6fc2e790011c0fb237fdb4c79787d5fbc990..44f0e1f8ed3f5e1806e66cf4592a3516de924a3d 100644 (file)
@@ -28,8 +28,7 @@ several associated :class:`~hooke.command.Command`\s for removing flat
 
 See Also
 --------
-:mod:`~hooke.plugin.convfilt` for a convolution-based filter for
-:class:`~hooke.experiment.VelocityClamp` experiments.
+:mod:`~hooke.plugin.convfilt` for a convolution-based filter.
 """
 
 import copy
@@ -41,7 +40,6 @@ from scipy.signal.signaltools import medfilt
 from ..command import Argument, Success, Failure, UncaughtException
 from ..config import Setting
 from ..curve import Data
-from ..experiment import VelocityClamp
 from ..util.fit import PoorFit
 from ..util.peak import (find_peaks, peaks_to_mask,
                          find_peaks_arguments, Peak, _kwargs)
@@ -144,7 +142,7 @@ Name for storing the list of peaks in the `.info` dictionary.
 
     def _run(self, hooke, inqueue, outqueue, params):
         self._add_to_command_stack(params)
-        params = self.__setup_params(hooke=hooke, params=params)
+        params = self._setup_params(hooke=hooke, params=params)
         block = self._block(hooke=hooke, params=params)
         dist_data = self._get_column(hooke=hooke, params=params,
                                      column_name='distance column')
@@ -165,14 +163,11 @@ Name for storing the list of peaks in the `.info` dictionary.
                          values=peaks_to_mask(def_data, peaks) * def_data)
         outqueue.put(peaks)
 
-    def __setup_params(self, hooke, params):
+    def _setup_params(self, hooke, params):
         """Setup `params` from config and return the z piezo and
         deflection arrays.
         """
         curve = self._curve(hooke=hooke, params=params)
-        if curve.info['experiment'] != VelocityClamp:
-            raise Failure('%s operates on VelocityClamp experiments, not %s'
-                          % (self.name, curve.info['experiment']))
         for key,value in params.items():
             if value == None and key in self.plugin.config:
                 # Use configured default value.
@@ -213,10 +208,12 @@ class FlatFilterCommand (FilterCommand):
     def __init__(self, plugin):
         flat_peaks = [c for c in plugin._commands
                       if c.name == 'flat filter peaks'][0]
-        flat_peaks_arg_names = [a.name for a in flat_peaks.arguments]
+        flat_peaks_arguments = [a for a in flat_peaks.arguments
+                                if a.name not in ['help', 'stack']]
+        flat_peaks_arg_names = [a.name for a in flat_peaks_arguments]
         plugin_arguments = [a for a in plugin._arguments
                             if a.name not in flat_peaks_arg_names]
-        arguments = flat_peaks.arguments + plugin_arguments
+        arguments = flat_peaks_arguments + plugin_arguments
         super(FlatFilterCommand, self).__init__(
             plugin, name='flat filter playlist')
         self.arguments.extend(arguments)