misc: use cPickle only when available (#36515)
This commit is contained in:
parent
650c9c3093
commit
71508015a3
19
wcs/sql.py
19
wcs/sql.py
|
@ -19,7 +19,10 @@ import psycopg2.extensions
|
|||
import datetime
|
||||
import time
|
||||
import re
|
||||
import cPickle
|
||||
try:
|
||||
import cPickle as pickle
|
||||
except ImportError:
|
||||
import pickle
|
||||
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.six import StringIO
|
||||
|
@ -1142,7 +1145,7 @@ class SqlMixin(object):
|
|||
assert type(value) is time.struct_time
|
||||
value = datetime.datetime(value.tm_year, value.tm_mon, value.tm_mday)
|
||||
elif sql_type == 'bytea':
|
||||
value = bytearray(cPickle.dumps(value, protocol=2))
|
||||
value = bytearray(pickle.dumps(value, protocol=2))
|
||||
elif sql_type == 'boolean':
|
||||
pass
|
||||
sql_dict[get_field_id(field)] = value
|
||||
|
@ -1150,7 +1153,7 @@ class SqlMixin(object):
|
|||
sql_dict['%s_display' % get_field_id(field)] = data.get('%s_display' % field.id)
|
||||
if field.store_structured_value:
|
||||
sql_dict['%s_structured' % get_field_id(field)] = bytearray(
|
||||
cPickle.dumps(data.get('%s_structured' % field.id), protocol=2))
|
||||
pickle.dumps(data.get('%s_structured' % field.id), protocol=2))
|
||||
return sql_dict
|
||||
|
||||
@classmethod
|
||||
|
@ -1348,7 +1351,7 @@ class SqlDataMixin(SqlMixin):
|
|||
'user_id': self.user_id,
|
||||
'status': self.status,
|
||||
'page_no': self.page_no,
|
||||
'workflow_data': bytearray(cPickle.dumps(self.workflow_data, protocol=2)),
|
||||
'workflow_data': bytearray(pickle.dumps(self.workflow_data, protocol=2)),
|
||||
'id_display': self.id_display,
|
||||
'anonymised': self.anonymised,
|
||||
'tracking_code': self.tracking_code,
|
||||
|
@ -1366,13 +1369,13 @@ class SqlDataMixin(SqlMixin):
|
|||
else:
|
||||
sql_dict['receipt_time'] = None
|
||||
if self.workflow_roles:
|
||||
sql_dict['workflow_roles'] = bytearray(cPickle.dumps(self.workflow_roles, protocol=2))
|
||||
sql_dict['workflow_roles'] = bytearray(pickle.dumps(self.workflow_roles, protocol=2))
|
||||
sql_dict['workflow_roles_array'] = [str(x) for x in self.workflow_roles.values() if x is not None]
|
||||
else:
|
||||
sql_dict['workflow_roles'] = None
|
||||
sql_dict['workflow_roles_array'] = None
|
||||
if self.submission_context:
|
||||
sql_dict['submission_context'] = bytearray(cPickle.dumps(self.submission_context, protocol=2))
|
||||
sql_dict['submission_context'] = bytearray(pickle.dumps(self.submission_context, protocol=2))
|
||||
else:
|
||||
sql_dict['submission_context'] = None
|
||||
|
||||
|
@ -1460,7 +1463,7 @@ class SqlDataMixin(SqlMixin):
|
|||
'formdata_id': self.id,
|
||||
})
|
||||
if evo.parts:
|
||||
sql_dict['parts'] = bytearray(cPickle.dumps(evo.parts, protocol=2))
|
||||
sql_dict['parts'] = bytearray(pickle.dumps(evo.parts, protocol=2))
|
||||
else:
|
||||
sql_dict['parts'] = None
|
||||
cur.execute(sql_statement, sql_dict)
|
||||
|
@ -1886,7 +1889,7 @@ class Session(SqlMixin, wcs.sessions.BasicSession):
|
|||
def store(self):
|
||||
sql_dict = {
|
||||
'id': self.id,
|
||||
'session_data': bytearray(cPickle.dumps(self.__dict__, protocol=2)),
|
||||
'session_data': bytearray(pickle.dumps(self.__dict__, protocol=2)),
|
||||
# the other fields are stored to run optimized SELECT() against the
|
||||
# table, they are ignored when loading the data.
|
||||
'name_identifier': self.name_identifier,
|
||||
|
|
Loading…
Reference in New Issue