Default deserializer factory.

    Arguments:

        init (callable): type constructor.

        exposes (iterable): attributes to be peeked and passed to `init`.

    Returns:

        callable: deserializer (`peek` routine).

def peek(init, exposes, debug=False):
    """
    Default deserializer factory.

    Arguments:

        init (callable): type constructor.

        exposes (iterable): attributes to be peeked and passed to `init`.

    Returns:

        callable: deserializer (`peek` routine).
    """
    def _peek(store, container, _stack=None):
        args = [ store.peek(objname, container, _stack=_stack) \
            for objname in exposes ]
        if debug:
            print(args)
        return init(*args)
    return _peek