Abstract away from the concrete pickle implementation.

Choose cPickle, if available, for best performance.
main
Vincent Driessen 13 years ago
parent c4553f2a22
commit 9318825429

@ -1,6 +1,6 @@
import times
from uuid import uuid4
from pickle import loads, dumps
from .pickle import loads, dumps, UnpicklingError
from .proxy import conn
from .exceptions import UnpickleError, NoSuchJobError
@ -15,7 +15,7 @@ def unpickle(pickled_string):
"""
try:
obj = loads(pickled_string)
except StandardError:
except (StandardError, UnpicklingError):
raise UnpickleError('Could not unpickle.', pickled_string)
return obj

@ -0,0 +1,9 @@
from __future__ import absolute_import
try:
import cPickle as pickle
except ImportError:
import pickle # noqa
loads = pickle.loads
dumps = pickle.dumps
UnpicklingError = pickle.UnpicklingError

@ -8,7 +8,7 @@ import procname
import socket
import signal
import traceback
from pickle import dumps
from .pickle import dumps
try:
from logbook import Logger
Logger = Logger # Does nothing except it shuts up pyflakes annoying error

@ -2,7 +2,7 @@ import times
from datetime import datetime
from tests import RQTestCase
from tests.helpers import strip_milliseconds
from pickle import loads
from rq.pickle import loads
from rq.job import Job
from rq.exceptions import NoSuchJobError, UnpickleError

Loading…
Cancel
Save