code: def _write(self, data):
          
          if '\n' in data:
              # When there is a newline in the data, write everything before the
              # newline, including the newline itself.
              before, after = data.rsplit('\n', 1)
              to_write = self._buffer + [before, '\n']
              self._buffer = [after]
  
              def run():
                  for s in to_write:
                      if self._raw:
                          self._cli.output.write_raw(s)
                      else:
                          self._cli.output.write(s)
              self._do(run)
          else:
              # Otherwise, cache in buffer.
              self._buffer.append(data)
docs: Note: print()-statements cause to multiple write calls.
                (write('line') and write('\n')). Of course we don't want to call
                `run_in_terminal` for every individual call, because that's too
                expensive, and as long as the newline hasn't been written, the
                text itself is again overwritter by the rendering of the input
                command line. Therefor, we have a little buffer which holds the
                text until a newline is written to stdout.