def fail(self):
if self.failed is True:<EOL><INDENT>raise AttributeError("<STR_LIT>".format(self))<EOL><DEDENT>else:<EOL><INDENT>self.failed = True<EOL>self.time_of_death = timenow()<EOL>for n in self.nodes():<EOL><INDENT>n.fail()<EOL><DEDENT>for q in self.questions():<EOL><INDENT>q.fail()<EOL><DEDENT><DEDENT>
Fail a participant.

        Set :attr:`~dallinger.models.SharedMixin.failed` to ``True`` and
        :attr:`~dallinger.models.SharedMixin.time_of_death` to now. Instruct all
        not-failed nodes associated with the participant to fail.