-# Copyright
+# Copyright (C) 2010 W. Trevor King <wking@drexel.edu>
+#
+# This file is part of Hooke.
+#
+# Hooke is free software: you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
+#
+# Hooke is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with Hooke. If not, see
+# <http://www.gnu.org/licenses/>.
"""The `plugin` module provides optional submodules that add new Hooke
commands.
('cut', True),
# ('fit', True),
# ('flatfilts-rolf', True),
-# ('flatfilts', True),
+ ('flatfilt', True),
# ('generalclamp', True),
# ('generaltccd', True),
# ('generalvclamp', True),
BUILTIN_MODULES = [
'config',
+ 'curve',
'debug',
'note',
'playlist',
self.name = name
self.setting_section = '%s plugin' % self.name
self.config = {}
+ self._commands = []
def dependencies(self):
- """Return a list of :class:`Plugin`\s we require."""
+ """Return a list of names of :class:`Plugin`\s we require."""
return []
def default_settings(self):
"""
return []
+ def _setup_commands(self):
+ """Perform internal setup on stored commands.
+
+ Currently:
+
+ * Adds a `plugin` attribute to each command so they can access
+ the plugin configuration with `.plugin.config`.
+ """
+ for command in self._commands:
+ command.plugin = self
+
def commands(self):
"""Return a list of :class:`hooke.command.Command`\s provided.
"""
- return []
+ return list(self._commands)
class Builtin (Plugin):
"""A required collection of Hooke commands.