def extract(self, node, condition, skip=<NUM_LIT:0>):
for child in self.filter(node, condition):<EOL><INDENT>if not skip:<EOL><INDENT>return child<EOL><DEDENT>skip -= <NUM_LIT:1><EOL><DEDENT>raise TypeError('<STR_LIT>')<EOL>
Extract a single node that matches the provided condition,
otherwise a TypeError is raised.  An optional skip parameter can
be provided to specify how many matching nodes are to be skipped
over.