http://www.mediawiki.org/wiki/Special:Code/MediaWiki/91001

Revision: 91001
Author:   rfaulk
Date:     2011-06-28 21:15:05 +0000 (Tue, 28 Jun 2011)
Log Message:
-----------
Added ordering of column names for html table reporting
Handling of extracting data from dataloader when after query has already been 
run 

Modified Paths:
--------------
    trunk/fundraiser-statistics/fundraiser-scripts/classes/DataReporting.py

Modified: 
trunk/fundraiser-statistics/fundraiser-scripts/classes/DataReporting.py
===================================================================
--- trunk/fundraiser-statistics/fundraiser-scripts/classes/DataReporting.py     
2011-06-28 21:13:05 UTC (rev 91000)
+++ trunk/fundraiser-statistics/fundraiser-scripts/classes/DataReporting.py     
2011-06-28 21:15:05 UTC (rev 91001)
@@ -16,25 +16,18 @@
 __date__ = "December 16th, 2010"
 
 
-import sys
-# sys.path.append('../')
+""" Import python base modules """
+import sys, matplotlib, datetime, MySQLdb, pylab, HTML, math
 
-import matplotlib
-import datetime
-import MySQLdb
-import pylab
-# from matplotlib.lines import Line2D
-import HTML
-import math
-
+""" Import Analytics modules """
 import Fundraiser_Tools.classes.QueryData as QD
 import Fundraiser_Tools.classes.Helper as Hlp
 import Fundraiser_Tools.classes.TimestampProcessor as TP
 import Fundraiser_Tools.classes.DataLoader as DL
 import Fundraiser_Tools.classes.HypothesisTest as HT
+import Fundraiser_Tools.classes.FundraiserDataHandler as FDH
 
 
-# matplotlib.use('Agg')
 
         
         
@@ -245,9 +238,11 @@
         for key in kwargs:
             if key == 'query_type':                          # Set custom data 
loaders
                 if kwargs[key] == 'campaign':
-                    self._data_loader_ = 
DL.CampaignIntervalReportingLoader(kwargs[key])
+                    self._data_loader_ = DL.CampaignIntervalReportingLoader()
                 else:
                     self._data_loader_ = 
DL.IntervalReportingLoader(kwargs[key])
+            elif key == 'was_run':
+                self._was_run_ = kwargs[key]
                 
         """ Call constructor of parent """
         DataReporting.__init__(self, **kwargs)
@@ -316,7 +311,7 @@
         
         #line_types = 
['b-o','g-o','r-o','c-o','m-o','k-o','y-o','b--d','g--d','r--d','c--d','m--d','k--d','y--d','b-.s','g-.s','r-.s','c-.s','m-.s','k-.s','y-.s']
         line_types = 
['b-o','g-x','r-s','c-d','m-o','k-o','y-o','b--d','g--d','r--d','c--d','m--d','k--d','y--d','b-.s','g-.s','r-.s','c-.s','m-.s','k-.s','y-.s']
-        
+
         count = 0
         for key in metrics.keys():
             if self._plot_type_ == 'step':
@@ -378,13 +373,17 @@
             print >> sys.stderr, 'No summary data for this reporting object.\n'
             return 0
         
+        """ EXTRACT COLUMN NAMES AND ORDER THEM """
+        
         data = self._data_loader_._summary_data_
         index = self._data_loader_._summary_data_.keys()[0]
         col_names = self._data_loader_._summary_data_[index].keys()
         
-        html = '<table border=\"1\" cellpadding=\"5\"><tr>'
+        col_names = FDH.order_column_keys(col_names)
         
+        html = '<table border=\"1\" cellpadding=\"10\"><tr>'
         
+        
         """ Build headers """
         html = html + '<th>' + self._data_loader_._query_type_ + '</th>'
         for i in col_names:
@@ -396,8 +395,8 @@
         for item in data.keys():
             html = html + '<tr>'
             html = html + '<td>' + item + '</td>'
-            for elem in data[item].keys():
-                html = html + '<td>' + str(data[item][elem]) + '</td>'
+            for elem in col_names:
+                html = html + '<td>' + 
QD.get_metric_data_type(elem,data[item][elem]) + '</td>'
             html = html + '</tr>'
         
         html = html + '</table>'
@@ -433,10 +432,10 @@
         for key in self._times_.keys():
             self._times_[key] = TP.normalize_timestamps(self._times_[key], 
False, 3)
             self._times_[key], self._counts_[key] = 
TP.normalize_intervals(self._times_[key], self._counts_[key], interval)
-        
+                
         """ If there are missing metrics add them as zeros """
         for label in labels:
-            
+
             if not(label in self._times_.keys()):
                 self._times_[label] = self._times_[self._times_.keys()[0]]
                 self._counts_[label] = [0.0] * len(self._times_[label])
@@ -772,7 +771,7 @@
         test_call = "run('" + test_name + "', '" + query_name + "', '" + 
metric_name + "', '" + campaign + "', '" + \
             item_1 + "', '" + item_2 + "', '" + start_time + "', '" + end_time 
+ "', " + str(interval) + ", " + str(num_samples) + ")"
         winner, percent_increase = self.print_metrics(fname, title, means_1, 
means_2, std_devs_1, std_devs_2, times_indices, labels, test_call)
-        
+    
         return [winner, percent_increase, confidence]
 
 


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to