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
def poke ( exposes ) : 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' ) 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).