From 6f7c64eb03b80f4bff2d44e13b6e0cd19749967d Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 30 Aug 2010 05:18:22 -0400 Subject: [PATCH 1/5] Better xlwt handling. --- tablib/core.py | 4 +--- tablib/packages/xlwt/__init__.py | 2 -- tablib/tests/tests.py | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/tablib/core.py b/tablib/core.py index 9404703..2e86cb4 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -167,9 +167,7 @@ class Dataset(object): for j, col in enumerate(row): ws.write(i, j, col) - doc = xlwt.CompoundDoc.XlsDoc() - doc.save(stream, wb.get_biff_data()) - + wb.save(stream) return stream.getvalue() diff --git a/tablib/packages/xlwt/__init__.py b/tablib/packages/xlwt/__init__.py index 5053413..6f2a1b5 100644 --- a/tablib/packages/xlwt/__init__.py +++ b/tablib/packages/xlwt/__init__.py @@ -14,5 +14,3 @@ from Column import Column from Formatting import Font, Alignment, Borders, Pattern, Protection from Style import XFStyle, easyxf from ExcelFormula import * - -import CompoundDoc diff --git a/tablib/tests/tests.py b/tablib/tests/tests.py index 187fb27..89d9a9c 100644 --- a/tablib/tests/tests.py +++ b/tablib/tests/tests.py @@ -21,6 +21,6 @@ data.append(['kenneth' ,'reitz', 4.3]) data.headers = None #print data.csv -print data.xls +print len(data.xls) #print data.yaml #print data.json \ No newline at end of file From 37ffbc71c009b027d3ffa522a0a3f546d6ac7a7c Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 30 Aug 2010 05:31:45 -0400 Subject: [PATCH 2/5] index and append methods --- tablib/core.py | 14 ++++++++------ tablib/tests/tests.py | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/tablib/core.py b/tablib/core.py index 2e86cb4..5427221 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -171,12 +171,16 @@ class Dataset(object): return stream.getvalue() - def append(self, row, index=None): - # todo: impliment index + def append(self, row): + """Adds a row to the end of Dataset""" self._validate(row) self._data.append(tuple(row)) - + def index(self, i, row): + """Inserts a row at given position in Dataset""" + self._validate(row) + self._data.insert(i, tuple(row)) + def sort_by(self, key): """Sorts datastet by given key""" # todo: accpept string if headers, or index nubmer @@ -186,9 +190,7 @@ class Dataset(object): def save(self, filename=None, format=None): """Saves dataset""" if not format: - # set format from filename -# format = filename - pass + format = filename.split('.')[-1].lower() # set format from filename if format not in FILE_EXTENSIONS: raise UnsupportedFormat diff --git a/tablib/tests/tests.py b/tablib/tests/tests.py index 89d9a9c..55fa083 100644 --- a/tablib/tests/tests.py +++ b/tablib/tests/tests.py @@ -20,7 +20,7 @@ data.append(['kenneth' ,'reitz', 4.3]) #print data.json data.headers = None -#print data.csv -print len(data.xls) -#print data.yaml -#print data.json \ No newline at end of file +print data.csv +#print len(data.xls) +print data.yaml +print data.json \ No newline at end of file From 6b4afc38d17f4ebfb0cd42db77e2c13ce1dd2979 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 2 Sep 2010 00:21:03 -0400 Subject: [PATCH 3/5] Roadmap Update --- README.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 96f4e56..47b91cb 100644 --- a/README.rst +++ b/README.rst @@ -95,4 +95,10 @@ Manipulate rows by index: :: .. Export to various formats: :: .. .. # Save copy as CSV -.. data.export('backup.csv') \ No newline at end of file +.. data.export('backup.csv') + +Roadmap +------- +- Import datasets from CSV, JSON, YAML +- Auto-detect import format +- Plugin support \ No newline at end of file From 335e3b113404822dbb7d2eb0a8a333fa97f97555 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 8 Sep 2010 15:55:01 -0400 Subject: [PATCH 4/5] Updated setup file. --- setup.py | 53 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/setup.py b/setup.py index b6193dd..c01b835 100644 --- a/setup.py +++ b/setup.py @@ -8,29 +8,36 @@ from distutils.core import setup def publish(): - """Publish to PyPi""" - os.system("python setup.py sdist upload") + """Publish to PyPi""" + os.system("python setup.py sdist upload") + if sys.argv[-1] == "publish": - publish() - sys.exit() + publish() + sys.exit() -setup(name='tablib', - version=tablib.__version__, - description='Python wrapper for Gist API', - long_description=open('README.rst').read() + '\n\n' + - open('HISTORY.rst').read(), - author='Kenneth Reitz', - author_email='me@kennethreitz.com', - url='http://github.com/kennethreitz/tabbed', - packages=['tablib'], - license='MIT', - classifiers=( - "Development Status :: 4 - Beta", - "License :: OSI Approved :: MIT License", - "Programming Language :: Python", - "Programming Language :: Python :: 2.5", - "Programming Language :: Python :: 2.6", - "Programming Language :: Python :: 2.7", - ) - ) +setup( + name='tablib', + version='0.0.4', + description='Python wrapper for Gist API', + long_description=open('README.rst').read() + '\n\n' + + open('HISTORY.rst').read(), + author='Kenneth Reitz', + author_email='me@kennethreitz.com', + url='http://github.com/kennethreitz/tablib', + packages=['tablib'], + license='MIT', + classifiers=( + 'Development Status :: 4 - Beta', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2.5', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + ), + entry_points={ + 'console_scripts': [ + 'tabbed = tablib.cli:start', + ], + } +) From 9f025dc1112d9b9986566143af45ae5620a8f2c8 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 8 Sep 2010 15:55:08 -0400 Subject: [PATCH 5/5] Added name to corelib. --- tablib/core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tablib/core.py b/tablib/core.py index 5427221..6ce9316 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -24,6 +24,7 @@ except ImportError, why: __all__ = ['Dataset', 'source'] +__name__ = 'tablib' __version__ = '0.0.4' __build__ = '0x000004' __author__ = 'Kenneth Reitz'