python-msgpack
Port variant v12
Summary MessagePack serializer (3.12)
BROKEN
Package version 1.1.0
Homepage https://msgpack.org/
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v11
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 10 SEP 2024, 22:00:44 UTC
Port created 09 JAN 2018, 17:05:01 UTC
Subpackage Descriptions
single # MessagePack for Python [Build Status] [Documentation Status] ## What's this [MessagePack] is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. This package provides CPython bindings for reading and writing MessagePack data. ## Install ``` $ pip install msgpack ``` ### Pure Python implementation The extension module in msgpack (`msgpack._cmsgpack`) does not support PyPy. But msgpack provides a pure Python implementation (`msgpack.fallback`) for PyPy. ### Windows When you can't use a binary distribution, you need to install Visual Studio or Windows SDK on Windows. Without extension, using pure Python implementation on CPython runs slowly. ## How to use ### One-shot pack & unpack Use `packb` for packing and `unpackb` for unpacking. msgpack provides `dumps` and `loads` as an alias for compatibility with `json` and `pickle`. `pack` and `dump` packs to a file-like object. `unpack` and `load` unpacks from a file-like object. ```pycon >>> import msgpack >>> msgpack.packb([1, 2, 3]) '\x93\x01\x02\x03' >>> msgpack.unpackb(_) [1, 2, 3] ``` Read the docstring for options. ### Streaming unpacking `Unpacker` is a "streaming unpacker". It unpacks multiple objects from one stream (or from bytes provided through its `feed` method). ```py import msgpack from io import BytesIO buf = BytesIO() for i in range(100): buf.write(msgpack.packb(i)) buf.seek(0) unpacker = msgpack.Unpacker(buf) for unpacked in unpacker: print(unpacked) ``` ### Packing/unpacking of custom data type It is also possible to pack/unpack custom data types. Here is an example for `datetime.datetime`. ```py import datetime import msgpack useful_dict = { "id": 1, "created": datetime.datetime.now(), } def decode_datetime(obj): if '__datetime__' in obj: obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f") return obj def encode_datetime(obj): if isinstance(obj, datetime.datetime): return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")} return obj
Configuration Switches (platform-specific settings discarded)
PY311 OFF Build using Python 3.11 PY312 ON Build using Python 3.12
Package Dependencies by Type
Build (only) python312:dev:std
python-setuptools:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Runtime (only) ravensys-gcc:cxx_run:std (single subpackage)
ravensys-gcc:libs:std (single subpackage)
Download groups
main mirror://PYPI/m/msgpack
Distribution File Information
dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e 167260 msgpack-1.1.0.tar.gz
Ports that require python-msgpack:v12
python-borgbackup:v12 Deduplicated, encrypted, compressed backups (3.12)
python-salt:v12 Remote execution and config mgmt system (3.12)