Browse Source

Cosmetics

Ask Solem 13 years ago
parent
commit
4ba2611e25
1 changed files with 12 additions and 9 deletions
  1. 12 9
      celery/bin/base.py

+ 12 - 9
celery/bin/base.py

@@ -94,6 +94,11 @@ class Command(object):
         """Get supported command line options."""
         return self.option_list
 
+    def expanduser(self, value):
+        if isinstance(value, basestring):
+            return os.path.expanduser(value)
+        return value
+
     def handle_argv(self, prog_name, argv):
         """Parses command line arguments from ``argv`` and dispatches
         to :meth:`run`.
@@ -105,20 +110,19 @@ class Command(object):
         and ``argv`` contains positional arguments.
 
         """
+
         options, args = self.parse_options(prog_name, argv)
-        for o in vars(options):
-            v = getattr(options, o)
-            if isinstance(v, basestring):
-                setattr(options, o, os.path.expanduser(v))
-        argv = map(lambda a: isinstance(a, basestring)
-                   and os.path.expanduser(a) or a, argv)
+        options = dict((k, self.expanduser(v))
+                        for k, v in vars(options).iteritems()
+                            if not k.startswith('_'))
+        argv = map(self.expanduser, argv)
         if not self.supports_args and args:
             sys.stderr.write(
                 "\nUnrecognized command line arguments: %s\n" % (
                     ", ".join(args), ))
             sys.stderr.write("\nTry --help?\n")
             sys.exit(1)
-        return self.run(*args, **vars(options))
+        return self.run(*args, **options)
 
     def parse_options(self, prog_name, arguments):
         """Parse the available options."""
@@ -128,8 +132,7 @@ class Command(object):
             print(self.version)
             sys.exit(0)
         parser = self.create_parser(prog_name)
-        options, args = parser.parse_args(arguments)
-        return options, args
+        return parser.parse_args(arguments)
 
     def create_parser(self, prog_name):
         return self.Parser(prog=prog_name,