summaryrefslogtreecommitdiff
path: root/tablib/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'tablib/core.py')
-rw-r--r--tablib/core.py29
1 files changed, 27 insertions, 2 deletions
diff --git a/tablib/core.py b/tablib/core.py
index a7a2963..90ef2b0 100644
--- a/tablib/core.py
+++ b/tablib/core.py
@@ -20,6 +20,9 @@ class Dataset(object):
def __init__(self, *args, **kwargs):
self._data = list(args)
self.__headers = None
+
+ # ('title', index) tuples
+ self._separators = []
try:
self.headers = kwargs['headers']
@@ -33,6 +36,7 @@ class Dataset(object):
self._register_formats()
+
def __len__(self):
return self.height
@@ -203,7 +207,26 @@ class Dataset(object):
self._data = [tuple([row]) for row in col]
- def insert(self, i, row=None, col=None):
+ def insert_separator(self, index, text='-'):
+ """Adds a separator to Dataset at given index."""
+
+ sep = (index, text)
+ self._separators.append(sep)
+
+
+ def append_separator(self, text='-'):
+ """Adds a separator to Dataset."""
+
+ # change offsets if headers are or aren't defined
+ if not self.headers:
+ index = self.height if self.height else 0
+ else:
+ index = (self.height + 1) if self.height else 1
+
+ self.insert_separator(index, text)
+
+
+ def insert(self, i, row=None):
"""Inserts a row at given position in Dataset"""
if row:
self._validate(row)
@@ -234,9 +257,11 @@ class Databook(object):
except AttributeError:
return '<databook object>'
+
def wipe(self):
"""Wipe book clean."""
self._datasets = []
+
@classmethod
def _register_formats(cls):
@@ -258,7 +283,7 @@ class Databook(object):
self._datasets.append(dataset)
else:
raise InvalidDatasetType
-
+
def _package(self):
"""Packages Databook for delivery."""