def _update_attrs(nobj, oobj, exceptions=None, acornext=False):
success = True<EOL>if (acornext and hasattr(oobj, "<STR_LIT>")<EOL>and oobj.__acornext__ is not None): <EOL><INDENT>target = oobj.__acornext__<EOL><DEDENT>else:<EOL><INDENT>target = oobj<EOL><DEDENT>for a, v in _get_members(target):<EOL><INDENT>if hasattr(nobj, a):<EOL><INDENT>continue<EOL><DEDENT>if a in ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>continue<EOL><DEDENT>if exceptions is None or a not in exceptions:<EOL><INDENT>try:<EOL><INDENT>setattr(nobj, a, v)<EOL><DEDENT>except TypeError:<EOL><INDENT>emsg = "<STR_LIT>"<EOL>msg.err(emsg.format(nobj, a, target), <NUM_LIT:2>)<EOL>pass<EOL><DEDENT>except AttributeError:<EOL><INDENT>emsg = "<STR_LIT>"<EOL>msg.err(emsg.format(nobj, a, target), <NUM_LIT:2>)<EOL>pass<EOL><DEDENT>except ValueError:<EOL><INDENT>emsg = "<STR_LIT>"<EOL>msg.err(emsg.format(nobj, a, target), <NUM_LIT:2>)<EOL>success = False<EOL><DEDENT><DEDENT><DEDENT>return success<EOL>
Updates the attributes on `nobj` to match those of old, excluding the any
    attributes in the exceptions list.