def compute_work_statistics(self):
    """Computes statistics from all work pieces stored in this class."""
    result = {}
    for v in itervalues(self.work):
      submission_id = v['submission_id']
      if submission_id not in result:
        result[submission_id] = {
            'completed': 0,
            'num_errors': 0,
            'error_messages': set(),
            'eval_times': [],
            'min_eval_time': None,
            'max_eval_time': None,
            'mean_eval_time': None,
            'median_eval_time': None,
        }
      if not v['is_completed']:
        continue
      result[submission_id]['completed'] += 1
      if 'error' in v and v['error']:
        result[submission_id]['num_errors'] += 1
        result[submission_id]['error_messages'].add(v['error'])
      else:
        result[submission_id]['eval_times'].append(float(v['elapsed_time']))
    for v in itervalues(result):
      if v['eval_times']:
        v['min_eval_time'] = np.min(v['eval_times'])
        v['max_eval_time'] = np.max(v['eval_times'])
        v['mean_eval_time'] = np.mean(v['eval_times'])
        v['median_eval_time'] = np.median(v['eval_times'])
    return result
def compute_work_statistics ( self ) : result = { } for v in itervalues ( self . work ) : submission_id = v [ 'submission_id' ] if submission_id not in result : result [ submission_id ] = { 'completed' : 0 , 'num_errors' : 0 , 'error_messages' : set ( ) , 'eval_times' : [ ] , 'min_eval_time' : None , 'max_eval_time' : None , 'mean_eval_time' : None , 'median_eval_time' : None , } if not v [ 'is_completed' ] : continue result [ submission_id ] [ 'completed' ] += 1 if 'error' in v and v [ 'error' ] : result [ submission_id ] [ 'num_errors' ] += 1 result [ submission_id ] [ 'error_messages' ] . add ( v [ 'error' ] ) else : result [ submission_id ] [ 'eval_times' ] . append ( float ( v [ 'elapsed_time' ] ) ) for v in itervalues ( result ) : if v [ 'eval_times' ] : v [ 'min_eval_time' ] = np . min ( v [ 'eval_times' ] ) v [ 'max_eval_time' ] = np . max ( v [ 'eval_times' ] ) v [ 'mean_eval_time' ] = np . mean ( v [ 'eval_times' ] ) v [ 'median_eval_time' ] = np . median ( v [ 'eval_times' ] ) return result
Computes statistics from all work pieces stored in this class.