From 7e756ad0975195ac84c902789fa5904ccf0efabd Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 30 Dec 2018 21:37:00 -0800 Subject: [PATCH] Upgrade Sanic to 18.12.0 Had to fix CSV streaming generation to correctly use await. --- datasette/utils.py | 4 ++-- datasette/views/base.py | 8 ++++---- setup.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/datasette/utils.py b/datasette/utils.py index 6407857d..cb65c57b 100644 --- a/datasette/utils.py +++ b/datasette/utils.py @@ -884,13 +884,13 @@ class LimitedWriter: self.limit_bytes = limit_mb * 1024 * 1024 self.bytes_count = 0 - def write(self, bytes): + async def write(self, bytes): self.bytes_count += len(bytes) if self.limit_bytes and (self.bytes_count > self.limit_bytes): raise WriteLimitExceeded("CSV contains more than {} bytes".format( self.limit_bytes )) - self.writer.write(bytes) + await self.writer.write(bytes) _infinities = {float("inf"), float("-inf")} diff --git a/datasette/views/base.py b/datasette/views/base.py index e9d8f14f..a0a31b7c 100644 --- a/datasette/views/base.py +++ b/datasette/views/base.py @@ -261,13 +261,13 @@ class BaseView(RenderMixin): request, database, hash, **kwargs ) if first: - writer.writerow(headings) + await writer.writerow(headings) first = False next = data.get("next") for row in data["rows"]: if not expanded_columns: # Simple path - writer.writerow(row) + await writer.writerow(row) else: # Look for {"value": "label": } dicts and expand new_row = [] @@ -277,10 +277,10 @@ class BaseView(RenderMixin): new_row.append(cell["label"]) else: new_row.append(cell) - writer.writerow(new_row) + await writer.writerow(new_row) except Exception as e: print('caught this', e) - r.write(str(e)) + await r.write(str(e)) return content_type = "text/plain; charset=utf-8" diff --git a/setup.py b/setup.py index 7edd78a1..175944d6 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ setup( install_requires=[ 'click==6.7', 'click-default-group==1.2', - 'Sanic==0.7.0', + 'sanic==18.12.0', 'Jinja2==2.10', 'hupper==1.0', 'pint==0.8.1',