def poke(exposes):
def _poke(store, objname, obj, container, visited=None, _stack=None):<EOL><INDENT>try:<EOL><INDENT>sub_container = store.newContainer(objname, obj, container)<EOL><DEDENT>except (SystemExit, KeyboardInterrupt):<EOL><INDENT>raise<EOL><DEDENT>except:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>for iobjname in exposes:<EOL><INDENT>try:<EOL><INDENT>iobj = getattr(obj, iobjname)<EOL><DEDENT>except AttributeError:<EOL><INDENT>pass<EOL><DEDENT>else:<EOL><INDENT>store.poke(iobjname, iobj, sub_container, visited=visited,_stack=_stack)<EOL><DEDENT><DEDENT><DEDENT>return _poke<EOL>
Default serializer factory.

Arguments:

    exposes (iterable): attributes to serialized.

Returns:

    callable: serializer (`poke` routine).