Merge pull request #26 from jonathaneunice/master

Made `freeze()` less persnickety
This commit is contained in:
Friedrich Lindenberg 2013-08-21 07:27:50 -07:00
commit 2d27a75c1a

View File

@ -3,6 +3,7 @@ import argparse
from sqlalchemy.exc import ProgrammingError from sqlalchemy.exc import ProgrammingError
from dataset.util import FreezeException from dataset.util import FreezeException
from dataset.persistence.table import Table
from dataset.persistence.database import Database from dataset.persistence.database import Database
from dataset.freeze.config import Configuration, Export from dataset.freeze.config import Configuration, Export
from dataset.freeze.format import get_serializer from dataset.freeze.format import get_serializer
@ -32,6 +33,9 @@ def freeze(result, format='csv', filename='freeze.csv',
result = db['person'].all() result = db['person'].all()
dataset.freeze(result, format='json', filename='all-persons.json') dataset.freeze(result, format='json', filename='all-persons.json')
If ``result`` is a table (rather than a result set), all records in
the table are exported (as if ``result.all()`` had been called).
freeze supports two values for ``mode``: freeze supports two values for ``mode``:
@ -73,7 +77,8 @@ def freeze(result, format='csv', filename='freeze.csv',
'mode': mode, 'mode': mode,
'wrap': wrap 'wrap': wrap
}) })
return freeze_export(Export({}, kw), result=result) records = result.all() if isinstance(result, Table) else result
return freeze_export(Export({}, kw), result=records)
def freeze_export(export, result=None): def freeze_export(export, result=None):