mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
Optimizations.
This commit is contained in:
+1
-1
@@ -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
@@ -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
@@ -3,7 +3,7 @@
|
||||
import sys
|
||||
|
||||
|
||||
class Object(object):
|
||||
class Struct(object):
|
||||
"""Your attributes are belong to us."""
|
||||
|
||||
def __init__(self, **entries):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user