def METHOD_NAME(self, *data):
    if (len(data) == 1) and data[0] == self.indent:
        diff = max(
            self.pending_newlines,
            self.desired_line_number - self.current_line_number,
        )
        self.f.METHOD_NAME("\n" * diff)
        self.current_line_number += diff
        self.pending_newlines = 0
    if (len(data) == 0) or (len(data) == 1 and data[0] == ""):
        return
    out = "".join((str(j) for j in data))
    n = 0
    for i in out:
        if i == "\n":
            n += 1
            if n == len(out):
                self.pending_newlines = max(self.pending_newlines, n)
                return
        elif n:
            self.pending_newlines = max(self.pending_newlines, n)
            out = out[n:]
            break
        else:
            break
    if self.pending_newlines > 0:
        diff = max(
            self.pending_newlines,
            self.desired_line_number - self.current_line_number,
        )
        self.f.METHOD_NAME("\n" * diff)
        self.current_line_number += diff
        self.pending_newlines = 0
    for i in out[::-1]:
        if i == "\n":
            self.pending_newlines += 1
        else:
            break
    if self.pending_newlines:
        out = out[: -self.pending_newlines]
    self.f.METHOD_NAME(out)