Skip to main content

Numpy data serialization using msgpack

Project description

Package Description

This package provides encoding and decoding routines that enable the serialization and deserialization of numerical and array data types provided by [numpy](http://www.numpy.org/) using the highly efficient [msgpack](http://msgpack.org/) format. Serialization of Python’s native complex data types is also supported.

[![Latest Version](https://img.shields.io/pypi/v/msgpack-numpy.svg)](https://pypi.python.org/pypi/msgpack-numpy) [![Build Status](https://travis-ci.org/lebedov/msgpack-numpy.svg?branch=master)](https://travis-ci.org/lebedov/msgpack-numpy)

Installation

msgpack-numpy requires msgpack-python and numpy. If you have [pip](http://www.pip-installer.org/) installed on your system, run

pip install msgpack-numpy

to install the package and all dependencies. You can also download the source tarball, unpack it, and run

python setup.py install

from within the source directory.

Usage

The easiest way to use msgpack-numpy is to call its monkey patching function after importing the Python msgpack package:

import msgpack import msgpack_numpy as m m.patch()

This will automatically force all msgpack serialization and deserialization routines (and other packages that use them) to become numpy-aware. Of course, one can also manually pass the encoder and decoder provided by msgpack-numpy to the msgpack routines:

import msgpack
import msgpack_numpy as m
import numpy as np

x = np.random.rand(5)
x_enc = msgpack.packb(x, default=m.encode)
x_rec = msgpack.unpackb(x_enc, object_hook=m.decode)

msgpack-numpy will try to use the binary (fast) extension in msgpack by default. If msgpack was not compiled with Cython (or if the MSGPACK_PUREPYTHON variable is set), it will fall back to using the slower pure Python msgpack implementation.

Notes

The primary design goal of msgpack-numpy is ensuring preservation of numerical data types during msgpack serialization and deserialization. Inclusion of type information in the serialized data necessarily incurs some storage overhead; if preservation of type information is not needed, one may be able to avoid some of this overhead by writing a custom encoder/decoder pair that produces more efficient serializations for those specific use cases.

Development

The latest source code can be obtained from [GitHub](https://github.com/lebedov/msgpack-numpy/).

Authors

See the included [AUTHORS.md](https://github.com/lebedov/msgpack-numpy/blob/master/AUTHORS.md) file for more information.

License

This software is licensed under the [BSD License](http://www.opensource.org/licenses/bsd-license). See the included [LICENSE.md](https://github.com/lebedov/msgpack-numpy/blob/master/LICENSE.rst) file for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msgpack-numpy-0.4.6.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

msgpack_numpy-0.4.6-py2.py3-none-any.whl (6.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file msgpack-numpy-0.4.6.tar.gz.

File metadata

  • Download URL: msgpack-numpy-0.4.6.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for msgpack-numpy-0.4.6.tar.gz
Algorithm Hash digest
SHA256 ef3c5fe3d6cbab5c9db97de7062681c18f82d32a37177aaaf58b483d0336f135
MD5 84b8ae12b259f5d5c493c5a4b8daa44f
BLAKE2b-256 14c79140e75f2c9dfbd1423500fe7d3652c20a721919c63e74cadcc09276b25a

See more details on using hashes here.

File details

Details for the file msgpack_numpy-0.4.6-py2.py3-none-any.whl.

File metadata

  • Download URL: msgpack_numpy-0.4.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for msgpack_numpy-0.4.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6902ca9f7208095f00ed91f3843ddc6dfe2e95f31dfff672f09b617d4b740108
MD5 fbf6241b36a328643cdf295e1f3bf9a1
BLAKE2b-256 07b93d9bff29e914e1a2e1a2edbbfcec8b89a6bdaa3a94bd87d37e8202337873

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page