Ask Solem 14 years ago
parent
commit
de428230ca

+ 0 - 1
celery/apps/beat.py

@@ -1,4 +1,3 @@
-import logging
 import socket
 import sys
 import traceback

+ 1 - 0
celery/apps/worker.py

@@ -4,6 +4,7 @@ import multiprocessing
 import os
 import socket
 import sys
+import warnings
 
 from celery import __version__
 from celery import platforms

+ 10 - 6
celery/backends/database.py

@@ -5,12 +5,16 @@ from celery.db.models import Task, TaskSet
 from celery.db.session import ResultSession
 from celery.exceptions import ImproperlyConfigured
 
-try:
-    import sqlalchemy as _
-except ImportError:
-    raise ImproperlyConfigured(
-        "The database result backend requires SQLAlchemy to be installed."
-        "See http://pypi.python.org/pypi/SQLAlchemy")
+
+def _sqlalchemy_installed():
+    try:
+        import sqlalchemy
+    except ImportError:
+        raise ImproperlyConfigured(
+            "The database result backend requires SQLAlchemy to be installed."
+            "See http://pypi.python.org/pypi/SQLAlchemy")
+    return sqlalchemy
+_sqlalchemy_installed()
 
 
 class DatabaseBackend(BaseDictBackend):

+ 3 - 0
celery/bin/celeryev.py

@@ -1,3 +1,6 @@
+import sys
+import platform
+
 from celery import platforms
 from celery.bin.base import Command, Option
 

+ 3 - 1
celery/conf.py

@@ -7,7 +7,9 @@ Use :mod:`celery.defaults` instead.
 
 """
 from celery.app import app_or_default
-from celery.app.defaults import DEFAULTS as _DEFAULTS
+from celery.app import defaults
+
+_DEFAULTS = defaults.DEFAULTS
 
 conf = app_or_default().conf
 

+ 2 - 1
celery/contrib/batches.py

@@ -1,7 +1,8 @@
 from itertools import count
-from collections import deque, defaultdict
+from collections import deque
 
 from celery.task.base import Task
+from celery.utils.compat import defaultdict
 
 
 class Batches(Task):

+ 1 - 1
celery/result.py

@@ -9,7 +9,7 @@ from celery import states
 from celery.app import app_or_default
 from celery.datastructures import PositionQueue
 from celery.exceptions import TimeoutError
-from celery.utils import any, all
+from celery.utils.compat import any, all
 
 
 class BaseAsyncResult(object):

+ 8 - 9
celery/task/__init__.py

@@ -3,9 +3,8 @@
 Working with tasks and task sets.
 
 """
+import warnings
 
-from celery.execute import apply_async
-from celery.registry import tasks
 from celery.serialization import pickle
 from celery.task.base import Task, PeriodicTask
 from celery.task.sets import TaskSet
@@ -14,8 +13,8 @@ from celery.task.builtins import AsynchronousMapTask, _dmap
 from celery.task.control import discard_all
 from celery.task.http import HttpDispatchTask
 
-__all__ = ["Task", "TaskSet", "PeriodicTask", "tasks", "discard_all",
-           "dmap", "dmap_async", "execute_remote", "ping", "HttpDispatchTask"]
+__all__ = ["Task", "TaskSet", "PeriodicTask", "discard_all",
+           "dmap", "dmap_async", "execute_remote", "HttpDispatchTask"]
 
 
 def dmap(fun, args, timeout=None):
@@ -71,12 +70,12 @@ def execute_remote(fun, *args, **kwargs):
 
 
 def ping():
-    """Test if the server is alive.
+    """Deprecated and scheduled for removal in Celery 2.3.
 
-    Example:
+    Please use :meth:`celery.task.control.ping` instead.
 
-        >>> from celery.task import ping
-        >>> ping()
-        'pong'
     """
+    warnings.warn(DeprecationWarning(
+        "The ping task has been deprecated and will be removed in Celery "
+        "v2.3.  Please use inspect.ping instead."))
     return PingTask.apply_async().get()

+ 4 - 1
celery/task/base.py

@@ -11,7 +11,10 @@ from celery.schedules import maybe_schedule
 from celery.utils import mattrgetter, gen_unique_id, fun_takes_kwargs
 from celery.utils.timeutils import timedelta_seconds
 
-from celery.task.sets import TaskSet, subtask
+from celery.task import sets
+
+TaskSet = sets.TaskSet
+subtask = sets.subtask
 
 PERIODIC_DEPRECATION_TEXT = """\
 Periodic task classes has been deprecated and will be removed

+ 2 - 0
celery/task/schedules.py

@@ -1 +1,3 @@
 from celery.schedules import schedule, crontab_parser, crontab
+
+__all__ = ["schedule", "crontab_parser", "crontab"]

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

@@ -7,7 +7,6 @@ from nose import SkipTest
 from celery.exceptions import ImproperlyConfigured
 
 from celery import states
-from celery.app import app_or_default
 from celery.utils import gen_unique_id
 from celery.backends import pyredis
 from celery.backends.pyredis import RedisBackend

+ 0 - 1
celery/tests/test_beat.py

@@ -4,7 +4,6 @@ import unittest2 as unittest
 from datetime import datetime, timedelta
 
 from celery import beat
-from celery.app import app_or_default
 from celery.result import AsyncResult
 from celery.schedules import schedule
 from celery.utils import gen_unique_id

+ 0 - 1
celery/tests/test_bin/test_base.py

@@ -1,7 +1,6 @@
 import unittest2 as unittest
 
 from celery.bin.base import Command
-from celery.datastructures import AttributeDict
 
 
 class Object(object):

+ 0 - 5
celery/tests/test_task.py

@@ -7,7 +7,6 @@ from pyparsing import ParseException
 
 from celery import task
 from celery.app import app_or_default
-from celery import messaging
 from celery.decorators import task as task_dec
 from celery.exceptions import RetryTaskError
 from celery.execute import send_task
@@ -17,10 +16,6 @@ from celery.utils import timeutils
 from celery.utils import gen_unique_id
 from celery.utils.functional import wraps
 from celery.utils.timeutils import parse_iso8601
-from celery.result import EagerResult
-from celery.execute import send_task
-from celery.decorators import task as task_dec
-from celery.exceptions import RetryTaskError
 
 from celery.tests.utils import with_eager_tasks
 

+ 0 - 3
celery/utils/__init__.py

@@ -9,15 +9,12 @@ except ImportError:
 import importlib
 import logging
 
-from datetime import datetime
 from uuid import UUID, uuid4, _uuid_generate_random
 from inspect import getargspec
 from itertools import islice
 
 from carrot.utils import rpartition
 
-from celery.utils.compat import all, any, defaultdict
-from celery.utils.timeutils import timedelta_seconds        # was here before
 from celery.utils.functional import partial
 
 

+ 1 - 0
celery/utils/compat.py

@@ -6,6 +6,7 @@ try:
     from urlparse import parse_qsl
 except ImportError:
     from cgi import parse_qsl
+parse_sql = parse_qsl
 
 ############## __builtin__.all ##############################################
 

+ 2 - 0
celery/utils/dispatch/__init__.py

@@ -1 +1,3 @@
 from celery.utils.dispatch.signal import Signal
+
+__all__ = ["Signal"]

+ 1 - 2
celery/worker/buckets.py

@@ -5,9 +5,8 @@ from collections import deque
 from Queue import Queue, Empty as QueueEmpty
 
 from celery.datastructures import TokenBucket
-from celery.utils import all
 from celery.utils import timeutils
-from celery.utils.compat import izip_longest, chain_from_iterable
+from celery.utils.compat import all, izip_longest, chain_from_iterable
 
 
 class RateLimitExceeded(Exception):

+ 2 - 1
celery/worker/control/__init__.py

@@ -2,7 +2,8 @@ from celery.app import app_or_default
 from celery.pidbox import ControlReplyPublisher
 from celery.utils import kwdict
 from celery.worker.control.registry import Panel
-from celery.worker.control import builtins
+
+__import__("celery.worker.control.builtins")
 
 
 class ControlDispatch(object):

+ 0 - 1
celery/worker/control/builtins.py

@@ -12,7 +12,6 @@ TASK_INFO_FIELDS = ("exchange", "routing_key", "rate_limit")
 @Panel.register
 def revoke(panel, task_id, **kwargs):
     """Revoke task by task id."""
-    app = panel.app
     revoked.add(task_id)
     panel.logger.warn("Task %s revoked" % (task_id, ))
     return {"ok": "task %s revoked" % (task_id, )}

+ 1 - 5
celery/worker/listener.py

@@ -86,14 +86,10 @@ from celery.events import EventDispatcher
 from celery.exceptions import NotRegistered
 from celery.pidbox import BroadcastConsumer
 from celery.utils import noop, retry_over_time
-
+from celery.utils.timer2 import to_timestamp
 from celery.worker.job import TaskRequest, InvalidTaskError
 from celery.worker.control import ControlDispatch
 from celery.worker.heartbeat import Heart
-from celery.events import EventDispatcher
-from celery.exceptions import NotRegistered
-from celery.datastructures import SharedCounter
-from celery.utils.timer2 import to_timestamp
 
 RUN = 0x1
 CLOSE = 0x2

+ 27 - 0
docs/internals/app-overview.rst

@@ -89,6 +89,33 @@ Other interesting attributes::
 As you can probably see, this really opens up another
 dimension of customization abilities.
 
+Deprecations
+============
+
+* celery.task.ping
+  celery.task.builtins.PingTask
+
+  Inferior to the ping remote control command.
+  Will be removed in Celery 2.3.
+
+Removed deprecations
+====================
+
+* ``celery.utils.timedelta_seconds``
+    Use: :func:`celery.utils.timeutils.timedelta_seconds`
+
+* ``celery.utils.defaultdict``
+    Use: :func:`celery.utils.compat.defaultdict`
+
+* ``celery.utils.all``
+    Use: :func:`celery.utils.compat.all`
+
+* ``celery.task.apply_async``
+    Use app.send_task
+
+* ``celery.task.tasks``
+    Use :data:`celery.registry.tasks`
+
 Aliases (Pending deprecation)
 =============================