Yuvipanda has uploaded a new change for review.
https://gerrit.wikimedia.org/r/156469
Change subject: Added CSV and TSV output format generation
......................................................................
Added CSV and TSV output format generation
Change-Id: I80228191b266d8ec6a6d498a5079a1f9ba78ce26
---
M quarry/web/output.py
M requirements.txt
2 files changed, 26 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/analytics/quarry/web
refs/changes/69/156469/1
diff --git a/quarry/web/output.py b/quarry/web/output.py
index 882daa7..3aefa99 100644
--- a/quarry/web/output.py
+++ b/quarry/web/output.py
@@ -1,10 +1,33 @@
from flask import Response
import json
-
+import unicodecsv
def get_formatted_response(format, reader, resultset_id):
if format == 'json':
return json_formatter(reader, resultset_id)
+ elif format == 'csv':
+ return separated_formatter(reader, resultset_id, ',')
+ elif format == 'tsv':
+ return separated_formatter(reader, resultset_id, "\t")
+
+
+class Echo(object):
+ def __init__(self):
+ self.last_written = None
+
+ def write(self, value):
+ self.last_written = value
+
+
+def separated_formatter(reader, resultset_id, delim=','):
+ rows = reader.get_rows(resultset_id)
+ pseudo_buffer = Echo()
+ writer = unicodecsv.writer(pseudo_buffer, delimiter=delim)
+ def respond():
+ for row in rows:
+ writer.writerow(row)
+ yield pseudo_buffer.last_written
+ return Response(respond(), content_type='text/csv')
def json_formatter(reader, resultset_id):
diff --git a/requirements.txt b/requirements.txt
index 83fbf68..971c391 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,6 +4,7 @@
PyJWT==0.2.1
PyMySQL==0.6.2
PyYAML==3.11
+SQLAlchemy==0.9.7
Werkzeug==0.9.6
amqp==1.4.5
anyjson==0.3.3
@@ -19,5 +20,5 @@
requests==2.3.0
requests-oauthlib==0.4.1
six==1.7.3
+unicodecsv==0.9.4
wsgiref==0.1.2
-SQLAlchemy==0.9.7
--
To view, visit https://gerrit.wikimedia.org/r/156469
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I80228191b266d8ec6a6d498a5079a1f9ba78ce26
Gerrit-PatchSet: 1
Gerrit-Project: analytics/quarry/web
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits