Anonymous avatar Anonymous committed 39ef3af

Put in some documentation

Comments (0)

Files changed (3)

celerypylons/__init__.py

+"""
+Automatically sets the environment variable `CELERY_LOADER` to
+`celerypylons.loader:PylonsLoader`.  This ensures the loader is
+specified when accessing the rest of this package, and allows celery
+to be installed in a webapp just by importing celerypylons::
+
+    import celerypylons
+
+Is this really a good idea?
+"""
 import os
 import warnings
 

celerypylons/commands.py

 
 
 class CeleryCommand(Command):
+    """
+    Abstract Base Class for celery commands.
+
+    The celery commands are somewhat aggressive about loading
+    celery.conf, and since our module sets the `CELERY_LOADER`
+    environment variable to our loader, we have to bootstrap a bit and
+    make sure we've had a chance to load the pylons config off of the
+    commandline, otherwise everything fails.
+    """
     min_args = 1
     min_args_error = "Please provide a paster config file as an argument."
     takes_config_file = 1
     requires_config_file = True
 
     def run(self, args):
+        """
+        Overrides Command.run
+        
+        Checks for a config file argument and loads it.
+        """
         if len(args) < self.min_args:
             raise BadCommand(
                 self.min_args_error % {'min_args': self.min_args,
                                        'actual_args': len(args)})            
         self.bootstrap_config(args[0])
         self.update_parser()
-        return super(CeleryCommand, self).run(args)
+        return super(CeleryCommand, self).run(args[1:])
 
     def update_parser(self):
+        """
+        Abstract method.  Allows for the class's parser to be updated
+        before the superclass's `run` method is called.  Necessary to
+        allow options/arguments to be passed through to the underlying
+        celery command.
+        """
         raise NotImplemented("Abstract Method.")
 
     def bootstrap_config(self, conf):
+        """
+        Loads the pylons configuration.
+        """
         path_to_ini_file = os.path.realpath(conf)
         conf = paste.deploy.appconfig('config:' + path_to_ini_file)
         config.init_app(conf.global_conf,conf.local_conf)
 
     def command(self):
         from celery.bin import camqadm
-        return camqadm.camqadm(*self.args[1:], **vars(self.options))
+        return camqadm.camqadm(*self.args, **vars(self.options))
 
     
 class CeleryEventCommand(CeleryCommand):

celerypylons/loader.py

         
 
 class PylonsLoader(BaseLoader):
-    """Pylons celery loader.
+    """
+    Pylons celery loader.
 
         * Maps the celery config onto pylons.config
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.