Moved Argument and other class definitions after Command
authorW. Trevor King <wking@drexel.edu>
Sat, 8 May 2010 04:07:11 +0000 (00:07 -0400)
committerW. Trevor King <wking@drexel.edu>
Sat, 8 May 2010 04:07:11 +0000 (00:07 -0400)
hooke/plugin/__init__.py
hooke/plugin/cut.py

index d34d1fddd4d31f57e11652c4a92a262eebb0d613..c3b25b7d3bdfea4f0fc21fde0087834c28f7a7b0 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
 """The plugin module provides optional submodules that add new Hooke
 commands.
 
@@ -103,92 +102,6 @@ class Success (CommandExit):
 class Failure (CommandExit):
     pass
 
-
-class Argument (object):
-    """Structured user input for :class:`Command`\s.
-    
-    TODO: ranges for `count`?
-    """
-    def __init__(self, name, type='string', metavar=None, default=None, 
-                 optional=True, count=1, completion_callback=None,
-                 callback=None, aliases=None, help=''):
-        self.name = name
-        self.type = type
-        if metavar == None:
-            metavar = name.upper()
-        self.metavar = metavar
-        self.default = default
-        self.optional = optional
-        self.count = count
-        self.completion_callback = completion_callback
-        self.callback = callback
-        if aliases == None:
-            aliases = []
-        self.aliases = aliases
-        self._help = help
-
-    def __str__(self):
-        return '<%s %s>' % (self.__class__.__name__, self.name)
-
-    def __repr__(self):
-        return self.__str__()
-
-    def help(self):
-        parts = ['%s ' % self.name]
-        if self.metavar != None:
-            parts.append('%s ' % self.metavar)
-        parts.extend(['(%s) ' % self.type, self._help])
-        return ''.join(parts)
-
-    def validate(self, value):
-        """If `value` is not appropriate, raise `ValueError`.
-        """
-        pass # TODO: validation
-
-    # TODO: type conversion
-
-# TODO: type extensions?
-
-# Useful callbacks
-
-class StoreValue (object):
-    def __init__(self, value):
-        self.value = value
-    def __call__(self, command, argument, fragment=None):
-        return self.value
-
-class NullQueue (queue.Queue):
-    """The :class:`queue.Queue` equivalent of `/dev/null`.
-
-    This is a bottomless pit.  Items go in, but never come out.
-    """
-    def get(self, block=True, timeout=None):
-        """Raise queue.Empty.
-        
-        There's really no need to override the base Queue.get, but I
-        want to know if someone tries to read from a NullQueue.  With
-        the default implementation they would just block silently
-        forever :(.
-        """
-        raise queue.Empty
-
-    def put(self, item, block=True, timeout=None):
-        """Dump an item into the void.
-
-        Block and timeout are meaningless, because there is always a
-        free slot available in a bottomless pit.
-        """
-        pass
-
-class PrintQueue (NullQueue):
-    """Debugging :class:`NullQueue` that prints items before dropping
-    them.
-    """
-    def put(self, item, block=True, timeout=None):
-        """Print `item` and then dump it into the void.
-        """
-        print 'ITEM:\n%s' % item
-
 class Command (object):
     """One-line command description here.
 
@@ -277,3 +190,88 @@ class Command (object):
         argument_part = '\n'.join(argument_part)
         help_part = self._help
         return '\n\n'.join([name_part, argument_part, help_part])
+
+class Argument (object):
+    """Structured user input for :class:`Command`\s.
+    
+    TODO: ranges for `count`?
+    """
+    def __init__(self, name, type='string', metavar=None, default=None, 
+                 optional=True, count=1, completion_callback=None,
+                 callback=None, aliases=None, help=''):
+        self.name = name
+        self.type = type
+        if metavar == None:
+            metavar = name.upper()
+        self.metavar = metavar
+        self.default = default
+        self.optional = optional
+        self.count = count
+        self.completion_callback = completion_callback
+        self.callback = callback
+        if aliases == None:
+            aliases = []
+        self.aliases = aliases
+        self._help = help
+
+    def __str__(self):
+        return '<%s %s>' % (self.__class__.__name__, self.name)
+
+    def __repr__(self):
+        return self.__str__()
+
+    def help(self):
+        parts = ['%s ' % self.name]
+        if self.metavar != None:
+            parts.append('%s ' % self.metavar)
+        parts.extend(['(%s) ' % self.type, self._help])
+        return ''.join(parts)
+
+    def validate(self, value):
+        """If `value` is not appropriate, raise `ValueError`.
+        """
+        pass # TODO: validation
+
+    # TODO: type conversion
+
+# TODO: type extensions?
+
+# Useful callbacks
+
+class StoreValue (object):
+    def __init__(self, value):
+        self.value = value
+    def __call__(self, command, argument, fragment=None):
+        return self.value
+
+class NullQueue (queue.Queue):
+    """The :class:`queue.Queue` equivalent of `/dev/null`.
+
+    This is a bottomless pit.  Items go in, but never come out.
+    """
+    def get(self, block=True, timeout=None):
+        """Raise queue.Empty.
+        
+        There's really no need to override the base Queue.get, but I
+        want to know if someone tries to read from a NullQueue.  With
+        the default implementation they would just block silently
+        forever :(.
+        """
+        raise queue.Empty
+
+    def put(self, item, block=True, timeout=None):
+        """Dump an item into the void.
+
+        Block and timeout are meaningless, because there is always a
+        free slot available in a bottomless pit.
+        """
+        pass
+
+class PrintQueue (NullQueue):
+    """Debugging :class:`NullQueue` that prints items before dropping
+    them.
+    """
+    def put(self, item, block=True, timeout=None):
+        """Print `item` and then dump it into the void.
+        """
+        print 'ITEM:\n%s' % item
index 41cbedb0b130b3038a3ab252f776a241a40e5f74..f2e71cbd6b2960547a0736f0139a7b04d7951a43 100644 (file)
@@ -1,4 +1,6 @@
-# -*- coding: utf-8 -*-
+"""Defines :class:`CutPlugin` and :class:`CutCommand`.
+"""
+
 class cutCommands(object):
 
     def _plug_init(self):