Custom typesΒΆ

You can add support for serializing and deserializing custom types like this:

class MyMessageType:
    def __init__(self, msg):
        self.msg = msg

hierarkey.add_type(
    MyMessageType,
    lambda v: v.foo,
    lambda v: MyMessageType(v)
)

...

# Serialize
user.settings.set('myproperty', MyMessageType('Hello'))

# Deserizalize
# will return MyMessageType('Hello')
user.settings.get('myproperty', as_type=MyMessageType)