Sfoglia il codice sorgente

Import pickle from celery.serialization

Ask Solem 15 anni fa
parent
commit
15e09870cb
1 ha cambiato i file con 5 aggiunte e 8 eliminazioni
  1. 5 8
      celery/fields.py

+ 5 - 8
celery/fields.py

@@ -7,10 +7,7 @@ Custom Django Model Fields.
 from copy import deepcopy
 from copy import deepcopy
 from base64 import b64encode, b64decode
 from base64 import b64encode, b64decode
 from zlib import compress, decompress
 from zlib import compress, decompress
-try:
-    from cPickle import loads, dumps
-except ImportError:
-    from pickle import loads, dumps
+from celery.seralization import pickle
 
 
 from django.db import models
 from django.db import models
 from django.utils.encoding import force_unicode
 from django.utils.encoding import force_unicode
@@ -41,16 +38,16 @@ def dbsafe_encode(value, compress_object=False):
     for the lookups to work properly. See tests.py for more information.
     for the lookups to work properly. See tests.py for more information.
     """
     """
     if not compress_object:
     if not compress_object:
-        value = b64encode(dumps(deepcopy(value)))
+        value = b64encode(pickle.dumps(deepcopy(value)))
     else:
     else:
-        value = b64encode(compress(dumps(deepcopy(value))))
+        value = b64encode(compress(pickle.dumps(deepcopy(value))))
     return PickledObject(value)
     return PickledObject(value)
 
 
 def dbsafe_decode(value, compress_object=False):
 def dbsafe_decode(value, compress_object=False):
     if not compress_object:
     if not compress_object:
-        value = loads(b64decode(value))
+        value = pickle.loads(b64decode(value))
     else:
     else:
-        value = loads(decompress(b64decode(value)))
+        value = pickle.loads(decompress(b64decode(value)))
     return value
     return value
 
 
 class PickledObjectField(models.Field):
 class PickledObjectField(models.Field):