status-report-scripts review-stats.py,1.3,1.4

Jason ティビツ tibbs at fedoraproject.org
Thu Oct 22 03:59:39 UTC 2009


Author: tibbs

Update of /cvs/fedora/status-report-scripts
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25574

Modified Files:
	review-stats.py 
Log Message:
Add nice index page.
Refactor some code.
Bump version to 2.1.



Index: review-stats.py
===================================================================
RCS file: /cvs/fedora/status-report-scripts/review-stats.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- review-stats.py	15 Oct 2009 18:47:56 -0000	1.3
+++ review-stats.py	22 Oct 2009 03:59:08 -0000	1.4
@@ -1,5 +1,5 @@
 #!/usr/bin/python -t
-VERSION = "2.0"
+VERSION = "2.1"
 
 # $Id$
 # Note: This script presently lives in internal git and external cvs.  External
@@ -163,6 +163,22 @@
     #  Tickets awaiting review but which were hidden for some reason
     # That should be all tickets in the Package Review component
 
+def write_html(loader, template, data, dir, fname):
+    '''Load and render the given template with the given data to the given
+       filename in the specified directory.'''
+    tmpl = loader.load(template)
+    output = tmpl.generate(**data)
+
+    path = os.path.join(dir, fname)
+    try:
+        f = open(path, "w")
+    except IOError, (err, strerr):
+        print 'ERROR: %s: %s' % (strerr, path)
+        sys.exit(1)
+
+    f.write(output.render())
+    f.close()
+
 def report_hidden(bugs, bugdata, loader, tmpdir):
     data = {
             'count': 0,
@@ -193,18 +209,8 @@
                     })
             data['count'] +=1
 
-    tmpl = loader.load('plain.html')
-    output = tmpl.generate(**data)
-
-    fname = os.path.join(tmpdir, "HIDDEN.html")
-    try:
-        f = open(fname, "w")
-    except IOError, (err, strerr):
-        print 'ERROR: %s: %s' % (strerr, fname)
-        sys.exit(1)
+    write_html(loader, 'plain.html', data, tmpdir, 'HIDDEN.html')
 
-    f.write(output.render())
-    f.close()
     return data['count']
 
 def report_merge(bugs, bugdata, loader, tmpdir):
@@ -238,18 +244,8 @@
                     })
             data['count'] +=1
 
-    tmpl = loader.load('plain.html')
-    output = tmpl.generate(**data)
-
-    fname = os.path.join(tmpdir, "MERGE.html")
-    try:
-        f = open(fname, "w")
-    except IOError, (err, strerr):
-        print 'ERROR: %s: %s' % (strerr, fname)
-        sys.exit(1)
+    write_html(loader, 'plain.html', data, tmpdir, 'MERGE.html')
 
-    f.write(output.render())
-    f.close()
     return data['count']
 
 def report_needsponsor(bugs, bugdata, loader, tmpdir):
@@ -289,19 +285,8 @@
             data['count'] +=1
             curcount +=1
 
+    write_html(loader, 'bymonth.html', data, tmpdir, 'NEEDSPONSOR.html')
 
-    tmpl = loader.load('bymonth.html')
-    output = tmpl.generate(**data)
-
-    fname = os.path.join(tmpdir, "NEEDSPONSOR.html")
-    try:
-        f = open(fname, "w")
-    except IOError, (err, strerr):
-        print 'ERROR: %s: %s' % (strerr, fname)
-        sys.exit(1)
-
-    f.write(output.render())
-    f.close()
     return data['count']
 
 def report_new(bugs, bugdata, loader, tmpdir):
@@ -348,40 +333,34 @@
             curcount +=1
 
     data['months'][-1]['month'] += (" (%d)" % curcount)
-    tmpl = loader.load('bymonth.html')
-    output = tmpl.generate(**data)
 
-    fname = os.path.join(tmpdir, "NEW.html")
-    try:
-        f = open(fname, "w")
-    except IOError, (err, strerr):
-        print 'ERROR: %s: %s' % (strerr, fname)
-        sys.exit(1)
+    write_html(loader, 'bymonth.html', data, tmpdir, 'NEW.html')
 
-    f.write(output.render())
-    f.close()
     return data['count']
 
 if __name__ == '__main__':
     options = parse_commandline()
     bz = bugzilla.Bugzilla(url=options.url)
+    (bugs, bugdata) = run_query(bz)
+
+    # Don't bother running this stuff until the query completes, since it fails
+    # so often.
     loader = TemplateLoader(options.templdir)
     tmpdir = tempfile.mkdtemp(dir=options.dirname)
 
-    (bugs, bugdata) = run_query(bz)
-    counts = {}
+    data = {}
 
-    counts['new'] =         report_new(bugs, bugdata, loader, tmpdir)
-    counts['merge'] =       report_merge(bugs, bugdata, loader, tmpdir)
-    counts['needsponsor'] = report_needsponsor(bugs, bugdata, loader, tmpdir)
-    counts['hidden'] =      report_hidden(bugs, bugdata, loader, tmpdir)
-#    counts['accepted_closed'] = report_accepted_closed(bugs, bugdata, loader, tmpdir)
-#    counts['accepted_open'] = report_accepted_open(bugs, bugdata, loader, tmpdir)
-#    counts['rejected_closed'] = report_rejected_closed(bugs, bugdata, loader, tmpdir)
-#    counts['rejected_open'] = report_rejected_open(bugs, bugdata, loader, tmpdir)
-#    counts['review_closed'] = report_review_closed(bugs, bugdata, loader, tmpdir)
-#    counts['review_open'] = report_review_open(bugs, bugdata, loader, tmpdir)
-#    report_index = report_index(counts, loader, tmpdir)
+    data['new'] =         report_new(bugs, bugdata, loader, tmpdir)
+    data['merge'] =       report_merge(bugs, bugdata, loader, tmpdir)
+    data['needsponsor'] = report_needsponsor(bugs, bugdata, loader, tmpdir)
+    data['hidden'] =      report_hidden(bugs, bugdata, loader, tmpdir)
+#    data['accepted_closed'] = report_accepted_closed(bugs, bugdata, loader, tmpdir)
+#    data['accepted_open'] = report_accepted_open(bugs, bugdata, loader, tmpdir)
+#    data['rejected_closed'] = report_rejected_closed(bugs, bugdata, loader, tmpdir)
+#    data['rejected_open'] = report_rejected_open(bugs, bugdata, loader, tmpdir)
+#    data['review_closed'] = report_review_closed(bugs, bugdata, loader, tmpdir)
+#    data['review_open'] = report_review_open(bugs, bugdata, loader, tmpdir)
+    write_html(loader, 'index.html', data, tmpdir, 'index.html')
 
     for filename in glob.glob(os.path.join(tmpdir, '*')):
         newFilename = os.path.basename(filename)




More information about the fedora-extras-commits mailing list