def get_source_and_line(self, lineno=None):
        """Return (source, line) tuple for current or given line number.

        Looks up the source and line number in the `self.input_lines`
        StringList instance to count for included source files.

        If the optional argument `lineno` is given, convert it from an
        absolute line number to the corresponding (source, line) pair.
        """
        if lineno is None:
            offset = self.line_offset
        else:
            offset = lineno - 1 - self.input_offset
        try:
            src, srcoffset = self.input_lines.info(offset)
            srcline = srcoffset + 1
        except (TypeError):
            # line is None if index is "Just past the end"
            src, srcline = self.get_source_and_line(offset + self.input_offset)
            return src, srcline + 1
        except (IndexError): # `offset` is off the list
            src, srcline = None, None
            # raise AssertionError('cannot find line %d in %s lines' %
            #                      (offset, len(self.input_lines)))
            #                      # list(self.input_lines.lines())))
        # assert offset == srcoffset, str(self.input_lines)
        # print "get_source_and_line(%s):" % lineno,
        # print offset + 1, '->', src, srcline
        # print self.input_lines
        return (src, srcline)
dataset/ETHPy150Open adieu/allbuttonspressed/docutils/statemachine.py/StateMachine.get_source_and_line/swapped operands of `-`