def poke(exposes):
    """
    Default serializer factory.

    Arguments:

        exposes (iterable): attributes to serialized.

    Returns:

        callable: serializer (`poke` routine).
    """
    def _poke(store, objname, obj, container, visited=None, _stack=None):
        try:
            sub_container = store.newContainer(objname, obj, container)
        except (SystemExit, KeyboardInterrupt):
            raise
        except:
            raise ValueError('generic poke not supported by store')
        #_stack = _add_to_stack(_stack, objname)
        for iobjname in exposes:
            try:
                iobj = getattr(obj, iobjname)
            except AttributeError:
                pass
            else:
                store.poke(iobjname, iobj, sub_container, visited=visited, \
                    _stack=_stack)
    return _poke
Default serializer factory.

    Arguments:

        exposes (iterable): attributes to serialized.

    Returns:

        callable: serializer (`poke` routine).