replaced JsonPickle with cPickle for signed packages

This commit is contained in:
Ilan Steemers
2015-06-24 21:57:23 +02:00
parent d0880d06ac
commit 5068641de0
4 changed files with 15 additions and 11 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ env:
install: install:
- pip install -q django==$DJANGO - pip install -q django==$DJANGO
- pip install -r requirements.txt - pip install -r requirements.txt
- pip install pytest-django simplejson pytz coverage coveralls - pip install pytest-django pytz coverage coveralls
- python setup.py install - python setup.py install
script: script:
+13 -8
View File
@@ -6,8 +6,8 @@ from __future__ import absolute_import
from builtins import dict from builtins import dict
from builtins import range from builtins import range
from datetime import datetime from datetime import datetime
from django.utils.timezone import make_aware
from django.utils.timezone import make_aware
from future import standard_library from future import standard_library
standard_library.install_aliases() standard_library.install_aliases()
@@ -23,8 +23,12 @@ import sys
from time import sleep from time import sleep
import gc import gc
try:
import cPickle as pickle
except ImportError:
import pickle
# External # External
import jsonpickle
import coloredlogs import coloredlogs
import redis import redis
@@ -55,6 +59,7 @@ def time_zone(value):
return make_aware(value) return make_aware(value)
return value return value
class Cluster(object): class Cluster(object):
def __init__(self, list_key=Q_LIST): def __init__(self, list_key=Q_LIST):
try: try:
@@ -341,17 +346,17 @@ class SignedPackage(object):
key=SECRET_KEY, key=SECRET_KEY,
salt='django_q.q', salt='django_q.q',
compress=compressed, compress=compressed,
serializer=JSONPickleSerializer) serializer=PickleSerializer)
@staticmethod @staticmethod
def loads(obj): def loads(obj):
return signing.loads(obj, return signing.loads(obj,
key=SECRET_KEY, key=SECRET_KEY,
salt='django_q.q', salt='django_q.q',
serializer=JSONPickleSerializer) serializer=PickleSerializer)
class JSONPickleSerializer(object): class PickleSerializer(object):
""" """
Simple wrapper around JsonPickle for signing.dumps and Simple wrapper around JsonPickle for signing.dumps and
signing.loads. signing.loads.
@@ -359,11 +364,11 @@ class JSONPickleSerializer(object):
@staticmethod @staticmethod
def dumps(obj): def dumps(obj):
return jsonpickle.dumps(obj).encode('latin-1') return pickle.dumps(obj)
@staticmethod @staticmethod
def loads(data): def loads(data):
return jsonpickle.loads(data.decode('latin-1')) return pickle.loads(data)
class Status(object): class Status(object):
@@ -383,7 +388,7 @@ class Status(object):
class Stat(Status): class Stat(Status):
def __init__(self, sentinel, message=None): def __init__(self, sentinel, message=None):
super(Stat, self).__init__(sentinel.parent_pid) super(Stat, self).__init__(sentinel.parent_pid)
if message: if message:
sentinel.status = message sentinel.status = message
-1
View File
@@ -4,6 +4,5 @@ django-picklefield==0.3.1
Django==1.8.2 Django==1.8.2
future==0.14.3 future==0.14.3
hiredis==0.2.0 hiredis==0.2.0
jsonpickle==0.9.2
redis==2.10.3 redis==2.10.3
+1 -1
View File
@@ -35,7 +35,7 @@ setup(
license='MIT', license='MIT',
description='A multiprocessing task queue for Django', description='A multiprocessing task queue for Django',
long_description=README, long_description=README,
install_requires=['django>=1.7', 'redis', 'coloredlogs', 'django-picklefield', 'jsonpickle', 'blessed'], install_requires=['django>=1.7', 'redis', 'coloredlogs', 'django-picklefield', 'blessed'],
cmdclass={'test': PyTest}, cmdclass={'test': PyTest},
classifiers=[ classifiers=[
'Development Status :: 2 - PreAlpha', 'Development Status :: 2 - PreAlpha',