changed API of dataset.freeze()

dataset.freeze() is now expecting a result iterable instead of database
and query.
This commit is contained in:
Gregor Aisch 2013-04-09 00:26:59 +02:00
parent 176f605119
commit 96656d3f80

View File

@ -18,7 +18,7 @@ parser.add_argument('config', metavar='CONFIG', type=str,
help='freeze file cofiguration') help='freeze file cofiguration')
def freeze(database, query, format='csv', filename='freeze.csv', def freeze(result, format='csv', filename='freeze.csv',
prefix='.', meta={}, indent=2, mode='list', wrap=True, **kw): prefix='.', meta={}, indent=2, mode='list', wrap=True, **kw):
""" """
Perform a data export of a given SQL statement. This is a very Perform a data export of a given SQL statement. This is a very
@ -27,8 +27,6 @@ def freeze(database, query, format='csv', filename='freeze.csv',
of records) into individual files. of records) into individual files.
""" """
kw.update({ kw.update({
'database': database,
'query': query,
'format': format, 'format': format,
'filename': filename, 'filename': filename,
'prefix': prefix, 'prefix': prefix,
@ -37,15 +35,16 @@ def freeze(database, query, format='csv', filename='freeze.csv',
'mode': mode, 'mode': mode,
'wrap': wrap 'wrap': wrap
}) })
return freeze_export(Export({}, kw)) return freeze_export(Export({}, kw), result=result)
def freeze_export(export): def freeze_export(export, result=None):
try: try:
database = export.get('database') if result is None:
if isinstance(database, (str, unicode)): database = Database(export.get('database'))
database = Database(database)
query = database.query(export.get('query')) query = database.query(export.get('query'))
else:
query = result
serializer_cls = get_serializer(export) serializer_cls = get_serializer(export)
serializer = serializer_cls(export, query) serializer = serializer_cls(export, query)
serializer.serialize() serializer.serialize()