'Recover state `dict` from simple dictionary describing configuration
state (potentially from persisted step state).
Sub-classes should supply a `default_state` method which contains the
initial state `dict` with key, value pairs for all available attributes.'

def recover_state(self, state, **kwds):

    self.state = DefaultToolState()
    inputs = self.get_inputs()
    if inputs:
        self.state.decode(state, Bunch(inputs=inputs), self.trans.app)
    else:
        self.state.inputs = (safe_loads(state) or {})
