| 
					
				 | 
			
			
				@@ -66,10 +66,13 @@ class Error(Exception): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.reason 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def command(fun, name=None, sortpri=0): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    commands[name or fun.__name__] = fun 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fun.sortpri = sortpri 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return fun 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def command(*args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def _register(fun): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        commands[kwargs.get('name') or fun.__name__] = fun 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fun 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return _register(args[0]) if args else _register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def load_extension_commands(namespace='celery.commands'): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,6 +219,7 @@ class Delegate(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.target.run(*args, **kwargs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class multi(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Start multiple worker instances.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -225,9 +229,9 @@ class multi(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def run_from_argv(self, prog_name, argv): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         from celery.bin.celeryd_multi import MultiTool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return MultiTool().execute_from_commandline(argv, prog_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-multi = command(multi) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class worker(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Start worker instance. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,9 +246,9 @@ class worker(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         celery worker --autoscale=10,0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Command = 'celery.bin.celeryd:WorkerCommand' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-worker = command(worker, sortpri=01) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class events(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Event-stream utilities. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -265,9 +269,9 @@ class events(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         celery events -C mod.attr -F 1.0 --detach --maxrate=100/m -l info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Command = 'celery.bin.celeryev:EvCommand' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-events = command(events, sortpri=10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class beat(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Start the celerybeat periodic task scheduler. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -279,9 +283,9 @@ class beat(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Command = 'celery.bin.celerybeat:BeatCommand' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-beat = command(beat, sortpri=20) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class amqp(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """AMQP Administration Shell. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -300,9 +304,9 @@ class amqp(Delegate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Command = 'celery.bin.camqadm:AMQPAdminCommand' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-amqp = command(amqp, sortpri=30) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command(name='list') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class list_(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Get info from broker. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -337,9 +341,9 @@ class list_(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         with self.app.connection() as conn: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.app.amqp.TaskConsumer(conn).declare() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             topics[what](conn.manager) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-list_ = command(list_, 'list') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class call(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Call a task by name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -393,9 +397,9 @@ class call(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                  eta=maybe_iso8601(kw.get('eta')), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                  expires=expires) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.out(res.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-call = command(call) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class purge(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Erase all messages from all known task queues. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -413,9 +417,9 @@ class purge(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mnum=messages, qnum=queues, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             messages=text.pluralize(messages, 'message'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             queues=text.pluralize(queues, 'queue'))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-purge = command(purge) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class result(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Gives the return value for a given task id. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -446,7 +450,6 @@ class result(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             value = result.get() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.out(self.prettify(value)[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-result = command(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class _RemoteControl(Command): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -540,6 +543,7 @@ class _RemoteControl(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.out(body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class inspect(_RemoteControl): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Inspect the worker at runtime. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -568,9 +572,9 @@ class inspect(_RemoteControl): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def call(self, method, *args, **options): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         i = self.app.control.inspect(**options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return getattr(i, method)(*args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-inspect = command(inspect) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class control(_RemoteControl): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Workers remote control. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -635,9 +639,9 @@ class control(_RemoteControl): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def cancel_consumer(self, method, queue, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """<queue>""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.call(method, queue, reply=True, **kwargs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-control = command(control) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class status(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Show list of workers that are online.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     option_list = inspect.option_list 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -655,9 +659,9 @@ class status(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if not kwargs.get('quiet', False): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.out('\n{0} {1} online.'.format( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nodecount, text.pluralize(nodecount, 'node'))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-status = command(status) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class migrate(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Migrate tasks from one broker to another. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -699,9 +703,9 @@ class migrate(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       Connection(args[1]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       callback=self.on_migrate_task, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       **kwargs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-migrate = command(migrate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class shell(Command):  # pragma: no cover 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Start shell session with convenient access to celery symbols. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -811,9 +815,8 @@ class shell(Command):  # pragma: no cover 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         import bpython 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         bpython.embed(self.locals) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-shell = command(shell) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class help(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Show help screen and exit.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -826,16 +829,15 @@ class help(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              commands=CeleryCommand.list_commands())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return EX_USAGE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-help = command(help) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class report(Command): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Shows information useful to include in bugreports.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def run(self, *args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.out(self.app.bugreport()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return EX_OK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-report = command(report) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class CeleryCommand(BaseCommand): 
			 |