def post_run_cell(self):
<EOL>decorlist = {k: [] for k in self.atypes}<EOL>for atype in self.atypes:<EOL><INDENT>for n, o in self._get_decoratables(atype):<EOL><INDENT>self._decorate(atype, n, o)<EOL><DEDENT><DEDENT>if self.pre is not None:<EOL><INDENT>from acorn.logging.decoration import set_streamlining<EOL>set_streamlining(False)<EOL>from acorn import msg<EOL>from acorn.logging.database import record<EOL>from time import time<EOL>entry = self.pre<EOL>entry["<STR_LIT:e>"] = time() - entry["<STR_LIT:s>"]<EOL>cellid = self._find_cellid(entry["<STR_LIT:c>"])<EOL>if cellid is None:<EOL><INDENT>cellid = self.cellid<EOL><DEDENT>self.cellids[cellid] = entry["<STR_LIT:c>"]<EOL>record("<STR_LIT>".format(cellid), entry, diff=True)<EOL>msg.info(entry, <NUM_LIT:1>)<EOL>self.pre = None<EOL><DEDENT>from acorn.logging.database import tracker, active_db, Instance<EOL>varchange = self._var_changes()<EOL>taskdb = active_db()<EOL>for n, o in varchange:<EOL><INDENT>otrack = tracker(o)<EOL>if isinstance(otrack, Instance):<EOL><INDENT>taskdb.log_uuid(otrack.uuid)<EOL><DEDENT><DEDENT>global thumb_uuid<EOL>if thumb_uuid is not None:<EOL><INDENT>self._log_images()<EOL>thumb_uuid = None<EOL><DEDENT>self.cellid = None<EOL>
Runs after the user-entered code in a cell has been executed. It
        detects any new, decoratable objects that haven't been decorated yet and
        then decorates them.