def append_row(self, new_row):
    "\n        Overrides the ListData method of the same name to change buffer state to 'not empty' after adding something to\n        the buffer\n\n        Args:\n            new_row(list, bool, str, int): The object to be added as a new row to buffer\n\n        Returns:\n            ListData object (self)\n\n        Examples:\n            # initiate\n            >>> my_buffer = ListBuffer()\n\n            # empty?\n            >>> my_buffer.is_empty\n            True\n\n            # simple add\n            >>> a = my_buffer.append_row(['item 1', 'item 2', 'item 3']) # variable assignment is to suppress output\n\n            # fluent interface\n            >>> my_buffer.append_row(['item 4', 'item 5', 'item 6']).                     append_row(['item 7', 'item 8', 'item 9']).dataset\n            [['item 1', 'item 2', 'item 3'], ['item 4', 'item 5', 'item 6'], ['item 7', 'item 8', 'item 9']]\n\n            # empty now?\n            >>> my_buffer.is_empty\n            False\n\n        "
    ListData.append_row(self, new_row)
    self.is_empty = False
    return self
Overrides the ListData method of the same name to change buffer state to 'not empty' after adding something to
the buffer

Args:
    new_row(list, bool, str, int): The object to be added as a new row to buffer

Returns:
    ListData object (self)

Examples:
    # initiate
    >>> my_buffer = ListBuffer()

    # empty?
    >>> my_buffer.is_empty
    True

    # simple add
    >>> a = my_buffer.append_row(['item 1', 'item 2', 'item 3']) # variable assignment is to suppress output

    # fluent interface
    >>> my_buffer.append_row(['item 4', 'item 5', 'item 6']).                     append_row(['item 7', 'item 8', 'item 9']).dataset
    [['item 1', 'item 2', 'item 3'], ['item 4', 'item 5', 'item 6'], ['item 7', 'item 8', 'item 9']]

    # empty now?
    >>> my_buffer.is_empty
    False
def append_row(self, new_row):
    "\n        Overrides the ListData method of the same name to change buffer state to 'not empty' after adding something to\n        the buffer\n\n        Args:\n            new_row(list, bool, str, int): The object to be added as a new row to buffer\n\n        Returns:\n            ListData object (self)\n\n        Examples:\n            # initiate\n            >>> my_buffer = ListBuffer()\n\n            # empty?\n            >>> my_buffer.is_empty\n            True\n\n            # simple add\n            >>> a = my_buffer.append_row(['item 1', 'item 2', 'item 3']) # variable assignment is to suppress output\n\n            # fluent interface\n            >>> my_buffer.append_row(['item 4', 'item 5', 'item 6']).                     append_row(['item 7', 'item 8', 'item 9']).dataset\n            [['item 1', 'item 2', 'item 3'], ['item 4', 'item 5', 'item 6'], ['item 7', 'item 8', 'item 9']]\n\n            # empty now?\n            >>> my_buffer.is_empty\n            False\n\n        "
    ListData.append_row(self, new_row)
    self.is_empty = False
    return self