jenkins-bot has submitted this change and it was merged.
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, 28 insertions(+), 1 deletion(-)
Approvals:
Yuvipanda: Looks good to me, approved
jenkins-bot: Verified
diff --git a/quarry/web/output.py b/quarry/web/output.py
index 882daa7..5ba11b5 100644
--- a/quarry/web/output.py
+++ b/quarry/web/output.py
@@ -1,10 +1,36 @@
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 OneLineRetainer(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)
+ retainer = OneLineRetainer()
+ writer = unicodecsv.writer(retainer, delimiter=delim)
+
+ def respond():
+ for row in rows:
+ writer.writerow(row)
+ yield retainer.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: merged
Gerrit-Change-Id: I80228191b266d8ec6a6d498a5079a1f9ba78ce26
Gerrit-PatchSet: 3
Gerrit-Project: analytics/quarry/web
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
Gerrit-Reviewer: Yuvipanda <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits