diff --git a/flower/__init__.py b/flower/__init__.py index d1bf65e9d..6d22832a2 100644 --- a/flower/__init__.py +++ b/flower/__init__.py @@ -1,4 +1,6 @@ +from __future__ import absolute_import + VERSION = (0, 3, 0) __version__ = '.'.join(map(str, VERSION)) -from app import Flower +from .app import Flower # noqa diff --git a/flower/api/__init__.py b/flower/api/__init__.py index 6fcf8d600..74f163f78 100644 --- a/flower/api/__init__.py +++ b/flower/api/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + import tornado.websocket diff --git a/flower/api/events.py b/flower/api/events.py index 5fb424560..f10d30d55 100644 --- a/flower/api/events.py +++ b/flower/api/events.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + import sys from ..api import BaseWebSocketHandler @@ -15,12 +17,12 @@ def send_message(cls, event): l.write_message(event) -EVENTS = ('task-sent', 'task-received','task-started','task-succeeded', +EVENTS = ('task-sent', 'task-received', 'task-started', 'task-succeeded', 'task-failed', 'task-revoked', 'task-retried') def getClassName(eventname): - return ''.join(map(lambda x:x[0].upper()+x[1:], eventname.split('-'))) + return ''.join(map(lambda x: x[0].upper() + x[1:], eventname.split('-'))) # Dynamically generates handler classes @@ -28,7 +30,7 @@ def getClassName(eventname): for event in EVENTS: classname = getClassName(event) setattr(thismodule, classname, - type(classname, (EventsApiHandler,), {'listeners':[]})) + type(classname, (EventsApiHandler, ), {'listeners': []})) __all__ = map(getClassName, EVENTS) diff --git a/flower/api/tasks.py b/flower/api/tasks.py index f0e2651c2..e697b036b 100644 --- a/flower/api/tasks.py +++ b/flower/api/tasks.py @@ -42,5 +42,5 @@ def get(self, taskid): raise HTTPError(503) response = {'task-id': taskid, 'state': result.state} if result.ready(): - response.update({'result': result.result}) + response.update({'result': result.result}) self.write(response) diff --git a/flower/app.py b/flower/app.py index 5f68903fa..b23fdf8d2 100644 --- a/flower/app.py +++ b/flower/app.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + import tornado.web from tornado import ioloop diff --git a/flower/command.py b/flower/command.py index 0171671ba..5bf67fe11 100644 --- a/flower/command.py +++ b/flower/command.py @@ -39,4 +39,3 @@ def flower_option(arg): name, _, value = arg.lstrip('-').partition("=") name = name.replace('-', '_') return name in options - diff --git a/flower/events.py b/flower/events.py index 3121be8fa..2abf618f5 100644 --- a/flower/events.py +++ b/flower/events.py @@ -1,4 +1,5 @@ from __future__ import absolute_import +from __future__ import with_statement import time import logging diff --git a/flower/models.py b/flower/models.py index cef30cd70..41c32c3f5 100644 --- a/flower/models.py +++ b/flower/models.py @@ -22,9 +22,10 @@ def __init__(self, app): state = self.app.state for workername, stat in sorted(state.stats.iteritems()): + pool = stat.get('pool') or {} self.workers[workername] = dict( status=(workername in state.ping), - concurrency=stat['pool']['max-concurrency'] if stat['pool'] else None, + concurrency=pool.get('max-concurrency'), completed_tasks=sum(stat['total'].itervalues()), running_tasks=len(state.active_tasks.get(workername, [])), queues=map(lambda x: x['name'], diff --git a/flower/urls.py b/flower/urls.py index 6adea774c..cd8c70bb7 100644 --- a/flower/urls.py +++ b/flower/urls.py @@ -45,7 +45,8 @@ (r"/api/worker/pool/shrink/(.+)", control.WorkerPoolShrink), (r"/api/worker/pool/autoscale/(.+)", control.WorkerPoolAutoscale), (r"/api/worker/queue/add-consumer/(.+)", control.WorkerQueueAddConsumer), - (r"/api/worker/queue/cancel-consumer/(.+)", control.WorkerQueueCancelConsumer), + (r"/api/worker/queue/cancel-consumer/(.+)", + control.WorkerQueueCancelConsumer), # Task API (r"/api/task/async-apply/(.+)", tasks.TaskAsyncApply), (r"/api/task/result/(.+)", tasks.TaskResult), diff --git a/flower/views/__init__.py b/flower/views/__init__.py index 0ba70aea8..de887ad63 100644 --- a/flower/views/__init__.py +++ b/flower/views/__init__.py @@ -38,4 +38,3 @@ def write_error(self, status_code, **kwargs): self.set_header('Content-Type', 'text/plain') self.write(message) self.set_status(status_code) - diff --git a/flower/views/tasks.py b/flower/views/tasks.py index 1469439df..101691cae 100644 --- a/flower/views/tasks.py +++ b/flower/views/tasks.py @@ -26,7 +26,8 @@ def get(self): worker = worker if worker != 'All' else None type = type if type != 'All' else None - tasks = TaskModel.iter_tasks(app, limit=limit, type=type, worker=worker) + tasks = TaskModel.iter_tasks(app, + limit=limit, type=type, worker=worker) workers = WorkersModel.get_workers(app) seen_task_types = TaskModel.seen_task_types(app)