# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-msgpack VERSION= 1.1.0 KEYWORDS= python VARIANTS= v12 v13 SDESC[v12]= MessagePack serializer (3.12) SDESC[v13]= MessagePack serializer (3.13) HOMEPAGE= https://msgpack.org/ CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPI/m/msgpack DISTFILE[1]= msgpack-1.1.0.tar.gz:main DIST_SUBDIR= python-src DF_INDEX= 1 SPKGS[v12]= single SPKGS[v13]= single OPTIONS_AVAILABLE= PY312 PY313 OPTIONS_STANDARD= none VOPTS[v12]= PY312=ON PY313=OFF VOPTS[v13]= PY312=OFF PY313=ON USES= c++:single DISTNAME= msgpack-1.1.0 GENERATED= yes [PY312].USES_ON= python:v12,sutools [PY313].USES_ON= python:v13,sutools [FILE:2120:descriptions/desc.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 [FILE:110:distinfo] dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e 167260 python-src/msgpack-1.1.0.tar.gz