Optimizations.

This commit is contained in:
Kenneth Reitz
2010-09-11 23:09:06 -04:00
parent 35102ab951
commit d03ba7e532
4 changed files with 52 additions and 23 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ for format in FORMATS:
def start(in_file=None, out_file=None, **opts):
"""Covertly convert dataset formats"""
opts = Object(**opts)
opts = Struct(**opts)
if opts.version:
print('Tabbed, Ver. %s' % tabbed.core.__version__)
+47 -18
View File
@@ -12,8 +12,8 @@ import cStringIO
import os
from helpers import *
from packages import simplejson as json
from packages import xlwt
import simplejson as json
import xlwt
import random
@@ -27,8 +27,8 @@ except ImportError, why:
__all__ = ['Dataset', 'DataBook', 'source']
__name__ = 'tablib'
__version__ = '0.0.4'
__build__ = '0x000004'
__version__ = '0.6.0'
__build__ = 0x000600
__author__ = 'Kenneth Reitz'
__license__ = 'MIT'
__copyright__ = 'Copyright 2010 Kenneth Reitz'
@@ -48,12 +48,12 @@ class Dataset(object):
self._data = list(args)
try:
self.headers = kwargs['headers']
self.headers = kwargs['headers']
except KeyError, why:
self.headers = None
try:
self.title = kwargs['title']
self.title = kwargs['title']
except KeyError, why:
self.title = None
@@ -83,9 +83,9 @@ class Dataset(object):
def __repr__(self):
if self.title:
try:
return '<%s dataset>' % (self.title.lower())
else:
except AttributeError:
return '<dataset object>'
@@ -127,21 +127,25 @@ class Dataset(object):
def width(self):
"""Returns the width of the Dataset."""
try:
return len(self._data[0])
return len(self._data[0])
except KeyError, why:
return 0
return 0
@property
def dict(self):
"""Returns python dict of Dataset."""
return self._package()
@property
def json(self):
"""Returns JSON representation of Dataset."""
return json.dumps(self._package())
return json.dumps(self.dict)
@property
def yaml(self):
"""Returns YAML representation of Dataset."""
return yaml.dump(self._package())
return yaml.dump(self.dict)
@property
@@ -166,7 +170,7 @@ class Dataset(object):
# for row in self._package(dicts=False):
for i, row in enumerate(self._package(dicts=False)):
for j, col in enumerate(row):
ws.write(i, j, col)
ws.write(i, j, str(col))
wb.save(stream)
return stream.getvalue()
@@ -211,17 +215,31 @@ class DataBook(object):
Currently, this exists only for XLS workbook support.
"""
def __init__(self):
self._datasets = []
def __init__(self, sets=[]):
self._datasets = sets
def __repr__(self):
try:
return '<%s databook>' % (self.title.lower())
except AttributeError:
return '<databook object>'
def add_book(self, dataset):
"""Add given ."""
def add_sheet(self, dataset):
"""Add given dataset ."""
if type(dataset) is Dataset:
self._datasets.append(dataset)
else:
raise InvalidDatasetType
def _package(self):
collector = []
for dset in self._datasets:
collector.append(dict(
title = dset.title,
data = dset.dict
))
return collector
@property
def size(self):
"""The number of the Datasets within DataBook."""
@@ -241,11 +259,22 @@ class DataBook(object):
#for row in self._package(dicts=False):
for i, row in enumerate(dset._package(dicts=False)):
for j, col in enumerate(row):
ws.write(i, j, col)
ws.write(i, j, str(col))
wb.save(stream)
return stream.getvalue()
@property
def json(self):
"""Returns JSON representation of Databook."""
return json.dumps(self._package())
@property
def yaml(self):
"""Returns YAML representation of Databook."""
return yaml.dump(self._package())
class InvalidDatasetType(Exception):
+1 -1
View File
@@ -3,7 +3,7 @@
import sys
class Object(object):
class Struct(object):
"""Your attributes are belong to us."""
def __init__(self, **entries):
+3 -3
View File
@@ -41,9 +41,9 @@ data.append(['Kenneth' ,'Reitz', 4.3])
#print data.csv
book = tablib.DataBook()
book.add_book(data)
book.add_book(data)
book.add_sheet(data)
book.add_sheet(data)
print book.xls
print book.json