code: def erase_in_display(self, how=0, *args, **kwargs):
          
          if how == 0:
              interval = range(self.cursor.y + 1, self.lines)
          elif how == 1:
              interval = range(self.cursor.y)
          elif how == 2 or how == 3:
              interval = range(self.lines)
  
          self.dirty.update(interval)
          for y in interval:
              line = self.buffer[y]
              for x in line:
                  line[x] = self.cursor.attrs
  
          if how == 0 or how == 1:
              self.erase_in_line(how)
docs: Erases display in a specific way.
  
          Character attributes are set to cursor attributes.
  
          :param int how: defines the way the line should be erased in:
  
              * ``0`` -- Erases from cursor to end of screen, including
                cursor position.
              * ``1`` -- Erases from beginning of screen to cursor,
                including cursor position.
              * ``2`` and ``3`` -- Erases complete display. All lines
                are erased and changed to single-width. Cursor does not
                move.
          :param bool private: when ``True`` only characters marked as
                               eraseable are affected **not implemented**.
  
          .. versionchanged:: 0.8.1
  
             The method accepts any number of positional arguments as some
             ``clear`` implementations include a ``;`` after the first
             parameter causing the stream to assume a ``0`` second parameter.