# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-msgpack VERSION= 1.2.1 KEYWORDS= python VARIANTS= v13 v14 SDESC[v13]= MessagePack serializer (3.13) SDESC[v14]= MessagePack serializer (3.14) HOMEPAGE= https://msgpack.org/ CONTACT= Python_Automaton[python@ravenports.com] DOWNLOAD_GROUPS= main SITES[main]= PYPI/m/msgpack DISTFILE[1]= msgpack-1.2.1.tar.gz:main DIST_SUBDIR= python-src DF_INDEX= 1 SPKGS[v13]= single SPKGS[v14]= single OPTIONS_AVAILABLE= PY313 PY314 OPTIONS_STANDARD= none VOPTS[v13]= PY313=ON PY314=OFF VOPTS[v14]= PY313=OFF PY314=ON USES= c++:single DISTNAME= msgpack-1.2.1 GENERATED= yes [PY313].USES_ON= python:v13,pep517 [PY314].USES_ON= python:v14,pep517 [FILE:2133:descriptions/desc.single] # MessagePack for Python [Build Status] [Documentation Status] ## What is 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 If you can't use a binary distribution, you need to install Visual Studio or the Windows SDK on Windows. Without the extension, the 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 aliases for compatibility with `json` and `pickle`. `pack` and `dump` pack to a file-like object. `unpack` and `load` unpack 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) ``` > [!IMPORTANT] > If `Unpacker.unpack()` stops with an exception other than `OutOfData`, that `Unpacker` cannot be reused. > Create a new `Unpacker` when reading another stream. ### Packing/unpacking of custom data types 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 [FILE:110:distinfo] 04c721c2c7448767e9e3f2520a475663d8ee0f09c31890f6d2bd70fd636a9647 183960 python-src/msgpack-1.2.1.tar.gz