def METHOD_NAME(self, mode=0, on_stderr=False):
    # 0 should clear from the cursor to the end of the screen.
    # 1 should clear from the cursor to the beginning of the screen.
    # 2 should clear the entire screen, and move cursor to (1,1)
    handle = win32.STDOUT
    if on_stderr:
        handle = win32.STDERR
    csbi = win32.GetConsoleScreenBufferInfo(handle)
    # get the number of character cells in the current buffer
    cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y
    # get number of character cells before current cursor position
    cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X
    if mode == 0:
        from_coord = csbi.dwCursorPosition
        cells_to_erase = cells_in_screen - cells_before_cursor
    elif mode == 1:
        from_coord = win32.COORD(0, 0)
        cells_to_erase = cells_before_cursor
    elif mode == 2:
        from_coord = win32.COORD(0, 0)
        cells_to_erase = cells_in_screen
    else:
        # invalid mode
        return
    # fill the entire screen with blanks
    win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord)
    # now set the buffer's attributes accordingly
    win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord)
    if mode == 2:
        # put the cursor where needed
        win32.SetConsoleCursorPosition(handle, (1, 1))