# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-msgpack VERSION= 1.1.2 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@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPI/m/msgpack DISTFILE[1]= msgpack-1.1.2.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.1.2 GENERATED= yes [PY313].USES_ON= python:v13,pep517 [PY314].USES_ON= python:v14,pep517 [FILE:2109: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) ``` ### 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 def encode_datetime(obj): if isinstance(obj, datetime.datetime): return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")} [FILE:110:distinfo] 3b60763c1373dd60f398488069bcdc703cd08a711477b5d480eecc9f9626f47e 173581 python-src/msgpack-1.1.2.tar.gz