Skip to content

Commit b5b8411

Browse files
committed
use latest pyexcel api to implement make_repsonse_xx methods
1 parent 73dea5c commit b5b8411

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

pyexcel_webio/__init__.py

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,18 @@ def dummy_func(content, content_type=None, status=200, file_name=None):
209209
ExcelResponse = dummy_func
210210

211211

212+
def _make_response(io_stream, file_type,
213+
status=200, file_name=None):
214+
io_stream.seek(0)
215+
if file_name:
216+
if not file_name.endswith(file_type):
217+
file_name = "%s.%s" % (file_name, file_type)
218+
return ExcelResponse(io_stream.read(),
219+
content_type=FILE_TYPE_MIME_TABLE[file_type],
220+
status=status, file_name=file_name)
221+
222+
223+
212224
def make_response(pyexcel_instance, file_type,
213225
status=200, file_name=None, **keywords):
214226
"""
@@ -232,17 +244,11 @@ def make_response(pyexcel_instance, file_type,
232244
"""
233245
io = pe.get_io(file_type)
234246
pyexcel_instance.save_to_memory(file_type, io, **keywords)
235-
io.seek(0)
236-
if file_name:
237-
if not file_name.endswith(file_type):
238-
file_name = "%s.%s" % (file_name, file_type)
239-
return ExcelResponse(io.read(),
240-
content_type=FILE_TYPE_MIME_TABLE[file_type],
241-
status=status, file_name=file_name)
247+
return _make_response(io, file_type, status, file_name)
242248

243249

244250
def make_response_from_array(array, file_type,
245-
status=200, **keywords):
251+
status=200, file_name=None, **keywords):
246252
"""
247253
Make a http response from an array
248254
@@ -251,12 +257,12 @@ def make_response_from_array(array, file_type,
251257
:param status: same as :meth:`~pyexcel_webio.make_response`
252258
:returns: http response
253259
"""
254-
return make_response(pe.Sheet(array),
255-
file_type, status, **keywords)
260+
io = pe.save_as(array=array, dest_file_type=file_type, **keywords)
261+
return _make_response(io, file_type, status, file_name)
256262

257263

258264
def make_response_from_dict(adict, file_type,
259-
status=200, **keywords):
265+
status=200, file_name=None, **keywords):
260266
"""
261267
Make a http response from a dictionary of lists
262268
@@ -265,13 +271,12 @@ def make_response_from_dict(adict, file_type,
265271
:param status: same as :meth:`~pyexcel_webio.make_response`
266272
:returns: http response
267273
"""
268-
sheet = pe.get_sheet(adict=adict)
269-
return make_response(sheet,
270-
file_type, status, **keywords)
274+
io = pe.save_as(adict=adict, dest_file_type=file_type, **keywords)
275+
return _make_response(io, file_type, status, file_name)
271276

272277

273278
def make_response_from_records(records, file_type,
274-
status=200, **keywords):
279+
status=200, file_name=None, **keywords):
275280
"""
276281
Make a http response from a list of dictionaries
277282
@@ -280,13 +285,12 @@ def make_response_from_records(records, file_type,
280285
:param status: same as :meth:`~pyexcel_webio.make_response`
281286
:returns: http response
282287
"""
283-
sheet = pe.get_sheet(records=records)
284-
return make_response(sheet,
285-
file_type, status, **keywords)
288+
io = pe.save_as(records=records, dest_file_type=file_type, **keywords)
289+
return _make_response(io, file_type, status, file_name)
286290

287291

288292
def make_response_from_book_dict(adict,
289-
file_type, status=200,
293+
file_type, status=200, file_name=None,
290294
**keywords):
291295
"""
292296
Make a http response from a dictionary of two dimensional
@@ -297,12 +301,12 @@ def make_response_from_book_dict(adict,
297301
:param status: same as :meth:`~pyexcel_webio.make_response`
298302
:returns: http response
299303
"""
300-
book = pe.get_book(bookdict=adict)
301-
return make_response(book, file_type, status, **keywords)
304+
io = pe.save_book_as(bookdict=adict, dest_file_type=file_type, **keywords)
305+
return _make_response(io, file_type, status, file_name)
302306

303307

304308
def make_response_from_query_sets(query_sets, column_names,
305-
file_type, status=200,
309+
file_type, status=200, file_name=None,
306310
**keywords):
307311
"""
308312
Make a http response from a dictionary of two dimensional
@@ -315,8 +319,9 @@ def make_response_from_query_sets(query_sets, column_names,
315319
:param status: same as :meth:`~pyexcel_webio.make_response`
316320
:returns: a http response
317321
"""
318-
sheet = pe.get_sheet(query_sets=query_sets, column_names=column_names)
319-
return make_response(sheet, file_type, status, **keywords)
322+
io = pe.save_as(query_sets=query_sets, column_names=column_names,
323+
dest_file_type=file_type, **keywords)
324+
return _make_response(io, file_type, status, file_name)
320325

321326

322327
def make_response_from_a_table(session, table,
@@ -331,8 +336,9 @@ def make_response_from_a_table(session, table,
331336
:param status: same as :meth:`~pyexcel_webio.make_response`
332337
:returns: a http response
333338
"""
334-
sheet = pe.get_sheet(session=session, table=table, **keywords)
335-
return make_response(sheet, file_type, status, file_name=file_name, **keywords)
339+
io = pe.save_as(session=session, table=table,
340+
dest_file_type=file_type, **keywords)
341+
return _make_response(io, file_type, status, file_name)
336342

337343

338344
def make_response_from_tables(session, tables,
@@ -347,5 +353,5 @@ def make_response_from_tables(session, tables,
347353
:param status: same as :meth:`~pyexcel_webio.make_response`
348354
:returns: a http response
349355
"""
350-
book = pe.get_book(session=session, tables=tables, **keywords)
351-
return make_response(book, file_type, status, file_name=file_name, **keywords)
356+
io = pe.save_book_as(session=session, tables=tables, dest_file_type=file_type, **keywords)
357+
return _make_response(io, file_type, status, file_name)

0 commit comments

Comments
 (0)