# -*- coding: utf-8 -*-
# Written (W) 2008-2012 Christian Widmer
# Written (W) 2008-2010 Cheng Soon Ong
# Written (W) 2012-2014 Daniel Blanchard, dblanchard@ets.org
# Copyright (C) 2008-2012 Max-Planck-Society, 2012-2014 ETS
# This file is part of GridMap.
# GridMap is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# GridMap is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GridMap. If not, see <http://www.gnu.org/licenses/>.
"""
This modules provides all of the data-related function for gridmap.
:author: Christian Widmer
:author: Cheng Soon Ong
:author: Dan Blanchard (dblanchard@ets.org)
"""
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import bz2
try:
import cPickle as pickle # For Python 2.x
except ImportError:
import pickle
import cloudpickle
import re
[docs]def zdumps(obj):
"""
dumps pickleable object into bz2 compressed string
:param obj: The object/function to store.
:type obj: object or function
:returns: An bz2-compressed pickle of the given object.
"""
return bz2.compress(cloudpickle.dumps(obj, pickle.HIGHEST_PROTOCOL), 9)
[docs]def zloads(pickled_data):
"""
loads pickleable object from bz2 compressed string
:param pickled_data: BZ2 compressed byte sequence
:type pickled_data: bytes
:returns: An unpickled version of the compressed byte sequence.
"""
return cloudpickle.loads(bz2.decompress(pickled_data))