Browse Source

Use flake8 instead of pep8+pyflakes and the silly flake ignore list

Ask Solem 14 years ago
parent
commit
5d1a050445
41 changed files with 91 additions and 172 deletions
  1. 1 1
      celery/app/defaults.py
  2. 1 1
      celery/apps/worker.py
  3. 1 1
      celery/backends/cache.py
  4. 1 2
      celery/backends/cassandra.py
  5. 1 1
      celery/backends/mongodb.py
  6. 3 3
      celery/backends/pyredis.py
  7. 1 1
      celery/backends/tyrant.py
  8. 2 1
      celery/beat.py
  9. 1 1
      celery/bin/base.py
  10. 1 1
      celery/bin/celeryd.py
  11. 3 1
      celery/concurrency/processes/pool.py
  12. 4 2
      celery/db/a805d4bd.py
  13. 1 1
      celery/db/models.py
  14. 1 1
      celery/events/cursesmon.py
  15. 0 1
      celery/loaders/default.py
  16. 1 1
      celery/log.py
  17. 3 3
      celery/platforms.py
  18. 2 1
      celery/task/__init__.py
  19. 2 0
      celery/task/schedules.py
  20. 2 1
      celery/tests/__init__.py
  21. 1 1
      celery/tests/test_backends/test_database.py
  22. 2 1
      celery/tests/test_backends/test_redis.py
  23. 2 1
      celery/tests/test_bin/test_celeryd.py
  24. 1 1
      celery/tests/test_bin/test_celeryev.py
  25. 2 5
      celery/tests/test_compat/test_log.py
  26. 3 2
      celery/tests/test_concurrency/test_concurrency_processes.py
  27. 1 1
      celery/tests/test_events/test_events_cursesmon.py
  28. 2 7
      celery/tests/test_task/test_task_http.py
  29. 1 0
      celery/tests/test_utils/test_serialization.py
  30. 0 1
      celery/tests/test_worker/test_worker.py
  31. 1 0
      celery/tests/test_worker/test_worker_job.py
  32. 5 11
      celery/tests/utils.py
  33. 2 1
      celery/utils/__init__.py
  34. 18 16
      celery/utils/compat.py
  35. 3 3
      celery/utils/functional.py
  36. 1 1
      celery/utils/mail.py
  37. 1 1
      celery/utils/patch.py
  38. 3 2
      celery/utils/serialization.py
  39. 2 2
      celery/worker/state.py
  40. 0 78
      contrib/release/flakesignore.txt
  41. 8 12
      pavement.py

+ 1 - 1
celery/app/defaults.py

@@ -53,7 +53,7 @@ NAMESPACES = {
         "POOL_LIMIT": Option(None, type="int"),
         "POOL_LIMIT": Option(None, type="int"),
         "INSIST": Option(False, type="bool"),
         "INSIST": Option(False, type="bool"),
         "USE_SSL": Option(False, type="bool"),
         "USE_SSL": Option(False, type="bool"),
-        "TRANSPORT_OPTIONS": Option({}, type="dict")
+        "TRANSPORT_OPTIONS": Option({}, type="dict"),
     },
     },
     "CELERY": {
     "CELERY": {
         "ACKS_LATE": Option(False, type="bool"),
         "ACKS_LATE": Option(False, type="bool"),

+ 1 - 1
celery/apps/worker.py

@@ -3,7 +3,7 @@ import logging
 try:
 try:
     import multiprocessing
     import multiprocessing
 except ImportError:
 except ImportError:
-    multiprocessing = None
+    multiprocessing = None  # noqa
 import os
 import os
 import socket
 import socket
 import sys
 import sys

+ 1 - 1
celery/backends/cache.py

@@ -18,7 +18,7 @@ def import_best_memcache():
             is_pylibmc = True
             is_pylibmc = True
         except ImportError:
         except ImportError:
             try:
             try:
-                import memcache
+                import memcache  # noqa
             except ImportError:
             except ImportError:
                 raise ImproperlyConfigured(
                 raise ImproperlyConfigured(
                         "Memcached backend requires either the 'pylibmc' "
                         "Memcached backend requires either the 'pylibmc' "

+ 1 - 2
celery/backends/cassandra.py

@@ -88,8 +88,7 @@ class CassandraBackend(BaseDictBackend):
 
 
         self._column_family = None
         self._column_family = None
 
 
-    def _retry_on_error(self, fun):
-        self = args[0]
+    def _retry_on_error(self, fun, *args, **kwargs):
         ts = time.time() + self._retry_timeout
         ts = time.time() + self._retry_timeout
         while 1:
         while 1:
             try:
             try:

+ 1 - 1
celery/backends/mongodb.py

@@ -4,7 +4,7 @@ from datetime import datetime
 try:
 try:
     import pymongo
     import pymongo
 except ImportError:
 except ImportError:
-    pymongo = None
+    pymongo = None  # noqa
 
 
 from celery import states
 from celery import states
 from celery.backends.base import BaseDictBackend
 from celery.backends.base import BaseDictBackend

+ 3 - 3
celery/backends/pyredis.py

@@ -12,8 +12,8 @@ try:
     import redis
     import redis
     from redis.exceptions import ConnectionError
     from redis.exceptions import ConnectionError
 except ImportError:
 except ImportError:
-    redis = None
-    ConnectionError = None
+    redis = None            # noqa
+    ConnectionError = None  # noqa
 
 
 
 
 class RedisBackend(KeyValueStoreBackend):
 class RedisBackend(KeyValueStoreBackend):
@@ -100,6 +100,6 @@ class RedisBackend(KeyValueStoreBackend):
                                 db=self.redis_db,
                                 db=self.redis_db,
                                 password=self.redis_password)
                                 password=self.redis_password)
 
 
-    @client.deleter
+    @client.deleter  # noqa
     def client(self, client):
     def client(self, client):
         client.connection.disconnect()
         client.connection.disconnect()

+ 1 - 1
celery/backends/tyrant.py

@@ -2,7 +2,7 @@
 try:
 try:
     import pytyrant
     import pytyrant
 except ImportError:
 except ImportError:
-    pytyrant = None
+    pytyrant = None  # noqa
 
 
 from celery.backends.base import KeyValueStoreBackend
 from celery.backends.base import KeyValueStoreBackend
 from celery.exceptions import ImproperlyConfigured
 from celery.exceptions import ImproperlyConfigured

+ 2 - 1
celery/beat.py

@@ -8,7 +8,7 @@ import traceback
 try:
 try:
     import multiprocessing
     import multiprocessing
 except ImportError:
 except ImportError:
-    multiprocessing = None
+    multiprocessing = None  # noqa
 
 
 from datetime import datetime
 from datetime import datetime
 
 
@@ -424,6 +424,7 @@ class _Threaded(threading.Thread):
 
 
 
 
 if multiprocessing is not None:
 if multiprocessing is not None:
+
     class _Process(multiprocessing.Process):
     class _Process(multiprocessing.Process):
         """Embedded task scheduler using multiprocessing."""
         """Embedded task scheduler using multiprocessing."""
 
 

+ 1 - 1
celery/bin/base.py

@@ -39,7 +39,7 @@ class Command(object):
             Option("--config",
             Option("--config",
                     default="celeryconfig", action="store",
                     default="celeryconfig", action="store",
                     dest="config_module",
                     dest="config_module",
-                    help="Name of the module to read configuration from.")
+                    help="Name of the module to read configuration from."),
     )
     )
 
 
     #: Enable if the application should support config from the cmdline.
     #: Enable if the application should support config from the cmdline.

+ 1 - 1
celery/bin/celeryd.py

@@ -76,7 +76,7 @@ import sys
 try:
 try:
     from multiprocessing import freeze_support
     from multiprocessing import freeze_support
 except ImportError:
 except ImportError:
-    freeze_support = lambda: True
+    freeze_support = lambda: True  # noqa
 
 
 from celery.bin.base import Command, Option
 from celery.bin.base import Command, Option
 
 

+ 3 - 1
celery/concurrency/processes/pool.py

@@ -125,12 +125,14 @@ def worker(inqueue, outqueue, initializer=None, initargs=(), maxtasks=None):
     get = inqueue.get
     get = inqueue.get
 
 
     if hasattr(inqueue, '_reader'):
     if hasattr(inqueue, '_reader'):
+
         def poll(timeout):
         def poll(timeout):
             if inqueue._reader.poll(timeout):
             if inqueue._reader.poll(timeout):
                 return True, get()
                 return True, get()
             return False, None
             return False, None
     else:
     else:
-        def poll(timeout):
+
+        def poll(timeout):  # noqa
             try:
             try:
                 return True, get(timeout=timeout)
                 return True, get(timeout=timeout)
             except Queue.Empty:
             except Queue.Empty:

+ 4 - 2
celery/db/a805d4bd.py

@@ -29,13 +29,15 @@ class PickleType(_PickleType):
         dumps = self.pickler.dumps
         dumps = self.pickler.dumps
         protocol = self.protocol
         protocol = self.protocol
         if impl_processor:
         if impl_processor:
+
             def process(value):
             def process(value):
                 if value is not None:
                 if value is not None:
                     value = dumps(value, protocol)
                     value = dumps(value, protocol)
                 return impl_processor(value)
                 return impl_processor(value)
 
 
         else:
         else:
-            def process(value):
+
+            def process(value):  # noqa
                 if value is not None:
                 if value is not None:
                     value = dumps(value, protocol)
                     value = dumps(value, protocol)
                 return value
                 return value
@@ -53,7 +55,7 @@ class PickleType(_PickleType):
                 return loads(value)
                 return loads(value)
         else:
         else:
 
 
-            def process(value):
+            def process(value):  # noqa
                 if value is None:
                 if value is None:
                     return None
                     return None
                 return loads(value)
                 return loads(value)

+ 1 - 1
celery/db/models.py

@@ -8,7 +8,7 @@ from celery.db.session import ResultModelBase
 if sa.__version__.startswith('0.5'):
 if sa.__version__.startswith('0.5'):
     from celery.db.dfd042c7 import PickleType
     from celery.db.dfd042c7 import PickleType
 else:
 else:
-    from celery.db.a805d4bd import PickleType
+    from celery.db.a805d4bd import PickleType  # noqa
 
 
 
 
 class Task(ResultModelBase):
 class Task(ResultModelBase):

+ 1 - 1
celery/events/cursesmon.py

@@ -464,7 +464,7 @@ def evtop(app=None):
     conn = app.broker_connection()
     conn = app.broker_connection()
     recv = app.events.Receiver(conn, handlers={"*": state.event})
     recv = app.events.Receiver(conn, handlers={"*": state.event})
     capture = recv.itercapture()
     capture = recv.itercapture()
-    consumer = capture.next()
+    capture.next()
     display = CursesMonitor(state, app=app)
     display = CursesMonitor(state, app=app)
     display.init_screen()
     display.init_screen()
     refresher = DisplayThread(display)
     refresher = DisplayThread(display)

+ 0 - 1
celery/loaders/default.py

@@ -4,7 +4,6 @@ from importlib import import_module
 
 
 from celery.datastructures import AttributeDict
 from celery.datastructures import AttributeDict
 from celery.loaders.base import BaseLoader
 from celery.loaders.base import BaseLoader
-from celery.datastructures import AttributeDict
 from celery.exceptions import NotConfigured
 from celery.exceptions import NotConfigured
 
 
 DEFAULT_CONFIG_MODULE = "celeryconfig"
 DEFAULT_CONFIG_MODULE = "celeryconfig"

+ 1 - 1
celery/log.py

@@ -8,7 +8,7 @@ try:
     from multiprocessing import current_process
     from multiprocessing import current_process
     from multiprocessing import util as mputil
     from multiprocessing import util as mputil
 except ImportError:
 except ImportError:
-    current_process = mputil = None
+    current_process = mputil = None  # noqa
 
 
 from celery import signals
 from celery import signals
 from celery import current_app
 from celery import current_app

+ 3 - 3
celery/platforms.py

@@ -5,7 +5,7 @@ import signal
 try:
 try:
     from setproctitle import setproctitle as _setproctitle
     from setproctitle import setproctitle as _setproctitle
 except ImportError:
 except ImportError:
-    _setproctitle = None
+    _setproctitle = None  # noqa
 
 
 CAN_DETACH = True
 CAN_DETACH = True
 try:
 try:
@@ -16,12 +16,12 @@ except ImportError:
 try:
 try:
     import pwd
     import pwd
 except ImportError:
 except ImportError:
-    pwd = None
+    pwd = None  # noqa
 
 
 try:
 try:
     import grp
     import grp
 except ImportError:
 except ImportError:
-    grp = None
+    grp = None  # noqa
 
 
 DAEMON_UMASK = 0
 DAEMON_UMASK = 0
 DAEMON_WORKDIR = "/"
 DAEMON_WORKDIR = "/"

+ 2 - 1
celery/task/__init__.py

@@ -7,7 +7,8 @@ from celery.task.sets import TaskSet, subtask
 from celery.task.chord import chord
 from celery.task.chord import chord
 from celery.task.control import discard_all
 from celery.task.control import discard_all
 
 
-__all__ = ["Task", "TaskSet", "PeriodicTask", "subtask", "discard_all"]
+__all__ = ["Task", "TaskSet", "PeriodicTask", "subtask",
+           "discard_all", "chord"]
 
 
 
 
 def task(*args, **kwargs):
 def task(*args, **kwargs):

+ 2 - 0
celery/task/schedules.py

@@ -1,5 +1,7 @@
 import warnings
 import warnings
 from celery.schedules import schedule, crontab_parser, crontab
 from celery.schedules import schedule, crontab_parser, crontab
 
 
+__all__ = ["schedule", "crontab_parser", "crontab"]
+
 warnings.warn(DeprecationWarning(
 warnings.warn(DeprecationWarning(
     "celery.task.schedules is deprecated and renamed to celery.schedules"))
     "celery.task.schedules is deprecated and renamed to celery.schedules"))

+ 2 - 1
celery/tests/__init__.py

@@ -13,8 +13,9 @@ os.environ["EVENTLET_NOPATCH"] = "yes"
 os.environ["GEVENT_NOPATCH"] = "yes"
 os.environ["GEVENT_NOPATCH"] = "yes"
 
 
 try:
 try:
-    WindowsError = WindowsError
+    WindowsError = WindowsError  # noqa
 except NameError:
 except NameError:
+
     class WindowsError(Exception):
     class WindowsError(Exception):
         pass
         pass
 
 

+ 1 - 1
celery/tests/test_backends/test_database.py

@@ -14,7 +14,7 @@ from celery.tests.utils import execute_context, mask_modules
 from celery.tests.utils import unittest
 from celery.tests.utils import unittest
 
 
 try:
 try:
-    import sqlalchemy
+    import sqlalchemy  # noqa
 except ImportError:
 except ImportError:
     DatabaseBackend = Task = TaskSet = None
     DatabaseBackend = Task = TaskSet = None
 else:
 else:

+ 2 - 1
celery/tests/test_backends/test_redis.py

@@ -19,7 +19,7 @@ _no_redis_msg_emitted = False
 try:
 try:
     from redis.exceptions import ConnectionError
     from redis.exceptions import ConnectionError
 except ImportError:
 except ImportError:
-    class ConnectionError(socket.error):
+    class ConnectionError(socket.error):  # noqa
         pass
         pass
 
 
 
 
@@ -108,6 +108,7 @@ class TestRedisBackendNoRedis(unittest.TestCase):
     def test_redis_None_if_redis_not_installed(self):
     def test_redis_None_if_redis_not_installed(self):
         prev = sys.modules.pop("celery.backends.pyredis")
         prev = sys.modules.pop("celery.backends.pyredis")
         try:
         try:
+
             def with_redis_masked(_val):
             def with_redis_masked(_val):
                 from celery.backends.pyredis import redis
                 from celery.backends.pyredis import redis
                 self.assertIsNone(redis)
                 self.assertIsNone(redis)

+ 2 - 1
celery/tests/test_bin/test_celeryd.py

@@ -6,7 +6,7 @@ import warnings
 try:
 try:
     from multiprocessing import current_process
     from multiprocessing import current_process
 except ImportError:
 except ImportError:
-    current_process = None
+    current_process = None  # noqa
 
 
 
 
 from nose import SkipTest
 from nose import SkipTest
@@ -189,6 +189,7 @@ class test_Worker(AppCase):
 
 
         prev, os.geteuid = os.geteuid, geteuid
         prev, os.geteuid = os.geteuid, geteuid
         try:
         try:
+
             def with_catch_warnings(log):
             def with_catch_warnings(log):
                 worker = self.Worker()
                 worker = self.Worker()
                 worker.run()
                 worker.run()

+ 1 - 1
celery/tests/test_bin/test_celeryev.py

@@ -33,7 +33,7 @@ class test_EvCommand(unittest.TestCase):
 
 
     def test_run_top(self):
     def test_run_top(self):
         try:
         try:
-            import curses
+            import curses  # noqa
         except ImportError:
         except ImportError:
             raise SkipTest("curses monitor requires curses")
             raise SkipTest("curses monitor requires curses")
 
 

+ 2 - 5
celery/tests/test_compat/test_log.py

@@ -6,15 +6,11 @@ from celery.tests.utils import unittest
 from tempfile import mktemp
 from tempfile import mktemp
 from celery.tests.utils import StringIO
 from celery.tests.utils import StringIO
 
 
-try:
-    from contextlib import contextmanager
-except ImportError:
-    from celery.tests.utils import fallback_contextmanager as contextmanager
-
 from celery import log
 from celery import log
 from celery.log import (setup_logger, setup_task_logger,
 from celery.log import (setup_logger, setup_task_logger,
                         get_default_logger, get_task_logger,
                         get_default_logger, get_task_logger,
                         redirect_stdouts_to_logger, LoggingProxy)
                         redirect_stdouts_to_logger, LoggingProxy)
+from celery.tests.utils import contextmanager
 from celery.tests.utils import override_stdouts, execute_context
 from celery.tests.utils import override_stdouts, execute_context
 from celery.utils import gen_unique_id
 from celery.utils import gen_unique_id
 from celery.utils.compat import LoggerAdapter
 from celery.utils.compat import LoggerAdapter
@@ -107,6 +103,7 @@ class test_default_logger(unittest.TestCase):
         logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
         logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                    root=False)
                                    root=False)
         try:
         try:
+
             def with_wrap_logger(sio):
             def with_wrap_logger(sio):
                 redirect_stdouts_to_logger(logger, loglevel=logging.ERROR)
                 redirect_stdouts_to_logger(logger, loglevel=logging.ERROR)
                 logger.error("foo")
                 logger.error("foo")

+ 3 - 2
celery/tests/test_concurrency/test_concurrency_processes.py

@@ -7,12 +7,13 @@ from nose import SkipTest
 try:
 try:
     from celery.concurrency import processes as mp
     from celery.concurrency import processes as mp
 except ImportError:
 except ImportError:
+
     class _mp(object):
     class _mp(object):
         RUN = 0x1
         RUN = 0x1
 
 
         class TaskPool(object):
         class TaskPool(object):
             pass
             pass
-    mp = _mp()
+    mp = _mp()  # noqa
 
 
 from celery.datastructures import ExceptionInfo
 from celery.datastructures import ExceptionInfo
 from celery.utils import noop
 from celery.utils import noop
@@ -100,7 +101,7 @@ class test_TaskPool(unittest.TestCase):
 
 
     def setUp(self):
     def setUp(self):
         try:
         try:
-            import multiprocessing
+            import multiprocessing  # noqa
         except ImportError:
         except ImportError:
             raise SkipTest("multiprocessing not supported")
             raise SkipTest("multiprocessing not supported")
 
 

+ 1 - 1
celery/tests/test_events/test_events_cursesmon.py

@@ -13,7 +13,7 @@ class TestCursesDisplay(unittest.TestCase):
 
 
     def setUp(self):
     def setUp(self):
         try:
         try:
-            import curses
+            import curses  # noqa
         except ImportError:
         except ImportError:
             raise SkipTest("curses monitor requires curses")
             raise SkipTest("curses monitor requires curses")
 
 

+ 2 - 7
celery/tests/test_task/test_task_http.py

@@ -6,19 +6,14 @@ from celery.tests.utils import unittest
 try:
 try:
     from urllib import addinfourl
     from urllib import addinfourl
 except ImportError:  # py3k
 except ImportError:  # py3k
-    from urllib.request import addinfourl
-try:
-    from contextlib import contextmanager
-except ImportError:
-    from celery.tests.utils import fallback_contextmanager as contextmanager
-from celery.tests.utils import StringIO
+    from urllib.request import addinfourl  # noqa
 
 
 from anyjson import serialize
 from anyjson import serialize
 
 
 from celery.task import http
 from celery.task import http
 from celery.utils.functional import wraps
 from celery.utils.functional import wraps
 
 
-from celery.tests.utils import execute_context
+from celery.tests.utils import execute_context, contextmanager, StringIO
 
 
 
 
 @contextmanager
 @contextmanager

+ 1 - 0
celery/tests/test_utils/test_serialization.py

@@ -9,6 +9,7 @@ class TestAAPickle(unittest.TestCase):
     def test_no_cpickle(self):
     def test_no_cpickle(self):
         prev = sys.modules.pop("celery.utils.serialization", None)
         prev = sys.modules.pop("celery.utils.serialization", None)
         try:
         try:
+
             def with_cPickle_masked(_val):
             def with_cPickle_masked(_val):
                 from celery.utils.serialization import pickle
                 from celery.utils.serialization import pickle
                 import pickle as orig_pickle
                 import pickle as orig_pickle

+ 0 - 1
celery/tests/test_worker/test_worker.py

@@ -14,7 +14,6 @@ from celery.concurrency.base import BasePool
 from celery.exceptions import SystemTerminate
 from celery.exceptions import SystemTerminate
 from celery.task import task as task_dec
 from celery.task import task as task_dec
 from celery.task import periodic_task as periodic_task_dec
 from celery.task import periodic_task as periodic_task_dec
-from celery.utils import timer2
 from celery.utils import gen_unique_id
 from celery.utils import gen_unique_id
 from celery.worker import WorkController
 from celery.worker import WorkController
 from celery.worker.buckets import FastQueue
 from celery.worker.buckets import FastQueue

+ 1 - 0
celery/tests/test_worker/test_worker_job.py

@@ -418,6 +418,7 @@ class test_TaskRequest(unittest.TestCase):
 
 
         WorkerTaskTrace.execute = _error_exec
         WorkerTaskTrace.execute = _error_exec
         try:
         try:
+
             def with_catch_warnings(log):
             def with_catch_warnings(log):
                 res = execute_and_trace(mytask.name, gen_unique_id(),
                 res = execute_and_trace(mytask.name, gen_unique_id(),
                                         [4], {})
                                         [4], {})

+ 5 - 11
celery/tests/utils.py

@@ -13,19 +13,21 @@ import sys
 import time
 import time
 try:
 try:
     import __builtin__ as builtins
     import __builtin__ as builtins
-except ImportError:    # py3k
-    import builtins
+except ImportError:  # py3k
+    import builtins  # noqa
 
 
 from celery.utils.compat import StringIO, LoggerAdapter
 from celery.utils.compat import StringIO, LoggerAdapter
 try:
 try:
     from contextlib import contextmanager
     from contextlib import contextmanager
 except ImportError:
 except ImportError:
-    from celery.tests.utils import fallback_contextmanager as contextmanager
+    from celery.tests.utils import fallback_contextmanager
+    contextmanager = fallback_contextmanager  # noqa
 
 
 
 
 from nose import SkipTest
 from nose import SkipTest
 
 
 from celery.app import app_or_default
 from celery.app import app_or_default
+from celery.utils import noop
 from celery.utils.functional import wraps
 from celery.utils.functional import wraps
 
 
 
 
@@ -121,14 +123,6 @@ def execute_context(context, fun):
         context.__exit__(*exc_info)
         context.__exit__(*exc_info)
 
 
 
 
-try:
-    from contextlib import contextmanager
-except ImportError:
-    contextmanager = fallback_contextmanager
-
-from celery.utils import noop
-
-
 @contextmanager
 @contextmanager
 def eager_tasks():
 def eager_tasks():
     app = app_or_default()
     app = app_or_default()

+ 2 - 1
celery/utils/__init__.py

@@ -13,7 +13,8 @@ from inspect import getargspec
 from itertools import islice
 from itertools import islice
 from pprint import pprint
 from pprint import pprint
 
 
-from kombu.utils import gen_unique_id, rpartition, cached_property
+from kombu.utils import cached_property, gen_unique_id  # noqa
+from kombu.utils import rpartition
 
 
 from celery.utils.compat import StringIO
 from celery.utils.compat import StringIO
 from celery.utils.functional import partial, wraps
 from celery.utils.functional import partial, wraps

+ 18 - 16
celery/utils/compat.py

@@ -2,30 +2,29 @@ from __future__ import generators
 
 
 ############## py3k #########################################################
 ############## py3k #########################################################
 try:
 try:
-    from UserList import UserList
+    from UserList import UserList       # noqa
 except ImportError:
 except ImportError:
-    from collections import UserList
+    from collections import UserList    # noqa
 
 
 try:
 try:
-    from UserDict import UserDict
+    from UserDict import UserDict       # noqa
 except ImportError:
 except ImportError:
-    from collections import UserDict
+    from collections import UserDict    # noqa
 
 
 try:
 try:
-    from cStringIO import StringIO
+    from cStringIO import StringIO      # noqa
 except ImportError:
 except ImportError:
     try:
     try:
-        from StringIO import StringIO
+        from StringIO import StringIO   # noqa
     except ImportError:
     except ImportError:
-        from io import StringIO
+        from io import StringIO         # noqa
 
 
 ############## urlparse.parse_qsl ###########################################
 ############## urlparse.parse_qsl ###########################################
 
 
 try:
 try:
     from urlparse import parse_qsl
     from urlparse import parse_qsl
 except ImportError:
 except ImportError:
-    from cgi import parse_qsl
-parse_sql = parse_qsl
+    from cgi import parse_qsl  # noqa
 
 
 ############## __builtin__.all ##############################################
 ############## __builtin__.all ##############################################
 
 
@@ -33,6 +32,7 @@ try:
     all([True])
     all([True])
     all = all
     all = all
 except NameError:
 except NameError:
+
     def all(iterable):
     def all(iterable):
         for item in iterable:
         for item in iterable:
             if not item:
             if not item:
@@ -45,6 +45,7 @@ try:
     any([True])
     any([True])
     any = any
     any = any
 except NameError:
 except NameError:
+
     def any(iterable):
     def any(iterable):
         for item in iterable:
         for item in iterable:
             if item:
             if item:
@@ -57,7 +58,7 @@ import weakref
 try:
 try:
     from collections import MutableMapping
     from collections import MutableMapping
 except ImportError:
 except ImportError:
-    from UserDict import DictMixin as MutableMapping
+    from UserDict import DictMixin as MutableMapping  # noqa
 from itertools import imap as _imap
 from itertools import imap as _imap
 from operator import eq as _eq
 from operator import eq as _eq
 
 
@@ -267,7 +268,7 @@ class CompatOrderedDict(dict, MutableMapping):
 try:
 try:
     from collections import OrderedDict
     from collections import OrderedDict
 except ImportError:
 except ImportError:
-    OrderedDict = CompatOrderedDict
+    OrderedDict = CompatOrderedDict  # noqa
 
 
 ############## collections.defaultdict ######################################
 ############## collections.defaultdict ######################################
 
 
@@ -276,7 +277,7 @@ try:
 except ImportError:
 except ImportError:
     # Written by Jason Kirtland, taken from Python Cookbook:
     # Written by Jason Kirtland, taken from Python Cookbook:
     # <http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/523034>
     # <http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/523034>
-    class defaultdict(dict):
+    class defaultdict(dict):  # noqa
 
 
         def __init__(self, default_factory=None, *args, **kwargs):
         def __init__(self, default_factory=None, *args, **kwargs):
             dict.__init__(self, *args, **kwargs)
             dict.__init__(self, *args, **kwargs)
@@ -322,7 +323,7 @@ import logging
 try:
 try:
     import multiprocessing
     import multiprocessing
 except ImportError:
 except ImportError:
-    multiprocessing = None
+    multiprocessing = None  # noqa
 import sys
 import sys
 
 
 from logging import LogRecord
 from logging import LogRecord
@@ -331,6 +332,7 @@ log_takes_extra = "extra" in inspect.getargspec(logging.Logger._log)[0]
 
 
 # The func argument to LogRecord was added in 2.5
 # The func argument to LogRecord was added in 2.5
 if "func" not in inspect.getargspec(LogRecord.__init__)[0]:
 if "func" not in inspect.getargspec(LogRecord.__init__)[0]:
+
     def LogRecord(name, level, fn, lno, msg, args, exc_info, func):
     def LogRecord(name, level, fn, lno, msg, args, exc_info, func):
         return logging.LogRecord(name, level, fn, lno, msg, args, exc_info)
         return logging.LogRecord(name, level, fn, lno, msg, args, exc_info)
 
 
@@ -437,7 +439,7 @@ class _CompatLoggerAdapter(object):
 try:
 try:
     from logging import LoggerAdapter
     from logging import LoggerAdapter
 except ImportError:
 except ImportError:
-    LoggerAdapter = _CompatLoggerAdapter
+    LoggerAdapter = _CompatLoggerAdapter  # noqa
 
 
 
 
 def log_with_extra(logger, level, msg, *args, **kwargs):
 def log_with_extra(logger, level, msg, *args, **kwargs):
@@ -452,7 +454,7 @@ try:
 except ImportError:
 except ImportError:
     import itertools
     import itertools
 
 
-    def izip_longest(*args, **kwds):
+    def izip_longest(*args, **kwds):  # noqa
         fillvalue = kwds.get("fillvalue")
         fillvalue = kwds.get("fillvalue")
 
 
         def sentinel(counter=([fillvalue] * (len(args) - 1)).pop):
         def sentinel(counter=([fillvalue] * (len(args) - 1)).pop):
@@ -495,7 +497,7 @@ else:
     try:
     try:
         from logging.handlers import WatchedFileHandler
         from logging.handlers import WatchedFileHandler
     except ImportError:
     except ImportError:
-        class WatchedFileHandler(logging.FileHandler):
+        class WatchedFileHandler(logging.FileHandler):  # noqa
             """
             """
             A handler for logging to a file, which watches the file
             A handler for logging to a file, which watches the file
             to see if it has changed while in use. This can happen because of
             to see if it has changed while in use. This can happen because of

+ 3 - 3
celery/utils/functional.py

@@ -78,7 +78,7 @@ def _compat_partial(fun, *args, **kwargs):
 try:
 try:
     from functools import partial
     from functools import partial
 except ImportError:
 except ImportError:
-    partial = _compat_partial
+    partial = _compat_partial  # noqa
 
 
 WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
 WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
 WRAPPER_UPDATES = ('__dict__',)
 WRAPPER_UPDATES = ('__dict__',)
@@ -111,7 +111,7 @@ def _compat_update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS,
 try:
 try:
     from functools import update_wrapper
     from functools import update_wrapper
 except ImportError:
 except ImportError:
-    update_wrapper = _compat_update_wrapper
+    update_wrapper = _compat_update_wrapper  # noqa
 
 
 
 
 def _compat_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS,
 def _compat_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS,
@@ -131,6 +131,6 @@ def _compat_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS,
 try:
 try:
     from functools import wraps
     from functools import wraps
 except ImportError:
 except ImportError:
-    wraps = _compat_wraps
+    wraps = _compat_wraps  # noqa
 
 
 ### End from Python 2.5 functools.py ##########################################
 ### End from Python 2.5 functools.py ##########################################

+ 1 - 1
celery/utils/mail.py

@@ -4,7 +4,7 @@ import smtplib
 try:
 try:
     from email.mime.text import MIMEText
     from email.mime.text import MIMEText
 except ImportError:
 except ImportError:
-    from email.MIMEText import MIMEText
+    from email.MIMEText import MIMEText  # noqa
 
 
 supports_timeout = sys.version_info >= (2, 6)
 supports_timeout = sys.version_info >= (2, 6)
 
 

+ 1 - 1
celery/utils/patch.py

@@ -9,7 +9,7 @@ def _patch_logger_class():
     try:
     try:
         from multiprocessing.process import current_process
         from multiprocessing.process import current_process
     except ImportError:
     except ImportError:
-        current_process = None
+        current_process = None  # noqa
 
 
     logging._acquireLock()
     logging._acquireLock()
     try:
     try:

+ 3 - 2
celery/utils/serialization.py

@@ -8,7 +8,7 @@ import pickle as pypickle
 try:
 try:
     import cPickle as cpickle
     import cPickle as cpickle
 except ImportError:
 except ImportError:
-    cpickle = None
+    cpickle = None  # noqa
 
 
 if sys.version_info < (2, 6):  # pragma: no cover
 if sys.version_info < (2, 6):  # pragma: no cover
     # cPickle is broken in Python <= 2.5.
     # cPickle is broken in Python <= 2.5.
@@ -42,7 +42,8 @@ if sys.version_info < (2, 5):  # pragma: no cover
     def subclass_exception(name, parent, unused):
     def subclass_exception(name, parent, unused):
         return types.ClassType(name, (parent,), {})
         return types.ClassType(name, (parent,), {})
 else:
 else:
-    def subclass_exception(name, parent, module):
+
+    def subclass_exception(name, parent, module):  # noqa
         return type(name, (parent,), {'__module__': module})
         return type(name, (parent,), {'__module__': module})
 
 
 
 

+ 2 - 2
celery/worker/state.py

@@ -59,13 +59,13 @@ if os.environ.get("CELERY_BENCH"):
     __reserved = task_reserved
     __reserved = task_reserved
     __ready = task_ready
     __ready = task_ready
 
 
-    def task_reserved(request):
+    def task_reserved(request):  # noqa
         global bench_start
         global bench_start
         if bench_start is None:
         if bench_start is None:
             bench_start = time()
             bench_start = time()
         return __reserved(request)
         return __reserved(request)
 
 
-    def task_ready(request):
+    def task_ready(request):  # noqa
         global all_count, bench_start
         global all_count, bench_start
         all_count += 1
         all_count += 1
         if not all_count % bench_every:
         if not all_count % bench_every:

+ 0 - 78
contrib/release/flakesignore.txt

@@ -1,78 +0,0 @@
-celery/app/__init__.py:(.+?) redefinition of function 'app_or_default'
-celery/backends/cache.py:(.+?) redefinition of unused 'memcache'
-celery/backends/cassandra.py:(.+?) redefinition of unused 'pycassa'
-celery/backends/mongodb.py:(.+?) redefinition of unused 'pymongo'
-celery/backends/pyredis.py:(.+?) redefinition of unused 'redis'
-celery/backends/pyredis.py:(.+?) redefinition of unused 'ConnectionError'
-celery/backends/tyrant.py:(.+?) redefinition of unused 'pytyrant'
-celery/concurrency/processes/pool.py:(.+?) redefinition of function 'poll'
-celery/db/a805d4bd.py:(.+?) redefinition of function 'process'
-celery/db/a805d4bd.py:(.+?) redefinition of function 'process'
-celery/db/models.py:(.+?) redefinition of unused 'PickleType'
-celery/loaders/default.py:(.+?) redefinition of unused 'AttributeDict'
-celery/platforms.py:(.+?) redefinition of unused '_setproctitle'
-celery/platforms.py:(.+?) redefinition of unused 'pwd'
-celery/platforms.py:(.+?) redefinition of unused 'grp'
-celery/utils/serialization.py:(.+?) redefinition of unused 'cpickle'
-celery/utils/serialization.py:(.+?) redefinition of function 'subclass_exception'
-celery/tests/test_backends/test_redis.py:(.+?) redefinition of unused 'ConnectionError'
-celery/tests/utils.py:(.+?) redefinition of unused 'contextmanager'
-celery/utils/__init__.py:(.+?) redefinition of unused 'ctypes'
-celery/utils/compat.py:(.+?) redefinition of unused 'parse_qsl'
-celery/utils/compat.py:(.+?) redefinition of unused 'MutableMapping'
-celery/utils/compat.py:(.+?) redefinition of unused 'defaultdict'
-celery/utils/compat.py:(.+?) redefinition of unused 'LoggerAdapter'
-celery/utils/compat.py:(.+?) redefinition of unused 'izip_longest'
-celery/utils/functional.py:(.+?) redefinition of unused 'partial'
-celery/utils/functional.py:(.+?) redefinition of unused 'update_wrapper'
-celery/utils/functional.py:(.+?) redefinition of unused 'wraps'
-celery/utils/mail.py:(.+?) redefinition of unused 'MIMEText'
-celery/utils/__init__.py:(.+?) 'gen_unique_id' imported but unused
-celery/events/cursesmon.py:(.+?): local variable 'consumer' is assigned to but never used
-celery/tests/utils.py:(.+?): 'unittest' imported but unused
-celery/tests/utils.py:(.+?): redefinition of unused 'builtins' from line \d+
-celery/tests/utils.py:(.+?): redefinition of unused 'StringIO' from line 16
-celery/utils/compat.py:(.+?): redefinition of unused 'UserList' from line 5
-celery/utils/compat.py:(.+?): 'UserList' imported but unused
-celery/utils/compat.py:(.+?): redefinition of unused 'UserDict' from line 10
-celery/utils/compat.py:(.+?): 'UserDict' imported but unused
-celery/utils/compat.py:(.+?): redefinition of unused 'OrderedDict' from line 260
-celery/app/amqp.py:(.+?): redefinition of function 'queues' from line
-celery/tests/utils.py:(.+?): redefinition of unused 'builtins' from line 14
-celery/utils/compat.py:(.+?): redefinition of unused 'StringIO' from line 15
-celery/utils/compat.py:(.+?): redefinition of unused 'StringIO' from line 18
-celery/utils/compat.py:(.+?): 'StringIO' imported but unused
-celery/utils/compat.py:(.+?): redefinition of unused 'OrderedDict' from line 268
-celery/task/schedules.py:2: 'schedule' imported but unused
-celery/task/schedules.py:2: 'crontab_parser' imported but unused
-celery/task/schedules.py:2: 'crontab' imported but unused
-celery/tests/__init__.py:17: undefined name 'WindowsError'
-celery/utils/patch.py:12: redefinition of unused 'current_process' from line 10
-celery/utils/compat.py:325: redefinition of unused 'multiprocessing' from line 323
-celery/tests/test_cursesmon.py:18: 'curses' imported but unused
-celery/log.py:11: redefinition of unused 'mputil' from line 9
-celery/log.py:11: redefinition of unused 'current_process' from line 8
-celery/tests/test_bin/test_celeryd.py:9: redefinition of unused 'current_process' from line 7
-celery/tests/test_bin/test_celeryd.py:324: 'setproctitle' imported but unused
-celery/tests/test_bin/test_celeryev.py:36: 'curses' imported but unused
-celery/apps/worker.py:6: redefinition of unused 'multiprocessing' from line 4
-celery/beat.py:14: redefinition of unused 'multiprocessing' from line 12
-celery/bin/celeryd.py:79: redefinition of unused 'freeze_support' from line 77
-celery/tests/test_cursesmon.py:16: 'curses' imported but unused
-celery/tests/__init__.py:16: undefined name 'WindowsError'
-celery/tests/test_backends/test_database.py:17: 'sqlalchemy' imported but unused
-celery/tests/test_compat/test_log.py:12: redefinition of unused 'contextmanager' from line 10
-celery/tests/test_concurrency/test_concurrency_processes.py:15: redefinition of unused 'mp' from line 8
-celery/tests/test_concurrency/test_concurrency_processes.py:103: 'multiprocessing' imported but unused
-celery/tests/test_events/test_events_cursesmon.py:16: 'curses' imported but unused
-celery/tests/test_task/test_task_http.py:9: redefinition of unused 'addinfourl' from line 7
-celery/tests/test_task/test_task_http.py:13: redefinition of unused 'contextmanager' from line 11
-celery/utils/__init__.py:16: 'cached_property' imported but unused
-celery/beat.py:16: redefinition of unused 'multiprocessing' from line 14
-celery/worker/state.py:62: redefinition of function 'task_reserved' from line 36
-celery/worker/state.py:68: redefinition of function 'task_ready' from line 47
-celery/beat.py:11: redefinition of unused 'multiprocessing' from line 9
-celery/utils/compat.py:498: redefinition of unused 'WatchedFileHandler' from line 496
-celery/backends/pyredis.py:(.+?): redefinition of function 'client' from line .+?$
-celery/task/__init__.py:7: 'chord' imported but unused
-

+ 8 - 12
pavement.py

@@ -77,18 +77,14 @@ def verifyconfigref(options):
 
 
 
 
 @task
 @task
-def flakes(options):
+def flake8(options):
     noerror = getattr(options, "noerror", False)
     noerror = getattr(options, "noerror", False)
-    sh("""find celery -name '*.py' | xargs pyflakes | perl -mstrict -nle'
-           my $flake = $_;open(my $f, "contrib/release/flakesignore.txt");
-           my $ignored = 0;
-           PATTERN: foreach my $p (<$f>) { chomp($p);
-               if ($p && $flake =~ /$p/m) {
-                   $ignored = 1; last PATTERN; } } close($f);
-           if (! $ignored) { print $flake; our $FOUND_FLAKE = 1; }
-       }{exit $FOUND_FLAKE;
-            '""", ignore_error=noerror)
-
+    complexity = getattr(options, "complexity", 22)
+    sh("""flake8 celery | perl -mstrict -mwarnings -nle'
+        my $ignore = m/too complex \((\d+)\)/ && $1 le %s;
+        if (! $ignore) { print STDERR; our $FOUND_FLAKE = 1 }
+    }{exit $FOUND_FLAKE;
+        '""" % (complexity, ), ignore_error=noerror)
 
 
 @task
 @task
 def clean_readme(options):
 def clean_readme(options):
@@ -154,7 +150,7 @@ def gitcleanforce(options):
 
 
 
 
 @task
 @task
-@needs("pep8", "flakes", "autodoc", "verifyindex",
+@needs("flake8", "autodoc", "verifyindex",
        "verifyconfigref", "test", "gitclean")
        "verifyconfigref", "test", "gitclean")
 def releaseok(options):
 def releaseok(options):
     pass
     pass