Author: Antonio Cuni <[email protected]>
Branch: 
Changeset: r130:0f41c4155021
Date: 2011-07-20 15:36 +0200
http://bitbucket.org/pypy/benchmarks/changeset/0f41c4155021/

Log:    turn saveresult.py into a script which can be invoked from the
        command line

diff --git a/saveresults.py b/saveresults.py
old mode 100644
new mode 100755
--- a/saveresults.py
+++ b/saveresults.py
@@ -1,10 +1,29 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #######################################################
 # This script saves result data                       #
 # It expects the format of unladen swallow's perf.py  #
 #######################################################
+
+"""
+Upload a json file generated by runner.py.
+
+Revision, name and host are required.
+
+Example usage:
+
+  $ ./saveresults.py result.json -r '45757:fabe4fc0dc08' -n pypy-c-jit -H 
tannit
+  
+  OR
+  
+  $ ./saveresults.py result.json -r '45757:fabe4fc0dc08' -n pypy-c-jit-64 -H 
tannit
+
+"""
+
+import sys
 import urllib, urllib2
 from datetime import datetime
+import optparse
 
 SPEEDURL = "http://speed.pypy.org/";
 
@@ -79,3 +98,31 @@
     print "saved correctly!\n"
     return 0
 
+
+def main(jsonfile, options):
+    import simplejson
+    with open(jsonfile) as f:
+        data = simplejson.load(f)
+    results = data['results']
+    print 'uploading results...',
+    save('PyPy', options.revision, results, '', options.name, options.host,
+         changed=options.changed)
+    print 'done'
+
+
+if __name__ == '__main__':
+    parser = optparse.OptionParser(usage="%prog result.json [options]")
+    parser.add_option('-r', '--revision', dest='revision', default=None, 
type=str)
+    parser.add_option('-n', '--name', dest='name', default=None, type=str)
+    parser.add_option('-H', '--host', dest='host', default=None, type=str)
+    parser.add_option('-b', '--baseline', dest='changed', default=True,
+                      action='store_false',
+                      help='upload the results as baseline instead of changed')
+    parser.format_description = lambda fmt: __doc__
+    parser.description = __doc__
+    options, args = parser.parse_args()
+    if options.revision is None or options.name is None or options.host is 
None or \
+            len(args) != 1:
+        parser.print_help()
+        sys.exit(2)
+    main(args[0], options)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to