You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/WPy32-3720/python-3.7.2/Lib/site-packages/partd/python.py

45 lines
961 B

6 years ago
"""
get/put functions that consume/produce Python lists using msgpack or pickle
to serialize.
First we try msgpack (it's faster). If that fails then we default to pickle.
"""
from __future__ import absolute_import
from .compatibility import pickle
try:
from pandas import msgpack
except ImportError:
try:
import msgpack
except ImportError:
msgpack = False
from .encode import Encode
from functools import partial
def dumps(x):
try:
return msgpack.packb(x, use_bin_type=True)
except:
return pickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)
def loads(x):
try:
if msgpack.version >= (0, 5, 2):
unpack_kwargs = {'raw': False}
else:
unpack_kwargs = {'encoding': 'utf-8'}
return msgpack.unpackb(x, **unpack_kwargs)
except:
return pickle.loads(x)
def concat(lists):
return sum(lists, [])
Python = partial(Encode, dumps, loads, concat)