浏览代码

Move detection of pickle library into celery.utils so we only have to test it
once.

Ask Solem 15 年之前
父节点
当前提交
7c6c7fd4e8

+ 2 - 6
celery/backends/base.py

@@ -1,13 +1,9 @@
 """celery.backends.base"""
 import time
 import operator
-from functools import partial as curry
-
 import threading
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
+from functools import partial as curry
+from celery.utils import pickle
 
 
 class TimeoutError(Exception):

+ 1 - 5
celery/fields.py

@@ -5,11 +5,7 @@ Custom Django Model Fields.
 """
 from django.db import models
 from django.conf import settings
-
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
+from celery.utils import pickle
 
 
 class PickledObject(str):

+ 1 - 4
celery/messaging.py

@@ -7,11 +7,8 @@ from carrot.messaging import Publisher, Consumer
 from celery import conf
 from celery.utils import gen_unique_id
 from celery.utils import mitemgetter
+from celery.utils import pickle
 
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
 
 MSG_OPTIONS = ("mandatory", "priority",
                "immediate", "routing_key")

+ 1 - 4
celery/task/__init__.py

@@ -12,10 +12,7 @@ from celery.task.base import Task, TaskSet, PeriodicTask
 from celery.task.builtins import AsynchronousMapTask, ExecuteRemoteTask
 from celery.task.builtins import DeleteExpiredTaskMetaTask, PingTask
 from celery.execute import apply_async, delay_task
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
+from celery.utils import pickle
 
 
 def discard_all(connect_timeout=AMQP_CONNECTION_TIMEOUT):

+ 1 - 4
celery/task/base.py

@@ -6,11 +6,8 @@ from celery.result import TaskSetResult
 from celery.execute import apply_async, delay_task, apply
 from celery.utils import gen_unique_id
 from datetime import timedelta
+from celery.utils import pickle
 
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
 
 
 class Task(object):

+ 1 - 4
celery/task/builtins.py

@@ -2,10 +2,7 @@ from celery.task.base import Task, TaskSet, PeriodicTask
 from celery.registry import tasks
 from celery.backends import default_backend
 from datetime import timedelta
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
+from celery.utils import pickle
 
 
 class AsynchronousMapTask(Task):

+ 1 - 1
celery/tests/test_pickle.py

@@ -1,5 +1,5 @@
 import unittest
-import pickle
+from celery.utils import pickle
 
 
 class RegularException(Exception):

+ 1 - 1
celery/tests/test_task_builtins.py

@@ -1,6 +1,6 @@
 import unittest
 from celery.task.builtins import PingTask, ExecuteRemoteTask
-import pickle
+from celery.utils import pickle
 
 
 def some_func(i):

+ 5 - 0
celery/utils.py

@@ -5,6 +5,11 @@ Utility functions
 """
 import uuid
 
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
 
 def chunks(it, n):
     """Split an iterator into chunks with ``n`` elements each.