Metadata-Version: 2.1
Name: polywrap-msgpack
Version: 0.1.0b7
Summary: WRAP msgpack encoder/decoder
Author: Cesar
Author-email: cesar@polywrap.io
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: msgpack (>=1.0.4,<2.0.0)
Description-Content-Type: text/x-rst

Polywrap Msgpack
================

polywrap-msgpack adds ability to encode/decode to/from msgpack format.

It provides msgpack_encode and msgpack_decode functions
which allows user to encode and decode to/from msgpack bytes

It also defines the default Extension types and extension hook for
custom extension types defined by WRAP standard

Quickstart
----------

Encoding-Decoding Native types and objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>>> from polywrap_msgpack import msgpack_decode, msgpack_encode
>>> dictionary = {
...     "foo": 5,
...     "bar": [True, False],
...     "baz": {
...         "prop": "value"
...     }
... }
>>> encoded = msgpack_encode(dictionary)
>>> decoded = msgpack_decode(encoded)
>>> assert dictionary == decoded
>>> print(decoded)
{'foo': 5, 'bar': [True, False], 'baz': {'prop': 'value'}}
    
Encoding-Decoding Extension types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>>> from polywrap_msgpack import msgpack_decode, msgpack_encode, GenericMap
>>> counter: GenericMap[str, int] = GenericMap({
...     "a": 3,
...     "b": 2,
...     "c": 5
... })
>>> encoded = msgpack_encode(counter)
>>> decoded = msgpack_decode(encoded)
>>> assert counter == decoded
>>> print(decoded)
GenericMap({'a': 3, 'b': 2, 'c': 5})

